enum afs_table_flags flags;
};
-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,
-};
-
enum play_mode {PLAY_MODE_MOOD, PLAY_MODE_PLAYLIST};
struct audio_file_data {
struct osl_object map;
};
+enum pattern_match_flags {
+ PM_REVERSE_LOOP = 1,
+ PM_NO_PATTERN_MATCHES_EVERYTHING = 2,
+ PM_SKIP_EMPTY_NAME = 4,
+};
+
+struct pattern_match_data {
+ struct osl_table *table;
+ unsigned loop_col_num;
+ unsigned match_col_num;
+ unsigned pm_flags;
+ int fnmatch_flags;
+ struct osl_object patterns;
+ void *data;
+ int (*action)(struct osl_table *table, struct osl_row *row, const char *name, void *data);
+};
+
/* afs */
typedef int callback_function(const struct osl_object *, struct osl_object *);
__noreturn int afs_init(uint32_t cookie, int socket_fd);
int stdin_command(int fd, struct osl_object *arg_obj, callback_function *f,
unsigned max_len, struct osl_object *result);
int string_compare(const struct osl_object *obj1, const struct osl_object *obj2);
-int para_atol(const char *str, long *result);
int open_next_audio_file(struct audio_file_data *afd);
int close_audio_file(struct audio_file_data *afd);
+int for_each_matching_row(struct pattern_match_data *pmd);
/* score */
int score_init(struct table_info *ti, const char *db);