~ubuntu-dev/mplayer/ubuntu-feisty

« back to all changes in this revision

Viewing changes to Gui/app.c

  • Committer: Reinhard Tartler
  • Date: 2006-07-08 08:45:33 UTC
  • Revision ID: siretart@tauware.de-20060708084533-dbc155bde7122e78
imported mplayer_0.99+1.0pre7try2+cvs20060117

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
#include <stdlib.h>
 
4
#include <stdio.h>
 
5
#include <string.h>
 
6
 
 
7
#include "config.h"
 
8
#include "mp_msg.h"
 
9
#include "help_mp.h"
 
10
 
 
11
#include "app.h"
 
12
#include "wm/wskeys.h"
 
13
#include "skin/skin.h"
 
14
#include "mplayer/mplayer.h"
 
15
#include "interface.h"
 
16
 
 
17
evName evNames[] =
 
18
 {
 
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"         }
 
67
 };
 
68
 
 
69
int evBoxs = sizeof( evNames ) / sizeof( evName );
 
70
 
 
71
// ---
 
72
 
 
73
extern char *get_path(char *);
 
74
 
 
75
listItems   appMPlayer;
 
76
 
 
77
char      * skinDirInHome=NULL;
 
78
char      * skinMPlayerDir=NULL;
 
79
char      * skinName = NULL;
 
80
 
 
81
void appClearItem( wItem * item )
 
82
{
 
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;
 
100
}
 
101
 
 
102
void appCopy( listItems * dest,listItems * source )
 
103
{
 
104
 dest->NumberOfItems=source->NumberOfItems;
 
105
 memcpy( &dest->Items,&source->Items,128 * sizeof( wItem ) );
 
106
 
 
107
 dest->NumberOfMenuItems=source->NumberOfMenuItems;
 
108
 memcpy( &dest->MenuItems,&source->MenuItems,32 * sizeof( wItem ) );
 
109
 
 
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 ) );
 
114
}
 
115
 
 
116
void appInitStruct( listItems * item )
 
117
{
 
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] );
 
125
 
 
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 ) );
 
132
 
 
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;
 
145
}
 
146
 
 
147
int appFindKey( unsigned char * name )
 
148
{
 
149
 int i;
 
150
 for ( i=0;i<wsKeyNumber;i++ )
 
151
  if ( !strcmp( wsKeyNames[i].name,name ) ) return wsKeyNames[i].code;
 
152
 return -1;
 
153
}
 
154
 
 
155
int appFindMessage( unsigned char * str )
 
156
{
 
157
 int i;
 
158
 for ( i=0;i<evBoxs;i++ )
 
159
  if ( !strcmp( evNames[i].name,str ) ) return evNames[i].msg;
 
160
 return -1;
 
161
}
 
162
 
 
163
void btnModify( int event,float state )
 
164
{
 
165
 int j;
 
166
 for ( j=0;j < appMPlayer.NumberOfItems + 1;j++ )
 
167
  if ( appMPlayer.Items[j].msg == event )
 
168
   {
 
169
    switch ( appMPlayer.Items[j].type )
 
170
     {
 
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;
 
182
     }
 
183
   }
 
184
 
 
185
 for ( j=0;j < appMPlayer.NumberOfBarItems + 1;j++ )
 
186
  if ( appMPlayer.barItems[j].msg == event )
 
187
   {
 
188
    switch ( appMPlayer.barItems[j].type )
 
189
     {
 
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;
 
201
     }
 
202
   }
 
203
}
 
204
 
 
205
float btnGetValue( int event )
 
206
{
 
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;
 
211
}
 
212
 
 
213
void btnSet( int event,int set )
 
214
{
 
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; } 
 
222
}