extend player instance with app intstance pointer and index
[melted_gui] / src / omnplay.h
1 /*
2 * omnplay.h -- GTK+ 2 omnplay
3 * Copyright (C) 2011 Maksym Veremeyenko <verem@m1stereo.tv>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software Foundation,
17 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 */
19
20 #ifndef OMNPLAY_H
21 #define OMNPLAY_H
22
23 #ifdef __cplusplus
24 extern "C"
25 {
26 #endif /* __cplusplus */
27
28 typedef enum control_buttons
29 {
30 BUTTON_PLAYLIST_ITEM_ADD = 1,
31 BUTTON_PLAYLIST_ITEM_DEL,
32 BUTTON_PLAYLIST_ITEM_EDIT,
33
34 BUTTON_PLAYLIST_LOAD,
35 BUTTON_PLAYLIST_SAVE,
36
37 BUTTON_PLAYLIST_BLOCK_SINGLE,
38 BUTTON_PLAYLIST_BLOCK_LOOP,
39
40 BUTTON_PLAYLIST_ITEM_UP,
41 BUTTON_PLAYLIST_ITEM_DOWN,
42
43 BUTTON_PLAYER_CUE,
44 BUTTON_PLAYER_PLAY,
45 BUTTON_PLAYER_PAUSE,
46 BUTTON_PLAYER_STOP,
47
48 BUTTON_LIBRARY_ADD,
49 BUTTON_LIBRARY_REFRESH,
50
51 BUTTON_LAST
52 } control_buttons_t;
53
54 #define MAX_PLAYERS 4
55
56 struct omnplay_instance;
57
58 typedef struct omnplay_player
59 {
60 int idx;
61 char name[PATH_MAX];
62 char host[PATH_MAX];
63 void* handle;
64 pthread_t thread;
65 pthread_mutex_t lock;
66 GtkWidget *label_status, *label_state, *label_tc_cur, *label_tc_rem, *label_clip;
67 struct omnplay_instance *app;
68 }
69 omnplay_player_t;
70
71 typedef struct omnplay_instance
72 {
73 GtkWidget *window;
74 GtkWidget *playlist;
75 GtkWidget *library;
76 GtkWidget *buttons[BUTTON_LAST + 1];
77 struct
78 {
79 omnplay_player_t item[MAX_PLAYERS];
80 int count;
81 char path[PATH_MAX];
82 } players;
83 int f_exit;
84 }
85 omnplay_instance_t;
86
87 omnplay_instance_t* omnplay_create(int argc, char** argv);
88 void omnplay_init(omnplay_instance_t* app);
89 void omnplay_release(omnplay_instance_t* app);
90 void omnplay_destroy(omnplay_instance_t* app);
91
92 #ifdef __cplusplus
93 };
94 #endif /* __cplusplus */
95
96 #endif /* OMNPLAY_H */