};
-struct addatt_event_data {
- const char *name;
- unsigned char bitnum;
-};
-
struct afsi_change_event_data {
const struct osl_row *aft_row;
struct afs_info *old_afsi;
enum play_mode {PLAY_MODE_MOOD, PLAY_MODE_PLAYLIST};
+/**
+ * Data about one audio file.
+ *
+ * Needed to produce ls and stat output.
+ */
+struct ls_data {
+ /** Usual audio format handler information. */
+ struct afh_info afhi;
+ /** Audio file selector information. */
+ struct afs_info afsi;
+ /** The full path of the audio file. */
+ char *path;
+ /** The score value (if -a was given). */
+ long score;
+ /** The sha1 hash of audio file. */
+ HASH_TYPE *hash;
+};
+int make_status_items(struct ls_data *d, struct para_buffer *pb);
+
+#define AFS_STATUS_INFO_SIZE 4096
+
struct audio_file_data {
enum play_mode current_play_mode;
char attributes_string[MAXLINE];
char path[_POSIX_PATH_MAX];
+ char afs_status_info[AFS_STATUS_INFO_SIZE];
int fd;
long score;
struct afs_info afsi;
- struct audio_format_info afhi;
+ struct afh_info afhi;
};
enum afs_server_code {
int load_afsi(struct afs_info *afsi, struct osl_object *obj);
void save_afsi(struct afs_info *afsi, struct osl_object *obj);
int get_afsi_of_row(const struct osl_row *row, struct afs_info *afsi);
-int get_afhi_of_row(const struct osl_row *row, struct audio_format_info *afhi);
+int get_afhi_of_row(const struct osl_row *row, struct afh_info *afhi);
int get_afsi_of_path(const char *path, struct afs_info *afsi);
int get_audio_file_path_of_row(const struct osl_row *row, char **path);
int get_afsi_object_of_row(const struct osl_row *row, struct osl_object *obj);
/* playlist */
int playlist_open(char *name);
void playlist_close(void);
-int playlist_update_audio_file(struct osl_row *aft_row);
int playlist_check_callback(__a_unused const struct osl_object *query,
struct osl_object *result);