/* score */
void score_init(struct afs_table *t);
-int admissible_file_loop(void *data, osl_rbtree_loop_func *func);
+int score_loop(osl_rbtree_loop_func *func, void *data);
int score_get_best(struct osl_row **aft_row, long *score);
int get_score_and_aft_row(struct osl_row *score_row, long *score, struct osl_row **aft_row);
int score_add(const struct osl_row *row, long score);
int score_update(const struct osl_row *aft_row, long new_score);
-int get_num_admissible_files(unsigned *num);
int score_delete(const struct osl_row *aft_row);
int clear_score_table(void);
int row_belongs_to_score_table(const struct osl_row *aft_row, unsigned *rank);
int aft_check_callback(struct afs_callback_arg *aca);
void free_status_items(void);
+/* mood */
+int mood_switch(const char *mood_name, char **errmsg);
+void close_current_mood(void);
+int mood_check_callback(struct afs_callback_arg *aca);
+
/* playlist */
-int playlist_open(const char *name);
+int playlist_open(const char *name, char **errmsg);
void playlist_close(void);
int playlist_check_callback(struct afs_callback_arg *aca);
void table_name ## _init(struct afs_table *t); \
int cmd_prefix ## _get_name_by_id(uint32_t id, char **name); \
int cmd_prefix ## _get_def_by_id(uint32_t id, struct osl_object *def); \
- int cmd_prefix ## _get_def_by_name(char *name, struct osl_object *def); \
+ int cmd_prefix ## _get_def_by_name(const char *name, struct osl_object *def); \
int cmd_prefix ## _get_name_and_def_by_row(const struct osl_row *row, \
char **name, struct osl_object *def); \
int table_name ##_event_handler(enum afs_events event, \