X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fomnplay.h;h=aad4adef421d3bf6bda463ab9cddba11af1e7759;hb=3b734bdf296b2d0888924661c6bffeeb62088996;hp=ae33769fcce23feec3767fc9f38dfbf9dae8469c;hpb=a85a189261a5b71772d73c1c5a460cb9e8ff4ca4;p=melted_gui diff --git a/src/omnplay.h b/src/omnplay.h index ae33769..aad4ade 100644 --- a/src/omnplay.h +++ b/src/omnplay.h @@ -20,6 +20,8 @@ #ifndef OMNPLAY_H #define OMNPLAY_H +#include + #ifdef __cplusplus extern "C" { @@ -48,6 +50,9 @@ typedef enum control_buttons BUTTON_LIBRARY_ADD, BUTTON_LIBRARY_REFRESH, + BUTTON_LIBRARY_FIND, + BUTTON_LIBRARY_FIND_NEXT, + BUTTON_LAST } control_buttons_t; @@ -85,6 +90,9 @@ typedef enum playlist_item_type } playlist_item_type_t; #define MAX_PLAYLIST_ITEMS 1024 +#define MAX_LIBRARY_ITEMS 10240 +#define PLAYLIST_ITEM_ERROR_LIB 1 +#define PLAYLIST_ITEM_ERROR_CUE 2 typedef struct playlist_item { @@ -94,6 +102,10 @@ typedef struct playlist_item int dur; int player; playlist_item_type_t type; + int omn_idx; + int omn_offset; + int error; + int del; } playlist_item_t; #define MAX_PLAYERS 4 @@ -106,11 +118,11 @@ typedef struct omnplay_player char name[PATH_MAX]; char host[PATH_MAX]; void* handle; - pthread_t thread; + GThread* thread; GtkWidget *label_status, *label_state, *label_tc_cur, *label_tc_rem, *label_clip; struct omnplay_instance *app; int playlist_start; - int playlist_count; + int playlist_length; } omnplay_player_t; typedef struct omnplay_instance @@ -119,6 +131,7 @@ typedef struct omnplay_instance GtkWidget *playlist_grid; GtkWidget *library_grid; GtkWidget *buttons[BUTTON_LAST + 1]; + GtkWidget *status_label; struct { omnplay_player_t item[MAX_PLAYERS]; @@ -137,6 +150,21 @@ typedef struct omnplay_instance char* path; GdkPixbuf *block_icons[8]; } playlist; + struct + { + playlist_item_t item[MAX_LIBRARY_ITEMS]; + int count; + char filename[PATH_MAX]; + char whois[PATH_MAX]; + pthread_mutex_t lock; + GThread* refresh_thread; + GtkWidget *search; + } library; + struct + { + playlist_item_t item[MAX_LIBRARY_ITEMS]; + int count; + } clipboard; } omnplay_instance_t; omnplay_instance_t* omnplay_create(int argc, char** argv); @@ -146,6 +174,24 @@ void omnplay_destroy(omnplay_instance_t* app); void omnplay_playlist_load(omnplay_instance_t* app); void omnplay_playlist_save(omnplay_instance_t* app); void omnplay_playlist_draw(omnplay_instance_t* app); +void omnplay_playlist_draw_item(omnplay_instance_t* app, int idx); +void omnplay_playlist_draw_item_rem(omnplay_instance_t* app, int idx, char* rem); +void omnplay_library_load(omnplay_instance_t* app); +void omnplay_library_save(omnplay_instance_t* app); +void omnplay_library_refresh(omnplay_instance_t* app); +void omnplay_library_draw(omnplay_instance_t* app); +typedef void (*omnplay_get_content_cb_proc)(omnplay_instance_t* app, playlist_item_t *items, void* data); +int omnplay_get_content(omnplay_instance_t* app, playlist_item_t *items, int limit, + omnplay_get_content_cb_proc proc, void* data); +int omnplay_whois_list(omnplay_instance_t* app, playlist_item_t *items, int* plimit); +int omnplay_library_load_file(playlist_item_t* items, int *pcount, char* filename); +playlist_item_t* omnplay_library_find(omnplay_instance_t* app, char* id); +int omnplay_library_normalize_item(omnplay_instance_t* app, playlist_item_t* item); +playlist_item_t* omnplay_library_get_selected(omnplay_instance_t* app, int *count); +void omnplay_playlist_normalize(omnplay_instance_t* app); +void omnplay_library_search(omnplay_instance_t* app, int next); +void omnplay_set_status(omnplay_instance_t* app, char* str); +int* omnplay_selected_idxs_playlist(omnplay_instance_t* app); #ifdef __cplusplus };