]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - aft.c
Move enum ls_sorting_method from afs.h to aft.c and add documentation.
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 4ff7ef198cf3f18de42836396b56bf221ff3cbc9..f8e8f40b5013b300dad0c05abdce189639a42731 100644 (file)
--- a/aft.c
+++ b/aft.c
 #include "string.h"
 #include "vss.h"
 
 #include "string.h"
 #include "vss.h"
 
-#define AFS_AUDIO_FILE_DIR "/home/mp3"
+#define AFS_AUDIO_FILE_DIR "/home/mp3" /* FIXME: Use cwd instead */
 
 static struct osl_table *audio_file_table;
 
 
 static struct osl_table *audio_file_table;
 
+/** The different sorting methods of the ls command. */
+enum ls_sorting_method {
+       /** -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,
+};
+
+/** The different listing modes of the ls command. */
 enum ls_listing_mode {
 enum ls_listing_mode {
+       /** Default listing mode. */
        LS_MODE_SHORT,
        LS_MODE_SHORT,
+       /** -l or -ll */
        LS_MODE_LONG,
        LS_MODE_LONG,
+       /** -lv */
        LS_MODE_VERBOSE,
        LS_MODE_VERBOSE,
+       /** -lm */
        LS_MODE_MBOX
 };
 
        LS_MODE_MBOX
 };
 
+/** The flags accepted by the ls command. */
 enum ls_flags {
 enum ls_flags {
+       /** -p */
        LS_FLAG_FULL_PATH = 1,
        LS_FLAG_FULL_PATH = 1,
+       /** -a */
        LS_FLAG_ADMISSIBLE_ONLY = 2,
        LS_FLAG_ADMISSIBLE_ONLY = 2,
+       /** -r */
        LS_FLAG_REVERSE = 4,
 };
 
        LS_FLAG_REVERSE = 4,
 };
 
+/**
+ * The size of the individual output fields of the ls command.
+ *
+ * These depend on the actual content being listed. If, for instance only files
+ * with duration less than an hour are being listed, then the duration with is
+ * made smaller because then the duration is listed as mm:ss rather than
+ * hh:mm:ss.
+ */
 struct ls_widths {
 struct ls_widths {
+       /** size of the score field. */
        unsigned short score_width;
        unsigned short score_width;
+       /** size of the image id field. */
        unsigned short image_id_width;
        unsigned short image_id_width;
+       /** size of the lyrics id field. */
        unsigned short lyrics_id_width;
        unsigned short lyrics_id_width;
+       /** size of the bitrate field. */
        unsigned short bitrate_width;
        unsigned short bitrate_width;
+       /** size of the frequency field. */
        unsigned short frequency_width;
        unsigned short frequency_width;
+       /** size of the duration field. */
        unsigned short duration_width;
        unsigned short duration_width;
+       /** size of the num played field. */
        unsigned short num_played_width;
 };
 
        unsigned short num_played_width;
 };
 
+/** Data passed to the different compare functions (called by qsort()). */
 struct ls_data {
 struct ls_data {
+       /** Usual audio format handler information. */
        struct audio_format_info afhi;
        struct audio_format_info afhi;
+       /** Audio file selector information. */
        struct afs_info afsi;
        struct afs_info afsi;
+       /** The full path of the audio file. */
        char *path;
        char *path;
+       /** The score value (if -a was given). */
        long score;
        long score;
+       /** The sha1 hash of audio file. */
        HASH_TYPE *hash;
 };
 
        HASH_TYPE *hash;
 };