00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __RIOTGIF_H__
00019 #define __RIOTGIF_H__
00020
00021 #include "RioInterfaceTypes.h"
00022 #include "RioInterface.h"
00023 #include "RioMMSlideShow.h"
00024
00025 #define MAX_OBJECTS 20
00026
00027 #define TGIF_BOX_OBJECT_RECTANGLE 0
00028 #define TGIF_BOX_OBJECT_RCBOX 1
00029 #define TGIF_BOX_OBJECT_OVAL 2
00030 #define TGIF_BOX_OBJECT_ARROW 3
00031
00032 extern RioMMCommand tgif_commands[];
00033
00034 class CRioMMTgif : public CRioMMSlideShow
00035 {
00036 private:
00037 pid_t tgif_pid;
00038 int tgif_pipe[ 2 ];
00039 int parentWindow;
00040 int screenWidth;
00041 int screenHeight;
00042 TString object_names[ MAX_OBJECTS ];
00043
00044 bool ChangeContext( const char *, int );
00045
00046 void SendCmd( const char * );
00047 void ExecuteCallback( const char * );
00048 void CreateBoxObjectCallback( int, int, int, int, int,
00049 int, int, const char * );
00050 void CreateTextObjectCallback( int, int, int, int,
00051 const char *, const char * );
00052 void SetObjectColorCallback( int, const char * );
00053 void RotateObjectCallback( int, int );
00054 void MoveObjectCallback( int, int, int );
00055 void ResizeObjectCallback( int, int, int );
00056 void RemoveObjectCallback( int );
00057 void RemoveAllObjectsCallback( void );
00058
00059 void SyncSpecific( void );
00060
00061 public:
00062 CRioMMTgif( char *, unsigned int, RioBlock , struct timeval RTT_average,
00063 int, int );
00064 ~CRioMMTgif( void );
00065
00066 int init ( void );
00067 int Cleanup( void );
00068 void Stop ( void );
00069 void setParent( int );
00070
00071 friend void tgif_execute_callback( void *, TQueue & );
00072 friend void tgif_create_box_object_callback( void *, TQueue & );
00073 friend void tgif_create_text_object_callback( void *, TQueue & );
00074 friend void tgif_set_object_color_callback( void *, TQueue & );
00075 friend void tgif_rotate_object_callback( void *, TQueue & );
00076 friend void tgif_move_object_callback( void *, TQueue & );
00077 friend void tgif_resize_object_callback( void *, TQueue & );
00078 friend void tgif_remove_object_callback( void *, TQueue & );
00079 friend void tgif_remove_all_objects_callback( void *, TQueue & );
00080
00081 int ProcessSignal( int, void * );
00082
00083
00084
00085
00086
00087
00088
00089
00090 pid_t GetTgifpid( void );
00091
00092 };
00093
00094 void tgif_execute_callback( void *, TQueue & );
00095 void tgif_create_box_object_callback( void *, TQueue & );
00096 void tgif_create_text_object_callback( void *, TQueue & );
00097 void tgif_set_object_color_callback( void *, TQueue & );
00098 void tgif_rotate_object_callback( void *, TQueue & );
00099 void tgif_move_object_callback( void *, TQueue & );
00100 void tgif_resize_object_callback( void *, TQueue & );
00101 void tgif_remove_object_callback( void *, TQueue & );
00102 void tgif_remove_all_objects_callback( void *, TQueue & );
00103
00104 #endif