obvious gcc warning fix, approved by Nico
[mplayer/glamo.git] / Gui / app.c
blob41f29768d432542522e03528f62c11787e02261c
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <string.h>
7 #include "../config.h"
8 #include "../mp_msg.h"
9 #include "../help_mp.h"
11 #include "app.h"
12 #include "wm/wskeys.h"
13 #include "skin/skin.h"
14 #include "mplayer/mplayer.h"
15 #include "interface.h"
17 evName evNames[] =
19 { evNone, "evNone" },
20 { evPlay, "evPlay" },
21 { evStop, "evStop" },
22 { evPause, "evPause" },
23 { evPrev, "evPrev" },
24 { evNext, "evNext" },
25 { evLoad, "evLoad" },
26 { evEqualizer, "evEqualizer" },
27 { evEqualizer, "evEqualeaser" },
28 { evPlayList, "evPlaylist" },
29 { evExit, "evExit" },
30 { evIconify, "evIconify" },
31 { evIncBalance, "evIncBalance" },
32 { evDecBalance, "evDecBalance" },
33 { evFullScreen, "evFullScreen" },
34 { evFName, "evFName" },
35 { evMovieTime, "evMovieTime" },
36 { evAbout, "evAbout" },
37 { evLoadPlay, "evLoadPlay" },
38 { evPreferences, "evPreferences" },
39 { evSkinBrowser, "evSkinBrowser" },
40 { evBackward10sec, "evBackward10sec" },
41 { evForward10sec, "evForward10sec" },
42 { evBackward1min, "evBackward1min" },
43 { evForward1min, "evForward1min" },
44 { evBackward10min, "evBackward10min" },
45 { evForward10min, "evForward10min" },
46 { evIncVolume, "evIncVolume" },
47 { evDecVolume, "evDecVolume" },
48 { evMute, "evMute" },
49 { evIncAudioBufDelay, "evIncAudioBufDelay" },
50 { evDecAudioBufDelay, "evDecAudioBufDelay" },
51 { evPlaySwitchToPause, "evPlaySwitchToPause" },
52 { evPauseSwitchToPlay, "evPauseSwitchToPlay" },
53 { evNormalSize, "evHalfSize" },
54 { evNormalSize, "evNormalSize" },
55 { evDoubleSize, "evDoubleSize" },
56 { evSetMoviePosition, "evSetMoviePosition" },
57 { evSetVolume, "evSetVolume" },
58 { evSetBalance, "evSetBalance" },
59 { evHelp, "evHelp" },
60 { evLoadSubtitle, "evLoadSubtitle" },
61 { evPlayDVD, "evPlayDVD" },
62 { evPlayVCD, "evPlayVCD" },
63 { evSetURL, "evSetURL" },
64 { evLoadAudioFile, "evLoadAudioFile" },
65 { evDropSubtitle, "evDropSubtitle" },
66 { evSetAspect, "evSetAspect" }
69 int evBoxs = sizeof( evNames ) / sizeof( evName );
71 // ---
73 extern char *get_path(char *);
75 listItems appMPlayer;
77 char * skinDirInHome=NULL;
78 char * skinMPlayerDir=NULL;
79 char * skinName = NULL;
81 void appClearItem( wItem * item )
83 item->type=0;
84 // ---
85 item->x=0; item->y=0; item->width=0; item->height=0;
86 // ---
87 item->px=0; item->py=0; item->psx=0; item->psy=0;
88 // ---
89 item->msg=0; item->msg2=0;
90 item->pressed=btnReleased;
91 item->tmp=0;
92 item->key=0; item->key2=0;
93 item->Bitmap.Width=0; item->Bitmap.Height=0; item->Bitmap.BPP=0; item->Bitmap.ImageSize=0;
94 if ( item->Bitmap.Image ) free( item->Bitmap.Image );
95 item->Bitmap.Image=NULL;
96 // ---
97 item->fontid=0;
98 if ( item->label ) free( item->label ); item->label=NULL;
99 item->event=0;
102 void appCopy( listItems * dest,listItems * source )
104 dest->NumberOfItems=source->NumberOfItems;
105 memcpy( &dest->Items,&source->Items,128 * sizeof( wItem ) );
107 dest->NumberOfMenuItems=source->NumberOfMenuItems;
108 memcpy( &dest->MenuItems,&source->MenuItems,32 * sizeof( wItem ) );
110 memcpy( &dest->main,&source->main,sizeof( wItem ) );
111 memcpy( &dest->sub,&source->sub,sizeof( wItem ) );
112 memcpy( &dest->menuBase,&source->menuBase,sizeof( wItem ) );
113 memcpy( &dest->menuSelected,&source->menuSelected,sizeof( wItem ) );
116 void appInitStruct( listItems * item )
118 int i;
119 for ( i=0;i<item->NumberOfItems;i++ )
120 appClearItem( &item->Items[i] );
121 for ( i=0;i<item->NumberOfMenuItems;i++ )
122 appClearItem( &item->MenuItems[i] );
123 for ( i=0;i<item->NumberOfBarItems;i++ )
124 appClearItem( &item->barItems[i] );
126 item->NumberOfItems=-1;
127 memset( item->Items,0,256 * sizeof( wItem ) );
128 item->NumberOfMenuItems=-1;
129 memset( item->MenuItems,0,64 * sizeof( wItem ) );
130 item->NumberOfBarItems=-1;
131 memset( item->barItems,0,256 * sizeof( wItem ) );
133 appClearItem( &item->main );
134 item->mainDecoration=0;
135 appClearItem( &item->sub );
136 item->sub.width=0; item->sub.height=0;
137 item->sub.x=-1; item->sub.y=-1;
138 appClearItem( &item->menuBase );
139 appClearItem( &item->menuSelected );
140 item->sub.R=item->sub.G=item->sub.B=0;
141 item->bar.R=item->bar.G=item->bar.B=0;
142 item->main.R=item->main.G=item->main.B=0;
143 item->barIsPresent=0;
144 item->menuIsPresent=0;
147 int appFindKey( unsigned char * name )
149 int i;
150 for ( i=0;i<wsKeyNumber;i++ )
151 if ( !strcmp( wsKeyNames[i].name,name ) ) return wsKeyNames[i].code;
152 return -1;
155 int appFindMessage( unsigned char * str )
157 int i;
158 for ( i=0;i<evBoxs;i++ )
159 if ( !strcmp( evNames[i].name,str ) ) return evNames[i].msg;
160 return -1;
163 void btnModify( int event,float state )
165 int j;
166 for ( j=0;j < appMPlayer.NumberOfItems + 1;j++ )
167 if ( appMPlayer.Items[j].msg == event )
169 switch ( appMPlayer.Items[j].type )
171 case itButton:
172 appMPlayer.Items[j].pressed=(int)state;
173 appMPlayer.Items[j].tmp=(int)state;
174 break;
175 case itPotmeter:
176 case itVPotmeter:
177 case itHPotmeter:
178 if ( state < 0.0f ) state=0.0f;
179 if ( state > 100.f ) state=100.0f;
180 appMPlayer.Items[j].value=state;
181 break;
185 for ( j=0;j < appMPlayer.NumberOfBarItems + 1;j++ )
186 if ( appMPlayer.barItems[j].msg == event )
188 switch ( appMPlayer.barItems[j].type )
190 case itButton:
191 appMPlayer.barItems[j].pressed=(int)state;
192 appMPlayer.barItems[j].tmp=(int)state;
193 break;
194 case itPotmeter:
195 case itVPotmeter:
196 case itHPotmeter:
197 if ( state < 0.0f ) state=0.0f;
198 if ( state > 100.f ) state=100.0f;
199 appMPlayer.barItems[j].value=state;
200 break;
205 float btnGetValue( int event )
207 int j;
208 for ( j=0;j<appMPlayer.NumberOfItems + 1;j++ )
209 if ( appMPlayer.Items[j].msg == event ) return appMPlayer.Items[j].value;
210 return 0;
213 void btnSet( int event,int set )
215 int j;
216 for ( j=0;j<appMPlayer.NumberOfItems + 1;j++ )
217 if ( appMPlayer.Items[j].msg == event )
218 { appMPlayer.Items[j].pressed=set; appMPlayer.barItems[j].tmp=0; }
219 for ( j=0;j<appMPlayer.NumberOfBarItems + 1;j++ )
220 if ( appMPlayer.barItems[j].msg == event )
221 { appMPlayer.barItems[j].pressed=set; appMPlayer.barItems[j].tmp=0; }