1 #ifndef PLAYTRANSPORT_H
2 #define PLAYTRANSPORT_H
7 #include "playbackengine.inc"
8 #include "playtransport.inc"
12 #define PAUSEDOWN_MODE 2
17 PlayTransport(MWindow
*mwindow
, BC_WindowBase
*subwindow
, int x
, int y
);
21 void reposition_buttons(int x
, int y
);
23 virtual void goto_start();
24 virtual void goto_end();
25 // Set a slider to control if there is one
26 void set_slider(BC_Slider
*slider
);
27 // Set the playback engine to control
28 void set_engine(PlaybackEngine
*engine
);
29 static int get_transport_width(MWindow
*mwindow
);
30 int flip_vertical(int vertical
, int &x
, int &y
);
32 // Abstract TransportQue::send_command.
33 // wait_tracking - causes stop to wail until the final tracking position
34 // is updated before returning
35 // use_inout - causes the in/out points to determine the beginning and end
37 // update_refresh - causes a frame advance to be issued after STOP to update
39 void handle_transport(int command
,
40 int wait_tracking
= 0,
42 int update_refresh
= 1);
44 int pause_transport();
45 int reset_transport();
47 // Get the EDL to play back with default to mwindow->edl
48 virtual EDL
* get_edl();
50 // playback parameters
54 PTransportButton
*active_button
;
55 PlayButton
*forward_play
;
56 FramePlayButton
*frame_forward_play
;
57 ReverseButton
*reverse_play
;
58 FrameReverseButton
*frame_reverse_play
;
59 FastReverseButton
*fast_reverse
;
60 FastPlayButton
*fast_play
;
61 RewindButton
*rewind_button
;
62 StopButton
*stop_button
;
63 EndButton
*end_button
;
65 BC_WindowBase
*subwindow
;
67 PlaybackEngine
*engine
;
74 class PTransportButton
: public BC_Button
77 PTransportButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
, VFrame
**data
);
78 virtual ~PTransportButton();
79 virtual int set_mode(int mode
);
83 PlayTransport
*transport
;
86 class RewindButton
: public PTransportButton
89 RewindButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
93 class FastReverseButton
: public PTransportButton
96 FastReverseButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
100 class ReverseButton
: public PTransportButton
103 ReverseButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
107 class FrameReverseButton
: public PTransportButton
110 FrameReverseButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
114 class PlayButton
: public PTransportButton
117 PlayButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
121 class FramePlayButton
: public PTransportButton
124 FramePlayButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
128 class FastPlayButton
: public PTransportButton
131 FastPlayButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
137 class EndButton
: public PTransportButton
140 EndButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
144 class StopButton
: public PTransportButton
147 StopButton(MWindow
*mwindow
, PlayTransport
*transport
, int x
, int y
);
155 // c-file-style: "linux"