#include #include #include // Types of messages in the event queue enum CommandType {RECORDING_STOP, RECORDING_START, RECORDING_PAUSE, RECORDING_CONTINUE, RECORDING_NOTIFY_MSG, RECORDING_SHOW_WINDOW, RECORDING_HIDE_WINDOW, RECORDING_QUIT_LOOP, RECORDING_QUIT_APP }; enum CommandFlags {RECORDING_NO_FLAGS = 0, RECORDING_DELETE_FILE = 4}; typedef struct { enum CommandType type; gchar *track; gchar *artist; gchar *album; gint track_pos; // in time, seconds gint track_len; // time, seconds guint flags; // Eg. RECORDING_DELETE_FILE flag } RecorderCommand; void rec_manager_init(); void rec_manager_exit(); void rec_manager_update_gui(); void rec_manager_set_time_label(gchar *label_txt); void rec_manager_set_size_label(gchar *label_txt); void rec_manager_set_error_text(gchar *error_txt); void rec_manager_set_filename_label(gchar *filename); gint64 rec_manager_get_stream_time(); void rec_manager_get_state(gint *status, gint *pending); void rec_manager_continue_recording(); void rec_manager_start_recording(); void rec_manager_stop_recording(); void rec_manager_pause_recording(); gboolean rec_manager_is_recording(); void rec_manager_show_window(gboolean show); void rec_manager_quit_application(); const gchar *rec_manager_get_state_name(gint state); void rec_manager_send_gui_msg(gchar *msg); gchar *rec_manager_get_output_filename(); void rec_manager_flip_recording(); void rec_manager_update_level_bar(gdouble peak, gdouble peak_dB); void rec_manager_print_command(RecorderCommand *cmd); void rec_manager_send_command(RecorderCommand *cmd); void rec_manager_send_command_ex(enum CommandType type, gchar *track, gchar *artist, gchar *album, gint track_pos, gint track_len, guint flags);