Credit Andrew - improve in-tree documentation
[goodguy/cinelerra.git] / cinelerra / avc1394transport.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #ifndef AVC1394TRANSPORT_H
23 #define AVC1394TRANSPORT_H
24 #ifdef HAVE_FIREWIRE
25
26 #include "avc1394control.h"
27 #include "mwindow.h"
28 #include "theme.h"
29
30 class AVC1394TransportThread;
31 class AVC1394Transport;
32 class AVC1394GUIRewind;
33 class AVC1394GUIReverse;
34 class AVC1394GUIStop;
35 class AVC1394GUIPause;
36 class AVC1394GUIPlay;
37 class AVC1394GUIFForward;
38 class AVC1394GUISeekStart;
39 class AVC1394GUISeekEnd;
40
41
42 class AVC1394TransportThread : public Thread
43 {
44 public:
45         AVC1394TransportThread(BC_Title *label, AVC1394Control *avc);
46         ~AVC1394TransportThread();
47
48         void run();
49
50         BC_Title *label;
51         AVC1394Control *avc;
52
53         int tid;
54         int done;
55 };
56
57 class AVC1394Transport
58 {
59 public:
60         AVC1394Transport(MWindow *mwindow, AVC1394Control *avc, BC_WindowBase *window, int x, int y);
61         ~AVC1394Transport();
62
63         void create_objects();
64         void reposition_window(int x, int y);
65         int keypress_event(int keypress);
66
67         MWindow *mwindow;
68         AVC1394Control *avc;
69         BC_WindowBase *window;
70         int x;
71         int y;
72         int x_end;
73
74 // Buttons
75    AVC1394GUIRewind *rewind_button;
76    AVC1394GUIReverse *reverse_button;
77    AVC1394GUIStop *stop_button;
78    AVC1394GUIPause *pause_button;
79    AVC1394GUIPlay *play_button;
80    AVC1394GUIFForward *fforward_button;
81         AVC1394GUISeekStart *start_button;
82         AVC1394GUISeekEnd *end_button;
83 };
84
85 class AVC1394GUISeekStart : public BC_Button
86 {
87 public:
88    AVC1394GUISeekStart(MWindow *mwindow, AVC1394Control *avc, int x, int y);
89    ~AVC1394GUISeekStart();
90
91    int handle_event();
92    int keypress_event();
93    MWindow *mwindow;
94    AVC1394Control *avc;
95 };
96
97 class AVC1394GUIRewind : public BC_Button
98 {
99 public:
100    AVC1394GUIRewind(MWindow *mwindow, AVC1394Control *avc, int x, int y);
101    ~AVC1394GUIRewind();
102
103    int handle_event();
104    int keypress_event();
105    MWindow *mwindow;
106    AVC1394Control *avc;
107 };
108
109 class AVC1394GUIReverse : public BC_Button
110 {
111 public:
112    AVC1394GUIReverse(MWindow *mwindow, AVC1394Control *avc, int x, int y);
113    ~AVC1394GUIReverse();
114
115    int handle_event();
116    int keypress_event();
117    MWindow *mwindow;
118    AVC1394Control *avc;
119 };
120
121 class AVC1394GUIStop : public BC_Button
122 {
123 public:
124    AVC1394GUIStop(MWindow *mwindow, AVC1394Control *avc, int x, int y);
125    ~AVC1394GUIStop();
126
127    int handle_event();
128    int keypress_event();
129    MWindow *mwindow;
130    AVC1394Control *avc;
131 };
132
133 class AVC1394GUIPause : public BC_Button
134 {
135 public:
136    AVC1394GUIPause(MWindow *mwindow, AVC1394Control *avc, int x, int y);
137    ~AVC1394GUIPause();
138
139    int handle_event();
140    int keypress_event();
141    MWindow *mwindow;
142    AVC1394Control *avc;
143 };
144
145 class AVC1394GUIPlay : public BC_Button
146 {
147 public:
148    AVC1394GUIPlay(MWindow *mwindow, AVC1394Control *avc, int x, int y);
149    ~AVC1394GUIPlay();
150
151    int handle_event();
152    int keypress_event();
153    MWindow *mwindow;
154    AVC1394Control *avc;
155         int mode;
156 };
157
158 class AVC1394GUIFForward : public BC_Button
159 {
160 public:
161    AVC1394GUIFForward(MWindow *mwindow, AVC1394Control *avc, int x, int y);
162    ~AVC1394GUIFForward();
163
164    int handle_event();
165    int keypress_event();
166    MWindow *mwindow;
167    AVC1394Control *avc;
168 };
169
170 class AVC1394GUISeekEnd : public BC_Button
171 {
172 public:
173    AVC1394GUISeekEnd(MWindow *mwindow, AVC1394Control *avc, int x, int y);
174    ~AVC1394GUISeekEnd();
175
176    int handle_event();
177    int keypress_event();
178    MWindow *mwindow;
179    AVC1394Control *avc;
180 };
181
182 #endif
183 #endif