X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afs.h;h=977fc40b6591dd778294ce7a796a6edcb4746f18;hp=aecf627da420211703e33558aa8f137b413e7a00;hb=2bb9fcbfa99cf30a6f46ba33fd95c0a456a225cc;hpb=79abdfa1a2408afcde31df501fceaf4e9d222103 diff --git a/afs.h b/afs.h index aecf627d..977fc40b 100644 --- a/afs.h +++ b/afs.h @@ -65,11 +65,6 @@ struct rmatt_event_data { }; -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; @@ -95,18 +90,43 @@ 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); +void make_empty_status_items(char *buf); + +#define VERBOSE_LS_OUTPUT_SIZE 4096 + +/* + * Data about the current audio file, passed from afs to server. + */ struct audio_file_data { - enum play_mode current_play_mode; - char attributes_string[MAXLINE]; - char path[_POSIX_PATH_MAX]; + /* Same info as ls -lv -p . */ + char verbose_ls_output[VERBOSE_LS_OUTPUT_SIZE]; + /* The open file descriptor to the current audio file. */ int fd; - long score; - struct afs_info afsi; - struct audio_format_info afhi; + /* Vss needs this for streaming. */ + struct afh_info afhi; }; enum afs_server_code { NEXT_AUDIO_FILE, + NO_ADMISSIBLE_FILES, AFD_CHANGE }; @@ -180,12 +200,13 @@ 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, long score, + struct audio_file_data *afd); 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); 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); @@ -203,7 +224,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);