r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / cinelerra / patchgui.h
blobf9bd4cc9a176721f5c1dfd9512e135b732a69560
1 #ifndef PATCHGUI_H
2 #define PATCHGUI_H
4 #include "guicast.h"
5 #include "mwindow.inc"
6 #include "patchbay.inc"
7 #include "intauto.inc"
8 #include "track.inc"
13 class TitlePatch;
14 class PlayPatch;
15 class RecordPatch;
16 class AutoPatch;
17 class GangPatch;
18 class DrawPatch;
19 class MutePatch;
20 class ExpandPatch;
23 class PatchGUI
25 public:
26 PatchGUI(MWindow *mwindow,
27 PatchBay *patchbay,
28 Track *track,
29 int x,
30 int y);
31 virtual ~PatchGUI();
33 virtual int create_objects();
34 virtual int reposition(int x, int y);
35 void toggle_behavior(int type,
36 int value,
37 BC_Toggle *toggle,
38 int *output);
39 virtual int update(int x, int y);
40 virtual void synchronize_fade(float change) {};
41 void synchronize_faders(float change, int audio, int video);
43 MWindow *mwindow;
44 PatchBay *patchbay;
45 Track *track;
46 // Used by update routines so non-existent track doesn't need to be dereferenced
47 // to know it doesn't match the current EDL.
48 int track_id;
49 int data_type;
50 int x, y;
51 // Don't synchronize the fader if this is true.
52 int change_source;
54 TitlePatch *title;
55 RecordPatch *record;
56 PlayPatch *play;
57 // AutoPatch *automate;
58 GangPatch *gang;
59 DrawPatch *draw;
60 MutePatch *mute;
61 ExpandPatch *expand;
66 class PlayPatch : public BC_Toggle
68 public:
69 PlayPatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
70 int button_press_event();
71 int button_release_event();
72 MWindow *mwindow;
73 PatchGUI *patch;
76 class RecordPatch : public BC_Toggle
78 public:
79 RecordPatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
80 int button_press_event();
81 int button_release_event();
82 MWindow *mwindow;
83 PatchGUI *patch;
86 class TitlePatch : public BC_TextBox
88 public:
89 TitlePatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
90 int handle_event();
91 MWindow *mwindow;
92 PatchGUI *patch;
95 class AutoPatch : public BC_Toggle
97 public:
98 AutoPatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
99 int button_press_event();
100 int button_release_event();
101 MWindow *mwindow;
102 PatchGUI *patch;
105 class GangPatch : public BC_Toggle
107 public:
108 GangPatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
109 int button_press_event();
110 int button_release_event();
111 MWindow *mwindow;
112 PatchGUI *patch;
115 class DrawPatch : public BC_Toggle
117 public:
118 DrawPatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
119 int button_press_event();
120 int button_release_event();
121 MWindow *mwindow;
122 PatchGUI *patch;
125 class MutePatch : public BC_Toggle
127 public:
128 MutePatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
129 int button_press_event();
130 int button_release_event();
131 static IntAuto* get_keyframe(MWindow *mwindow, PatchGUI *patch);
132 MWindow *mwindow;
133 PatchGUI *patch;
136 class ExpandPatch : public BC_Toggle
138 public:
139 ExpandPatch(MWindow *mwindow, PatchGUI *patch, int x, int y);
140 int button_press_event();
141 int button_release_event();
142 MWindow *mwindow;
143 PatchGUI *patch;
148 #endif