00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _KINO_EXTRA_H_
00022 #define _KINO_EXTRA_H_
00023
00024 #include <stdint.h>
00025 #include <gtk/gtk.h>
00026
00027
00028
00029 #ifndef WITH_LIBDV
00030 #define WITH_LIBDV
00031 #endif
00032
00033
00034 class PlayList;
00035
00036
00037 extern PlayList &GetCurrentPlayList( );
00038
00039
00040 class SelectedFrames
00041 {
00042 public:
00043 virtual ~SelectedFrames( ) { }
00044 virtual int GetNumInputFrames( ) = 0;
00045 virtual int GetNumOutputFrames( ) = 0;
00046 virtual double GetPosition( int index ) = 0;
00047 virtual double GetFrameDelta( ) = 0;
00048 virtual bool IsEffectReversed( ) = 0;
00049 virtual double GetRealStart( ) = 0;
00050 virtual double GetRealEnd( ) = 0;
00051 virtual void GetImageA( double position, uint8_t *image, int width = 0, int height = 0 ) = 0;
00052 virtual void GetImageB( double position, uint8_t *image, int width = 0, int height = 0 ) = 0;
00053 virtual void GetAudioA( double position, int16_t **audio, short int &channels, int &frequency, int &samples ) = 0;
00054 virtual void GetAudioB( double position, int16_t **audio, short int &channels, int &frequency, int &samples ) = 0;
00055 virtual void Repaint( ) = 0;
00056 virtual bool IsRepainting() = 0;
00057 virtual int GetIndex( double position ) = 0;
00058 virtual bool IsPreviewing() = 0;
00059 };
00060
00061
00062 extern SelectedFrames &GetSelectedFramesForFX( );
00063 extern GtkWindow* GetKinoWidgetWindow( );
00064 extern void Repaint( );
00065
00066 class SelectionNotification
00067 {
00068 public:
00069 virtual ~SelectionNotification( ) { }
00070 virtual void OnSelectionChange( ) = 0;
00071 };
00072
00076 class KeyFrameControllerClient
00077 {
00078 public:
00079 virtual ~KeyFrameControllerClient() { }
00080
00081 virtual void OnControllerKeyChanged( double position, bool editable ) { }
00082
00083 virtual void OnControllerPrevKey( double position ) { }
00084
00085 virtual void OnControllerNextKey( double position ) { }
00086 };
00087
00092 enum frame_type { FRAME = 0, KEY = 1, LOCKED_KEY = 2 };
00093
00103 class KeyFrameController
00104 {
00105 public:
00106 virtual ~KeyFrameController() { }
00107
00108 virtual void ShowCurrentStatus( double position, frame_type type, bool hasPrev, bool hasNext ) = 0;
00109
00110 virtual double GetCurrentPosition( ) = 0;
00111 };
00112
00116 extern KeyFrameController *GetKeyFrameController( KeyFrameControllerClient *client );
00117
00118
00119 #endif