changeset 1800:f5ffb03ebdb5

move skin changing here.
author pontscho
date Fri, 31 Aug 2001 12:59:04 +0000
parents b26a936b24e4
children e16646a140fd
files Gui/mplayer/play.c
diffstat 1 files changed, 72 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Gui/mplayer/play.c	Fri Aug 31 12:58:43 2001 +0000
+++ b/Gui/mplayer/play.c	Fri Aug 31 12:59:04 2001 +0000
@@ -23,6 +23,11 @@
 #include "psignal.h"
 #include "play.h"
 
+#include "../skin/skin.h"
+#include "../config.h"
+#include "../error.h"
+#include "../language.h"
+
 mplCommStruct * mplShMem;
 char          * Filename = NULL;
 
@@ -134,3 +139,70 @@
 // ---
 }
 
+listItems tmpList;
+
+void ChangeSkin( void )
+{
+ if ( strcmp( cfgSkin,gtkShMem->sb.name ) )
+  {
+   int ret;
+#ifdef DEBUG
+   dbprintf( 1,"[psignal] skin: %s\n",gtkShMem->sb.name );
+#endif
+
+   mainVisible=0;
+
+   appInitStruct( &tmpList );
+   skinAppMPlayer=&tmpList;
+   ret=skinRead( gtkShMem->sb.name );
+
+   appInitStruct( &tmpList );
+   skinAppMPlayer=&appMPlayer;
+   appInitStruct( &appMPlayer );
+   if ( !ret ) strcpy( cfgSkin,gtkShMem->sb.name );
+   skinRead( cfgSkin );
+
+   if ( ret )
+    {
+     mainVisible=1;
+     return;
+    }
+
+//          appCopy( &appMPlayer,&tmpList );
+//          appInitStruct( &tmpList );
+//          skinAppMPlayer=&appMPlayer;
+//          strcpy( cfgSkin,gtkShMem->sb.name );
+
+   if ( mplDrawBuffer ) free( mplDrawBuffer );
+   if ( ( mplDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.main.Bitmap.ImageSize ) ) == NULL )
+    { message( False,langNEMDB ); return; }
+   wsResizeWindow( &appMPlayer.mainWindow,appMPlayer.main.width,appMPlayer.main.height );
+   wsMoveWindow( &appMPlayer.mainWindow,appMPlayer.main.x,appMPlayer.main.y );
+   wsResizeImage( &appMPlayer.mainWindow );
+   wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image );
+   mainVisible=1; mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow );
+   btnModify( evSetVolume,mplShMem->Volume );
+   btnModify( evSetBalance,mplShMem->Balance );
+   btnModify( evSetMoviePosition,mplShMem->Position );
+
+   if ( appMPlayer.menuBase.Bitmap.Image )
+    {
+     if ( mplMenuDrawBuffer ) free( mplMenuDrawBuffer );
+     if ( ( mplMenuDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.menuBase.Bitmap.ImageSize ) ) == NULL )
+      { message( False,langNEMDB ); return; }
+     wsResizeWindow( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height );
+     wsResizeImage( &appMPlayer.menuWindow );
+    }
+
+   mplSkinChanged=1;
+   if ( !mplShMem->Playing )
+    {
+     mplSkinChanged=0;
+     if ( appMPlayer.subWindow.isFullScreen ) wsFullScreen( &appMPlayer.subWindow );
+     wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height );
+     wsMoveWindow( &appMPlayer.subWindow,appMPlayer.sub.x,appMPlayer.sub.y );
+     if ( appMPlayer.sub.Bitmap.Image ) wsResizeImage( &appMPlayer.subWindow );
+     mplSubRender=1; wsPostRedisplay( &appMPlayer.subWindow );
+    }
+  }
+}