Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

playtransport.h

Go to the documentation of this file.
00001 #ifndef PLAYTRANSPORT_H
00002 #define PLAYTRANSPORT_H
00003 
00004 #include "edl.inc"
00005 #include "guicast.h"
00006 #include "mwindow.inc"
00007 #include "playbackengine.inc"
00008 #include "playtransport.inc"
00009 
00010 #define PLAY_MODE 0
00011 #define PAUSE_MODE 1
00012 #define PAUSEDOWN_MODE 2
00013 
00014 class PlayTransport
00015 {
00016 public:
00017         PlayTransport(MWindow *mwindow, BC_WindowBase *subwindow, int x, int y);
00018         ~PlayTransport();
00019 
00020         int create_objects();
00021         void reposition_buttons(int x, int y);
00022 
00023         virtual void goto_start();
00024         virtual void goto_end();
00025 // Set a slider to control if there is one
00026         void set_slider(BC_Slider *slider);
00027 // Set the playback engine to control
00028         void set_engine(PlaybackEngine *engine);
00029         static int get_transport_width(MWindow *mwindow);
00030         int flip_vertical(int vertical, int &x, int &y);
00031         int keypress_event();
00032         void handle_transport(int command, int wait_tracking = 0, int use_inout = 0);
00033 
00034         int pause_transport();
00035         int reset_transport();
00036         int get_w();
00037 // Get the EDL to play back with default to mwindow->edl
00038         virtual EDL* get_edl();
00039 
00040 // playback parameters
00041         int reverse;
00042         float speed;
00043 
00044         PTransportButton *active_button;
00045         PlayButton *forward_play;
00046         FramePlayButton *frame_forward_play;
00047         ReverseButton *reverse_play;
00048         FrameReverseButton *frame_reverse_play;
00049         FastReverseButton *fast_reverse;
00050         FastPlayButton *fast_play;
00051         RewindButton *rewind_button;
00052         StopButton *stop_button;
00053         EndButton *end_button;
00054         MWindow *mwindow;
00055         BC_WindowBase *subwindow;
00056         BC_Slider *slider;
00057         PlaybackEngine *engine;
00058         int status;
00059         int x, y;
00060 };
00061 
00062 // Should be toggle
00063 
00064 class PTransportButton : public BC_Button
00065 {
00066 public:
00067         PTransportButton(MWindow *mwindow, PlayTransport *transport, int x, int y, VFrame **data);
00068         virtual ~PTransportButton();
00069         virtual int set_mode(int mode);
00070 
00071         int mode;
00072         MWindow *mwindow;
00073         PlayTransport *transport;
00074 };
00075 
00076 class RewindButton : public PTransportButton
00077 {
00078 public:
00079         RewindButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00080         int handle_event();
00081 };
00082 
00083 class FastReverseButton : public PTransportButton
00084 {
00085 public:
00086         FastReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00087         int handle_event();
00088 };
00089 
00090 class ReverseButton : public PTransportButton
00091 {
00092 public:
00093         ReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00094         int handle_event();
00095 };
00096 
00097 class FrameReverseButton : public PTransportButton
00098 {
00099 public:
00100         FrameReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00101         int handle_event();
00102 };
00103 
00104 class PlayButton : public PTransportButton
00105 {
00106 public:
00107         PlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00108         int handle_event();
00109 };
00110 
00111 class FramePlayButton : public PTransportButton
00112 {
00113 public:
00114         FramePlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00115         int handle_event();
00116 };
00117 
00118 class FastPlayButton : public PTransportButton
00119 {
00120 public:
00121         FastPlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00122         int handle_event();
00123 };
00124 
00125 
00126 
00127 class EndButton : public PTransportButton
00128 {
00129 public:
00130         EndButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00131         int handle_event();
00132 };
00133 
00134 class StopButton : public PTransportButton
00135 {
00136 public:
00137         StopButton(MWindow *mwindow, PlayTransport *transport, int x, int y);
00138         int handle_event();
00139 };
00140 
00141 #endif

Generated on Sun Jan 8 13:38:58 2006 for Cinelerra-svn by  doxygen 1.4.4