app.c

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C语言 代码 · 共 224 行

C
224
字号
#include <mplaylib.h>#include <mplaylib.h>#include <mplaylib.h>#include "config.h"#include "mp_msg.h"#include "help_mp.h"#include "app.h"#include "wm/wskeys.h"#include "skin/skin.h"#include "mplayer/gmplayer.h"#include "interface.h"evName evNames[] = {  { evNone,              "evNone"              },  { evPlay,              "evPlay"              },  { evStop,              "evStop"              },  { evPause,             "evPause"             },  { evPrev,              "evPrev"              },  { evNext,              "evNext"              },  { evLoad,              "evLoad"              },  { evEqualizer,         "evEqualizer"         },  { evEqualizer,         "evEqualeaser"        },  { evPlayList,          "evPlaylist"          },  { evExit,              "evExit"              },  { evIconify,           "evIconify"           },  { evIncBalance,        "evIncBalance"        },  { evDecBalance,        "evDecBalance"        },  { evFullScreen,        "evFullScreen"        },  { evFName,             "evFName"             },  { evMovieTime,         "evMovieTime"         },  { evAbout,             "evAbout"             },  { evLoadPlay,          "evLoadPlay"          },  { evPreferences,       "evPreferences"       },  { evSkinBrowser,       "evSkinBrowser"       },  { evBackward10sec,     "evBackward10sec"     },  { evForward10sec,      "evForward10sec"      },  { evBackward1min,      "evBackward1min"      },  { evForward1min,       "evForward1min"       },  { evBackward10min,     "evBackward10min"     },  { evForward10min,      "evForward10min"      },  { evIncVolume,         "evIncVolume"         },  { evDecVolume,         "evDecVolume"         },  { evMute,              "evMute"              },  { evIncAudioBufDelay,  "evIncAudioBufDelay"  },  { evDecAudioBufDelay,  "evDecAudioBufDelay"  },  { evPlaySwitchToPause, "evPlaySwitchToPause" },  { evPauseSwitchToPlay, "evPauseSwitchToPlay" },  { evNormalSize,        "evHalfSize"          },  { evNormalSize,        "evNormalSize"        },  { evDoubleSize,        "evDoubleSize"        },  { evSetMoviePosition,  "evSetMoviePosition"  },  { evSetVolume,         "evSetVolume"         },  { evSetBalance,        "evSetBalance"        },  { evHelp,		 "evHelp"	       },	  { evLoadSubtitle,      "evLoadSubtitle"      },  { evPlayDVD,		 "evPlayDVD"	       },  { evPlayVCD,		 "evPlayVCD"	       },  { evSetURL,		 "evSetURL"	       },  { evLoadAudioFile,	 "evLoadAudioFile"     },  { evDropSubtitle,      "evDropSubtitle"      },  { evSetAspect,	 "evSetAspect"	       } };int evBoxs = sizeof( evNames ) / sizeof( evName );// ---listItems   appMPlayer;/* FIXME: Eventually remove the obsolete directory names. */char      * skinDirInHome=NULL;char      * skinDirInHome_obsolete=NULL;char      * skinMPlayerDir=NULL;char      * skinMPlayerDir_obsolete=NULL;char      * skinName = NULL;void appClearItem( wItem * item ){ item->type=0;// --- item->x=0; item->y=0; item->width=0; item->height=0;// --- item->px=0; item->py=0; item->psx=0; item->psy=0;// --- item->msg=0; item->msg2=0; item->pressed=btnReleased; item->tmp=0; item->key=0; item->key2=0; item->Bitmap.Width=0; item->Bitmap.Height=0; item->Bitmap.BPP=0; item->Bitmap.ImageSize=0; if ( item->Bitmap.Image ) free( item->Bitmap.Image );  item->Bitmap.Image=NULL;// --- item->fontid=0; if ( item->label ) free( item->label ); item->label=NULL; item->event=0;}void appCopy( listItems * dest,listItems * source ){ dest->NumberOfItems=source->NumberOfItems; memcpy( &dest->Items,&source->Items,128 * sizeof( wItem ) ); dest->NumberOfMenuItems=source->NumberOfMenuItems; memcpy( &dest->MenuItems,&source->MenuItems,32 * sizeof( wItem ) ); memcpy( &dest->main,&source->main,sizeof( wItem ) ); memcpy( &dest->sub,&source->sub,sizeof( wItem ) ); memcpy( &dest->menuBase,&source->menuBase,sizeof( wItem ) ); memcpy( &dest->menuSelected,&source->menuSelected,sizeof( wItem ) );}void appInitStruct( listItems * item ){ int i; for ( i=0;i<item->NumberOfItems;i++ )  appClearItem( &item->Items[i] ); for ( i=0;i<item->NumberOfMenuItems;i++ )  appClearItem( &item->MenuItems[i] ); for ( i=0;i<item->NumberOfBarItems;i++ )  appClearItem( &item->barItems[i] ); item->NumberOfItems=-1; memset( item->Items,0,256 * sizeof( wItem ) ); item->NumberOfMenuItems=-1; memset( item->MenuItems,0,64 * sizeof( wItem ) ); item->NumberOfBarItems=-1; memset( item->barItems,0,256 * sizeof( wItem ) ); appClearItem( &item->main ); item->mainDecoration=0; appClearItem( &item->sub ); item->sub.width=0; item->sub.height=0; item->sub.x=-1; item->sub.y=-1; appClearItem( &item->menuBase ); appClearItem( &item->menuSelected ); item->sub.R=item->sub.G=item->sub.B=0; item->bar.R=item->bar.G=item->bar.B=0; item->main.R=item->main.G=item->main.B=0; item->barIsPresent=0; item->menuIsPresent=0;}int appFindKey( unsigned char * name ){ int i; for ( i=0;i<wsKeyNumber;i++ )  if ( !strcmp( wsKeyNames[i].name,name ) ) return wsKeyNames[i].code; return -1;}int appFindMessage( unsigned char * str ){ int i; for ( i=0;i<evBoxs;i++ )  if ( !strcmp( evNames[i].name,str ) ) return evNames[i].msg; return -1;}void btnModify( int event,float state ){ int j; for ( j=0;j < appMPlayer.NumberOfItems + 1;j++ )  if ( appMPlayer.Items[j].msg == event )   {    switch ( appMPlayer.Items[j].type )     {      case itButton:            appMPlayer.Items[j].pressed=(int)state;            appMPlayer.Items[j].tmp=(int)state;            break;      case itPotmeter:      case itVPotmeter:      case itHPotmeter:    	    if ( state < 0.0f ) state=0.0f;	    if ( state > 100.f ) state=100.0f;	    appMPlayer.Items[j].value=state;	    break;     }   } for ( j=0;j < appMPlayer.NumberOfBarItems + 1;j++ )  if ( appMPlayer.barItems[j].msg == event )   {    switch ( appMPlayer.barItems[j].type )     {      case itButton:            appMPlayer.barItems[j].pressed=(int)state;            appMPlayer.barItems[j].tmp=(int)state;            break;      case itPotmeter:      case itVPotmeter:      case itHPotmeter:    	    if ( state < 0.0f ) state=0.0f;	    if ( state > 100.f ) state=100.0f;	    appMPlayer.barItems[j].value=state;	    break;     }   }}float btnGetValue( int event ){ int j; for ( j=0;j<appMPlayer.NumberOfItems + 1;j++ )   if ( appMPlayer.Items[j].msg == event ) return appMPlayer.Items[j].value; return 0;}void btnSet( int event,int set ){ int j; for ( j=0;j<appMPlayer.NumberOfItems + 1;j++ )   if ( appMPlayer.Items[j].msg == event )    { appMPlayer.Items[j].pressed=set; appMPlayer.barItems[j].tmp=0; } for ( j=0;j<appMPlayer.NumberOfBarItems + 1;j++ )   if ( appMPlayer.barItems[j].msg == event )    { appMPlayer.barItems[j].pressed=set; appMPlayer.barItems[j].tmp=0; } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?