From a629e649da99e06460f0cb93af7359f45d9b059a Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Tue, 25 Sep 2007 11:53:58 +0200 Subject: [PATCH] afs: Move some ls-related stuff from afs.h to aft.c. Also, add GPL header and documentation of struct afs_info to afs.h. --- afs.h | 93 ++++++++++++++++++++++++----------------------------------- aft.c | 44 ++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 56 deletions(-) diff --git a/afs.h b/afs.h index 623cd145..2f192c65 100644 --- a/afs.h +++ b/afs.h @@ -1,13 +1,26 @@ +/* + * Copyright (C) 2007 Andre Noll + * + * Licensed under the GPL v2. For licencing details see COPYING. + */ + #include #include "osl.h" #include "hash.h" +/** Audio file selector data stored in the audio file table. */ struct afs_info { + /** Seconds since the epoch. */ uint64_t last_played; + /** Bitfield of set attributes. */ uint64_t attributes; + /** Counts how many times the file was selected. */ uint32_t num_played; + /** Image blob associated with this file (foreign key). */ uint32_t image_id; + /** Lyrics blob associated with this file (foreign key). */ uint32_t lyrics_id; + /** Mp3, ogg or aac. */ uint8_t audio_format_id; }; @@ -20,62 +33,30 @@ struct table_info { }; enum ls_sorting_method { - LS_SORT_BY_PATH, /* -sp (default) */ - LS_SORT_BY_SCORE, /* -ss */ - LS_SORT_BY_LAST_PLAYED, /* -sl */ - LS_SORT_BY_NUM_PLAYED, /* -sn */ - LS_SORT_BY_FREQUENCY, /* -sf */ - LS_SORT_BY_CHANNELS, /* -sc */ - LS_SORT_BY_IMAGE_ID, /* -si */ - LS_SORT_BY_LYRICS_ID, /* -sy */ - LS_SORT_BY_BITRATE, /* -sb */ - LS_SORT_BY_DURATION, /* -sd */ - LS_SORT_BY_AUDIO_FORMAT, /* -sa */ - LS_SORT_BY_HASH, /* -sh */ -}; - -enum ls_listing_mode { - LS_MODE_SHORT, - LS_MODE_LONG, - LS_MODE_VERBOSE, - LS_MODE_MBOX -}; - -enum ls_flags { - LS_FLAG_FULL_PATH = 1, - LS_FLAG_ADMISSIBLE_ONLY = 2, - LS_FLAG_REVERSE = 4, -}; - -struct ls_widths { - unsigned short score_width; - unsigned short image_id_width; - unsigned short lyrics_id_width; - unsigned short bitrate_width; - unsigned short frequency_width; - unsigned short duration_width; - unsigned short num_played_width; -}; - -struct ls_data { - struct audio_format_info afhi; - struct afs_info afsi; - char *path; - long score; - HASH_TYPE *hash; -}; - -struct ls_options { - unsigned flags; - enum ls_sorting_method sorting; - enum ls_listing_mode mode; - char **patterns; - int num_patterns; - struct ls_widths widths; - uint32_t array_size; - uint32_t num_matching_paths; - struct ls_data *data; - struct ls_data **data_ptr; + /** -sp (default) */ + LS_SORT_BY_PATH, + /** -ss */ + LS_SORT_BY_SCORE, + /** -sl */ + LS_SORT_BY_LAST_PLAYED, + /** -sn */ + LS_SORT_BY_NUM_PLAYED, + /** -sf */ + LS_SORT_BY_FREQUENCY, + /** -sc */ + LS_SORT_BY_CHANNELS, + /** -si */ + LS_SORT_BY_IMAGE_ID, + /** -sy */ + LS_SORT_BY_LYRICS_ID, + /** -sb */ + LS_SORT_BY_BITRATE, + /** -sd */ + LS_SORT_BY_DURATION, + /** -sa */ + LS_SORT_BY_AUDIO_FORMAT, + /** -sh */ + LS_SORT_BY_HASH, }; enum play_mode {PLAY_MODE_MOOD, PLAY_MODE_PLAYLIST}; diff --git a/aft.c b/aft.c index d1c46ba0..e643e01a 100644 --- a/aft.c +++ b/aft.c @@ -20,6 +20,50 @@ static struct osl_table *audio_file_table; +enum ls_listing_mode { + LS_MODE_SHORT, + LS_MODE_LONG, + LS_MODE_VERBOSE, + LS_MODE_MBOX +}; + +enum ls_flags { + LS_FLAG_FULL_PATH = 1, + LS_FLAG_ADMISSIBLE_ONLY = 2, + LS_FLAG_REVERSE = 4, +}; + +struct ls_widths { + unsigned short score_width; + unsigned short image_id_width; + unsigned short lyrics_id_width; + unsigned short bitrate_width; + unsigned short frequency_width; + unsigned short duration_width; + unsigned short num_played_width; +}; + +struct ls_data { + struct audio_format_info afhi; + struct afs_info afsi; + char *path; + long score; + HASH_TYPE *hash; +}; + +struct ls_options { + unsigned flags; + enum ls_sorting_method sorting; + enum ls_listing_mode mode; + char **patterns; + int num_patterns; + struct ls_widths widths; + uint32_t array_size; + uint32_t num_matching_paths; + struct ls_data *data; + struct ls_data **data_ptr; +}; + /** * Describes the layout of the mmapped-afs info struct. * -- 2.39.5