r793: Small API addon, so plugins can 'see' camera and projector automation
[cinelerra_cv/mob.git] / cinelerra / vdeviceprefs.h
blobbad3773eefc6769d28930075ee173f1205580876
1 #ifndef VDEVICEPREFS_H
2 #define VDEVICEPREFS_H
4 // Modes
5 #ifndef MODEPLAY
6 #define MODEPLAY 0
7 #define MODERECORD 1
8 #define MODEDUPLEX 2
9 #endif
11 #include "adeviceprefs.inc"
12 #include "channelpicker.inc"
13 #include "guicast.h"
14 #include "playbackconfig.inc"
15 #include "preferencesthread.inc"
16 #include "recordconfig.inc"
17 #include "vdeviceprefs.inc"
19 class VDeviceCheckBox;
20 class VDeviceTextBox;
21 class VDeviceIntBox;
22 class VDriverMenu;
24 class VDevicePrefs
26 public:
27 VDevicePrefs(int x,
28 int y,
29 PreferencesWindow *pwindow,
30 PreferencesDialog *dialog,
31 VideoOutConfig *out_config,
32 VideoInConfig *in_config,
33 int mode);
34 ~VDevicePrefs();
36 int initialize();
37 int delete_objects();
38 void reset_objects();
40 PreferencesWindow *pwindow;
41 PreferencesDialog *dialog;
42 VideoOutConfig *out_config;
43 VideoInConfig *in_config;
44 PrefsChannelPicker *channel_picker;
46 private:
47 int create_lml_objs();
48 int create_firewire_objs();
49 int create_dv1394_objs();
50 int create_v4l_objs();
51 int create_v4l2_objs();
52 int create_v4l2jpeg_objs();
53 int create_screencap_objs();
54 int create_buz_objs();
55 int create_x11_objs();
57 VDriverMenu *menu;
59 BC_Title *device_title, *port_title, *channel_title, *output_title, *syt_title;
60 VDeviceTextBox *device_text;
61 VDeviceIntBox *firewire_port;
62 VDeviceIntBox *firewire_channel;
63 VDeviceIntBox *firewire_channels;
64 VDeviceIntBox *firewire_syt;
65 VDeviceTextBox *firewire_path;
67 VDeviceCheckBox *buz_swap_channels;
68 int driver, mode;
69 int x;
70 int y;
73 class VDeviceTextBox : public BC_TextBox
75 public:
76 VDeviceTextBox(int x, int y, char *output);
78 int handle_event();
79 char *output;
82 class VDeviceIntBox : public BC_TextBox
84 public:
85 VDeviceIntBox(int x, int y, int *output);
87 int handle_event();
88 int *output;
91 class VDeviceCheckBox : public BC_CheckBox
93 public:
94 VDeviceCheckBox(int x, int y, int *output, char *text);
96 int handle_event();
97 int *output;
101 class VDriverMenu : public BC_PopupMenu
103 public:
104 VDriverMenu(int x,
105 int y,
106 VDevicePrefs *device_prefs,
107 int do_input,
108 int *output);
109 ~VDriverMenu();
111 char* driver_to_string(int driver);
112 int create_objects();
114 VDevicePrefs *device_prefs;
115 int do_input;
116 int *output;
117 char string[BCTEXTLEN];
121 class VDriverItem : public BC_MenuItem
123 public:
124 VDriverItem(VDriverMenu *popup, char *text, int driver);
125 ~VDriverItem();
127 int handle_event();
129 VDriverMenu *popup;
130 int driver;
135 #endif