mirror of
https://github.com/mpv-player/mpv
synced 2025-03-11 08:37:59 +00:00
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4819 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
469f2d1b7e
commit
c090d0da98
@ -8,7 +8,6 @@
|
||||
#include "../help_mp.h"
|
||||
|
||||
#include "app.h"
|
||||
#include "error.h"
|
||||
#include "wm/wskeys.h"
|
||||
#include "skin/skin.h"
|
||||
#include "mplayer/mplayer.h"
|
||||
@ -106,10 +105,9 @@ void appInit( int argc,char* argv[], char *envp[], void* disp )
|
||||
printf("SKIN dir 2: '%s'\n",skinMPlayerDir);
|
||||
if ( !skinName )
|
||||
{
|
||||
if ( ( skinName=(char *)calloc( 1,7 ) ) == NULL ) { dbprintf( 0,"[config] Not enough memory.\n" ); exit( 1 ); }
|
||||
if ( ( skinName=(char *)calloc( 1,7 ) ) == NULL ) { mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[config] Not enough memory.\n" ); exit( 1 ); }
|
||||
strcpy( skinName,"default" );
|
||||
}
|
||||
initDebug(NULL); // write messages to stderr
|
||||
switch ( skinRead( skinName ) )
|
||||
{
|
||||
case -1: mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_SKIN_SKINCFG_SkinNotFound,skinName ); exit( 0 );
|
||||
|
38
Gui/bitmap.c
38
Gui/bitmap.c
@ -4,7 +4,6 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "bitmap.h"
|
||||
#include "../error.h"
|
||||
|
||||
#define BMP 1
|
||||
#define TGA 2
|
||||
@ -25,13 +24,11 @@ int conv24to32( txSample * bf )
|
||||
bf->BPP=32;
|
||||
if ( ( bf->Image=malloc( bf->ImageSize ) ) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] Not enough memory for image.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] Not enough memory for image.\n" );
|
||||
return 1;
|
||||
}
|
||||
memset( bf->Image,0,bf->ImageSize );
|
||||
for ( c=0,i=0;i < bf->Width * bf->Height * 3; )
|
||||
for ( c=0,i=0;i < (int)(bf->Width * bf->Height * 3); )
|
||||
{
|
||||
bf->Image[c++]=tmpImage[i++];
|
||||
bf->Image[c++]=tmpImage[i++];
|
||||
@ -47,7 +44,7 @@ void bgr2rgb( txSample * bf )
|
||||
unsigned char c;
|
||||
int i;
|
||||
|
||||
for ( i=0;i < bf->ImageSize;i+=4 )
|
||||
for ( i=0;i < (int)bf->ImageSize;i+=4 )
|
||||
{
|
||||
c=bf->Image[i];
|
||||
bf->Image[i]=bf->Image[i+2];
|
||||
@ -58,8 +55,7 @@ void bgr2rgb( txSample * bf )
|
||||
void Normalize( txSample * bf )
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i=0;i < bf->ImageSize;i+=4 ) bf->Image[i+3]=0;
|
||||
for ( i=0;i < (int)bf->ImageSize;i+=4 ) bf->Image[i+3]=0;
|
||||
}
|
||||
|
||||
unsigned char tmp[512];
|
||||
@ -149,23 +145,17 @@ int bpRead( char * fname, txSample * bf )
|
||||
bgr=1;
|
||||
break;
|
||||
case TGAPACKED:
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] sorry, packed TGA not supported.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] sorry, packed TGA not supported.\n" );
|
||||
return -6;
|
||||
default:
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] Unknown file type ( %s ).\n",fname );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] Unknown file type ( %s ).\n",fname );
|
||||
return -7;
|
||||
}
|
||||
}
|
||||
if ( bf->BPP < 24 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] sorry, 16 or less bitmaps not supported.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] sorry, 16 or less bitmaps not supported.\n" );
|
||||
return -1;
|
||||
}
|
||||
if ( conv24to32( bf ) ) return -8;
|
||||
@ -180,15 +170,15 @@ void Convert32to1( txSample * in,txSample * out,int adaptivlimit )
|
||||
out->Height=in->Height;
|
||||
out->BPP=1;
|
||||
out->ImageSize=out->Width * out->Height / 8;
|
||||
dbprintf( 4,"[c1to32] imagesize: %d\n",out->ImageSize );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[c1to32] imagesize: %d\n",out->ImageSize );
|
||||
out->Image=(char *)calloc( 1,out->ImageSize );
|
||||
if ( out->Image == NULL ) dbprintf( 4,"nem van ram baze\n" );
|
||||
if ( out->Image == NULL ) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"nem van ram baze\n" );
|
||||
{
|
||||
int i,b,c=0; unsigned long * buf = NULL; unsigned char tmp = 0; int nothaveshape = 1;
|
||||
buf=(unsigned long *)in->Image;
|
||||
for ( b=0,i=0;i < out->Width * out->Height;i++ )
|
||||
for ( b=0,i=0;i < (int)(out->Width * out->Height);i++ )
|
||||
{
|
||||
if ( buf[i] != adaptivlimit ) tmp=( tmp >> 1 )|128;
|
||||
if ( (int)buf[i] != adaptivlimit ) tmp=( tmp >> 1 )|128;
|
||||
else { tmp=tmp >> 1; buf[i]=nothaveshape=0; }
|
||||
if ( b++ == 7 ) { out->Image[c++]=tmp; tmp=b=0; }
|
||||
}
|
||||
@ -205,12 +195,12 @@ void Convert1to32( txSample * in,txSample * out )
|
||||
out->BPP=32;
|
||||
out->ImageSize=out->Width * out->Height * 4;
|
||||
out->Image=(char *)calloc( 1,out->ImageSize );
|
||||
dbprintf( 4,"[c32to1] imagesize: %d\n",out->ImageSize );
|
||||
if ( out->Image == NULL ) dbprintf( 4,"nem van ram baze\n" );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[c32to1] imagesize: %d\n",out->ImageSize );
|
||||
if ( (int)out->Image == NULL ) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"nem van ram baze\n" );
|
||||
{
|
||||
int i,b,c=0; unsigned long * buf = NULL; unsigned char tmp = 0;
|
||||
buf=(unsigned long *)out->Image;
|
||||
for ( c=0,i=0;i < in->Width * in->Height / 8;i++ )
|
||||
for ( c=0,i=0;i < (int)(in->Width * in->Height / 8);i++ )
|
||||
{
|
||||
tmp=in->Image[i];
|
||||
for ( b=0;b<8;b++ )
|
||||
|
@ -14,6 +14,7 @@ typedef struct _txSample
|
||||
#include "tga/tga.h"
|
||||
#include "bmp/bmp.h"
|
||||
#include "png/png.h"
|
||||
#include "../../mp_msg.h"
|
||||
|
||||
extern int bpRead( char * fname, txSample * bf );
|
||||
extern int conv24to32( txSample * bf );
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "bitmap.h"
|
||||
#include "../error.h"
|
||||
|
||||
#define BMP 1
|
||||
#define TGA 2
|
||||
@ -25,13 +24,11 @@ int conv24to32( txSample * bf )
|
||||
bf->BPP=32;
|
||||
if ( ( bf->Image=malloc( bf->ImageSize ) ) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] Not enough memory for image.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] Not enough memory for image.\n" );
|
||||
return 1;
|
||||
}
|
||||
memset( bf->Image,0,bf->ImageSize );
|
||||
for ( c=0,i=0;i < bf->Width * bf->Height * 3; )
|
||||
for ( c=0,i=0;i < (int)(bf->Width * bf->Height * 3); )
|
||||
{
|
||||
bf->Image[c++]=tmpImage[i++];
|
||||
bf->Image[c++]=tmpImage[i++];
|
||||
@ -47,7 +44,7 @@ void bgr2rgb( txSample * bf )
|
||||
unsigned char c;
|
||||
int i;
|
||||
|
||||
for ( i=0;i < bf->ImageSize;i+=4 )
|
||||
for ( i=0;i < (int)bf->ImageSize;i+=4 )
|
||||
{
|
||||
c=bf->Image[i];
|
||||
bf->Image[i]=bf->Image[i+2];
|
||||
@ -58,8 +55,7 @@ void bgr2rgb( txSample * bf )
|
||||
void Normalize( txSample * bf )
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i=0;i < bf->ImageSize;i+=4 ) bf->Image[i+3]=0;
|
||||
for ( i=0;i < (int)bf->ImageSize;i+=4 ) bf->Image[i+3]=0;
|
||||
}
|
||||
|
||||
unsigned char tmp[512];
|
||||
@ -149,23 +145,17 @@ int bpRead( char * fname, txSample * bf )
|
||||
bgr=1;
|
||||
break;
|
||||
case TGAPACKED:
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] sorry, packed TGA not supported.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] sorry, packed TGA not supported.\n" );
|
||||
return -6;
|
||||
default:
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] Unknown file type ( %s ).\n",fname );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] Unknown file type ( %s ).\n",fname );
|
||||
return -7;
|
||||
}
|
||||
}
|
||||
if ( bf->BPP < 24 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bitmap] sorry, 16 or less bitmaps not supported.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] sorry, 16 or less bitmaps not supported.\n" );
|
||||
return -1;
|
||||
}
|
||||
if ( conv24to32( bf ) ) return -8;
|
||||
@ -180,15 +170,15 @@ void Convert32to1( txSample * in,txSample * out,int adaptivlimit )
|
||||
out->Height=in->Height;
|
||||
out->BPP=1;
|
||||
out->ImageSize=out->Width * out->Height / 8;
|
||||
dbprintf( 4,"[c1to32] imagesize: %d\n",out->ImageSize );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[c1to32] imagesize: %d\n",out->ImageSize );
|
||||
out->Image=(char *)calloc( 1,out->ImageSize );
|
||||
if ( out->Image == NULL ) dbprintf( 4,"nem van ram baze\n" );
|
||||
if ( out->Image == NULL ) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"nem van ram baze\n" );
|
||||
{
|
||||
int i,b,c=0; unsigned long * buf = NULL; unsigned char tmp = 0; int nothaveshape = 1;
|
||||
buf=(unsigned long *)in->Image;
|
||||
for ( b=0,i=0;i < out->Width * out->Height;i++ )
|
||||
for ( b=0,i=0;i < (int)(out->Width * out->Height);i++ )
|
||||
{
|
||||
if ( buf[i] != adaptivlimit ) tmp=( tmp >> 1 )|128;
|
||||
if ( (int)buf[i] != adaptivlimit ) tmp=( tmp >> 1 )|128;
|
||||
else { tmp=tmp >> 1; buf[i]=nothaveshape=0; }
|
||||
if ( b++ == 7 ) { out->Image[c++]=tmp; tmp=b=0; }
|
||||
}
|
||||
@ -205,12 +195,12 @@ void Convert1to32( txSample * in,txSample * out )
|
||||
out->BPP=32;
|
||||
out->ImageSize=out->Width * out->Height * 4;
|
||||
out->Image=(char *)calloc( 1,out->ImageSize );
|
||||
dbprintf( 4,"[c32to1] imagesize: %d\n",out->ImageSize );
|
||||
if ( out->Image == NULL ) dbprintf( 4,"nem van ram baze\n" );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[c32to1] imagesize: %d\n",out->ImageSize );
|
||||
if ( (int)out->Image == NULL ) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"nem van ram baze\n" );
|
||||
{
|
||||
int i,b,c=0; unsigned long * buf = NULL; unsigned char tmp = 0;
|
||||
buf=(unsigned long *)out->Image;
|
||||
for ( c=0,i=0;i < in->Width * in->Height / 8;i++ )
|
||||
for ( c=0,i=0;i < (int)(in->Width * in->Height / 8);i++ )
|
||||
{
|
||||
tmp=in->Image[i];
|
||||
for ( b=0;b<8;b++ )
|
||||
|
@ -14,6 +14,7 @@ typedef struct _txSample
|
||||
#include "tga/tga.h"
|
||||
#include "bmp/bmp.h"
|
||||
#include "png/png.h"
|
||||
#include "../../mp_msg.h"
|
||||
|
||||
extern int bpRead( char * fname, txSample * bf );
|
||||
extern int conv24to32( txSample * bf );
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
#include "bmp.h"
|
||||
#include "../bitmap.h"
|
||||
#include "../../error.h"
|
||||
|
||||
int bmpRead( unsigned char * fname,txSample * bF )
|
||||
{
|
||||
@ -40,16 +39,12 @@ int bmpRead( unsigned char * fname,txSample * bF )
|
||||
|
||||
if ( (BMP=fopen( fname,"rt" )) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bmp] File not found ( %s ).\n",fname );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] File not found ( %s ).\n",fname );
|
||||
return 1;
|
||||
}
|
||||
if ( (i=fread( bmpHeader,54,1,BMP )) != 1 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bmp] Header read error ( %s ).\n",fname );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] Header read error ( %s ).\n",fname );
|
||||
return 2;
|
||||
}
|
||||
// memcpy( &bF->Size,&bmpHeader[2],4 );
|
||||
@ -61,31 +56,23 @@ int bmpRead( unsigned char * fname,txSample * bF )
|
||||
|
||||
if ( bF->BPP < 24 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bmp] Sorry, this loader not supported 16 bit or less ...\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] Sorry, this loader not supported 16 bit or less ...\n" );
|
||||
return 3;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bmp] filename: %s\n",fname );
|
||||
dbprintf( 4,"[bmp] size: %dx%d bits: %d\n",bF->Width,bF->Height,bF->BPP );
|
||||
dbprintf( 4,"[bmp] imagesize: %lu\n",bF->ImageSize );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] filename: %s\n",fname );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] size: %dx%d bits: %d\n",bF->Width,bF->Height,bF->BPP );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] imagesize: %lu\n",bF->ImageSize );
|
||||
|
||||
if ( ( bF->Image=malloc( bF->ImageSize ) ) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bmp] Not enough memory for image buffer.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] Not enough memory for image buffer.\n" );
|
||||
return 4;
|
||||
}
|
||||
|
||||
if ( (i=fread( bF->Image,bF->ImageSize,1,BMP )) != 1 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bmp] Image read error.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] Image read error.\n" );
|
||||
return 5;
|
||||
}
|
||||
|
||||
@ -94,9 +81,7 @@ int bmpRead( unsigned char * fname,txSample * bF )
|
||||
linesize=bF->Width * ( bF->BPP / 8 );
|
||||
if ( (line=malloc( linesize )) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[bmp] Not enough memory for flipping.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bmp] Not enough memory for flipping.\n" );
|
||||
return 6;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "./png.h"
|
||||
#include "../../error.h"
|
||||
#include <png.h>
|
||||
|
||||
typedef struct
|
||||
@ -106,9 +105,7 @@ int pngRead( unsigned char * fname,txSample * bf )
|
||||
|
||||
if ( pngLoadRaw( fname,&raw ) )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[png] file read error ( %s ).\n",fname );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[png] file read error ( %s ).\n",fname );
|
||||
return 1;
|
||||
}
|
||||
bf->Width=raw.Width;
|
||||
@ -117,17 +114,13 @@ int pngRead( unsigned char * fname,txSample * bf )
|
||||
bf->ImageSize=bf->Width * bf->Height * ( bf->BPP / 8 );
|
||||
if ( ( bf->Image=malloc( bf->ImageSize ) ) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[png] Not enough memory for image buffer.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[png] Not enough memory for image buffer.\n" );
|
||||
return 2;
|
||||
}
|
||||
memcpy( bf->Image,raw.Data,bf->ImageSize );
|
||||
free( raw.Data );
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[png] filename: %s.\n",fname );
|
||||
dbprintf( 4,"[png] size: %dx%d bits: %d\n",bf->Width,bf->Height,bf->BPP );
|
||||
dbprintf( 4,"[png] imagesize: %lu\n",bf->ImageSize );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[png] filename: %s.\n",fname );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[png] size: %dx%d bits: %d\n",bf->Width,bf->Height,bf->BPP );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[png] imagesize: %lu\n",bf->ImageSize );
|
||||
return 0;
|
||||
}
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tga.h"
|
||||
#include "../../error.h"
|
||||
|
||||
int tgaRead( char * filename,txSample * bf )
|
||||
{
|
||||
@ -20,23 +19,17 @@ int tgaRead( char * filename,txSample * bf )
|
||||
if ( !strstr( tmp,".tga" ) ) strcat( tmp,".tga" );
|
||||
if ( (BMP=fopen( tmp,"rb" )) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] File not found ( %s ).\n",tmp );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] File not found ( %s ).\n",tmp );
|
||||
return 1;
|
||||
}
|
||||
if ( (i=fread( &tgaHeader,sizeof( tgaHeader ),1,BMP )) != 1 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] Header read error ( %s ).\n",tmp );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] Header read error ( %s ).\n",tmp );
|
||||
return 2;
|
||||
}
|
||||
if ( tgaHeader.depth < 24 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] Sorry, this loader not supported 16 bit or less ...\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] Sorry, this loader not supported 16 bit or less ...\n" );
|
||||
return 3;
|
||||
}
|
||||
bf->Width=tgaHeader.sx;
|
||||
@ -46,9 +39,7 @@ int tgaRead( char * filename,txSample * bf )
|
||||
|
||||
if ( ( bf->Image=malloc( bf->ImageSize ) ) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] Not enough memory for image buffer.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] Not enough memory for image buffer.\n" );
|
||||
return 4;
|
||||
}
|
||||
|
||||
@ -57,35 +48,29 @@ int tgaRead( char * filename,txSample * bf )
|
||||
{
|
||||
if ( ( comment=malloc( tgaHeader.tmp[0] + 1 ) ) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] Not enough memory for comment string.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] Not enough memory for comment string.\n" );
|
||||
return 5;
|
||||
}
|
||||
memset( comment,0,tgaHeader.tmp[0] + 1 );
|
||||
if ( fread( comment,tgaHeader.tmp[0],1,BMP ) != 1 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] Comment read error.\n" );
|
||||
#endif
|
||||
return 6;
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] Comment read error.\n" );
|
||||
return 6;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] filename ( read ): %s\n",tmp );
|
||||
dbprintf( 4,"[tga] size: %dx%d bits: %d\n",bf->Width,bf->Height,bf->BPP );
|
||||
dbprintf( 4,"[tga] imagesize: %lu\n",bf->ImageSize );
|
||||
if ( comment ) dbprintf( 4,"[tga] comment: %s\n",comment );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] filename ( read ): %s\n",tmp );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] size: %dx%d bits: %d\n",bf->Width,bf->Height,bf->BPP );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] imagesize: %lu\n",bf->ImageSize );
|
||||
#ifdef MP_DEBUG
|
||||
if ( comment ) mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] comment: %s\n",comment );
|
||||
#endif
|
||||
|
||||
if ( comment ) free( comment );
|
||||
|
||||
if ( fread( bf->Image,bf->ImageSize,1,BMP ) != 1 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] Image read error.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] Image read error.\n" );
|
||||
return 7;
|
||||
}
|
||||
|
||||
@ -96,9 +81,7 @@ int tgaRead( char * filename,txSample * bf )
|
||||
linesize=bf->Width * ( bf->BPP / 8 );
|
||||
if ( (line=malloc( linesize )) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"[tga] Not enough memory for flipping.\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] Not enough memory for flipping.\n" );
|
||||
return 8;
|
||||
}
|
||||
|
||||
@ -129,7 +112,7 @@ void tgaWriteTexture( char * filename,txSample * bf )
|
||||
if ( !strstr( tmp,".tga" ) ) strcat( tmp,".tga" );
|
||||
if ( ( BMP=fopen( tmp,"wb+" ) ) == NULL )
|
||||
{
|
||||
dbprintf( 0,"[tga] File not open ( %s ).\n",tmp );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[tga] File not open ( %s ).\n",tmp );
|
||||
exit( 0 );
|
||||
}
|
||||
memset( &tgaHeader,0,sizeof( tgaHeader ) );
|
||||
@ -141,21 +124,19 @@ void tgaWriteTexture( char * filename,txSample * bf )
|
||||
if ( bf->BPP != 8 ) tgaHeader.tmp[2]=2;
|
||||
else tgaHeader.tmp[2]=3;
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 4,"\n[tga] filename ( write ): %s\n",tmp );
|
||||
dbprintf( 4,"[tga] size: %dx%d\n",bf->Width,bf->Height );
|
||||
dbprintf( 4,"[tga] bits: %d\n",bf->BPP );
|
||||
dbprintf( 4,"[tga] imagesize: %lu\n",bf->ImageSize );
|
||||
dbprintf( 4,"[tga] comment: %s\n",comment );
|
||||
dbprintf( 4,"\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[tga] filename ( write ): %s\n",tmp );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] size: %dx%d\n",bf->Width,bf->Height );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] bits: %d\n",bf->BPP );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] imagesize: %lu\n",bf->ImageSize );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[tga] comment: %s\n",comment );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n" );
|
||||
|
||||
if ( tgaHeader.ctmp == 0 )
|
||||
{
|
||||
linesize=bf->Width * ( bf->BPP / 8 );
|
||||
if ( (line=malloc( linesize )) == NULL )
|
||||
{
|
||||
dbprintf( 0,"[tga] Not enough memory for flipping.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[tga] Not enough memory for flipping.\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
|
||||
|
61
Gui/error.c
61
Gui/error.c
@ -1,61 +0,0 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "error.h"
|
||||
|
||||
int debug_level = 2;
|
||||
FILE * debug_file;
|
||||
int debug_stderr = 0;
|
||||
|
||||
void defaultErrorHandler( int critical,const char * format, ... )
|
||||
{
|
||||
char * p;
|
||||
va_list ap;
|
||||
|
||||
if ( (p=(char *)malloc( 512 ) ) == NULL ) return;
|
||||
va_start( ap,format );
|
||||
vsnprintf( p,512,format,ap );
|
||||
va_end( ap );
|
||||
fprintf( stderr,"%s",p );
|
||||
free( p );
|
||||
if ( critical ) exit( 1 );
|
||||
}
|
||||
|
||||
void defaultDebugHandler( int critical,const char * format, ... )
|
||||
{
|
||||
char * p;
|
||||
va_list ap;
|
||||
|
||||
if ( critical >= debug_level ) return;
|
||||
if ( (p=(char *)malloc( 512 ) ) == NULL ) return;
|
||||
va_start( ap,format );
|
||||
vsnprintf( p,512,format,ap );
|
||||
va_end( ap );
|
||||
fprintf( debug_file,"%s",p );
|
||||
free( p );
|
||||
}
|
||||
|
||||
errorTHandler message = defaultErrorHandler;
|
||||
errorTHandler dbprintf = defaultDebugHandler;
|
||||
|
||||
void initDebug( char * name )
|
||||
{
|
||||
if ( name )
|
||||
{
|
||||
if ( ( debug_file=fopen( name,"wt+" ) ) != NULL )
|
||||
{
|
||||
debug_stderr=0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
debug_file=stderr;
|
||||
debug_stderr=1;
|
||||
}
|
||||
void doneDebug( void )
|
||||
{
|
||||
if ( !debug_stderr ) fclose( debug_file );
|
||||
debug_file=stderr;
|
||||
debug_stderr=1;
|
||||
}
|
22
Gui/error.h
22
Gui/error.h
@ -1,22 +0,0 @@
|
||||
|
||||
#ifndef _MPLAYER_ERROR_HANDLER
|
||||
#define _MPLAYER_ERROR_HANDLER
|
||||
|
||||
#define True 1
|
||||
#define False 0
|
||||
|
||||
// 0 - standard message
|
||||
// 1 - detto
|
||||
// 2 - events
|
||||
// 3 - skin reader messages
|
||||
// 4 - bitmap reader messages
|
||||
// 5 - signal handling messages
|
||||
// 6 - gtk messages
|
||||
|
||||
typedef void (*errorTHandler)( int critical,const char * format, ... );
|
||||
|
||||
extern errorTHandler message;
|
||||
extern errorTHandler dbprintf;
|
||||
|
||||
#endif
|
||||
|
@ -47,7 +47,7 @@
|
||||
#define evHelp 37
|
||||
|
||||
#define evLoadSubtitle 38
|
||||
#define evPlayDVD 39
|
||||
#define evPlayDVD 39
|
||||
|
||||
#define evExit 1000
|
||||
|
||||
|
@ -7,9 +7,9 @@ GTKSRCS = $(MPLAYERDIR)gtk/menu.c $(MPLAYERDIR)gtk/mb.c $(MPLAYERDIR)gtk/about.c
|
||||
$(MPLAYERDIR)gtk/opts.c
|
||||
|
||||
MPLAYERSRCS = $(MPLAYERDIR)mplayer.c $(MPLAYERDIR)widgets.c $(MPLAYERDIR)play.c \
|
||||
$(MPLAYERDIR)psignal.c $(GTKSRCS)
|
||||
$(GTKSRCS)
|
||||
MPLAYEROBJS = $(MPLAYERSRCS:.c=.o)
|
||||
|
||||
SRCS = $(SKINSRC) $(BITMAPSRCS) wm/ws.c wm/wsconv.c app.c events.c timer.c error.c interface.c
|
||||
SRCS = $(SKINSRC) $(BITMAPSRCS) wm/ws.c wm/wsconv.c app.c events.c interface.c
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
|
||||
|
@ -1,9 +1,31 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "ws.h"
|
||||
#include "mplayer/play.h"
|
||||
#include "interface.h"
|
||||
|
||||
#include "../mplayer.h"
|
||||
#include "mplayer/widgets.h"
|
||||
#include "mplayer/mplayer.h"
|
||||
#include "app.h"
|
||||
#include "../libvo/x11_common.h"
|
||||
|
||||
guiInterface_t guiIntfStruct;
|
||||
|
||||
void guiInit( int argc,char* argv[], char *envp[] )
|
||||
{
|
||||
memset( &guiIntfStruct,0,sizeof( guiIntfStruct ) );
|
||||
appInit( argc,argv,envp,(void*)mDisplay );
|
||||
}
|
||||
|
||||
void guiDone( void )
|
||||
{
|
||||
mp_msg( MSGT_GPLAYER,MSGL_V,"[mplayer] exit.\n" );
|
||||
mplStop();
|
||||
gtkDone();
|
||||
wsXDone();
|
||||
}
|
||||
|
||||
void guiGetEvent( int type,char * arg )
|
||||
{
|
||||
@ -11,15 +33,16 @@ void guiGetEvent( int type,char * arg )
|
||||
{
|
||||
case guiXEvent:
|
||||
wsEvents( wsDisplay,(XEvent *)arg,NULL );
|
||||
break;
|
||||
gtkEventHandling();
|
||||
break;
|
||||
case guiCEvent:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void guiEventHandling( void )
|
||||
{
|
||||
if ( use_gui && !mplShMem->Playing ) wsHandleEvents();
|
||||
mplTimerHandler(0); // handle GUI timer events
|
||||
if ( mplShMem->SkinChange ) { ChangeSkin(); mplShMem->SkinChange=0; }
|
||||
if ( use_gui && !guiIntfStruct.Playing ) wsHandleEvents();
|
||||
gtkEventHandling();
|
||||
mplTimerHandler(); // handle GUI timer events
|
||||
}
|
||||
|
@ -2,13 +2,112 @@
|
||||
#ifndef _INTERFACE_H
|
||||
#define _INTERFACE_H
|
||||
|
||||
#include "../config.h"
|
||||
#include "mplayer/play.h"
|
||||
#include "../mplayer.h"
|
||||
|
||||
#ifdef USE_DVDREAD
|
||||
#include "../libmpdemux/stream.h"
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
} guiResizeStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int signal;
|
||||
char module[512];
|
||||
} guiUnknowErrorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int seek;
|
||||
int format;
|
||||
int width;
|
||||
int height;
|
||||
char codecdll[128];
|
||||
} guiVideoStruct;
|
||||
|
||||
#ifdef USE_DVDREAD
|
||||
typedef struct
|
||||
{
|
||||
int titles;
|
||||
int chapters;
|
||||
int angles;
|
||||
int current_chapter;
|
||||
int current_title;
|
||||
int current_angle;
|
||||
int nr_of_audio_channels;
|
||||
stream_language_t audio_streams[32];
|
||||
int nr_of_subtitles;
|
||||
stream_language_t subtitles[32];
|
||||
} guiDVDStruct;
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int message;
|
||||
guiResizeStruct resize;
|
||||
guiVideoStruct videodata;
|
||||
guiUnknowErrorStruct error;
|
||||
#ifdef USE_DVDREAD
|
||||
guiDVDStruct DVD;
|
||||
int DVDChanged;
|
||||
#endif
|
||||
|
||||
int Playing;
|
||||
float Position;
|
||||
|
||||
int MovieWidth;
|
||||
int MovieHeight;
|
||||
|
||||
float Volume;
|
||||
int VolumeChanged;
|
||||
float Balance;
|
||||
int Mute;
|
||||
|
||||
int Track;
|
||||
int AudioType;
|
||||
int StreamType;
|
||||
int TimeSec;
|
||||
int LengthInSec;
|
||||
int FrameDrop;
|
||||
|
||||
char * Filename;
|
||||
int FilenameChanged;
|
||||
|
||||
char * Subtitlename;
|
||||
int SubtitleChanged;
|
||||
|
||||
char * Othername;
|
||||
int OtherChanged;
|
||||
|
||||
int SkinChange;
|
||||
} guiInterface_t;
|
||||
|
||||
extern guiInterface_t guiIntfStruct;
|
||||
|
||||
#define guiXEvent 0
|
||||
#define guiCEvent 1
|
||||
|
||||
extern void guiInit( int argc,char* argv[], char *envp[] );
|
||||
extern void guiGetEvent( int type,char * arg );
|
||||
extern void guiEventHandling( void );
|
||||
|
||||
#define guiSetFilename( s,n ) \
|
||||
{ if ( s ) free( s ); s=NULL; s=strdup( n ); }
|
||||
|
||||
#define guiSetDF( s,d,n ) \
|
||||
{ \
|
||||
if ( s ) free( s ); s=NULL; \
|
||||
s=malloc( strlen( d ) + strlen( n ) + 5 ); \
|
||||
sprintf( s,"%s/%s",d,n ); \
|
||||
}
|
||||
|
||||
#endif
|
@ -1,45 +0,0 @@
|
||||
|
||||
// --- labels ---
|
||||
char * langAbout = "About";
|
||||
char * langFileSelect = "Select file ...";
|
||||
char * langMessageBox = "MessageBox";
|
||||
char * langPlayList = "PlayList";
|
||||
char * langSkinBrowser = "Skin Browser";
|
||||
|
||||
// --- buttons ---
|
||||
char * langOk = "Ok";
|
||||
char * langCancel = "Cancel";
|
||||
char * langAdd = "Add";
|
||||
char * langRemove = "Remove";
|
||||
|
||||
// --- error messages ---
|
||||
char * langNEMDB = "Sorry, not enough memory for draw buffer.";
|
||||
char * langNEMFMR = "Sorry, not enough memory for menu rendering.";
|
||||
char * langNEMFMM = "Sorry, not enough memory for main window shape mask.";
|
||||
|
||||
#if 0
|
||||
char * langLIRCSNW = "LIRC support not working. Disabled.";
|
||||
char * langAudioDriverSelectNotSupported = "Your audio driver DOES NOT support select(). Recompile mplayer with #undef HAVE_AUDIO_SELECT in config.h !";
|
||||
char * langNotSupportedFileFormat = "Sorry, this file format not recognized/supported. If this file is an AVI, ASF or MPEG stream, please contact the author!";
|
||||
char * langCodecConfNotFound = "The codecs.conf config file not found. Please copy/link DOCS/codecs.conf to ~/.mplayer/codecs.conf.";
|
||||
char * langErrorProcessingDVDKey = "Error processing DVD KEY.";
|
||||
char * langErrorInDVDAuth = "Error in DVD authentication.";
|
||||
char * langAVIMissing = "AVI_NI: missing video stream!? contact the author, it may be a bug. :(";
|
||||
char * langAVIMissingVideoStream = "AVI: missing video stream!? contact the author, it may be a bug. :(";
|
||||
char * langASFMissingVideoStream = "ASF: missing video stream!? contact the author, it may be a bug. :(";
|
||||
char * langMPEGEOFNotFound = "MPEG: FATAL: EOF while searching for sequence header.";
|
||||
char * langCannotAllocateSharedMem = "Cannot allocate shared memory. ( Not enough memory ? )";
|
||||
char * langMPEGCannotReadSeqHeader = "MPEG: FATAL: Cannot read sequence header!";
|
||||
char * langMPEGBadSeqHeader = "MPEG: Bad sequence header!";
|
||||
char * langMPEGCannotReadSeqHeaderExt = "MPEG: FATAL: Cannot read sequence header extension!";
|
||||
char * langMPEGBadSeqHeaderExt = "MPEG: Bad sequence header extension!";
|
||||
char * langCantFindCodec = "Can't find codec for video format";
|
||||
char * langSelectedVideoOutIncompTheCodec = "Sorry, selected video_out device is incompatible with this codec.";
|
||||
char * langMPCompWithoutDSSupport = "MPlayer was compiled WITHOUT directshow support!";
|
||||
char * langDSCodecNotFound = "ERROR: Couldn't open required DirectShow codec: %s. " \
|
||||
"Maybe you forget to upgrade your win32 codecs?? It's time to download the new " \
|
||||
"package from: ftp://thot.banki.hu/esp-team/linux/MPlayer/w32codec.zip! " \
|
||||
"Or you should disable DShow support.";
|
||||
char * langCantInitVideoDriver = "FATAL: Cannot initialize video driver!";
|
||||
char * langUnknowError = "Unknow error. Please contact the developer team.";
|
||||
#endif
|
@ -1,7 +0,0 @@
|
||||
|
||||
#ifndef __MPLAYER_LANG
|
||||
#define __MPLAYER_LANG
|
||||
|
||||
#include "../help_mp.h"
|
||||
|
||||
#endif
|
@ -10,7 +10,6 @@
|
||||
void ab_Ok_released( GtkButton * button,gpointer user_data )
|
||||
{
|
||||
gtk_widget_hide( AboutBox );
|
||||
gtkVisibleAboutBox=0;
|
||||
}
|
||||
|
||||
GtkWidget * create_About( void )
|
||||
@ -157,7 +156,7 @@ GtkWidget * create_About( void )
|
||||
"Homepage:\n" \
|
||||
" Design: Chass\n" \
|
||||
" Contents: Gabucino\n" \
|
||||
" LGB\n\n" \
|
||||
" LGB\n\n" \
|
||||
"English documentation:\n" \
|
||||
" tech-*.txt: A'rpi\n" \
|
||||
" all the others: Gabucino\n\n" \
|
||||
|
@ -7,14 +7,13 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "./mplayer.h"
|
||||
#include "psignal.h"
|
||||
#include "../error.h"
|
||||
|
||||
#include "pixmaps/up.xpm"
|
||||
#include "pixmaps/dir.xpm"
|
||||
#include "pixmaps/file.xpm"
|
||||
|
||||
#include "../../events.h"
|
||||
#include "../../interface.h"
|
||||
#include "../../../config.h"
|
||||
#include "../../../help_mp.h"
|
||||
|
||||
@ -35,30 +34,30 @@ unsigned char * fsThatDir = ".";
|
||||
gchar fsFilter[8] = "*";
|
||||
|
||||
int fsPressed = 0;
|
||||
int fsMessage = -1;
|
||||
int fsType = 0;
|
||||
int fsMessage = -1;
|
||||
int fsType = 0;
|
||||
|
||||
#define fsNumberOfVideoFilterNames 6
|
||||
char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] =
|
||||
char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] =
|
||||
{ { "MPEG files ( *.mpg )", "*.mpg" },
|
||||
{ "VOB files ( *.vob )", "*.vob" },
|
||||
{ "VOB files ( *.vob )", "*.vob" },
|
||||
{ "AVI files ( *.avi )", "*.avi" },
|
||||
{ "QT files ( *.mov )", "*.mov" },
|
||||
{ "ASF files ( *.asf )", "*.asf" },
|
||||
{ "VIVO files ( *.viv )", "*.viv" },
|
||||
{ "QT files ( *.mov )", "*.mov" },
|
||||
{ "ASF files ( *.asf )", "*.asf" },
|
||||
{ "VIVO files ( *.viv )", "*.viv" },
|
||||
{ "All files ( * )", "*" } };
|
||||
|
||||
|
||||
#define fsNumberOfSubtitleFilterNames 8
|
||||
char * fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames+1][2] =
|
||||
{ { "UTF ( *.utf )", "*.utf" },
|
||||
{ "SUB ( *.sub )", "*.sub" },
|
||||
{ "SRT ( *.srt )", "*.str" },
|
||||
{ "SUB ( *.sub )", "*.sub" },
|
||||
{ "SRT ( *.srt )", "*.str" },
|
||||
{ "SMI ( *.smi )", "*.smi" },
|
||||
{ "RT ( *.rt )", "*.rt" },
|
||||
{ "TXT ( *.txt )", "*.txt" },
|
||||
{ "SSA ( *.ssa )", "*.ssa" },
|
||||
{ "AQT ( *.aqt )", "*.aqt" },
|
||||
{ "All files ( * )", "*" } };
|
||||
{ "All files ( * )", "*" } };
|
||||
|
||||
#define fsNumberOfOtherFilterNames 0
|
||||
char * fsOtherFilterNames[fsNumberOfOtherFilterNames+1][2] =
|
||||
@ -99,7 +98,7 @@ void CheckDir( GtkWidget * list,char * directory )
|
||||
gtk_widget_hide( list );
|
||||
gtk_clist_clear( GTK_CLIST( list ) );
|
||||
str[0][0]=NULL;
|
||||
|
||||
|
||||
pixmap=dpixmap; mask=dmask;
|
||||
str[0][0]=NULL; str[0][1]=(gchar *)malloc( 3 );
|
||||
strcpy( str[0][1],"." ); gtk_clist_append( GTK_CLIST( list ),str[0] ); gtk_clist_set_pixmap( GTK_CLIST( list ),0,0,pixmap,mask );
|
||||
@ -121,9 +120,9 @@ void CheckDir( GtkWidget * list,char * directory )
|
||||
free( str[0][1] );
|
||||
}
|
||||
globfree( &gg );
|
||||
|
||||
|
||||
glob( fsFilter,0,NULL,&gg );
|
||||
|
||||
|
||||
#if 0
|
||||
if ( !strcmp( fsFilter,"*" ) )
|
||||
{
|
||||
@ -132,7 +131,7 @@ void CheckDir( GtkWidget * list,char * directory )
|
||||
for( i=0;i<strlen( f );i++ )
|
||||
if ( ( f[i] >= 'A' )&&( f[i] <= 'Z' ) ) f[i]+=32;
|
||||
glob( f,GLOB_APPEND,NULL,&gg );
|
||||
|
||||
|
||||
for( i=0;i<strlen( f );i++ )
|
||||
if ( ( f[i] >= 'a' )&&( f[i] <= 'z' ) ) f[i]-=32;
|
||||
glob( f,GLOB_APPEND,NULL,&gg );
|
||||
@ -163,13 +162,13 @@ void CheckDir( GtkWidget * list,char * directory )
|
||||
void ShowFileSelect( int type )
|
||||
{
|
||||
int i;
|
||||
if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect );
|
||||
gtk_widget_hide( FileSelect );
|
||||
fsType=type;
|
||||
switch ( type )
|
||||
{
|
||||
case fsVideoSelector:
|
||||
fsMessage=evFileLoaded;
|
||||
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_FileSelect );
|
||||
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_FileSelect );
|
||||
fsList_items=NULL;
|
||||
for( i=0;i<fsNumberOfVideoFilterNames + 1;i++ )
|
||||
fsList_items=g_list_append( fsList_items,fsVideoFilterNames[i][0] );
|
||||
@ -178,7 +177,7 @@ void ShowFileSelect( int type )
|
||||
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames][0] );
|
||||
break;
|
||||
case fsSubtitleSelector:
|
||||
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_SubtitleSelect );
|
||||
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_SubtitleSelect );
|
||||
fsList_items=NULL;
|
||||
for( i=0;i<fsNumberOfSubtitleFilterNames + 1;i++ )
|
||||
fsList_items=g_list_append( fsList_items,fsSubtitleFilterNames[i][0] );
|
||||
@ -187,7 +186,7 @@ void ShowFileSelect( int type )
|
||||
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames][0] );
|
||||
break;
|
||||
case fsOtherSelector:
|
||||
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_OtherSelect );
|
||||
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_OtherSelect );
|
||||
fsList_items=NULL;
|
||||
for( i=0;i<fsNumberOfSubtitleFilterNames + 1;i++ )
|
||||
fsList_items=g_list_append( fsList_items,fsOtherFilterNames[i][0] );
|
||||
@ -197,15 +196,11 @@ void ShowFileSelect( int type )
|
||||
break;
|
||||
}
|
||||
gtk_widget_show( FileSelect );
|
||||
gtkVisibleFileSelect=1;
|
||||
}
|
||||
|
||||
void HideFileSelect( void )
|
||||
{
|
||||
gtk_widget_hide( fsFileSelect );
|
||||
gtkVisibleFileSelect=0;
|
||||
gtkShMem->vs.window=evLoad;
|
||||
gtkSendMessage( evHideWindow );
|
||||
}
|
||||
|
||||
void fs_fsFileSelect_destroy( GtkObject * object,gpointer user_data )
|
||||
@ -223,35 +218,35 @@ void fs_fsFilterCombo_changed( GtkEditable * editable,gpointer user_data )
|
||||
int i;
|
||||
|
||||
str=gtk_entry_get_text( GTK_ENTRY(user_data ) );
|
||||
|
||||
|
||||
switch ( fsType )
|
||||
{
|
||||
case fsVideoSelector:
|
||||
for( i=0;i<fsNumberOfVideoFilterNames+1;i++ )
|
||||
if( !strcmp( str,fsVideoFilterNames[i][0] ) )
|
||||
if( !strcmp( str,fsVideoFilterNames[i][0] ) )
|
||||
{
|
||||
strcpy( fsFilter,fsVideoFilterNames[i][1] );
|
||||
CheckDir( fsFNameList,get_current_dir_name() );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
strcpy( fsFilter,fsVideoFilterNames[i][1] );
|
||||
CheckDir( fsFNameList,get_current_dir_name() );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case fsSubtitleSelector:
|
||||
for( i=0;i<fsNumberOfSubtitleFilterNames+1;i++ )
|
||||
if( !strcmp( str,fsSubtitleFilterNames[i][0] ) )
|
||||
if( !strcmp( str,fsSubtitleFilterNames[i][0] ) )
|
||||
{
|
||||
strcpy( fsFilter,fsSubtitleFilterNames[i][1] );
|
||||
CheckDir( fsFNameList,get_current_dir_name() );
|
||||
break;
|
||||
}
|
||||
strcpy( fsFilter,fsSubtitleFilterNames[i][1] );
|
||||
CheckDir( fsFNameList,get_current_dir_name() );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case fsOtherSelector:
|
||||
for( i=0;i<fsNumberOfOtherFilterNames+1;i++ )
|
||||
if( !strcmp( str,fsOtherFilterNames[i][0] ) )
|
||||
if( !strcmp( str,fsOtherFilterNames[i][0] ) )
|
||||
{
|
||||
strcpy( fsFilter,fsOtherFilterNames[i][1] );
|
||||
CheckDir( fsFNameList,get_current_dir_name() );
|
||||
break;
|
||||
}
|
||||
strcpy( fsFilter,fsOtherFilterNames[i][1] );
|
||||
CheckDir( fsFNameList,get_current_dir_name() );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -313,18 +308,10 @@ void fs_Ok_released( GtkButton * button,gpointer user_data )
|
||||
{
|
||||
case 1:
|
||||
fsSelectedDirectory=(unsigned char *)get_current_dir_name();
|
||||
// printf("[gtk-fs] 1-fsSelectedFile: %s\n",fsSelectedFile);
|
||||
// #ifdef DEBUG
|
||||
// dbprintf( 1,"[gtk-fs] fsSelectedFile: %s\n",fsSelectedFile );
|
||||
// #endif
|
||||
break;
|
||||
case 2:
|
||||
str=gtk_entry_get_text( GTK_ENTRY( fsPathCombo ) );
|
||||
fsSelectedFile=str;
|
||||
// printf("[gtk-fs] 2-fsSelectedFile: '%s' \n",fsSelectedFile);
|
||||
// #ifdef DEBUG
|
||||
// dbprintf( 1,"[gtk-fs] fsSelectedFile: %s\n",fsSelectedFile );
|
||||
// #endif
|
||||
if ( !fsFileExist( fsSelectedFile ) ) return;
|
||||
fsSelectedDirectory=fsSelectedFile;
|
||||
size=strlen( fsSelectedDirectory );
|
||||
@ -337,31 +324,21 @@ void fs_Ok_released( GtkButton * button,gpointer user_data )
|
||||
break;
|
||||
}
|
||||
}
|
||||
// printf("[gtk-fs-xxx] fsSelectedFile: '%s' \n",fsSelectedFile);
|
||||
// printf("[gtk-fs-xxx] fsSelectedDirectory: '%s' \n",fsSelectedDirectory);
|
||||
break;
|
||||
}
|
||||
// printf( "----gtk---> directory: %s\n",fsSelectedDirectory );
|
||||
// printf( "----gtk---> filename: %s\n",fsSelectedFile );
|
||||
switch ( fsType )
|
||||
{
|
||||
case fsVideoSelector:
|
||||
strcpy( gtkShMem->fs.dir,fsSelectedDirectory );
|
||||
strcpy( gtkShMem->fs.filename,fsSelectedFile );
|
||||
// printf( "----gtksm-> directory: %s\n",gtkShMem->fs.dir );
|
||||
// printf( "----gtksm-> filename: %s\n",gtkShMem->fs.filename );
|
||||
gtkSendMessage( evFileLoaded );
|
||||
break;
|
||||
guiSetDF( guiIntfStruct.Filename,fsSelectedDirectory,fsSelectedFile );
|
||||
guiIntfStruct.StreamType=STREAMTYPE_FILE;
|
||||
guiIntfStruct.FilenameChanged=1;
|
||||
break;
|
||||
case fsSubtitleSelector:
|
||||
strcpy( gtkShMem->fs.subtitlename,fsSelectedDirectory );
|
||||
strcat( gtkShMem->fs.subtitlename,"/" );
|
||||
strcat( gtkShMem->fs.subtitlename,fsSelectedFile );
|
||||
gtkSendMessage( evSubtitleLoaded );
|
||||
guiSetDF( guiIntfStruct.Subtitlename,fsSelectedDirectory,fsSelectedFile );
|
||||
guiIntfStruct.SubtitleChanged=1;
|
||||
break;
|
||||
case fsOtherSelector:
|
||||
strcpy( gtkShMem->fs.otherfilename,fsSelectedDirectory );
|
||||
strcat( gtkShMem->fs.subtitlename,"/" );
|
||||
strcat( gtkShMem->fs.otherfilename,fsSelectedFile );
|
||||
guiSetDF( guiIntfStruct.Othername,fsSelectedDirectory,fsSelectedFile );
|
||||
break;
|
||||
}
|
||||
item=fsTopList_items;
|
||||
@ -375,6 +352,7 @@ void fs_Ok_released( GtkButton * button,gpointer user_data )
|
||||
fsTopList_items=g_list_prepend( fsTopList_items,(gchar *)get_current_dir_name() );
|
||||
gtk_combo_set_popdown_strings( GTK_COMBO( user_data ),fsTopList_items );
|
||||
}
|
||||
if ( mplMainAutoPlay ) mplEventHandling( evPlay,0 );
|
||||
}
|
||||
|
||||
void fs_Cancel_released( GtkButton * button,gpointer user_data )
|
||||
@ -382,7 +360,7 @@ void fs_Cancel_released( GtkButton * button,gpointer user_data )
|
||||
|
||||
void fs_fsFNameList_select_row( GtkWidget * widget,gint row,gint column,GdkEventButton *bevent,gpointer user_data )
|
||||
{
|
||||
gtk_clist_get_text( GTK_CLIST(widget ),row,1,&fsSelectedFile );
|
||||
gtk_clist_get_text( GTK_CLIST(widget ),row,1,&fsSelectedFile );
|
||||
fsPressed=1;
|
||||
if( !bevent ) return;
|
||||
if( bevent->type == GDK_2BUTTON_PRESS ) gtk_button_released( GTK_BUTTON( fsOk ) );
|
||||
|
@ -21,14 +21,11 @@ void on_MessageBox_destroy( GtkObject * object,gpointer user_data )
|
||||
}
|
||||
*/
|
||||
gtk_widget_hide( MessageBox );
|
||||
gtkVisibleMessageBox=0;
|
||||
}
|
||||
|
||||
void on_Ok_released( GtkButton * button,gpointer user_data )
|
||||
{
|
||||
gtk_widget_hide( MessageBox );
|
||||
gtkVisibleMessageBox=0;
|
||||
gtkSendMessage( evMessageBox );
|
||||
}
|
||||
|
||||
GtkWidget * create_MessageBox( int type )
|
||||
|
@ -14,10 +14,9 @@
|
||||
void ActivateMenuItem( int Item )
|
||||
{
|
||||
// fprintf( stderr,"[menu] item: %d.%d\n",Item&0xffff,Item>>16 );
|
||||
gtkShMem->popupmenu=Item & 0x0000ffff;
|
||||
gtkShMem->popupmenuparam=Item >> 16;
|
||||
gtkShMem->visiblepopupmenu=0;
|
||||
gtkSendMessage( evShowPopUpMenu );
|
||||
gtkPopupMenu=Item & 0x0000ffff;
|
||||
gtkPopupMenuParam=Item >> 16;
|
||||
mplEventHandling( Item & 0x0000ffff,Item >> 16 );
|
||||
}
|
||||
|
||||
GtkWidget * AddMenuItem( GtkWidget * Menu,char * label,int Number )
|
||||
@ -246,6 +245,7 @@ char * GetLanguage( int language )
|
||||
int i;
|
||||
for ( i=0;i<sizeof( Languages ) / sizeof( Languages_t );i++ )
|
||||
if ( Languages[i].id == language ) return Languages[i].name;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GtkWidget * DVDSubMenu;
|
||||
@ -293,61 +293,61 @@ GtkWidget * create_PopUpMenu( void )
|
||||
AddMenuItem( DVDSubMenu,MSGTR_MENU_ShowDVDMenu, evNone );
|
||||
AddSeparator( DVDSubMenu );
|
||||
DVDTitleMenu=AddSubMenu( DVDSubMenu,MSGTR_MENU_Titles );
|
||||
if ( gtkShMem->DVD.titles )
|
||||
if ( guiIntfStruct.DVD.titles )
|
||||
{
|
||||
char tmp[32]; int i;
|
||||
for ( i=0;i<gtkShMem->DVD.titles;i++ )
|
||||
for ( i=0;i < guiIntfStruct.DVD.titles;i++ )
|
||||
{
|
||||
sprintf( tmp,MSGTR_MENU_Title,i+1 );
|
||||
AddMenuItem( DVDTitleMenu,tmp,( (i+1) << 16 ) + evSetDVDTitle );
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
MenuItem=AddMenuItem( DVDTitleMenu,MSGTR_MENU_None,evNone );
|
||||
gtk_widget_set_sensitive( MenuItem,FALSE );
|
||||
}
|
||||
DVDChapterMenu=AddSubMenu( DVDSubMenu,MSGTR_MENU_Chapters );
|
||||
if ( gtkShMem->DVD.chapters )
|
||||
if ( guiIntfStruct.DVD.chapters )
|
||||
{
|
||||
char tmp[32]; int i;
|
||||
for ( i=0;i<gtkShMem->DVD.chapters;i++ )
|
||||
for ( i=0;i < guiIntfStruct.DVD.chapters;i++ )
|
||||
{
|
||||
sprintf( tmp,MSGTR_MENU_Chapter,i+1 );
|
||||
AddMenuItem( DVDChapterMenu,tmp,( (i+1) << 16 ) + evSetDVDChapter );
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
MenuItem=AddMenuItem( DVDChapterMenu,MSGTR_MENU_None,evNone );
|
||||
gtk_widget_set_sensitive( MenuItem,FALSE );
|
||||
}
|
||||
DVDAudioLanguageMenu=AddSubMenu( DVDSubMenu,MSGTR_MENU_AudioLanguages );
|
||||
if ( gtkShMem->DVD.nr_of_audio_channels )
|
||||
if ( guiIntfStruct.DVD.nr_of_audio_channels )
|
||||
{
|
||||
char tmp[64]; int i;
|
||||
for ( i=0;i<gtkShMem->DVD.nr_of_audio_channels;i++ )
|
||||
for ( i=0;i < guiIntfStruct.DVD.nr_of_audio_channels;i++ )
|
||||
{
|
||||
strcpy( tmp,GetLanguage( gtkShMem->DVD.audio_streams[i].language ) );
|
||||
AddMenuItem( DVDAudioLanguageMenu,tmp,( gtkShMem->DVD.audio_streams[i].id << 16 ) + evSetDVDAudio );
|
||||
strcpy( tmp,GetLanguage( guiIntfStruct.DVD.audio_streams[i].language ) );
|
||||
AddMenuItem( DVDAudioLanguageMenu,tmp,( guiIntfStruct.DVD.audio_streams[i].id << 16 ) + evSetDVDAudio );
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
MenuItem=AddMenuItem( DVDAudioLanguageMenu,MSGTR_MENU_None,evNone );
|
||||
gtk_widget_set_sensitive( MenuItem,FALSE );
|
||||
}
|
||||
DVDSubtitleLanguageMenu=AddSubMenu( DVDSubMenu,MSGTR_MENU_SubtitleLanguages );
|
||||
if ( gtkShMem->DVD.nr_of_subtitles )
|
||||
if ( guiIntfStruct.DVD.nr_of_subtitles )
|
||||
{
|
||||
char tmp[64]; int i;
|
||||
for ( i=0;i<gtkShMem->DVD.nr_of_subtitles;i++ )
|
||||
for ( i=0;i < guiIntfStruct.DVD.nr_of_subtitles;i++ )
|
||||
{
|
||||
strcpy( tmp,GetLanguage( gtkShMem->DVD.subtitles[i].language ) );
|
||||
AddMenuItem( DVDSubtitleLanguageMenu,tmp,( gtkShMem->DVD.subtitles[i].id << 16 ) + evSetDVDSubtitle );
|
||||
strcpy( tmp,GetLanguage( guiIntfStruct.DVD.subtitles[i].language ) );
|
||||
AddMenuItem( DVDSubtitleLanguageMenu,tmp,( guiIntfStruct.DVD.subtitles[i].id << 16 ) + evSetDVDSubtitle );
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
MenuItem=AddMenuItem( DVDSubtitleLanguageMenu,MSGTR_MENU_None,evNone );
|
||||
gtk_widget_set_sensitive( MenuItem,FALSE );
|
||||
|
@ -1,7 +1,8 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "./mplayer.h"
|
||||
#include "psignal.h"
|
||||
#include "../error.h"
|
||||
|
||||
#include "../../events.h"
|
||||
#include "../../../config.h"
|
||||
@ -27,14 +28,11 @@ GtkWidget * opAutoFullscreenCheckBox;
|
||||
GtkWidget * opOk;
|
||||
GtkWidget * opCancel;
|
||||
|
||||
int opShift = False;
|
||||
int opShift = 0;
|
||||
|
||||
void HideOptions( void )
|
||||
{
|
||||
gtk_widget_hide( Options );
|
||||
gtkVisibleOptions=0;
|
||||
gtkShMem->vs.window=evPreferences;
|
||||
gtkSendMessage( evHideWindow );
|
||||
}
|
||||
|
||||
gboolean on_window2_key_press_event( GtkWidget * widget,GdkEventKey * event,gpointer user_data )
|
||||
@ -43,10 +41,10 @@ gboolean on_window2_key_press_event( GtkWidget * widget,GdkEventKey * event,gpoi
|
||||
{
|
||||
case GDK_Shift_L:
|
||||
case GDK_Shift_R:
|
||||
opShift=True;
|
||||
opShift=1;
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
gboolean on_window2_key_release_event( GtkWidget * widget,GdkEventKey * event,gpointer user_data )
|
||||
@ -66,7 +64,7 @@ gboolean on_window2_key_release_event( GtkWidget * widget,GdkEventKey * event,gp
|
||||
break;
|
||||
case GDK_Shift_L:
|
||||
case GDK_Shift_R:
|
||||
opShift=False;
|
||||
opShift=0;
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
|
@ -9,9 +9,6 @@
|
||||
void HidePlayList( void )
|
||||
{
|
||||
gtk_widget_hide( PlayList );
|
||||
gtkVisiblePlayList=0;
|
||||
gtkShMem->vs.window=evPlayList;
|
||||
gtkSendMessage( evHideWindow );
|
||||
}
|
||||
|
||||
void pl_PlayList_destroy( GtkObject * object,gpointer user_data )
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "sb.h"
|
||||
#include "../../events.h"
|
||||
@ -18,16 +19,7 @@ char * sbSelectedSkin=NULL;
|
||||
char * sbMPlayerDirInHome=NULL;
|
||||
char * sbMPlayerPrefixDir=NULL;
|
||||
|
||||
void HideSkinBrowser( void )
|
||||
{
|
||||
gtk_widget_hide( SkinBrowser );
|
||||
gtkVisibleSkinBrowser=0;
|
||||
gtkShMem->vs.window=evSkinBrowser;
|
||||
gtkSendMessage( evHideWindow );
|
||||
gtkSendMessage( evSkinBrowser );
|
||||
}
|
||||
|
||||
char gtkOldSkin[128];
|
||||
char * gtkOldSkin;
|
||||
|
||||
int gtkFillSkinList( gchar * mdir )
|
||||
{
|
||||
@ -37,7 +29,7 @@ int gtkFillSkinList( gchar * mdir )
|
||||
glob_t gg;
|
||||
struct stat fs;
|
||||
|
||||
strcpy( gtkOldSkin,gtkShMem->sb.name );
|
||||
gtkOldSkin=strdup( skinName );
|
||||
if ( ( str[0]=(char *)calloc( 1,7 ) ) == NULL )
|
||||
{
|
||||
gtkMessageBox( GTK_MB_FATAL,MSGTR_SKINBROWSER_NotEnoughMemory );
|
||||
@ -68,21 +60,28 @@ int gtkFillSkinList( gchar * mdir )
|
||||
}
|
||||
|
||||
void on_SkinBrowser_destroy( GtkObject * object,gpointer user_data )
|
||||
{ HideSkinBrowser(); }
|
||||
{ gtk_widget_hide( SkinBrowser ); }
|
||||
|
||||
void on_SkinBrowser_Cancel( GtkObject * object,gpointer user_data )
|
||||
{
|
||||
strcpy( gtkShMem->sb.name,gtkOldSkin );
|
||||
HideSkinBrowser();
|
||||
ChangeSkin( skinName );
|
||||
gtk_widget_hide( SkinBrowser );
|
||||
}
|
||||
|
||||
void on_SkinBrowser_Ok( GtkObject * object,gpointer user_data )
|
||||
{
|
||||
ChangeSkin( sbSelectedSkin );
|
||||
if ( skinName ) free( skinName );
|
||||
skinName=strdup( sbSelectedSkin );
|
||||
gtk_widget_hide( SkinBrowser );
|
||||
}
|
||||
|
||||
void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * bevent,gpointer user_data )
|
||||
{
|
||||
gtk_clist_get_text( clist,row,0,&sbSelectedSkin );
|
||||
strcpy( gtkShMem->sb.name,sbSelectedSkin );
|
||||
gtkSendMessage( evSkinBrowser );
|
||||
ChangeSkin( sbSelectedSkin );
|
||||
if( !bevent ) return;
|
||||
if( bevent->type == GDK_2BUTTON_PRESS ) HideSkinBrowser();
|
||||
if( bevent->type == GDK_2BUTTON_PRESS ) gtk_widget_hide( SkinBrowser );
|
||||
}
|
||||
|
||||
GtkWidget * create_SkinBrowser( void )
|
||||
@ -248,7 +247,7 @@ GtkWidget * create_SkinBrowser( void )
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT( SkinBrowser ),"destroy",GTK_SIGNAL_FUNC( on_SkinBrowser_destroy ),NULL );
|
||||
gtk_signal_connect( GTK_OBJECT( SkinList ),"select_row",GTK_SIGNAL_FUNC( on_SkinList_select_row ),NULL );
|
||||
gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( on_SkinBrowser_destroy ),NULL );
|
||||
gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( on_SkinBrowser_Ok ),NULL );
|
||||
gtk_signal_connect( GTK_OBJECT( Cancel ),"released",GTK_SIGNAL_FUNC( on_SkinBrowser_Cancel ),NULL );
|
||||
|
||||
if ( ( sbMPlayerDirInHome=(char *)calloc( 1,strlen( skinDirInHome ) + 4 ) ) != NULL )
|
||||
|
@ -100,14 +100,14 @@ void mplHideMenu( int mx,int my )
|
||||
|
||||
if ( ( x < 0 ) || ( y < 0 ) ) return;
|
||||
|
||||
// printf( "---------> %d %d,%d\n",i,x,y );
|
||||
// printf( "---------> %d %d,%d\n",i,x,y );
|
||||
// printf( "--------> mi: %d,%d %dx%d\n",appMPlayer.MenuItems[i].x,appMPlayer.MenuItems[i].y,appMPlayer.MenuItems[i].width,appMPlayer.MenuItems[i].height );
|
||||
if ( wgIsRect( x,y,
|
||||
appMPlayer.MenuItems[i].x,appMPlayer.MenuItems[i].y,
|
||||
appMPlayer.MenuItems[i].x+appMPlayer.MenuItems[i].width,
|
||||
appMPlayer.MenuItems[i].y+appMPlayer.MenuItems[i].height ) )
|
||||
{
|
||||
mplMsgHandle( appMPlayer.MenuItems[i].msg,0 );
|
||||
mplEventHandling( appMPlayer.MenuItems[i].msg,0 );
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,7 +122,7 @@ void mplMenuInit( void )
|
||||
if ( ( mplMenuDrawBuffer = calloc( 1,appMPlayer.menuBase.Bitmap.ImageSize ) ) == NULL )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
dbprintf( 1,MSGTR_NEMFMR );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[menu.h] %s",MSGTR_NEMFMR );
|
||||
#endif
|
||||
gtkMessageBox( GTK_MB_FATAL,MSGTR_NEMFMR );
|
||||
return;
|
||||
@ -133,7 +133,7 @@ void mplMenuInit( void )
|
||||
wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,wsOverredirect|wsHideFrame|wsMaxSize|wsMinSize|wsHideWindow,"MPlayer menu" );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 1,"[menu.h] menu: 0x%x\n",(int)appMPlayer.menuWindow.WindowID );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[menu.h] menu: 0x%x\n",(int)appMPlayer.menuWindow.WindowID );
|
||||
#endif
|
||||
|
||||
appMPlayer.menuWindow.ReDraw=mplMenuDraw;
|
||||
|
@ -7,29 +7,28 @@
|
||||
#include "./mplayer.h"
|
||||
#include "../events.h"
|
||||
#include "../app.h"
|
||||
#include "../interface.h"
|
||||
#include "../skin/skin.h"
|
||||
#include "../skin/font.h"
|
||||
#include "../wm/ws.h"
|
||||
#include "../wm/wskeys.h"
|
||||
#include "../wm/widget.h"
|
||||
#include "../bitmap/bitmap.h"
|
||||
#include "../timer.h"
|
||||
#include "../error.h"
|
||||
|
||||
#include "../../config.h"
|
||||
#include "../../help_mp.h"
|
||||
#include "../../libvo/x11_common.h"
|
||||
#include "../../libmpdemux/stream.h"
|
||||
#include "../../mp_msg.h"
|
||||
|
||||
#define mplMouseTimerConst 10
|
||||
#define mplRedrawTimerConst 5
|
||||
|
||||
int mplMouseTimer = mplMouseTimerConst;
|
||||
int mplRedrawTimer = mplRedrawTimerConst;
|
||||
int mplGeneralTimer = -1;
|
||||
int mplTimer = 0;
|
||||
|
||||
void mplMsgHandle( int msg,float param );
|
||||
void mplEventHandling( int msg,float param );
|
||||
|
||||
#include "widgets.h"
|
||||
#include "play.h"
|
||||
@ -38,31 +37,24 @@ void mplMsgHandle( int msg,float param );
|
||||
#include "sw.h"
|
||||
#include "widgets.h"
|
||||
|
||||
void mplTimerHandler( int signum )
|
||||
void mplTimerHandler( void )
|
||||
{
|
||||
mplTimer++;
|
||||
mplMouseTimer--;
|
||||
mplRedrawTimer--;
|
||||
mplGeneralTimer--;
|
||||
if ( mplMouseTimer == 0 ) mplMsgHandle( evHideMouseCursor,0 );
|
||||
if ( mplRedrawTimer == 0 ) mplMsgHandle( evRedraw,0 );
|
||||
if ( mplGeneralTimer == 0 ) mplMsgHandle( evGeneralTimer,0 );
|
||||
if ( mplMouseTimer == 0 ) mplEventHandling( evHideMouseCursor,0 );
|
||||
if ( mplRedrawTimer == 0 ) mplEventHandling( evRedraw,0 );
|
||||
}
|
||||
|
||||
void mplInit( int argc,char* argv[], char *envp[], void* disp )
|
||||
{
|
||||
int i;
|
||||
|
||||
// allocates shmem to mplShMem
|
||||
// init fields of this struct to default values
|
||||
mplMPlayerInit( argc,argv,envp );
|
||||
|
||||
// allocates shmem to gtkShMem
|
||||
// fork() a process which runs gtkThreadProc() [gtkPID]
|
||||
gtkInit( argc,argv,envp );
|
||||
strcpy( gtkShMem->sb.name,skinName );
|
||||
|
||||
message=mplErrorHandler; // error messagebox drawing function
|
||||
|
||||
// opens X display, checks for extensions (XShape, DGA etc)
|
||||
wsXInit(disp);
|
||||
@ -81,7 +73,7 @@ void mplInit( int argc,char* argv[], char *envp[], void* disp )
|
||||
wsCreateImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height );
|
||||
|
||||
vo_setwindow( appMPlayer.subWindow.WindowID, appMPlayer.subWindow.wGC );
|
||||
|
||||
|
||||
i=wsHideFrame|wsMaxSize|wsHideWindow;
|
||||
if ( appMPlayer.mainDecoration ) i=wsShowFrame|wsMaxSize|wsHideWindow;
|
||||
wsCreateWindow( &appMPlayer.mainWindow,
|
||||
@ -89,13 +81,13 @@ void mplInit( int argc,char* argv[], char *envp[], void* disp )
|
||||
wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,i,"MPlayer" ); //wsMinSize|
|
||||
|
||||
wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image );
|
||||
|
||||
|
||||
mplMenuInit();
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 1,"[main] Depth on screen: %d\n",wsDepthOnScreen );
|
||||
dbprintf( 1,"[main] parent: 0x%x\n",(int)appMPlayer.mainWindow.WindowID );
|
||||
dbprintf( 1,"[main] sub: 0x%x\n",(int)appMPlayer.subWindow.WindowID );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] Depth on screen: %d\n",wsDepthOnScreen );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] parent: 0x%x\n",(int)appMPlayer.mainWindow.WindowID );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] sub: 0x%x\n",(int)appMPlayer.subWindow.WindowID );
|
||||
#endif
|
||||
|
||||
appMPlayer.mainWindow.ReDraw=mplMainDraw;
|
||||
@ -114,24 +106,13 @@ void mplInit( int argc,char* argv[], char *envp[], void* disp )
|
||||
wsPostRedisplay( &appMPlayer.mainWindow );
|
||||
wsPostRedisplay( &appMPlayer.subWindow );
|
||||
|
||||
btnModify( evSetVolume,mplShMem->Volume );
|
||||
btnModify( evSetBalance,mplShMem->Balance );
|
||||
btnModify( evSetMoviePosition,mplShMem->Position );
|
||||
btnModify( evSetVolume,guiIntfStruct.Volume );
|
||||
btnModify( evSetBalance,guiIntfStruct.Balance );
|
||||
btnModify( evSetMoviePosition,guiIntfStruct.Position );
|
||||
|
||||
mplShMem->Playing=0;
|
||||
guiIntfStruct.Playing=0;
|
||||
|
||||
wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow );
|
||||
wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
|
||||
}
|
||||
|
||||
void mplDone(){
|
||||
|
||||
dbprintf( 1,"[mplayer] exit.\n" );
|
||||
|
||||
mplStop();
|
||||
// timerDone();
|
||||
gtkDone(); // kills the gtkThreadProc() process
|
||||
wsXDone();
|
||||
|
||||
}
|
||||
|
||||
|
@ -4,16 +4,16 @@
|
||||
|
||||
extern int mplSubRender;
|
||||
extern int mplMainRender;
|
||||
extern int mplGeneralTimer;
|
||||
|
||||
extern unsigned char * mplDrawBuffer;
|
||||
extern unsigned char * mplMenuDrawBuffer;
|
||||
extern int mainVisible;
|
||||
|
||||
extern int mplMainAutoPlay;
|
||||
extern int mplMiddleMenu;
|
||||
extern int mplMiddleMenu;
|
||||
|
||||
extern void mplInit( int argc,char* argv[], char *envp[], void* disp );
|
||||
extern void mplMsgHandle( int msg,float param );
|
||||
extern void mplEventHandling( int msg,float param );
|
||||
extern void mplTimerHandler( void );
|
||||
|
||||
#endif
|
||||
|
240
Gui/mplayer/mw.h
240
Gui/mplayer/mw.h
@ -7,7 +7,7 @@ unsigned char * mplDrawBuffer = NULL;
|
||||
int mplMainRender = 1;
|
||||
|
||||
int mplMainAutoPlay = 0;
|
||||
int mplMiddleMenu = 0;
|
||||
int mplMiddleMenu = 0;
|
||||
|
||||
int mainVisible = 1;
|
||||
|
||||
@ -18,19 +18,19 @@ int i,pot = 0;
|
||||
inline void TranslateFilename( int c,char * tmp )
|
||||
{
|
||||
int i;
|
||||
switch ( mplShMem->StreamType )
|
||||
switch ( guiIntfStruct.StreamType )
|
||||
{
|
||||
case STREAMTYPE_FILE:
|
||||
if ( gtkShMem->fs.filename[0] )
|
||||
if ( ( guiIntfStruct.Filename )&&( guiIntfStruct.Filename[0] ) )
|
||||
{
|
||||
strcpy( tmp,gtkShMem->fs.filename );
|
||||
strcpy( tmp,guiIntfStruct.Filename );
|
||||
if ( tmp[strlen( tmp ) - 4] == '.' ) tmp[strlen( tmp ) - 4]=0;
|
||||
if ( tmp[strlen( tmp ) - 5] == '.' ) tmp[strlen( tmp ) - 5]=0;
|
||||
} else strcpy( tmp,"no file loaded" );
|
||||
break;
|
||||
#ifdef USE_DVDREAD
|
||||
#ifdef USE_DVDREAD
|
||||
case STREAMTYPE_DVD:
|
||||
if ( mplShMem->DVD.current_chapter ) sprintf( tmp,"chapter %d",mplShMem->DVD.current_chapter );
|
||||
if ( guiIntfStruct.DVD.current_chapter ) sprintf( tmp,"chapter %d",guiIntfStruct.DVD.current_chapter );
|
||||
else strcat( tmp,"no chapter" );
|
||||
break;
|
||||
#endif
|
||||
@ -38,7 +38,7 @@ inline void TranslateFilename( int c,char * tmp )
|
||||
}
|
||||
if ( c )
|
||||
{
|
||||
for ( i=0;i < strlen( tmp );i++ )
|
||||
for ( i=0;i < (int)strlen( tmp );i++ )
|
||||
{
|
||||
int t=0;
|
||||
if ( c == 1 ) { if ( ( tmp[i] >= 'A' )&&( tmp[i] <= 'Z' ) ) t=32; }
|
||||
@ -51,46 +51,46 @@ inline void TranslateFilename( int c,char * tmp )
|
||||
char * Translate( char * str )
|
||||
{
|
||||
static char trbuf[512];
|
||||
char tmp[128];
|
||||
char tmp[512];
|
||||
int i,c;
|
||||
int t;
|
||||
memset( trbuf,0,512 );
|
||||
memset( tmp,0,128 );
|
||||
for ( c=0,i=0;i < strlen( str );i++ )
|
||||
for ( c=0,i=0;i < (int)strlen( str );i++ )
|
||||
{
|
||||
if ( str[i] != '$' ) { trbuf[c++]=str[i]; trbuf[c]=0; }
|
||||
else
|
||||
{
|
||||
switch ( str[++i] )
|
||||
{
|
||||
case 't': sprintf( tmp,"%02d",mplShMem->Track ); strcat( trbuf,tmp ); break;
|
||||
case 't': sprintf( tmp,"%02d",guiIntfStruct.Track ); strcat( trbuf,tmp ); break;
|
||||
case 'o': TranslateFilename( 0,tmp ); strcat( trbuf,tmp ); break;
|
||||
case 'f': TranslateFilename( 1,tmp ); strcat( trbuf,tmp ); break;
|
||||
case 'F': TranslateFilename( 2,tmp ); strcat( trbuf,tmp ); break;
|
||||
case '6': t=mplShMem->LengthInSec; goto calclengthhhmmss;
|
||||
case '1': t=mplShMem->TimeSec;
|
||||
case '6': t=guiIntfStruct.LengthInSec; goto calclengthhhmmss;
|
||||
case '1': t=guiIntfStruct.TimeSec;
|
||||
calclengthhhmmss:
|
||||
sprintf( tmp,"%02d:%02d:%02d",t/3600,t/60%60,t%60 ); strcat( trbuf,tmp );
|
||||
break;
|
||||
case '7': t=mplShMem->LengthInSec; goto calclengthmmmmss;
|
||||
case '2': t=mplShMem->TimeSec;
|
||||
case '7': t=guiIntfStruct.LengthInSec; goto calclengthmmmmss;
|
||||
case '2': t=guiIntfStruct.TimeSec;
|
||||
calclengthmmmmss:
|
||||
sprintf( tmp,"%04d:%02d",t/60,t%60 ); strcat( trbuf,tmp );
|
||||
break;
|
||||
case '3': sprintf( tmp,"%02d",mplShMem->TimeSec / 3600 ); strcat( trbuf,tmp ); break;
|
||||
case '4': sprintf( tmp,"%02d",( ( mplShMem->TimeSec / 60 ) % 60 ) ); strcat( trbuf,tmp ); break;
|
||||
case '5': sprintf( tmp,"%02d",mplShMem->TimeSec % 60 ); strcat( trbuf,tmp ); break;
|
||||
case '8': sprintf( tmp,"%01d:%02d:%02d",mplShMem->TimeSec / 3600,( mplShMem->TimeSec / 60 ) % 60,mplShMem->TimeSec % 60 ); strcat( trbuf,tmp ); break;
|
||||
case 'v': sprintf( tmp,"%3.2f%%",mplShMem->Volume ); strcat( trbuf,tmp ); break;
|
||||
case 'V': sprintf( tmp,"%3.1f",mplShMem->Volume ); strcat( trbuf,tmp ); break;
|
||||
case 'b': sprintf( tmp,"%3.2f%%",mplShMem->Balance ); strcat( trbuf,tmp ); break;
|
||||
case 'B': sprintf( tmp,"%3.1f",mplShMem->Balance ); strcat( trbuf,tmp ); break;
|
||||
case 'd': sprintf( tmp,"%d",mplShMem->FrameDrop ); strcat( trbuf,tmp ); break;
|
||||
case 's': if ( mplShMem->Playing == 0 ) strcat( trbuf,"s" ); break;
|
||||
case 'l': if ( mplShMem->Playing == 1 ) strcat( trbuf,"p" ); break;
|
||||
case 'e': if ( mplShMem->Playing == 2 ) strcat( trbuf,"e" ); break;
|
||||
case '3': sprintf( tmp,"%02d",guiIntfStruct.TimeSec / 3600 ); strcat( trbuf,tmp ); break;
|
||||
case '4': sprintf( tmp,"%02d",( ( guiIntfStruct.TimeSec / 60 ) % 60 ) ); strcat( trbuf,tmp ); break;
|
||||
case '5': sprintf( tmp,"%02d",guiIntfStruct.TimeSec % 60 ); strcat( trbuf,tmp ); break;
|
||||
case '8': sprintf( tmp,"%01d:%02d:%02d",guiIntfStruct.TimeSec / 3600,( guiIntfStruct.TimeSec / 60 ) % 60,guiIntfStruct.TimeSec % 60 ); strcat( trbuf,tmp ); break;
|
||||
case 'v': sprintf( tmp,"%3.2f%%",guiIntfStruct.Volume ); strcat( trbuf,tmp ); break;
|
||||
case 'V': sprintf( tmp,"%3.1f",guiIntfStruct.Volume ); strcat( trbuf,tmp ); break;
|
||||
case 'b': sprintf( tmp,"%3.2f%%",guiIntfStruct.Balance ); strcat( trbuf,tmp ); break;
|
||||
case 'B': sprintf( tmp,"%3.1f",guiIntfStruct.Balance ); strcat( trbuf,tmp ); break;
|
||||
case 'd': sprintf( tmp,"%d",guiIntfStruct.FrameDrop ); strcat( trbuf,tmp ); break;
|
||||
case 's': if ( guiIntfStruct.Playing == 0 ) strcat( trbuf,"s" ); break;
|
||||
case 'l': if ( guiIntfStruct.Playing == 1 ) strcat( trbuf,"p" ); break;
|
||||
case 'e': if ( guiIntfStruct.Playing == 2 ) strcat( trbuf,"e" ); break;
|
||||
case 'a':
|
||||
switch ( mplShMem->AudioType )
|
||||
switch ( guiIntfStruct.AudioType )
|
||||
{
|
||||
case 0: strcat( trbuf,"n" ); break;
|
||||
case 1: strcat( trbuf,"m" ); break;
|
||||
@ -98,12 +98,12 @@ calclengthmmmmss:
|
||||
}
|
||||
break;
|
||||
case 'T':
|
||||
switch ( mplShMem->StreamType )
|
||||
switch ( guiIntfStruct.StreamType )
|
||||
{
|
||||
case STREAMTYPE_FILE: strcat( trbuf,"f" ); break;
|
||||
case STREAMTYPE_VCD: strcat( trbuf,"v" ); break;
|
||||
case STREAMTYPE_STREAM: strcat( trbuf,"u" ); break;
|
||||
#ifdef USE_DVDREAD
|
||||
#ifdef USE_DVDREAD
|
||||
case STREAMTYPE_DVD: strcat( trbuf,"d" ); break;
|
||||
#endif
|
||||
default: strcat( trbuf," " ); break;
|
||||
@ -131,8 +131,8 @@ inline void PutImage( txSample * bf,int x,int y,int max,int ofs )
|
||||
buf=(unsigned long *)mplDrawBuffer;
|
||||
drw=(unsigned long *)bf->Image;
|
||||
|
||||
for ( iy=y;iy < y+bf->Height / max;iy++ )
|
||||
for ( ix=x;ix < x+bf->Width;ix++ )
|
||||
for ( iy=y;iy < (int)(y+bf->Height / max);iy++ )
|
||||
for ( ix=x;ix < (int)(x+bf->Width);ix++ )
|
||||
{
|
||||
tmp=drw[i++];
|
||||
if ( tmp != 0x00ff00ff )
|
||||
@ -150,8 +150,8 @@ void mplMainDraw( wsParamDisplay )
|
||||
!mainVisible ) return;
|
||||
// !appMPlayer.mainWindow.Mapped ) return;
|
||||
|
||||
btnModify( evSetMoviePosition,mplShMem->Position );
|
||||
btnModify( evSetVolume,mplShMem->Volume );
|
||||
btnModify( evSetMoviePosition,guiIntfStruct.Position );
|
||||
btnModify( evSetVolume,guiIntfStruct.Volume );
|
||||
|
||||
if ( mplMainRender )
|
||||
{
|
||||
@ -176,7 +176,7 @@ void mplMainDraw( wsParamDisplay )
|
||||
goto drawrenderedtext;
|
||||
case itDLabel:
|
||||
image=fntRender( item->fontid,mplTimer%item->width,item->width,"%s",Translate( item->label ) );
|
||||
// image=fntRender( item->fontid,( mplRedrawTimer / 10 )%item->width,item->width,"%s",Translate( item->label ) );
|
||||
//// image=fntRender( item->fontid,( mplRedrawTimer / 10 )%item->width,item->width,"%s",Translate( item->label ) );
|
||||
drawrenderedtext:
|
||||
PutImage( image,item->x,item->y,1,0 );
|
||||
if ( image )
|
||||
@ -200,7 +200,7 @@ extern void exit_player(char* how);
|
||||
extern int audio_id;
|
||||
extern int dvdsub_id;
|
||||
|
||||
void mplMsgHandle( int msg,float param )
|
||||
void mplEventHandling( int msg,float param )
|
||||
{
|
||||
int j;
|
||||
|
||||
@ -218,69 +218,64 @@ void mplMsgHandle( int msg,float param )
|
||||
dvd_chapter=1;
|
||||
dvd_angle=1;
|
||||
play_dvd_2:
|
||||
mplShMem->StreamType=STREAMTYPE_DVD;
|
||||
guiIntfStruct.StreamType=STREAMTYPE_DVD;
|
||||
#endif
|
||||
case evPlay:
|
||||
case evPlaySwitchToPause:
|
||||
// btnModify( evPlaySwitchToPause,btnDisabled );
|
||||
// btnModify( evPauseSwitchToPlay,btnReleased );
|
||||
if ( ( msg == evPlaySwitchToPause )&( mplShMem->Playing == 1 ) ) goto NoPause;
|
||||
mplMainAutoPlay=0;
|
||||
if ( ( msg == evPlaySwitchToPause )&( guiIntfStruct.Playing == 1 ) ) goto NoPause;
|
||||
mplMainRender=1;
|
||||
|
||||
switch ( mplShMem->StreamType )
|
||||
switch ( guiIntfStruct.StreamType )
|
||||
{
|
||||
case STREAMTYPE_STREAM:
|
||||
case STREAMTYPE_STREAM:
|
||||
case STREAMTYPE_VCD:
|
||||
case STREAMTYPE_FILE:
|
||||
dvd_title=0;
|
||||
break;
|
||||
case STREAMTYPE_FILE:
|
||||
dvd_title=0;
|
||||
break;
|
||||
#ifdef USE_DVDREAD
|
||||
case STREAMTYPE_DVD:
|
||||
strcpy( mplShMem->Filename,"/dev/dvd" );
|
||||
break;
|
||||
case STREAMTYPE_DVD:
|
||||
guiSetFilename( guiIntfStruct.Filename,"/dev/dvd" );
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
mplPlay();
|
||||
mplState();
|
||||
mplState();
|
||||
break;
|
||||
case evSetDVDSubtitle:
|
||||
#ifdef USE_DVDREAD
|
||||
case evSetDVDSubtitle:
|
||||
dvdsub_id=(int)param;
|
||||
dvd_title=mplShMem->DVD.current_title;
|
||||
dvd_angle=mplShMem->DVD.current_angle;
|
||||
dvd_chapter=mplShMem->DVD.current_chapter;
|
||||
mplShMem->DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
#endif
|
||||
dvd_title=guiIntfStruct.DVD.current_title;
|
||||
dvd_angle=guiIntfStruct.DVD.current_angle;
|
||||
dvd_chapter=guiIntfStruct.DVD.current_chapter;
|
||||
guiIntfStruct.DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
break;
|
||||
case evSetDVDAudio:
|
||||
#ifdef USE_DVDREAD
|
||||
audio_id=(int)param;
|
||||
dvd_title=mplShMem->DVD.current_title;
|
||||
dvd_angle=mplShMem->DVD.current_angle;
|
||||
dvd_chapter=mplShMem->DVD.current_chapter;
|
||||
mplShMem->DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
#endif
|
||||
dvd_title=guiIntfStruct.DVD.current_title;
|
||||
dvd_angle=guiIntfStruct.DVD.current_angle;
|
||||
dvd_chapter=guiIntfStruct.DVD.current_chapter;
|
||||
guiIntfStruct.DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
break;
|
||||
case evSetDVDChapter:
|
||||
#ifdef USE_DVDREAD
|
||||
dvd_title=mplShMem->DVD.current_title;
|
||||
dvd_angle=mplShMem->DVD.current_angle;
|
||||
dvd_title=guiIntfStruct.DVD.current_title;
|
||||
dvd_angle=guiIntfStruct.DVD.current_angle;
|
||||
dvd_chapter=(int)param;
|
||||
mplShMem->DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
#endif
|
||||
guiIntfStruct.DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
break;
|
||||
case evSetDVDTitle:
|
||||
#ifdef USE_DVDREAD
|
||||
dvd_title=(int)param;
|
||||
dvd_chapter=1;
|
||||
dvd_angle=1;
|
||||
mplShMem->DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
#endif
|
||||
dvd_chapter=1;
|
||||
dvd_angle=1;
|
||||
guiIntfStruct.DVDChanged=1;
|
||||
goto play_dvd_2;
|
||||
break;
|
||||
#endif
|
||||
|
||||
case evPause:
|
||||
case evPauseSwitchToPlay:
|
||||
@ -292,42 +287,38 @@ NoPause:
|
||||
break;
|
||||
|
||||
case evStop:
|
||||
IZE("evStop");
|
||||
// btnModify( evPlaySwitchToPause,btnReleased );
|
||||
// btnModify( evPauseSwitchToPlay,btnDisabled );
|
||||
mplMainRender=1;
|
||||
mplStop();
|
||||
mplState();
|
||||
mplState();
|
||||
break;
|
||||
|
||||
case evLoadPlay:
|
||||
mplMainAutoPlay=1;
|
||||
case evLoad:
|
||||
mplMainRender=1;
|
||||
gtkSendMessage( evLoad );
|
||||
gtkShow( evLoad,NULL );
|
||||
break;
|
||||
case evLoadSubtitle:
|
||||
mplMainRender=1;
|
||||
gtkSendMessage( evLoadSubtitle );
|
||||
gtkShow( evLoadSubtitle,NULL );
|
||||
break;
|
||||
case evPrev:
|
||||
IZE("evPrev");
|
||||
mplMainRender=1;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 1,"[mw.h] previous stream ...\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[mw.h] previous stream ...\n" );
|
||||
break;
|
||||
case evNext:
|
||||
IZE("evNext");
|
||||
mplMainRender=1;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 1,"[mw.h] next stream ...\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[mw.h] next stream ...\n" );
|
||||
break;
|
||||
|
||||
case evPlayList:
|
||||
IZE("evPlayList");
|
||||
mplMainRender=1;
|
||||
gtkShow( evPlayList,NULL );
|
||||
#warning disabled old gtk code
|
||||
#if 0
|
||||
if ( gtkVisiblePlayList )
|
||||
{
|
||||
btnModify( evPlayList,btnReleased );
|
||||
@ -341,11 +332,12 @@ NoPause:
|
||||
btnModify( evPlayList,btnPressed );
|
||||
gtkVisiblePlayList=1;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
case evSkinBrowser: gtkSendMessage( evSkinBrowser ); break;
|
||||
case evAbout: gtkSendMessage( evAbout ); break;
|
||||
case evPreferences: gtkSendMessage( evPreferences ); break;
|
||||
case evSkinBrowser: gtkShow( evSkinBrowser,skinName ); break;
|
||||
case evAbout: gtkShow( evAbout,NULL ); break;
|
||||
case evPreferences: gtkShow( evPreferences,NULL ); break;
|
||||
|
||||
case evForward1min: mplRelSeek( 60 ); break;
|
||||
case evBackward1min: mplRelSeek( -60 ); break;
|
||||
@ -355,9 +347,9 @@ NoPause:
|
||||
|
||||
case evIncVolume: vo_x11_putkey( wsGrayMul ); break;
|
||||
case evDecVolume: vo_x11_putkey( wsGrayDiv ); break;
|
||||
case evMute: mplShMem->Mute=1; break;
|
||||
case evMute: guiIntfStruct.Mute=1; break;
|
||||
case evSetVolume:
|
||||
case evSetBalance: mplShMem->VolumeChanged=1; break;
|
||||
case evSetBalance: guiIntfStruct.VolumeChanged=1; break;
|
||||
|
||||
|
||||
case evIconify:
|
||||
@ -368,25 +360,25 @@ NoPause:
|
||||
}
|
||||
break;
|
||||
case evNormalSize:
|
||||
if ( mplShMem->Playing )
|
||||
if ( guiIntfStruct.Playing )
|
||||
{
|
||||
appMPlayer.subWindow.isFullScreen=True;
|
||||
appMPlayer.subWindow.OldX=( wsMaxX - moviewidth ) / 2;
|
||||
appMPlayer.subWindow.OldY=( wsMaxY - movieheight ) / 2;
|
||||
appMPlayer.subWindow.OldWidth=moviewidth; appMPlayer.subWindow.OldHeight=movieheight;
|
||||
appMPlayer.subWindow.OldX=( wsMaxX - guiIntfStruct.MovieWidth ) / 2;
|
||||
appMPlayer.subWindow.OldY=( wsMaxY - guiIntfStruct.MovieHeight ) / 2;
|
||||
appMPlayer.subWindow.OldWidth=guiIntfStruct.MovieWidth; appMPlayer.subWindow.OldHeight=guiIntfStruct.MovieHeight;
|
||||
wsFullScreen( &appMPlayer.subWindow );
|
||||
mplResize( appMPlayer.subWindow.X,appMPlayer.subWindow.Y,moviewidth,movieheight );
|
||||
mplResize( appMPlayer.subWindow.X,appMPlayer.subWindow.Y,guiIntfStruct.MovieWidth,guiIntfStruct.MovieHeight );
|
||||
}
|
||||
break;
|
||||
case evDoubleSize:
|
||||
if ( mplShMem->Playing )
|
||||
if ( guiIntfStruct.Playing )
|
||||
{
|
||||
appMPlayer.subWindow.isFullScreen=True;
|
||||
appMPlayer.subWindow.OldX=( wsMaxX - moviewidth * 2 ) / 2;
|
||||
appMPlayer.subWindow.OldY=( wsMaxY - movieheight * 2 ) / 2;
|
||||
appMPlayer.subWindow.OldWidth=moviewidth * 2; appMPlayer.subWindow.OldHeight=movieheight * 2;
|
||||
appMPlayer.subWindow.OldX=( wsMaxX - guiIntfStruct.MovieWidth * 2 ) / 2;
|
||||
appMPlayer.subWindow.OldY=( wsMaxY - guiIntfStruct.MovieHeight * 2 ) / 2;
|
||||
appMPlayer.subWindow.OldWidth=guiIntfStruct.MovieWidth * 2; appMPlayer.subWindow.OldHeight=guiIntfStruct.MovieHeight * 2;
|
||||
wsFullScreen( &appMPlayer.subWindow );
|
||||
mplResize( appMPlayer.subWindow.X,appMPlayer.subWindow.Y,moviewidth,movieheight );
|
||||
mplResize( appMPlayer.subWindow.X,appMPlayer.subWindow.Y,guiIntfStruct.MovieWidth,guiIntfStruct.MovieHeight );
|
||||
}
|
||||
break;
|
||||
case evFullScreen:
|
||||
@ -410,30 +402,15 @@ NoPause:
|
||||
case evRedraw:
|
||||
mplMainRender=1;
|
||||
wsPostRedisplay( &appMPlayer.mainWindow );
|
||||
// if ( !mplShMem->Playing )
|
||||
// wsPostRedisplay( &appMPlayer.subWindow );
|
||||
XFlush( wsDisplay );
|
||||
mplRedrawTimer=mplRedrawTimerConst;
|
||||
break;
|
||||
case evGeneralTimer:
|
||||
if ( mplMainAutoPlay )
|
||||
{
|
||||
mplMainRender=1;
|
||||
mplMainAutoPlay=0;
|
||||
mplPlay();
|
||||
}
|
||||
if ( mplMiddleMenu )
|
||||
{
|
||||
mplMiddleMenu=0;
|
||||
mplMsgHandle( gtkShMem->popupmenu,gtkShMem->popupmenuparam );
|
||||
}
|
||||
break;
|
||||
// --- system events
|
||||
case evNone:
|
||||
dbprintf( 1,"[mw] event none received.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[mw] event none received.\n" );
|
||||
break;
|
||||
default:
|
||||
dbprintf( 1,"[mw] unknown event received ( %d,%.2f ).\n",msg,param );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[mw] unknown event received ( %d,%.2f ).\n",msg,param );
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -503,24 +480,21 @@ void mplMainMouseHandle( int Button,int X,int Y,int RX,int RY )
|
||||
switch ( item->msg )
|
||||
{
|
||||
case evSetVolume:
|
||||
mplShMem->VolumeChanged=1;
|
||||
mplShMem->Volume=item->value;
|
||||
guiIntfStruct.VolumeChanged=1;
|
||||
guiIntfStruct.Volume=item->value;
|
||||
break;
|
||||
}
|
||||
value=item->value;
|
||||
break;
|
||||
}
|
||||
mplMsgHandle( item->msg,value );
|
||||
mplEventHandling( item->msg,value );
|
||||
mplMainRender=1;
|
||||
itemtype=0;
|
||||
break;
|
||||
|
||||
|
||||
case wsPMMouseButton:
|
||||
#ifdef USE_DVDREAD
|
||||
memcpy( >kShMem->DVD,&mplShMem->DVD,sizeof( mplDVDStruct ) );
|
||||
#endif
|
||||
gtkSendMessage( evShowPopUpMenu );
|
||||
break;
|
||||
gtkShow( evShowPopUpMenu,NULL );
|
||||
break;
|
||||
|
||||
// --- rolled mouse ... de szar :)))
|
||||
case wsP5MouseButton: value=-2.5f; goto rollerhandled;
|
||||
@ -535,11 +509,11 @@ rollerhandled:
|
||||
switch ( item->msg )
|
||||
{
|
||||
case evSetVolume:
|
||||
mplShMem->VolumeChanged=1;
|
||||
mplShMem->Volume=item->value;
|
||||
guiIntfStruct.VolumeChanged=1;
|
||||
guiIntfStruct.Volume=item->value;
|
||||
break;
|
||||
}
|
||||
mplMsgHandle( item->msg,item->value );
|
||||
mplEventHandling( item->msg,item->value );
|
||||
mplMainRender=1;
|
||||
}
|
||||
break;
|
||||
@ -567,11 +541,11 @@ potihandled:
|
||||
switch ( item->msg )
|
||||
{
|
||||
case evSetVolume:
|
||||
mplShMem->VolumeChanged=1;
|
||||
mplShMem->Volume=item->value;
|
||||
guiIntfStruct.VolumeChanged=1;
|
||||
guiIntfStruct.Volume=item->value;
|
||||
break;
|
||||
}
|
||||
mplMsgHandle( item->msg,item->value );
|
||||
mplEventHandling( item->msg,item->value );
|
||||
mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow );
|
||||
break;
|
||||
}
|
||||
@ -615,7 +589,7 @@ void mplMainKeyHandle( int State,int Type,int Key )
|
||||
case wsS: msg=evStop; break;
|
||||
case wsp:
|
||||
case wsP: msg=evPlayList; break;
|
||||
|
||||
|
||||
case wsXF86LowerVolume: msg=evDecVolume; break;
|
||||
case wsXF86RaiseVolume: msg=evIncVolume; break;
|
||||
case wsXF86Mute: msg=evMute; break;
|
||||
@ -629,7 +603,7 @@ void mplMainKeyHandle( int State,int Type,int Key )
|
||||
}
|
||||
if ( msg != evNone )
|
||||
{
|
||||
mplMsgHandle( msg,0 );
|
||||
mplEventHandling( msg,0 );
|
||||
// mplMainRender=1;
|
||||
// wsPostRedisplay( &appMPlayer.mainWindow );
|
||||
}
|
||||
|
@ -5,30 +5,23 @@
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
|
||||
int mplParent = 1;
|
||||
|
||||
int moviex,moviey,moviewidth,movieheight;
|
||||
|
||||
#include "../app.h"
|
||||
|
||||
#include "../wm/ws.h"
|
||||
#include "../wm/wskeys.h"
|
||||
#include "../wm/widget.h"
|
||||
|
||||
#include "../../config.h"
|
||||
#include "../../help_mp.h"
|
||||
#include "../../libvo/x11_common.h"
|
||||
|
||||
#include "../app.h"
|
||||
|
||||
#include "../wm/wskeys.h"
|
||||
#include "../wm/widget.h"
|
||||
#include "../interface.h"
|
||||
|
||||
#include "widgets.h"
|
||||
#include "./mplayer.h"
|
||||
#include "psignal.h"
|
||||
#include "play.h"
|
||||
|
||||
#include "../skin/skin.h"
|
||||
#include "../error.h"
|
||||
|
||||
mplCommStruct * mplShMem;
|
||||
char * Filename = NULL;
|
||||
#include "../skin/font.h"
|
||||
|
||||
extern float rel_seek_secs;
|
||||
extern int abs_seek_pos;
|
||||
@ -53,7 +46,7 @@ void mplFullScreen( void )
|
||||
wsWindowDecoration( &appMPlayer.subWindow,0 );
|
||||
appMPlayer.subWindow.isFullScreen=1;
|
||||
}
|
||||
if ( mplShMem->Playing ) wsSetBackgroundRGB( &appMPlayer.subWindow,0,0,0 );
|
||||
if ( guiIntfStruct.Playing ) wsSetBackgroundRGB( &appMPlayer.subWindow,0,0,0 );
|
||||
else wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.subR,appMPlayer.subG,appMPlayer.subB );
|
||||
wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
|
||||
mplResize( 0,0,appMPlayer.subWindow.Width,appMPlayer.subWindow.Height );
|
||||
@ -63,11 +56,11 @@ extern int mplSubRender;
|
||||
|
||||
void mplStop()
|
||||
{
|
||||
mplShMem->Playing=0;
|
||||
mplShMem->TimeSec=0;
|
||||
mplShMem->Position=0;
|
||||
mplShMem->AudioType=0;
|
||||
// if ( !mplShMem->Playing ) return;
|
||||
guiIntfStruct.Playing=0;
|
||||
guiIntfStruct.TimeSec=0;
|
||||
guiIntfStruct.Position=0;
|
||||
guiIntfStruct.AudioType=0;
|
||||
// if ( !guiIntfStruct.Playing ) return;
|
||||
if ( !appMPlayer.subWindow.isFullScreen )
|
||||
{
|
||||
wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height );
|
||||
@ -81,30 +74,31 @@ void mplStop()
|
||||
|
||||
void mplPlay( void )
|
||||
{
|
||||
if ( ( mplShMem->Filename[0] == 0 )||
|
||||
( mplShMem->Playing == 1 ) ) return;
|
||||
if ( mplShMem->Playing == 2 ) { mplPause(); return; }
|
||||
mplShMem->Playing=1;
|
||||
if ( ( !guiIntfStruct.Filename )||
|
||||
( guiIntfStruct.Filename[0] == 0 )||
|
||||
( guiIntfStruct.Playing == 1 ) ) return;
|
||||
if ( guiIntfStruct.Playing == 2 ) { mplPause(); return; }
|
||||
guiIntfStruct.Playing=1;
|
||||
mplSubRender=0;
|
||||
wsSetBackgroundRGB( &appMPlayer.subWindow,0,0,0 );
|
||||
wsClearWindow( appMPlayer.subWindow );
|
||||
wsClearWindow( appMPlayer.subWindow );
|
||||
wsPostRedisplay( &appMPlayer.subWindow );
|
||||
}
|
||||
|
||||
void mplPause( void )
|
||||
{
|
||||
switch( mplShMem->Playing )
|
||||
switch( guiIntfStruct.Playing )
|
||||
{
|
||||
case 1: // playing
|
||||
mplShMem->Playing=2;
|
||||
// btnModify( evPlaySwitchToPause,btnReleased );
|
||||
// btnModify( evPauseSwitchToPlay,btnDisabled );
|
||||
break;
|
||||
guiIntfStruct.Playing=2;
|
||||
// btnModify( evPlaySwitchToPause,btnReleased );
|
||||
// btnModify( evPauseSwitchToPlay,btnDisabled );
|
||||
break;
|
||||
case 2: // paused
|
||||
mplShMem->Playing=1;
|
||||
// btnModify( evPlaySwitchToPause,btnDisabled );
|
||||
// btnModify( evPauseSwitchToPlay,btnReleased );
|
||||
break;
|
||||
guiIntfStruct.Playing=1;
|
||||
// btnModify( evPlaySwitchToPause,btnDisabled );
|
||||
// btnModify( evPauseSwitchToPlay,btnReleased );
|
||||
break;
|
||||
}
|
||||
mplState();
|
||||
mplSubRender=0;
|
||||
@ -112,12 +106,12 @@ void mplPause( void )
|
||||
|
||||
void mplState( void )
|
||||
{
|
||||
if ( ( mplShMem->Playing == 0 )||( mplShMem->Playing == 2 ) )
|
||||
if ( ( guiIntfStruct.Playing == 0 )||( guiIntfStruct.Playing == 2 ) )
|
||||
{
|
||||
btnModify( evPlaySwitchToPause,btnReleased );
|
||||
btnModify( evPauseSwitchToPlay,btnDisabled );
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
btnModify( evPlaySwitchToPause,btnDisabled );
|
||||
btnModify( evPauseSwitchToPlay,btnReleased );
|
||||
@ -130,19 +124,13 @@ void mplResize( unsigned int X,unsigned int Y,unsigned int width,unsigned int he
|
||||
|
||||
void mplMPlayerInit( int argc,char* argv[], char *envp[] )
|
||||
{
|
||||
struct sigaction sa;
|
||||
|
||||
mplShMem=calloc( 1,sizeof( mplCommStruct ) );
|
||||
mplShMem->Balance=50.0f;
|
||||
mplShMem->StreamType=-1;
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_handler = mplMainSigHandler;
|
||||
sigaction( SIGTYPE,&sa,NULL );
|
||||
guiIntfStruct.Balance=50.0f;
|
||||
guiIntfStruct.StreamType=-1;
|
||||
}
|
||||
|
||||
float mplGetPosition( void )
|
||||
{ // return 0.0 ... 100.0
|
||||
return mplShMem->Position;
|
||||
return guiIntfStruct.Position;
|
||||
}
|
||||
|
||||
void mplRelSeek( float s )
|
||||
@ -157,27 +145,22 @@ void mplAbsSeek( float s )
|
||||
|
||||
listItems tmpList;
|
||||
|
||||
void ChangeSkin( void )
|
||||
void ChangeSkin( char * name )
|
||||
{
|
||||
int ret;
|
||||
if ( !strcmp( skinName,gtkShMem->sb.name ) ) return;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 1,"[psignal] skin: %s\n",gtkShMem->sb.name );
|
||||
#endif
|
||||
|
||||
// if ( !strcmp( skinName,name ) ) return;
|
||||
mainVisible=0;
|
||||
|
||||
appInitStruct( &tmpList );
|
||||
skinAppMPlayer=&tmpList;
|
||||
fntFreeFont();
|
||||
ret=skinRead( gtkShMem->sb.name );
|
||||
ret=skinRead( name );
|
||||
|
||||
appInitStruct( &tmpList );
|
||||
skinAppMPlayer=&appMPlayer;
|
||||
appInitStruct( &appMPlayer );
|
||||
if ( !ret ) strcpy( skinName,gtkShMem->sb.name );
|
||||
skinRead( skinName );
|
||||
if ( ret )
|
||||
if ( ret ) name=skinName;
|
||||
if ( skinRead( name ) )
|
||||
{
|
||||
mainVisible=1;
|
||||
return;
|
||||
@ -187,21 +170,21 @@ void ChangeSkin( void )
|
||||
{
|
||||
if ( mplMenuDrawBuffer ) free( mplMenuDrawBuffer );
|
||||
if ( ( mplMenuDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.menuBase.Bitmap.ImageSize ) ) == NULL )
|
||||
{ message( False,MSGTR_NEMDB ); return; }
|
||||
{ mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_NEMDB ); return; }
|
||||
wsResizeWindow( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height );
|
||||
wsResizeImage( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height );
|
||||
}
|
||||
|
||||
if ( appMPlayer.sub.Bitmap.Image ) wsResizeImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height );
|
||||
if ( ( !appMPlayer.subWindow.isFullScreen )&&( !mplShMem->Playing ) )
|
||||
if ( ( !appMPlayer.subWindow.isFullScreen )&&( !guiIntfStruct.Playing ) )
|
||||
{
|
||||
wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height );
|
||||
wsMoveWindow( &appMPlayer.subWindow,True,appMPlayer.sub.x,appMPlayer.sub.y );
|
||||
}
|
||||
}
|
||||
if ( appMPlayer.sub.Bitmap.Image ) wsConvert( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Image,appMPlayer.sub.Bitmap.ImageSize );
|
||||
if ( !mplShMem->Playing )
|
||||
if ( !guiIntfStruct.Playing )
|
||||
{
|
||||
mplSubRender=1;
|
||||
mplSubRender=1;
|
||||
wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.subR,appMPlayer.subG,appMPlayer.subB );
|
||||
wsClearWindow( appMPlayer.subWindow );
|
||||
wsPostRedisplay( &appMPlayer.subWindow );
|
||||
@ -209,7 +192,7 @@ void ChangeSkin( void )
|
||||
|
||||
if ( mplDrawBuffer ) free( mplDrawBuffer );
|
||||
if ( ( mplDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.main.Bitmap.ImageSize ) ) == NULL )
|
||||
{ message( False,MSGTR_NEMDB ); return; }
|
||||
{ mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_NEMDB ); return; }
|
||||
wsVisibleWindow( &appMPlayer.mainWindow,wsHideWindow );
|
||||
wsResizeWindow( &appMPlayer.mainWindow,appMPlayer.main.width,appMPlayer.main.height );
|
||||
wsMoveWindow( &appMPlayer.mainWindow,True,appMPlayer.main.x,appMPlayer.main.y );
|
||||
@ -218,10 +201,10 @@ void ChangeSkin( void )
|
||||
wsWindowDecoration( &appMPlayer.mainWindow,appMPlayer.mainDecoration );
|
||||
mainVisible=1; mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow );
|
||||
wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow );
|
||||
|
||||
btnModify( evSetVolume,mplShMem->Volume );
|
||||
btnModify( evSetBalance,mplShMem->Balance );
|
||||
btnModify( evSetMoviePosition,mplShMem->Position );
|
||||
|
||||
btnModify( evSetVolume,guiIntfStruct.Volume );
|
||||
btnModify( evSetBalance,guiIntfStruct.Balance );
|
||||
btnModify( evSetMoviePosition,guiIntfStruct.Position );
|
||||
btnModify( evFullScreen,!appMPlayer.subWindow.isFullScreen );
|
||||
}
|
||||
|
||||
@ -231,10 +214,12 @@ void mplResizeToMovieSize( unsigned int width,unsigned int height )
|
||||
{
|
||||
wsResizeWindow( &appMPlayer.subWindow,width,height );
|
||||
wsMoveWindow( &appMPlayer.subWindow,True,appMPlayer.sub.x,appMPlayer.sub.y );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void mplSetFileName( char * fname )
|
||||
{
|
||||
if ( ( fname )&&( gtkShMem ) ) strcpy( gtkShMem->fs.filename,fname );
|
||||
if ( !fname ) return;
|
||||
if ( guiIntfStruct.Filename ) free( guiIntfStruct.Filename );
|
||||
guiIntfStruct.Filename=strdup( fname );
|
||||
}
|
||||
|
@ -4,99 +4,8 @@
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#include "./psignal.h"
|
||||
#include "./mplayer.h"
|
||||
|
||||
#ifdef USE_DVDREAD
|
||||
#include "../../libmpdemux/stream.h"
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
} mplResizeStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int signal;
|
||||
char module[512];
|
||||
} mplUnknowErrorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int seek;
|
||||
int format;
|
||||
int width;
|
||||
int height;
|
||||
char codecdll[128];
|
||||
} mplVideoStruct;
|
||||
|
||||
#ifdef USE_DVDREAD
|
||||
typedef struct
|
||||
{
|
||||
int titles;
|
||||
int chapters;
|
||||
int angles;
|
||||
int current_chapter;
|
||||
int current_title;
|
||||
int current_angle;
|
||||
int nr_of_audio_channels;
|
||||
stream_language_t audio_streams[32];
|
||||
int nr_of_subtitles;
|
||||
stream_language_t subtitles[32];
|
||||
} mplDVDStruct;
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int message;
|
||||
mplResizeStruct resize;
|
||||
mplVideoStruct videodata;
|
||||
mplUnknowErrorStruct error;
|
||||
#ifdef USE_DVDREAD
|
||||
mplDVDStruct DVD;
|
||||
int DVDChanged;
|
||||
#endif
|
||||
|
||||
int Playing;
|
||||
float Position;
|
||||
|
||||
float Volume;
|
||||
int VolumeChanged;
|
||||
float Balance;
|
||||
int Mute;
|
||||
|
||||
int Track;
|
||||
int AudioType;
|
||||
int StreamType;
|
||||
int TimeSec;
|
||||
int LengthInSec;
|
||||
int FrameDrop;
|
||||
|
||||
char Filename[4096];
|
||||
int FilenameChanged;
|
||||
|
||||
char Subtitlename[4096];
|
||||
int SubtitleChanged;
|
||||
|
||||
int SkinChange;
|
||||
} mplCommStruct;
|
||||
|
||||
extern mplCommStruct * mplShMem;
|
||||
extern char * Filename;
|
||||
|
||||
extern int mplParent;
|
||||
|
||||
extern int moviex;
|
||||
extern int moviey;
|
||||
extern int moviewidth;
|
||||
extern int movieheight;
|
||||
|
||||
extern mplCommStruct * mplShMem;
|
||||
|
||||
extern void mplMPlayerInit( int argc,char* argv[], char *envp[] );
|
||||
|
||||
extern void mplStop();
|
||||
@ -118,7 +27,7 @@ extern void mplPlayFork( void );
|
||||
extern void mplSigHandler( int s );
|
||||
extern void mplPlayerThread( void );
|
||||
|
||||
extern void ChangeSkin( void );
|
||||
extern void ChangeSkin( char * name );
|
||||
extern void EventHandling( void );
|
||||
|
||||
extern void mplSetFileName( char * fname );
|
||||
|
@ -1,234 +0,0 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "widgets.h"
|
||||
#include "gtk/menu.h"
|
||||
#include "play.h"
|
||||
#include "gtk/fs.h"
|
||||
|
||||
#include "../app.h"
|
||||
|
||||
#include "../../config.h"
|
||||
#include "../../help_mp.h"
|
||||
#include "../../libvo/x11_common.h"
|
||||
#include "../../libmpdemux/stream.h"
|
||||
|
||||
#include "../skin/skin.h"
|
||||
#include "../wm/ws.h"
|
||||
#include "../error.h"
|
||||
|
||||
#include "./mplayer.h"
|
||||
|
||||
#define gtkShow( w ) gtkShMem->vs.window=w; gtkSendMessage( evShowWindow );
|
||||
|
||||
pid_t mplMPlayerPID = 0;
|
||||
pid_t mplParentPID = 0;
|
||||
|
||||
pid_t gtkPID = 0;
|
||||
|
||||
int mplCriticalError = 0;
|
||||
int gtkIsOk = 0;
|
||||
|
||||
void mplErrorHandler( int critical,const char * format, ... )
|
||||
{
|
||||
char * p;
|
||||
va_list ap;
|
||||
int n;
|
||||
|
||||
if ( (p=(char *)malloc( 512 ) ) == NULL ) return;
|
||||
va_start( ap,format );
|
||||
n=vsnprintf( p,512,format,ap );
|
||||
va_end( ap );
|
||||
mplCriticalError=critical;
|
||||
gtkMessageBox( GTK_MB_ERROR,p );
|
||||
}
|
||||
|
||||
void gtkSigHandler( int s )
|
||||
{
|
||||
if ( s != SIGTYPE ) return;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 5,"[psignal] gtk sig handler msg: %d\n",gtkShMem->message );
|
||||
#endif
|
||||
switch ( gtkShMem->message )
|
||||
{
|
||||
case evHideWindow:
|
||||
switch ( gtkShMem->vs.window )
|
||||
{
|
||||
case evPlayList: gtk_widget_hide( PlayList ); gtkVisiblePlayList=0; break;
|
||||
case evSkinBrowser: gtk_widget_hide( SkinBrowser ); gtkVisibleSkinBrowser=0; break;
|
||||
case evLoad: gtk_widget_hide( FileSelect ); gtkVisibleFileSelect=0; break;
|
||||
}
|
||||
break;
|
||||
case evSkinBrowser:
|
||||
if ( gtkVisibleSkinBrowser ) gtk_widget_hide( SkinBrowser );
|
||||
gtkClearList( SkinList );
|
||||
if ( gtkFillSkinList( sbMPlayerPrefixDir )&>kFillSkinList( sbMPlayerDirInHome ) )
|
||||
{
|
||||
gtkSetDefaultToCList( SkinList,skinName );
|
||||
gtk_widget_show( SkinBrowser );
|
||||
gtkVisibleSkinBrowser=1;
|
||||
gtkShow( evSkinBrowser );
|
||||
}
|
||||
break;
|
||||
case evPreferences:
|
||||
if ( gtkVisibleOptions ) gtk_widget_hide( Options );
|
||||
gtk_widget_show( Options );
|
||||
gtkVisibleOptions=1;
|
||||
break;
|
||||
case evPlayList:
|
||||
if ( gtkVisiblePlayList ) gtk_widget_hide( PlayList );
|
||||
gtk_widget_show( PlayList );
|
||||
gtkVisiblePlayList=1;
|
||||
gtkShow( evPlayList );
|
||||
break;
|
||||
case evLoad:
|
||||
ShowFileSelect( fsVideoSelector );
|
||||
#if 0
|
||||
if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect );
|
||||
gtk_widget_show( FileSelect );
|
||||
gtkVisibleFileSelect=1;
|
||||
gtkShow( evPlay );
|
||||
#endif
|
||||
break;
|
||||
case evFirstLoad:
|
||||
ShowFileSelect( fsVideoSelector );
|
||||
#if 0
|
||||
if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect );
|
||||
gtk_widget_show( FileSelect );
|
||||
gtkVisibleFileSelect=1;
|
||||
gtkShow( evFirstLoad );
|
||||
#endif
|
||||
break;
|
||||
case evLoadSubtitle:
|
||||
ShowFileSelect( fsSubtitleSelector );
|
||||
// gtkShow( evPlay );
|
||||
break;
|
||||
case evMessageBox:
|
||||
gtk_label_set_text( GTK_LABEL( gtkMessageBoxText ),gtkShMem->mb.str );
|
||||
if( gtkVisibleMessageBox ) gtk_widget_hide( MessageBox );
|
||||
switch( gtkShMem->mb.type)
|
||||
{
|
||||
case GTK_MB_FATAL:
|
||||
gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_FatalError );
|
||||
gtk_widget_hide( WarningPixmap );
|
||||
gtk_widget_show( ErrorPixmap );
|
||||
break;
|
||||
case GTK_MB_ERROR:
|
||||
gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_Error );
|
||||
gtk_widget_hide( WarningPixmap );
|
||||
gtk_widget_show( ErrorPixmap );
|
||||
break;
|
||||
case GTK_MB_WARNING:
|
||||
gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_Warning );
|
||||
gtk_widget_show( WarningPixmap );
|
||||
gtk_widget_hide( ErrorPixmap );
|
||||
break;
|
||||
}
|
||||
gtk_widget_show( MessageBox );
|
||||
gtkVisibleMessageBox=1;
|
||||
break;
|
||||
case evAbout:
|
||||
if ( gtkVisibleAboutBox ) gtk_widget_hide( AboutBox );
|
||||
gtk_widget_show( AboutBox );
|
||||
gtkVisibleAboutBox=1;
|
||||
break;
|
||||
case evExit:
|
||||
gtk_main_quit();
|
||||
break;
|
||||
case evShowPopUpMenu:
|
||||
gtkShMem->popupmenu=evNone; gtkShMem->popupmenuparam=0;
|
||||
if ( gtkShMem->visiblepopupmenu ) gtk_widget_hide_on_delete( PopUpMenu );
|
||||
PopUpMenu=create_PopUpMenu();
|
||||
gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 );
|
||||
gtkShMem->visiblepopupmenu=1;
|
||||
break;
|
||||
case evHidePopUpMenu:
|
||||
if ( gtkShMem->visiblepopupmenu ) gtk_widget_hide_on_delete( PopUpMenu );
|
||||
gtkShMem->visiblepopupmenu=0;
|
||||
break;
|
||||
}
|
||||
gtkShMem->message=0;
|
||||
}
|
||||
|
||||
void mplMainSigHandler( int s )
|
||||
{
|
||||
if ( s != SIGTYPE ) return;
|
||||
|
||||
// #ifdef DEBUG
|
||||
// if ( gtkShMem->message ) dbprintf( 5,"[psignal] main sig handler gtk msg: %d\n",gtkShMem->message );
|
||||
// if ( mplShMem->message ) dbprintf( 5,"[psignal] main sig handler mpl msg: %d\n",mplShMem->message );
|
||||
// #endif
|
||||
|
||||
switch ( gtkShMem->message )
|
||||
{
|
||||
case evGtkIsOk:
|
||||
#ifdef DEBUG
|
||||
dbprintf( 5,"[psignal] gtk is ok.\n" );
|
||||
#endif
|
||||
gtkIsOk=True;
|
||||
break;
|
||||
case evShowWindow:
|
||||
switch ( gtkShMem->vs.window )
|
||||
{
|
||||
case evPlayList: gtkVisiblePlayList=1; break;
|
||||
case evLoad: gtkVisibleFileSelect=1; break;
|
||||
case evSkinBrowser: gtkVisibleSkinBrowser=1; break;
|
||||
}
|
||||
break;
|
||||
case evHideWindow:
|
||||
switch ( gtkShMem->vs.window )
|
||||
{
|
||||
case evPlayList:
|
||||
btnModify( evPlayList,btnReleased ); gtkVisiblePlayList=0;
|
||||
mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow );
|
||||
break;
|
||||
case evSkinBrowser: gtkVisibleSkinBrowser=0; break;
|
||||
case evLoad: gtkVisibleFileSelect=0; break;
|
||||
}
|
||||
break;
|
||||
case evSkinBrowser: mplShMem->SkinChange=1; break;
|
||||
case evFileLoaded:
|
||||
printf("*** gtkShMem->fs.dir == '%s' \n",gtkShMem->fs.dir);
|
||||
printf("*** gtkShMem->fs.filename == '%s' \n",gtkShMem->fs.filename);
|
||||
strcpy( mplShMem->Filename,gtkShMem->fs.dir );
|
||||
strcat( mplShMem->Filename,"/" );
|
||||
strcat( mplShMem->Filename,gtkShMem->fs.filename );
|
||||
printf( "%%%%%%%% Playing file: %s\n",mplShMem->Filename );
|
||||
mplShMem->FilenameChanged=1;
|
||||
mplShMem->StreamType=STREAMTYPE_FILE;
|
||||
if ( mplMainAutoPlay ) mplGeneralTimer=1;
|
||||
break;
|
||||
case evSubtitleLoaded:
|
||||
printf("*** gtkShMem->fs.subtitlename == '%s' \n",gtkShMem->fs.subtitlename );
|
||||
strcpy( mplShMem->Subtitlename,gtkShMem->fs.subtitlename );
|
||||
mplShMem->SubtitleChanged=1;
|
||||
break;
|
||||
case evShowPopUpMenu:
|
||||
fprintf( stderr,"[psignal] PopUpMenu: %d param: %d\n",gtkShMem->popupmenu,gtkShMem->popupmenuparam );
|
||||
mplMiddleMenu=1; mplGeneralTimer=1;
|
||||
break;
|
||||
case evMessageBox:
|
||||
if ( mplCriticalError )
|
||||
{ gtkSendMessage( evExit ); exit( 1 ); }
|
||||
mplCriticalError=0;
|
||||
break;
|
||||
}
|
||||
|
||||
// switch( mplShMem->message )
|
||||
// {
|
||||
// }
|
||||
gtkShMem->message=0;
|
||||
// mplShMem->message=0;
|
||||
}
|
||||
|
||||
void gtkSendMessage( int msg )
|
||||
{
|
||||
if ( !gtkIsOk ) return;
|
||||
gtkShMem->message=msg;
|
||||
kill( gtkPID,SIGTYPE );
|
||||
}
|
@ -1,69 +0,0 @@
|
||||
|
||||
#ifndef __GUI_SIGNAL
|
||||
#define __GUI_SIGNAL
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
|
||||
#define mplNoneEvent 0
|
||||
#define mplResizeEvent 1
|
||||
#define mplQuit 2
|
||||
#define mplPauseEvent 3
|
||||
#define mplEndOfFile 4
|
||||
#define mplExposeEvent 5
|
||||
#define mplSetVideoData 6
|
||||
#define mplAudioError 7
|
||||
#define mplUnknowError 8
|
||||
#define mplSeekEvent 9
|
||||
#define mplUnknowFileType 10
|
||||
#define mplCodecConfNotFound 11
|
||||
#define mplErrorDVDKeyProcess 12
|
||||
#define mplErrorDVDAuth 13
|
||||
#define mplErrorAVINI 14
|
||||
#define mplAVIErrorMissingVideoStream 15
|
||||
#define mplASFErrorMissingVideoStream 16
|
||||
#define mplMPEGErrorSeqHeaderSearch 17
|
||||
#define mplErrorShMemAlloc 18
|
||||
#define mplMPEGErrorCannotReadSeqHeader 19
|
||||
#define mplMPEGErrorBadSeqHeader 20
|
||||
#define mplMPEGErrorCannotReadSeqHeaderExt 21
|
||||
#define mplMPEGErrorBadSeqHeaderExt 22
|
||||
#define mplCantFindCodecForVideoFormat 23
|
||||
#define mplIncompatibleVideoOutDevice 24
|
||||
#define mplCompileWithoutDSSupport 25
|
||||
#define mplDSCodecNotFound 26
|
||||
#define mplCantInitVideoDriver 27
|
||||
#define mplIncAudioBufferDelay 28
|
||||
#define mplDecAudioBufferDelay 29
|
||||
|
||||
#ifndef SIGTYPE
|
||||
#ifdef SIGUSR2
|
||||
#define SIGTYPE SIGUSR2
|
||||
//#warning should we use SIGUSR1 or SIGUSR2 on linux, bsd, ... too?
|
||||
#else
|
||||
#ifdef __bsdi__
|
||||
#define _NSIG NSIG
|
||||
#endif
|
||||
#define SIGTYPE _NSIG - 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern int gtkIsOk;
|
||||
|
||||
extern pid_t mplMPlayerPID;
|
||||
extern pid_t mplParentPID;
|
||||
|
||||
extern pid_t gtkPID;
|
||||
|
||||
extern void gtkSigHandler( int s );
|
||||
extern void mplPlayerSigHandler( int s );
|
||||
extern void mplMainSigHandler( int s );
|
||||
|
||||
extern void gtkSendMessage( int msg );
|
||||
|
||||
extern void mplErrorHandler( int critical,const char * format, ... );
|
||||
|
||||
#endif
|
@ -11,7 +11,7 @@ void mplSubDraw( wsParamDisplay )
|
||||
if ( !appMPlayer.subWindow.Mapped ||
|
||||
appMPlayer.subWindow.Visible == wsWindowNotVisible ) return;
|
||||
|
||||
if ( mplShMem->Playing ) mplSubRender=0;
|
||||
if ( guiIntfStruct.Playing ) mplSubRender=0;
|
||||
|
||||
if ( mplSubRender )
|
||||
{
|
||||
@ -28,18 +28,15 @@ void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
|
||||
|
||||
mplMouseTimer=mplMouseTimerConst;
|
||||
wsVisibleMouse( &appMPlayer.subWindow,wsShowMouseCursor );
|
||||
|
||||
|
||||
|
||||
switch( Button )
|
||||
{
|
||||
case wsPMMouseButton:
|
||||
#ifdef USE_DVDREAD
|
||||
memcpy( >kShMem->DVD,&mplShMem->DVD,sizeof( mplDVDStruct ) );
|
||||
#endif
|
||||
gtkSendMessage( evShowPopUpMenu );
|
||||
gtkShow( evShowPopUpMenu,NULL );
|
||||
break;
|
||||
case wsPRMouseButton:
|
||||
if ( gtkShMem->visiblepopupmenu ) gtkSendMessage( evHidePopUpMenu );
|
||||
gtkShow( evHidePopUpMenu,NULL );
|
||||
mplShowMenu( RX,RY );
|
||||
msButton=wsPRMouseButton;
|
||||
break;
|
||||
@ -50,13 +47,13 @@ void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
|
||||
// ---
|
||||
case wsPLMouseButton:
|
||||
if ( appMPlayer.subWindow.isFullScreen )
|
||||
{
|
||||
{
|
||||
if( ++SubVisible%2 ) wsMoveTopWindow( &appMPlayer.mainWindow );
|
||||
else wsMoveTopWindow( &appMPlayer.subWindow );
|
||||
mplSubMoved=1;
|
||||
break;
|
||||
}
|
||||
if ( gtkShMem->visiblepopupmenu ) gtkSendMessage( evHidePopUpMenu );
|
||||
break;
|
||||
}
|
||||
gtkShow( evHidePopUpMenu,NULL );
|
||||
sx=X; sy=Y;
|
||||
msButton=wsPLMouseButton;
|
||||
mplSubMoved=0;
|
||||
|
@ -17,12 +17,14 @@
|
||||
#include "widgets.h"
|
||||
|
||||
#include "./mplayer.h"
|
||||
#include "psignal.h"
|
||||
#include "../events.h"
|
||||
|
||||
#include "gtk/menu.h"
|
||||
#include "play.h"
|
||||
#include "gtk/fs.h"
|
||||
|
||||
#include "../../config.h"
|
||||
#include "../../help_mp.h"
|
||||
#include "../error.h"
|
||||
|
||||
GtkWidget * SkinBrowser;
|
||||
GtkWidget * PlayList;
|
||||
@ -36,14 +38,8 @@ GtkWidget * MessageBox;
|
||||
GtkWidget * WarningPixmap;
|
||||
GtkWidget * ErrorPixmap;
|
||||
|
||||
int gtkVisibleSkinBrowser = 0;
|
||||
int gtkVisiblePlayList = 0;
|
||||
int gtkVisibleFileSelect = 0;
|
||||
int gtkVisibleMessageBox = 0;
|
||||
int gtkVisibleAboutBox = 0;
|
||||
int gtkVisibleOptions = 0;
|
||||
|
||||
gtkCommStruct * gtkShMem;
|
||||
int gtkPopupMenu = 0;
|
||||
int gtkPopupMenuParam = 0;
|
||||
|
||||
#include "gtk/sb.h"
|
||||
#include "gtk/pl.h"
|
||||
@ -64,65 +60,18 @@ void widgetsCreate( void )
|
||||
// PopUpMenu=create_PopUpMenu();
|
||||
}
|
||||
|
||||
// --- forked function
|
||||
|
||||
extern char *mDisplayName;
|
||||
|
||||
static void gtkThreadProc( int argc,char * argv[] )
|
||||
{
|
||||
struct sigaction sa;
|
||||
|
||||
#ifdef HAVE_RTC
|
||||
setuid( getuid() ); // strongly test, please check this.
|
||||
#endif
|
||||
|
||||
gtk_set_locale();
|
||||
{
|
||||
char tmp[128];
|
||||
sprintf( tmp,"--display=%s",mDisplayName );
|
||||
argv[argc++]=strdup( tmp );
|
||||
gtk_init( &argc,&argv );
|
||||
}
|
||||
gdk_set_use_xshm( TRUE );
|
||||
printf( "[gtk] display: %s\n",gdk_get_display() );
|
||||
|
||||
widgetsCreate();
|
||||
|
||||
gtkPID=getppid();
|
||||
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_handler = gtkSigHandler;
|
||||
sigaction( SIGTYPE, &sa, NULL );
|
||||
|
||||
gtkIsOk=True;
|
||||
gtkSendMessage( evGtkIsOk );
|
||||
|
||||
gtk_main();
|
||||
printf( "[gtk] exit.\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
|
||||
// --- init & close gtk
|
||||
|
||||
void gtkInit( int argc,char* argv[], char *envp[] )
|
||||
{
|
||||
gtkShMem=shmem_alloc( sizeof( gtkCommStruct ) );
|
||||
if ( ( gtkPID = fork() ) == 0 ) gtkThreadProc( argc,argv );
|
||||
gtk_set_locale();
|
||||
gtk_init( &argc,&argv );
|
||||
gdk_set_use_xshm( TRUE );
|
||||
widgetsCreate();
|
||||
}
|
||||
|
||||
void gtkDone( void ){
|
||||
gtkSendMessage(evExit);
|
||||
usleep(50000); // 50ms should be enough!
|
||||
printf("gtk killed...\n");
|
||||
kill( gtkPID,SIGKILL );
|
||||
}
|
||||
|
||||
void gtkMessageBox( int type,gchar * str )
|
||||
void gtkDone( void )
|
||||
{
|
||||
if ( !gtkIsOk ) return;
|
||||
gtkShMem->mb.type=type;
|
||||
strcpy( gtkShMem->mb.str,str );
|
||||
gtkSendMessage( evMessageBox );
|
||||
}
|
||||
|
||||
void gtkClearList( GtkWidget * list )
|
||||
@ -146,3 +95,82 @@ void gtkSetDefaultToCList( GtkWidget * list,char * item )
|
||||
if ( ( i=gtkFindCList( list,item ) ) > -1 ) gtk_clist_select_row( GTK_CLIST( list ),i,0 );
|
||||
}
|
||||
|
||||
void gtkEventHandling( void )
|
||||
{
|
||||
int i;
|
||||
for( i=0;i < 25;i++ ) gtk_main_iteration_do( 0 );
|
||||
}
|
||||
|
||||
// --- funcs
|
||||
|
||||
void gtkMessageBox( int type,gchar * str )
|
||||
{
|
||||
gtk_label_set_text( GTK_LABEL( gtkMessageBoxText ),str );
|
||||
gtk_widget_hide( MessageBox );
|
||||
switch( type)
|
||||
{
|
||||
case GTK_MB_FATAL:
|
||||
gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_FatalError );
|
||||
gtk_widget_hide( WarningPixmap );
|
||||
gtk_widget_show( ErrorPixmap );
|
||||
break;
|
||||
case GTK_MB_ERROR:
|
||||
gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_Error );
|
||||
gtk_widget_hide( WarningPixmap );
|
||||
gtk_widget_show( ErrorPixmap );
|
||||
break;
|
||||
case GTK_MB_WARNING:
|
||||
gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_Warning );
|
||||
gtk_widget_show( WarningPixmap );
|
||||
gtk_widget_hide( ErrorPixmap );
|
||||
break;
|
||||
}
|
||||
gtk_widget_show( MessageBox );
|
||||
}
|
||||
|
||||
void gtkShow( int type,char * param )
|
||||
{
|
||||
switch( type )
|
||||
{
|
||||
case evSkinBrowser:
|
||||
gtk_widget_hide( SkinBrowser );
|
||||
gtkClearList( SkinList );
|
||||
if ( gtkFillSkinList( sbMPlayerPrefixDir )&>kFillSkinList( sbMPlayerDirInHome ) )
|
||||
{
|
||||
gtkSetDefaultToCList( SkinList,param );
|
||||
gtk_widget_show( SkinBrowser );
|
||||
}
|
||||
break;
|
||||
case evPreferences:
|
||||
gtk_widget_hide( Options );
|
||||
gtk_widget_show( Options );
|
||||
break;
|
||||
case evPlayList:
|
||||
gtk_widget_hide( PlayList );
|
||||
gtk_widget_show( PlayList );
|
||||
break;
|
||||
case evLoad:
|
||||
ShowFileSelect( fsVideoSelector );
|
||||
break;
|
||||
case evFirstLoad:
|
||||
ShowFileSelect( fsVideoSelector );
|
||||
break;
|
||||
case evLoadSubtitle:
|
||||
ShowFileSelect( fsSubtitleSelector );
|
||||
break;
|
||||
case evAbout:
|
||||
gtk_widget_hide( AboutBox );
|
||||
gtk_widget_show( AboutBox );
|
||||
break;
|
||||
case evShowPopUpMenu:
|
||||
gtkPopupMenu=evNone;
|
||||
gtkPopupMenuParam=0;
|
||||
gtk_widget_hide_on_delete( PopUpMenu );
|
||||
PopUpMenu=create_PopUpMenu();
|
||||
gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 );
|
||||
break;
|
||||
case evHidePopUpMenu:
|
||||
gtk_widget_hide_on_delete( PopUpMenu );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2,12 +2,16 @@
|
||||
#ifndef __MY_WIDGET
|
||||
#define __MY_WIDGET
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "../../config.h"
|
||||
#include "../../linux/shmem.h"
|
||||
#include "play.h"
|
||||
#include "mplayer.h"
|
||||
#include "../interface.h"
|
||||
|
||||
#define GTK_MB_SIMPLE 0
|
||||
#define GTK_MB_MODAL 1
|
||||
@ -15,59 +19,6 @@
|
||||
#define GTK_MB_ERROR 4
|
||||
#define GTK_MB_WARNING 8
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char dir[ 2048 ];
|
||||
char filename[ 2048 ];
|
||||
char subtitlename[ 4096 ];
|
||||
char otherfilename[ 4096 ];
|
||||
} gtkFileSelectorStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int sx;
|
||||
int sy;
|
||||
int tsx;
|
||||
int tsy;
|
||||
int type;
|
||||
char str[512];
|
||||
} gtkMessageBoxStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char name[128];
|
||||
} gtkSkinStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int window;
|
||||
} gtkVisibleStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int i;
|
||||
} gtkOptionsStruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int message;
|
||||
gtkFileSelectorStruct fs;
|
||||
gtkMessageBoxStruct mb;
|
||||
gtkSkinStruct sb;
|
||||
gtkVisibleStruct vs;
|
||||
gtkOptionsStruct op;
|
||||
|
||||
#ifdef USE_DVDREAD
|
||||
mplDVDStruct DVD;
|
||||
#endif
|
||||
|
||||
int popupmenu;
|
||||
int popupmenuparam;
|
||||
int visiblepopupmenu;
|
||||
} gtkCommStruct;
|
||||
|
||||
extern gtkCommStruct * gtkShMem;
|
||||
|
||||
extern GtkWidget * SkinBrowser;
|
||||
extern GtkWidget * PlayList;
|
||||
extern GtkWidget * FileSelect;
|
||||
@ -83,12 +34,8 @@ extern GtkWidget * ErrorPixmap;
|
||||
extern GtkWidget * SkinList;
|
||||
extern GtkWidget * gtkMessageBoxText;
|
||||
|
||||
extern int gtkVisibleSkinBrowser;
|
||||
extern int gtkVisiblePlayList;
|
||||
extern int gtkVisibleFileSelect;
|
||||
extern int gtkVisibleMessageBox;
|
||||
extern int gtkVisibleAboutBox;
|
||||
extern int gtkVisibleOptions;
|
||||
extern int gtkPopupMenu;
|
||||
extern int gtkPopupMenuParam;
|
||||
|
||||
extern char * sbMPlayerDirInHome;
|
||||
extern char * sbMPlayerPrefixDir;
|
||||
@ -97,10 +44,15 @@ extern void widgetsCreate( void );
|
||||
|
||||
extern void gtkInit( int argc,char* argv[], char *envp[] );
|
||||
extern void gtkDone( void );
|
||||
extern void gtkMessageBox( int type,gchar * str );
|
||||
|
||||
extern int gtkFillSkinList( gchar * dir );
|
||||
extern void gtkClearList( GtkWidget * list );
|
||||
extern void gtkSetDefaultToCList( GtkWidget * list,char * item );
|
||||
extern int gtkFindCList( GtkWidget * list,char * item );
|
||||
|
||||
extern void gtkEventHandling( void );
|
||||
|
||||
extern void gtkShow( int type,char * param );
|
||||
extern void gtkMessageBox( int type,gchar * str );
|
||||
|
||||
#endif
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include "skin.h"
|
||||
#include "font.h"
|
||||
#include "cut.h"
|
||||
#include "../error.h"
|
||||
#include "../../mp_msg.h"
|
||||
|
||||
int items;
|
||||
|
||||
@ -44,8 +44,7 @@ int fntRead( char * path,char * fname,int id )
|
||||
unsigned char * ptmp;
|
||||
unsigned char command[32];
|
||||
unsigned char param[256];
|
||||
int c,i;
|
||||
int linenumber = 0;
|
||||
int c,linenumber = 0;
|
||||
|
||||
strcpy( tmp,path ); strcat( tmp,fname ); strcat( tmp,".fnt" );
|
||||
if ( ( f=fopen( tmp,"rt" ) ) == NULL ) return -1;
|
||||
@ -55,7 +54,7 @@ int fntRead( char * path,char * fname,int id )
|
||||
|
||||
c=tmp[ strlen( tmp ) - 1 ]; if ( ( c == '\n' )||( c == '\r' ) ) tmp[ strlen( tmp ) - 1 ]=0;
|
||||
c=tmp[ strlen( tmp ) - 1 ]; if ( ( c == '\n' )||( c == '\r' ) ) tmp[ strlen( tmp ) - 1 ]=0;
|
||||
for ( c=0;c < strlen( tmp );c++ )
|
||||
for ( c=0;c < (int)strlen( tmp );c++ )
|
||||
if ( tmp[c] == ';' )
|
||||
{
|
||||
tmp[c]=0;
|
||||
@ -76,18 +75,14 @@ int fntRead( char * path,char * fname,int id )
|
||||
cutItem( param,tmp,',',1 ); Fonts[id]->Fnt[i].y=atoi( tmp );
|
||||
cutItem( param,tmp,',',2 ); Fonts[id]->Fnt[i].sx=atoi( tmp );
|
||||
cutItem( param,tmp,',',3 ); Fonts[id]->Fnt[i].sy=atoi( tmp );
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[font] char: '%s' params: %d,%d %dx%d\n",command,Fonts[id]->Fnt[i].x,Fonts[id]->Fnt[i].y,Fonts[id]->Fnt[i].sx,Fonts[id]->Fnt[i].sy );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[font] char: '%s' params: %d,%d %dx%d\n",command,Fonts[id]->Fnt[i].x,Fonts[id]->Fnt[i].y,Fonts[id]->Fnt[i].sx,Fonts[id]->Fnt[i].sy );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !strcmp( command,"image" ) )
|
||||
{
|
||||
strcpy( tmp,path ); strcat( tmp,param );
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[font] font imagefile: %s\n",tmp );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[font] font imagefile: %s\n",tmp );
|
||||
if ( skinBPRead( tmp,&Fonts[id]->Bitmap ) ) return -2;
|
||||
}
|
||||
}
|
||||
@ -109,7 +104,7 @@ int fntTextWidth( int id,char * str )
|
||||
int size = 0;
|
||||
int i;
|
||||
if ( !Fonts[id] ) return 0;
|
||||
for ( i=0;i < strlen( str );i++ )
|
||||
for ( i=0;i < (int)strlen( str );i++ )
|
||||
if ( Fonts[id]->Fnt[ (int)str[i] ].sx != -1 ) size+=Fonts[id]->Fnt[ (int)str[i] ].sx;
|
||||
return size;
|
||||
}
|
||||
@ -118,7 +113,7 @@ int fntTextHeight( int id,char * str )
|
||||
{
|
||||
int max = 0,i;
|
||||
if ( !Fonts[id] ) return 0;
|
||||
for ( i=0;i < strlen( str );i++ )
|
||||
for ( i=0;i < (int)strlen( str );i++ )
|
||||
if ( Fonts[id]->Fnt[ (int)str[i] ].sy > max ) max=Fonts[id]->Fnt[ (int)str[i] ].sy;
|
||||
return max;
|
||||
}
|
||||
@ -150,7 +145,7 @@ txSample * fntRender( int id,int px,int sx,char * fmt,... )
|
||||
|
||||
obuf=(unsigned long *)tmp->Image;
|
||||
ibuf=(unsigned long *)Fonts[id]->Bitmap.Image;
|
||||
for ( i=0;i < strlen( p );i++ )
|
||||
for ( i=0;i < (int)strlen( p );i++ )
|
||||
{
|
||||
int c = (int)p[i];
|
||||
if ( Fonts[id]->Fnt[c].x == -1 ) c=32;
|
||||
|
177
Gui/skin/skin.c
177
Gui/skin/skin.c
@ -1,10 +1,9 @@
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cut.h"
|
||||
#include "error.h"
|
||||
#include "font.h"
|
||||
#include "../app.h"
|
||||
|
||||
@ -31,14 +30,15 @@ void ERRORMESSAGE( const char * format, ... )
|
||||
vsnprintf( p,512,format,ap );
|
||||
va_end( ap );
|
||||
// message( False,"[skin] error in skin config file on line %d: %s",linenumber,p );
|
||||
message( False,MSGTR_SKIN_ERRORMESSAGE,linenumber,p );
|
||||
// message( False,MSGTR_SKIN_ERRORMESSAGE,linenumber,p );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_SKIN_ERRORMESSAGE,linenumber,p );
|
||||
}
|
||||
|
||||
#define CHECKDEFLIST( str ) \
|
||||
{ \
|
||||
if ( defList == NULL ) \
|
||||
{ \
|
||||
message( False,MSGTR_SKIN_WARNING1,linenumber,str ); \
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_SKIN_WARNING1,linenumber,str ); \
|
||||
return 1; \
|
||||
} \
|
||||
}
|
||||
@ -47,7 +47,7 @@ void ERRORMESSAGE( const char * format, ... )
|
||||
{ \
|
||||
if ( !strlen( winList ) ) \
|
||||
{ \
|
||||
message( False,MSGTR_SKIN_WARNING2,linenumber,str ); \
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_SKIN_WARNING2,linenumber,str ); \
|
||||
return 1; \
|
||||
} \
|
||||
}
|
||||
@ -55,7 +55,7 @@ void ERRORMESSAGE( const char * format, ... )
|
||||
char * strlower( char * in )
|
||||
{
|
||||
int i;
|
||||
for( i=0;i<strlen( in );i++ ) in[i]=( in[i] >= 'A' ? ( in[i] <= 'Z' ? in[i]+='A' : in[i] ) : in[i] );
|
||||
for( i=0;i<(int)strlen( in );i++ ) in[i]=( in[i] >= 'A' ? ( in[i] <= 'Z' ? in[i]+='A' : in[i] ) : in[i] );
|
||||
return in;
|
||||
}
|
||||
|
||||
@ -81,9 +81,7 @@ int __section( char * in )
|
||||
strlower( in );
|
||||
defList=NULL;
|
||||
if ( !strcmp( in,"movieplayer" ) ) defList=skinAppMPlayer;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] sectionname: %s\n",in );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] sectionname: %s\n",in );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -91,9 +89,7 @@ int __end( char * in )
|
||||
{
|
||||
if ( strlen( winList ) ) winList[0]=0;
|
||||
else defList=NULL;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] end section\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] end section\n" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -103,9 +99,7 @@ int __window( char * in )
|
||||
|
||||
strlower( in );
|
||||
strcpy( winList,in );
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] window: %s\n",winList );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] window: %s\n",winList );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -114,7 +108,7 @@ int __base( char * in )
|
||||
unsigned char fname[512];
|
||||
unsigned char tmp[512];
|
||||
int x,y;
|
||||
int sx=0,sy=0;
|
||||
int sx=0,sy=0;
|
||||
|
||||
CHECKDEFLIST( "base" );
|
||||
CHECKWINLIST( "base" );
|
||||
@ -124,9 +118,7 @@ int __base( char * in )
|
||||
y=cutItemToInt( in,',',2 );
|
||||
sx=cutItemToInt( in,',',3 );
|
||||
sy=cutItemToInt( in,',',4 );
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] base: %s x: %d y: %d ( %dx%d )\n",fname,x,y,sx,sy );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] base: %s x: %d y: %d ( %dx%d )\n",fname,x,y,sx,sy );
|
||||
if ( !strcmp( winList,"main" ) )
|
||||
{
|
||||
defList->main.x=x;
|
||||
@ -138,7 +130,7 @@ int __base( char * in )
|
||||
defList->main.height=defList->main.Bitmap.Height;
|
||||
#ifdef HAVE_XSHAPE
|
||||
Convert32to1( &defList->main.Bitmap,&defList->main.Mask,0x00ff00ff );
|
||||
#if 0
|
||||
#if 0
|
||||
{
|
||||
if ( defList->main.Mask.Image != NULL )
|
||||
{
|
||||
@ -148,15 +140,11 @@ int __base( char * in )
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] mask: %dx%d\n",defList->main.Mask.Width,defList->main.Mask.Height );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] mask: %dx%d\n",defList->main.Mask.Width,defList->main.Mask.Height );
|
||||
#else
|
||||
defList->main.Mask.Image=NULL;
|
||||
#endif
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] width: %d height: %d\n",defList->main.width,defList->main.height );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] width: %d height: %d\n",defList->main.width,defList->main.height );
|
||||
}
|
||||
if ( !strcmp( winList,"sub" ) )
|
||||
{
|
||||
@ -172,9 +160,7 @@ int __base( char * in )
|
||||
defList->sub.width=sx;
|
||||
defList->sub.height=sy;
|
||||
}
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] %d,%d %dx%d\n",defList->sub.x,defList->sub.y,defList->sub.width,defList->sub.height );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] %d,%d %dx%d\n",defList->sub.x,defList->sub.y,defList->sub.width,defList->sub.height );
|
||||
}
|
||||
/*
|
||||
if ( !strcmp( winList,"eq" ) )
|
||||
@ -186,9 +172,7 @@ int __base( char * in )
|
||||
if ( skinBPRead( tmp,&defList->eq.Bitmap ) ) return 1;
|
||||
defList->eq.width=defList->eq.Bitmap.Width;
|
||||
defList->eq.height=defList->eq.Bitmap.Height;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] width: %d height: %d\n",defList->eq.width,defList->eq.height );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] width: %d height: %d\n",defList->eq.width,defList->eq.height );
|
||||
}
|
||||
*/
|
||||
if ( !strcmp( winList,"menu" ) )
|
||||
@ -198,9 +182,7 @@ int __base( char * in )
|
||||
if ( skinBPRead( tmp,&defList->menuBase.Bitmap ) ) return 1;
|
||||
defList->menuBase.width=defList->menuBase.Bitmap.Width;
|
||||
defList->menuBase.height=defList->menuBase.Bitmap.Height;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] width: %d height: %d\n",defList->menuBase.width,defList->menuBase.height );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] width: %d height: %d\n",defList->menuBase.width,defList->menuBase.height );
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -212,12 +194,10 @@ int __background( char * in )
|
||||
|
||||
if ( !strcmp( winList,"sub" ) )
|
||||
{
|
||||
defList->subR=cutItemToInt( in,',',0 );
|
||||
defList->subR=cutItemToInt( in,',',0 );
|
||||
defList->subG=cutItemToInt( in,',',1 );
|
||||
defList->subB=cutItemToInt( in,',',2 );
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] subwindow background color is #%x%x%x.\n",defList->subR,defList->subG,defList->subB );
|
||||
#endif
|
||||
defList->subB=cutItemToInt( in,',',2 );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] subwindow background color is #%x%x%x.\n",defList->subR,defList->subG,defList->subB );
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -227,7 +207,7 @@ int __button( char * in )
|
||||
unsigned char fname[512];
|
||||
unsigned char tmp[512];
|
||||
int x,y,sx,sy;
|
||||
unsigned char msg[32];
|
||||
char msg[32];
|
||||
|
||||
CHECKDEFLIST( "button" );
|
||||
CHECKWINLIST( "button" );
|
||||
@ -245,10 +225,8 @@ int __button( char * in )
|
||||
defList->Items[ defList->NumberOfItems ].y=y;
|
||||
defList->Items[ defList->NumberOfItems ].width=sx;
|
||||
defList->Items[ defList->NumberOfItems ].height=sy;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] button: fname: %s\n",fname );
|
||||
dbprintf( 3,"[skin] x: %d y: %d sx: %d sy: %d\n",x,y,sx,sy );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] button: fname: %s\n",fname );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] x: %d y: %d sx: %d sy: %d\n",x,y,sx,sy );
|
||||
|
||||
if ( ( defList->Items[ defList->NumberOfItems ].msg=appFindMessage( msg ) ) == -1 )
|
||||
{ ERRORMESSAGE( MSGTR_SKIN_BITMAP_UnknownMessage,msg ); return 1; }
|
||||
@ -256,10 +234,7 @@ int __button( char * in )
|
||||
if ( defList->Items[ defList->NumberOfItems ].msg == evPauseSwitchToPlay ) defList->Items[ defList->NumberOfItems ].pressed=btnDisabled;
|
||||
defList->Items[ defList->NumberOfItems ].tmp=1;
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] message: %d\n",
|
||||
defList->Items[ defList->NumberOfItems ].msg );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] message: %d\n",defList->Items[ defList->NumberOfItems ].msg );
|
||||
|
||||
defList->Items[ defList->NumberOfItems ].Bitmap.Image=NULL;
|
||||
if ( strcmp( fname,"NULL" ) )
|
||||
@ -281,15 +256,11 @@ int __selected( char * in )
|
||||
cutItem( in,fname,',',0 );
|
||||
defList->menuSelected.type=itBase;
|
||||
strcpy( tmp,path ); strcat( tmp,fname );
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] selected: %s\n",fname );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] selected: %s\n",fname );
|
||||
if ( skinBPRead( tmp,&defList->menuSelected.Bitmap ) ) return 1;
|
||||
defList->menuSelected.width=defList->menuSelected.Bitmap.Width;
|
||||
defList->menuSelected.height=defList->menuSelected.Bitmap.Height;
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] width: %d height: %d\n",defList->menuSelected.width,defList->menuSelected.height );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] width: %d height: %d\n",defList->menuSelected.width,defList->menuSelected.height );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -313,17 +284,13 @@ int __menu( char * in )
|
||||
defList->MenuItems[ defList->NumberOfMenuItems ].width=sx;
|
||||
defList->MenuItems[ defList->NumberOfMenuItems ].height=sy;
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] menuitem: %d\n",defList->NumberOfMenuItems );
|
||||
dbprintf( 3,"[skin] x: %d y: %d sx: %d sy: %d\n",x,y,sx,sy );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] menuitem: %d\n",defList->NumberOfMenuItems );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] x: %d y: %d sx: %d sy: %d\n",x,y,sx,sy );
|
||||
|
||||
if ( ( defList->MenuItems[ defList->NumberOfMenuItems ].msg=msg ) == -1 )
|
||||
ERRORMESSAGE( MSGTR_SKIN_BITMAP_UnknownMessage,tmp );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] message: %d\n",defList->Items[ defList->NumberOfItems ].msg );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] message: %d\n",defList->Items[ defList->NumberOfItems ].msg );
|
||||
|
||||
defList->MenuItems[ defList->NumberOfMenuItems ].Bitmap.Image=NULL;
|
||||
return 0;
|
||||
@ -352,14 +319,12 @@ int __hpotmeter( char * in )
|
||||
sy=cutItemToInt( in,',',9 );
|
||||
cutItem( in,tmp,',',10 ); msg=appFindMessage( tmp );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] hpotmeter: pointer filename: '%s'\n",pfname );
|
||||
dbprintf( 3, "[skin] pointer size is %dx%d\n",psx,psy );
|
||||
dbprintf( 3, "[skin] phasebitmaps filename: '%s'\n",phfname );
|
||||
dbprintf( 3, "[skin] position: %d,%d %dx%d\n",x,y,sx,sy );
|
||||
dbprintf( 3, "[skin] default value: %d\n",d );
|
||||
dbprintf( 3, "[skin] message: %d\n",msg );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] hpotmeter: pointer filename: '%s'\n",pfname );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] pointer size is %dx%d\n",psx,psy );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] phasebitmaps filename: '%s'\n",phfname );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] position: %d,%d %dx%d\n",x,y,sx,sy );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] default value: %d\n",d );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] message: %d\n",msg );
|
||||
|
||||
defList->NumberOfItems++;
|
||||
item=&defList->Items[ defList->NumberOfItems ];
|
||||
@ -407,13 +372,11 @@ int __potmeter( char * in )
|
||||
sy=cutItemToInt( in,',',6 );
|
||||
cutItem( in,tmp,',',7 ); msg=appFindMessage( tmp );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] potmeter: phases filename: '%s'\n",phfname );
|
||||
dbprintf( 3, "[skin] position: %d,%d %dx%d\n",x,y,sx,sy );
|
||||
dbprintf( 3, "[skin] phases: %d\n",ph );
|
||||
dbprintf( 3, "[skin] default value: %d\n",d );
|
||||
dbprintf( 3, "[skin] message: %d\n",msg );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] potmeter: phases filename: '%s'\n",phfname );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] position: %d,%d %dx%d\n",x,y,sx,sy );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] phases: %d\n",ph );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] default value: %d\n",d );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] message: %d\n",msg );
|
||||
|
||||
defList->NumberOfItems++;
|
||||
item=&defList->Items[ defList->NumberOfItems ];
|
||||
@ -445,10 +408,8 @@ int __font( char * in )
|
||||
cutItem( in,name,',',0 );
|
||||
cutItem( in,id,',',1 );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] font\n" );
|
||||
dbprintf( 3, "[skin] name: %s\n",name );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] font\n" );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] name: %s\n",name );
|
||||
|
||||
defList->NumberOfItems++;
|
||||
item=&defList->Items[ defList->NumberOfItems ];
|
||||
@ -460,9 +421,7 @@ int __font( char * in )
|
||||
case -2: ERRORMESSAGE( MSGTR_SKIN_FONT_TooManyFontsDeclared ); return 1;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3, "[skin] id: %s ( %d )\n",id,item->fontid );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] id: %s ( %d )\n",id,item->fontid );
|
||||
|
||||
switch ( fntRead( path,name,item->fontid ) )
|
||||
{
|
||||
@ -483,9 +442,7 @@ int __slabel( char * in )
|
||||
CHECKDEFLIST( "slabel" );
|
||||
CHECKWINLIST( "slabel" );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] slabel\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] slabel\n" );
|
||||
|
||||
x=cutItemToInt( in,',',0 );
|
||||
y=cutItemToInt( in,',',1 );
|
||||
@ -493,11 +450,9 @@ int __slabel( char * in )
|
||||
if ( id < 0 ) { ERRORMESSAGE( MSGTR_SKIN_FONT_NonExistentFontID,sid ); return 1; }
|
||||
cutItem( in,tmp,',',3 ); cutItem( tmp,tmp,'"',1 );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3, "[skin] pos: %d,%d\n",x,y );
|
||||
dbprintf( 3, "[skin] id: %s ( %d )\n",sid,id );
|
||||
dbprintf( 3, "[skin] str: '%s'\n",tmp );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] pos: %d,%d\n",x,y );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] id: %s ( %d )\n",sid,id );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] str: '%s'\n",tmp );
|
||||
|
||||
defList->NumberOfItems++;
|
||||
item=&defList->Items[ defList->NumberOfItems ];
|
||||
@ -521,23 +476,19 @@ int __dlabel( char * in )
|
||||
CHECKDEFLIST( "dlabel" );
|
||||
CHECKWINLIST( "dlabel" );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] dlabel\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] dlabel\n" );
|
||||
|
||||
x=cutItemToInt( in,',',0 );
|
||||
y=cutItemToInt( in,',',1 );
|
||||
sx=cutItemToInt( in,',',2 );
|
||||
a=cutItemToInt( in,',',3 );
|
||||
a=cutItemToInt( in,',',3 );
|
||||
cutItem( in,sid,',',4 ); id=fntFindID( sid );
|
||||
if ( id < 0 ) { ERRORMESSAGE( MSGTR_SKIN_FONT_NonExistentFontID,sid ); return 1; }
|
||||
cutItem( in,tmp,',',5 ); cutItem( tmp,tmp,'"',1 );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] pos: %d,%d width: %d align: %d\n",x,y,sx,a );
|
||||
dbprintf( 3,"[skin] id: %s ( %d )\n",sid,id );
|
||||
dbprintf( 3,"[skin] str: '%s'\n",tmp );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] pos: %d,%d width: %d align: %d\n",x,y,sx,a );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] id: %s ( %d )\n",sid,id );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] str: '%s'\n",tmp );
|
||||
|
||||
defList->NumberOfItems++;
|
||||
item=&defList->Items[ defList->NumberOfItems ];
|
||||
@ -558,17 +509,13 @@ int __decoration( char * in )
|
||||
CHECKDEFLIST( "decoration" );
|
||||
CHECKWINLIST( "decoration" );
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 0,"\n[skin] window decoration is %s\n",in );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] window decoration is %s\n",in );
|
||||
cutItem( in,tmp,',',0 );
|
||||
if ( strcmp( tmp,"enable" )&&strcmp( tmp,"disable" ) ) { ERRORMESSAGE( MSGTR_SKIN_UnknownParameter,tmp ); return 1; }
|
||||
if ( strcmp( tmp,"enable" ) ) defList->mainDecoration=0;
|
||||
else defList->mainDecoration=1;
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"\n[skin] window decoration is %s\n",(defList->mainDecoration?"enabled":"disabled") );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"\n[skin] window decoration is %s\n",(defList->mainDecoration?"enabled":"disabled") );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -596,7 +543,7 @@ _item skinItem[] =
|
||||
{ "menu", __menu }
|
||||
};
|
||||
|
||||
#define ITEMS ( sizeof( skinItem )/sizeof( _item ) )
|
||||
#define ITEMS (int)( sizeof( skinItem )/sizeof( _item ) )
|
||||
|
||||
char * strdelspacesbeforecommand( char * in )
|
||||
{
|
||||
@ -617,7 +564,7 @@ char * strswap( char * in,char what,char whereof )
|
||||
{
|
||||
int i;
|
||||
if ( strlen( in ) == 0 ) return NULL;
|
||||
for ( i=0;i<strlen( in );i++ )
|
||||
for ( i=0;i<(int)strlen( in );i++ )
|
||||
if ( in[i] == what ) in[i]=whereof;
|
||||
return in;
|
||||
}
|
||||
@ -626,12 +573,12 @@ char * strdelspaces( char * in )
|
||||
{
|
||||
int c = 0,i = 0,id = 0;
|
||||
if ( strlen( in ) == 0 ) return NULL;
|
||||
while ( c != strlen( in ) )
|
||||
while ( c != (int)strlen( in ) )
|
||||
{
|
||||
if ( in[c] == '"' ) id=!id;
|
||||
if ( ( in[c] == ' ' )&&( !id ) )
|
||||
{
|
||||
for ( i=0;i<strlen( in ) - c; i++ ) in[c+i]=in[c+i+1];
|
||||
for ( i=0;i<(int)strlen( in ) - c; i++ ) in[c+i]=in[c+i+1];
|
||||
continue;
|
||||
}
|
||||
c++;
|
||||
@ -658,14 +605,12 @@ int skinRead( char * dname )
|
||||
setname( skinDirInHome,dname );
|
||||
if ( ( skinFile = fopen( fn,"rt" ) ) == NULL )
|
||||
{
|
||||
dbprintf( 3,"[skin] file ( %s ) not found.\n",fn );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[skin] file ( %s ) not found.\n",fn );
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
dbprintf( 3,"[skin] file: %s\n",fn );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[skin] file: %s\n",fn );
|
||||
|
||||
appInitStruct( &appMPlayer );
|
||||
|
||||
@ -676,7 +621,7 @@ int skinRead( char * dname )
|
||||
|
||||
c=tmp[ strlen( tmp ) - 1 ]; if ( c == '\n' || c == '\r' ) tmp[ strlen( tmp ) - 1 ]=0;
|
||||
c=tmp[ strlen( tmp ) - 1 ]; if ( c == '\n' || c == '\r' ) tmp[ strlen( tmp ) - 1 ]=0;
|
||||
for ( c=0;c<strlen( tmp );c++ )
|
||||
for ( c=0;c<(int)strlen( tmp );c++ )
|
||||
if ( tmp[c] == ';' )
|
||||
{
|
||||
tmp[c]=0;
|
||||
|
37
Gui/timer.c
37
Gui/timer.c
@ -1,37 +0,0 @@
|
||||
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include "timer.h"
|
||||
|
||||
static struct itimerval it;
|
||||
static struct sigaction sa;
|
||||
|
||||
timerTSigHandler timerSigHandler;
|
||||
|
||||
void timerSetHandler( timerTSigHandler handler )
|
||||
{ timerSigHandler=handler; }
|
||||
|
||||
void timerInit( void )
|
||||
{
|
||||
sa.sa_handler=timerSigHandler;
|
||||
sa.sa_flags=SA_RESTART;
|
||||
sigemptyset( &sa.sa_mask );
|
||||
sigaction( SIGALRM,&sa,NULL );
|
||||
it.it_interval.tv_sec=0;
|
||||
it.it_interval.tv_usec=20000;
|
||||
it.it_value.tv_sec=0;
|
||||
it.it_value.tv_usec=50000;
|
||||
setitimer( ITIMER_REAL,&it,NULL );
|
||||
}
|
||||
|
||||
void timerDone( void )
|
||||
{
|
||||
it.it_interval.tv_sec=0;
|
||||
it.it_interval.tv_usec=0;
|
||||
it.it_value.tv_sec=0;
|
||||
it.it_value.tv_usec=0;
|
||||
setitimer( ITIMER_REAL,&it,NULL );
|
||||
}
|
||||
|
12
Gui/timer.h
12
Gui/timer.h
@ -1,12 +0,0 @@
|
||||
|
||||
#ifndef __MYTIMER
|
||||
#define __MYTIMER
|
||||
|
||||
typedef void (* timerTSigHandler)( int signum );
|
||||
extern timerTSigHandler timerSigHandler;
|
||||
|
||||
extern void timerSetHandler( timerTSigHandler handler );
|
||||
extern void timerInit( void );
|
||||
extern void timerDone( void );
|
||||
|
||||
#endif
|
19
Gui/wm/ws.c
19
Gui/wm/ws.c
@ -18,9 +18,9 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "../../config.h"
|
||||
#include "ws.h"
|
||||
#include "wsconv.h"
|
||||
#include "../../config.h"
|
||||
#include "../../postproc/rgb2rgb.h"
|
||||
|
||||
#include <X11/extensions/XShm.h>
|
||||
@ -381,9 +381,9 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
{
|
||||
char buf[32]; int i;
|
||||
sprintf( buf,"_%s_REMOTE",label );
|
||||
for( i=0;i<strlen( buf );i++ )
|
||||
for( i=0;i < (int)strlen( buf );i++ )
|
||||
if ( ( buf[i] >= 'a' )&&( buf[i] <= 'z' ) ) buf[i]=buf[i] - 32;
|
||||
for( i=0;i<strlen( buf );i++ )
|
||||
for( i=0;i < (int)strlen( buf );i++ )
|
||||
if ( buf[i] == ' ' ) buf[i]='_';
|
||||
fprintf( stderr,"[ws] atomname: %s\n",buf );
|
||||
win->AtomRemote=XInternAtom( wsDisplay,buf,False );
|
||||
@ -681,11 +681,11 @@ buttonreleased:
|
||||
wsWindowList[l]->MouseHandler( i,Event->xbutton.x,Event->xbutton.y,Event->xmotion.x_root,Event->xmotion.y_root );
|
||||
break;
|
||||
|
||||
case GravityNotify:
|
||||
// case GravityNotify:
|
||||
// #ifdef DEBUG
|
||||
fprintf( stderr,"[ws] window ( 0x%x ) gravity: %d,%d\n",wsWindowList[l]->WindowID,Event->xgravity.x,Event->xgravity.y );
|
||||
// fprintf( stderr,"[ws] window ( 0x%x ) gravity: %d,%d\n",wsWindowList[l]->WindowID,Event->xgravity.x,Event->xgravity.y );
|
||||
// #endif
|
||||
break;
|
||||
// break;
|
||||
|
||||
case PropertyNotify:
|
||||
// break;
|
||||
@ -730,8 +730,7 @@ buttonreleased:
|
||||
Bool wsDummyEvents( Display * display,XEvent * Event,XPointer arg )
|
||||
{ return True; }
|
||||
|
||||
// mplTimerHandler(0); // handle timer event
|
||||
void wsHandleEvents(){
|
||||
void wsHandleEvents( void ){
|
||||
// handle pending events
|
||||
while ( XPending(wsDisplay) ){
|
||||
XNextEvent( wsDisplay,&wsEvent );
|
||||
@ -740,6 +739,8 @@ void wsHandleEvents(){
|
||||
}
|
||||
}
|
||||
|
||||
extern void mplTimerHandler( void );
|
||||
|
||||
void wsMainLoop( void )
|
||||
{
|
||||
int delay=20;
|
||||
@ -758,7 +759,7 @@ while(wsTrue){
|
||||
wsEvents( wsDisplay,&wsEvent,NULL );
|
||||
delay=0;
|
||||
}
|
||||
mplTimerHandler(0); // handle timer event
|
||||
mplTimerHandler(); // handle timer event
|
||||
usleep(delay*1000); // FIXME!
|
||||
if(delay<10*20) delay+=20; // pump up delay up to 0.2 sec (low activity)
|
||||
}
|
||||
|
@ -194,6 +194,8 @@ extern int wsGetDepthOnScreen( void );
|
||||
|
||||
extern void wsDoExit( void );
|
||||
extern void wsMainLoop( void );
|
||||
extern Bool wsEvents( Display * display,XEvent * Event,XPointer arg );
|
||||
extern void wsHandleEvents( void );
|
||||
|
||||
// ----------------------------------------------------------------------------------------------
|
||||
// wsCrateWindow: create a new window on the screen.
|
||||
|
@ -18,7 +18,7 @@ wsTConvFunc wsConvFunc = NULL;
|
||||
|
||||
#define SWAP_RGB_24(src,dst) dst[1]=src[0];dst[1]=src[1];dst[2]=src[0]
|
||||
|
||||
void BGR8880_to_RGB555_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels)
|
||||
void BGR8880_to_RGB555_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels)
|
||||
{
|
||||
unsigned short pixel;
|
||||
int i;
|
||||
@ -31,7 +31,7 @@ void BGR8880_to_RGB555_c( const unsigned char * in_pixels, unsigned char * out_p
|
||||
}
|
||||
}
|
||||
|
||||
void BGR8880_to_BGR555_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels)
|
||||
void BGR8880_to_BGR555_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels)
|
||||
{
|
||||
unsigned short pixel;
|
||||
int i;
|
||||
@ -44,7 +44,7 @@ void BGR8880_to_BGR555_c( const unsigned char * in_pixels, unsigned char * out_p
|
||||
}
|
||||
}
|
||||
|
||||
void BGR8880_to_RGB565_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels)
|
||||
void BGR8880_to_RGB565_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels)
|
||||
{
|
||||
unsigned short pixel;
|
||||
int i;
|
||||
@ -57,7 +57,7 @@ void BGR8880_to_RGB565_c( const unsigned char * in_pixels, unsigned char * out_p
|
||||
}
|
||||
}
|
||||
|
||||
void BGR8880_to_BGR565_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels)
|
||||
void BGR8880_to_BGR565_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels)
|
||||
{
|
||||
unsigned short pixel;
|
||||
int i;
|
||||
@ -70,7 +70,7 @@ void BGR8880_to_BGR565_c( const unsigned char * in_pixels, unsigned char * out_p
|
||||
}
|
||||
}
|
||||
|
||||
void BGR8880_to_RGB888_c( const unsigned char * in_pixels, unsigned char * out_pixels,unsigned num_pixels )
|
||||
void BGR8880_to_RGB888_c( const unsigned char * in_pixels, unsigned char * out_pixels,int num_pixels )
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < num_pixels / 4; i++)
|
||||
@ -81,7 +81,7 @@ void BGR8880_to_RGB888_c( const unsigned char * in_pixels, unsigned char * out_p
|
||||
}
|
||||
}
|
||||
|
||||
void BGR8880_to_BGR888_c( const unsigned char * in_pixels, unsigned char * out_pixels,unsigned num_pixels )
|
||||
void BGR8880_to_BGR888_c( const unsigned char * in_pixels, unsigned char * out_pixels,int num_pixels )
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < num_pixels / 4; i++)
|
||||
@ -92,7 +92,7 @@ void BGR8880_to_BGR888_c( const unsigned char * in_pixels, unsigned char * out_p
|
||||
}
|
||||
}
|
||||
|
||||
void BGR8880_to_BGR8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,unsigned num_pixels )
|
||||
void BGR8880_to_BGR8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,int num_pixels )
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < num_pixels / 4; i++)
|
||||
@ -103,7 +103,7 @@ void BGR8880_to_BGR8880_c( const unsigned char * in_pixels, unsigned char * out_
|
||||
}
|
||||
}
|
||||
|
||||
void BGR8880_to_RGB8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,unsigned num_pixels )
|
||||
void BGR8880_to_RGB8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,int num_pixels )
|
||||
{ memcpy( out_pixels,in_pixels,num_pixels ); }
|
||||
|
||||
/*
|
||||
@ -119,7 +119,7 @@ unsigned char * map_6_to_8[64];
|
||||
#define RGB16_MIDDLE_MASK 0x07e0
|
||||
#define RGB16_UPPER_MASK 0xf800
|
||||
|
||||
void RGB565_to_RGB888_c( const unsigned char * in_pixels, unsigned char * out_pixels,unsigned num_pixels)
|
||||
void RGB565_to_RGB888_c( const unsigned char * in_pixels, unsigned char * out_pixels,int num_pixels)
|
||||
{
|
||||
unsigned short in_pixel;
|
||||
int i;
|
||||
|
@ -19,14 +19,14 @@
|
||||
typedef void(*wsTConvFunc)( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels );
|
||||
extern wsTConvFunc wsConvFunc;
|
||||
|
||||
extern void BGR8880_to_RGB555_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels );
|
||||
extern void BGR8880_to_BGR555_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels );
|
||||
extern void BGR8880_to_RGB565_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels );
|
||||
extern void BGR8880_to_BGR565_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels );
|
||||
extern void BGR8880_to_RGB888_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels );
|
||||
extern void BGR8880_to_BGR888_c( const unsigned char * in_pixels, unsigned char * out_pixels, unsigned num_pixels );
|
||||
extern void BGR8880_to_BGR8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,unsigned num_pixels );
|
||||
extern void BGR8880_to_RGB8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,unsigned num_pixels );
|
||||
extern void BGR8880_to_RGB555_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels );
|
||||
extern void BGR8880_to_BGR555_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels );
|
||||
extern void BGR8880_to_RGB565_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels );
|
||||
extern void BGR8880_to_BGR565_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels );
|
||||
extern void BGR8880_to_RGB888_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels );
|
||||
extern void BGR8880_to_BGR888_c( const unsigned char * in_pixels, unsigned char * out_pixels, int num_pixels );
|
||||
extern void BGR8880_to_BGR8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,int num_pixels );
|
||||
extern void BGR8880_to_RGB8880_c( const unsigned char * in_pixels, unsigned char * out_pixels,int num_pixels );
|
||||
|
||||
#ifdef xHAVE_MMX
|
||||
extern void BGR8880_to_RGB888_mmx( const unsigned char * in_pixels,unsigned char * out_pixels,unsigned num_pixels);
|
||||
|
5
mp_msg.h
5
mp_msg.h
@ -1,4 +1,7 @@
|
||||
|
||||
#ifndef _MP_MSG_H
|
||||
#define _MP_MSG_H
|
||||
|
||||
extern int verbose; // defined in mplayer.c
|
||||
|
||||
// verbosity elevel:
|
||||
@ -86,3 +89,5 @@ void mp_msg_c( int x, const char *format, ... );
|
||||
#define mp_dbg(mod,lev, ... )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
106
mplayer.c
106
mplayer.c
@ -283,7 +283,7 @@ extern char *ao_subdevice;
|
||||
|
||||
static stream_t* stream=NULL;
|
||||
|
||||
static char* current_module=NULL; // for debugging
|
||||
char* current_module=NULL; // for debugging
|
||||
|
||||
static unsigned int inited_flags=0;
|
||||
#define INITED_VO 1
|
||||
@ -332,7 +332,7 @@ void uninit_player(unsigned int mask){
|
||||
if(mask&INITED_GUI){
|
||||
inited_flags&=~INITED_GUI;
|
||||
current_module="uninit_gui";
|
||||
mplDone();
|
||||
guiDone();
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -643,9 +643,9 @@ if(!parse_codec_cfg(get_path("codecs.conf"))){
|
||||
// It's time to init the GUI code: (and fork() the GTK process)
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if(use_gui){
|
||||
appInit( argc,argv,envp,(void*)mDisplay );
|
||||
guiInit( argc,argv,envp );
|
||||
inited_flags|=INITED_GUI;
|
||||
mplShMem->Playing= (gui_no_filename) ? 0 : 1;
|
||||
guiIntfStruct.Playing= (gui_no_filename) ? 0 : 1;
|
||||
mplState();
|
||||
}
|
||||
#endif
|
||||
@ -728,18 +728,18 @@ play_next_file:
|
||||
if ( use_gui ) {
|
||||
|
||||
#ifdef USE_DVDREAD
|
||||
if ( mplShMem->DVDChanged )
|
||||
if ( guiIntfStruct.DVDChanged )
|
||||
{
|
||||
mplShMem->DVDChanged=0;
|
||||
mplShMem->Playing=1;
|
||||
guiIntfStruct.DVDChanged=0;
|
||||
guiIntfStruct.Playing=1;
|
||||
filename="/dev/dvd";
|
||||
goto play_dvd;
|
||||
}
|
||||
#endif
|
||||
|
||||
if(filename && !mplShMem->FilenameChanged) strcpy( mplShMem->Filename,filename );
|
||||
// mplShMem->Playing= (gui_no_filename) ? 0 : 1;
|
||||
while(mplShMem->Playing!=1){
|
||||
|
||||
if(filename && !guiIntfStruct.FilenameChanged) guiSetFilename( guiIntfStruct.Filename,filename );
|
||||
// guiIntfStruct.Playing= (gui_no_filename) ? 0 : 1;
|
||||
while(guiIntfStruct.Playing!=1){
|
||||
usleep(20000);
|
||||
guiEventHandling();
|
||||
}
|
||||
@ -747,17 +747,17 @@ play_next_file:
|
||||
play_dvd:
|
||||
|
||||
#ifdef USE_SUB
|
||||
if ( mplShMem->SubtitleChanged || !mplShMem->FilenameChanged )
|
||||
if ( guiIntfStruct.SubtitleChanged || !guiIntfStruct.FilenameChanged )
|
||||
{
|
||||
if ( mplShMem->Subtitlename[0] != 0 ) sub_name=mplShMem->Subtitlename;
|
||||
mplShMem->SubtitleChanged=0;
|
||||
if ( ( guiIntfStruct.Subtitlename )&&( guiIntfStruct.Subtitlename[0] != 0 ) ) sub_name=guiIntfStruct.Subtitlename;
|
||||
guiIntfStruct.SubtitleChanged=0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ( mplShMem->FilenameChanged || !filename )
|
||||
if ( guiIntfStruct.FilenameChanged || !filename )
|
||||
{
|
||||
filename=mplShMem->Filename;
|
||||
mplShMem->FilenameChanged=0;
|
||||
filename=strdup( guiIntfStruct.Filename );
|
||||
guiIntfStruct.FilenameChanged=0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -1049,17 +1049,17 @@ sh_video=d_video->sh;
|
||||
if ( use_gui && stream->type == STREAMTYPE_DVD )
|
||||
{
|
||||
dvd_priv_t * dvdp = stream->priv;
|
||||
mplShMem->DVD.titles=dvdp->vmg_file->tt_srpt->nr_of_srpts;
|
||||
mplShMem->DVD.chapters=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_ptts;
|
||||
mplShMem->DVD.angles=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_angles;
|
||||
mplShMem->DVD.nr_of_audio_channels=dvdp->nr_of_channels;
|
||||
memcpy( mplShMem->DVD.audio_streams,dvdp->audio_streams,sizeof( dvdp->audio_streams ) );
|
||||
mplShMem->DVD.nr_of_subtitles=dvdp->nr_of_subtitles;
|
||||
memcpy( mplShMem->DVD.subtitles,dvdp->subtitles,sizeof( dvdp->subtitles ) );
|
||||
mplShMem->DVD.current_title=dvd_title + 1;
|
||||
mplShMem->DVD.current_chapter=dvd_chapter + 1;
|
||||
mplShMem->DVD.current_angle=dvd_angle + 1;
|
||||
mplShMem->Track=dvd_title + 1;
|
||||
guiIntfStruct.DVD.titles=dvdp->vmg_file->tt_srpt->nr_of_srpts;
|
||||
guiIntfStruct.DVD.chapters=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_ptts;
|
||||
guiIntfStruct.DVD.angles=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_angles;
|
||||
guiIntfStruct.DVD.nr_of_audio_channels=dvdp->nr_of_channels;
|
||||
memcpy( guiIntfStruct.DVD.audio_streams,dvdp->audio_streams,sizeof( dvdp->audio_streams ) );
|
||||
guiIntfStruct.DVD.nr_of_subtitles=dvdp->nr_of_subtitles;
|
||||
memcpy( guiIntfStruct.DVD.subtitles,dvdp->subtitles,sizeof( dvdp->subtitles ) );
|
||||
guiIntfStruct.DVD.current_title=dvd_title + 1;
|
||||
guiIntfStruct.DVD.current_chapter=dvd_chapter + 1;
|
||||
guiIntfStruct.DVD.current_angle=dvd_angle + 1;
|
||||
guiIntfStruct.Track=dvd_title + 1;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
@ -1179,13 +1179,13 @@ if(sh_audio){
|
||||
mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CouldntInitAudioCodec);
|
||||
sh_audio=d_audio->sh=NULL;
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if ( use_gui ) mplShMem->AudioType=0;
|
||||
if ( use_gui ) guiIntfStruct.AudioType=0;
|
||||
#endif
|
||||
} else {
|
||||
mp_msg(MSGT_CPLAYER,MSGL_INFO,"AUDIO: srate=%d chans=%d bps=%d sfmt=0x%X ratio: %d->%d\n",sh_audio->samplerate,sh_audio->channels,sh_audio->samplesize,
|
||||
sh_audio->sample_format,sh_audio->i_bps,sh_audio->o_bps);
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if ( use_gui ) mplShMem->AudioType=sh_audio->channels;
|
||||
if ( use_gui ) guiIntfStruct.AudioType=sh_audio->channels;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -1359,10 +1359,10 @@ current_module="init_libvo";
|
||||
if ( use_gui )
|
||||
{
|
||||
mplResizeToMovieSize( sh_video->disp_w,sh_video->disp_h );
|
||||
moviewidth=sh_video->disp_w;
|
||||
movieheight=sh_video->disp_h;
|
||||
mplShMem->StreamType=stream->type;
|
||||
mplSetFileName( filename );
|
||||
guiIntfStruct.MovieWidth=sh_video->disp_w;
|
||||
guiIntfStruct.MovieHeight=sh_video->disp_h;
|
||||
guiIntfStruct.StreamType=stream->type;
|
||||
guiIntfStruct.Filename=filename;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1964,7 +1964,7 @@ read_input:
|
||||
fflush(stdout);
|
||||
}
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if(use_gui) mplShMem->Playing=2;
|
||||
if(use_gui) guiIntfStruct.Playing=2;
|
||||
#endif
|
||||
if (video_out && sh_video)
|
||||
video_out->control(VOCTRL_PAUSE, NULL);
|
||||
@ -2002,7 +2002,7 @@ read_input:
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if(use_gui){
|
||||
guiEventHandling();
|
||||
if(mplShMem->Playing!=2 || (rel_seek_secs || abs_seek_pos))
|
||||
if(guiIntfStruct.Playing!=2 || (rel_seek_secs || abs_seek_pos))
|
||||
{ gui_pause_flag=1; break; } // end of pause or seek
|
||||
}
|
||||
#endif
|
||||
@ -2021,7 +2021,7 @@ read_input:
|
||||
video_out->control(VOCTRL_RESUME, NULL); // resume video
|
||||
(void)GetRelativeTime(); // keep TF around FT in next cycle
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if(use_gui && !gui_pause_flag) mplShMem->Playing=1; // play from keyboard
|
||||
if(use_gui && !gui_pause_flag) guiIntfStruct.Playing=1; // play from keyboard
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -2660,36 +2660,36 @@ if(rel_seek_secs || abs_seek_pos){
|
||||
if(use_gui){
|
||||
if(demuxer->file_format==DEMUXER_TYPE_AVI && sh_video->video.dwLength>2){
|
||||
// get pos from frame number / total frames
|
||||
mplShMem->Position=(float)d_video->pack_no*100.0f/sh_video->video.dwLength;
|
||||
guiIntfStruct.Position=(float)d_video->pack_no*100.0f/sh_video->video.dwLength;
|
||||
} else {
|
||||
// get pos from file position / filesize
|
||||
int len=((demuxer->movi_end-demuxer->movi_start));
|
||||
int pos=(demuxer->file_format==DEMUXER_TYPE_AVI)?demuxer->filepos:d_video->pos;
|
||||
mplShMem->Position=(len<=0)?0:((float)(pos-demuxer->movi_start) / len * 100.0f);
|
||||
guiIntfStruct.Position=(len<=0)?0:((float)(pos-demuxer->movi_start) / len * 100.0f);
|
||||
}
|
||||
mplShMem->TimeSec=d_video->pts;
|
||||
if(mplShMem->Playing==0) break; // STOP
|
||||
if(mplShMem->Playing==2) osd_function=OSD_PAUSE;
|
||||
if ( mplShMem->VolumeChanged )
|
||||
guiIntfStruct.TimeSec=d_video->pts;
|
||||
if(guiIntfStruct.Playing==0) break; // STOP
|
||||
if(guiIntfStruct.Playing==2) osd_function=OSD_PAUSE;
|
||||
if ( guiIntfStruct.VolumeChanged )
|
||||
{
|
||||
mixer_setvolume( mplShMem->Volume,mplShMem->Volume );
|
||||
mplShMem->VolumeChanged=0;
|
||||
mixer_setvolume( guiIntfStruct.Volume,guiIntfStruct.Volume );
|
||||
guiIntfStruct.VolumeChanged=0;
|
||||
#ifdef USE_OSD
|
||||
if ( osd_level )
|
||||
{
|
||||
osd_visible=sh_video->fps; // 1 sec
|
||||
vo_osd_progbar_type=OSD_VOLUME;
|
||||
vo_osd_progbar_value=( ( mplShMem->Volume ) * 256.0 ) / 100.0;
|
||||
vo_osd_progbar_value=( ( guiIntfStruct.Volume ) * 256.0 ) / 100.0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
mplShMem->Volume=(float)mixer_getbothvolume();
|
||||
guiIntfStruct.Volume=(float)mixer_getbothvolume();
|
||||
#ifdef USE_DVDREAD
|
||||
if ( mplShMem->DVDChanged ) goto goto_next_file;
|
||||
if ( guiIntfStruct.DVDChanged ) goto goto_next_file;
|
||||
if ( stream->type == STREAMTYPE_DVD )
|
||||
{
|
||||
dvd_priv_t * dvdp = stream->priv;
|
||||
mplShMem->DVD.current_chapter=dvdp->cur_cell + 1;
|
||||
guiIntfStruct.DVD.current_chapter=dvdp->cur_cell + 1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -2787,7 +2787,6 @@ mp_msg(MSGT_GLOBAL,MSGL_V,"EOF code: %d \n",eof);
|
||||
|
||||
goto_next_file: // don't jump here after ao/vo/getch initialization!
|
||||
|
||||
|
||||
if(benchmark){
|
||||
double tot=video_time_usage+vout_time_usage+audio_time_usage;
|
||||
double total_time_usage;
|
||||
@ -2836,7 +2835,7 @@ if(eof == 0) eof = 1;
|
||||
if(use_gui)
|
||||
{
|
||||
#ifdef USE_DVDREAD
|
||||
if ( !mplShMem->DVDChanged )
|
||||
if ( !guiIntfStruct.DVDChanged )
|
||||
#endif
|
||||
mplStop();
|
||||
}
|
||||
@ -2855,7 +2854,7 @@ while(playtree_iter != NULL) {
|
||||
|
||||
if(use_gui || playtree_iter != NULL
|
||||
#if defined( HAVE_NEW_GUI ) && defined( USE_DVDREAD )
|
||||
|| (mplShMem && mplShMem->DVDChanged)
|
||||
|| guiIntfStruct.DVDChanged
|
||||
#endif
|
||||
){
|
||||
|
||||
@ -2874,8 +2873,9 @@ if(use_gui || playtree_iter != NULL
|
||||
sub_free( subtitles );
|
||||
sub_name=NULL;
|
||||
vo_sub=NULL;
|
||||
subtitles=NULL;
|
||||
}
|
||||
|
||||
|
||||
video_out=NULL;
|
||||
audio_out=NULL;
|
||||
eof = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user