X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afs.h;h=d9fa53c41f587a71d6dc9f82ac78545aba283d54;hp=9e1f61e07bd0ef255911eb80ac48b4c93f4651c8;hb=192417698d9dab017ef6108fa6e9fd5ea1dc5633;hpb=a5b65db9da1cd81c25494429ea8adb5d76e5b32a diff --git a/afs.h b/afs.h index 9e1f61e0..d9fa53c4 100644 --- a/afs.h +++ b/afs.h @@ -90,12 +90,30 @@ struct afs_table { 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 afh_info afhi; }; @@ -175,7 +193,8 @@ int get_attribute_text(uint64_t *atts, const char *delim, char **text); /* aft */ void aft_init(struct afs_table *t); int aft_get_row_of_path(const char *path, struct osl_row **row); -int open_and_update_audio_file(struct osl_row *aft_row, struct audio_file_data *afd); +int open_and_update_audio_file(struct osl_row *aft_row, + struct audio_file_data *afd, long score); int load_afd(int shmid, struct audio_file_data *afd); int load_afsi(struct afs_info *afsi, struct osl_object *obj); void save_afsi(struct afs_info *afsi, struct osl_object *obj); @@ -198,7 +217,6 @@ int mood_check_callback(__a_unused const struct osl_object *query, /* 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);