Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

xmpeg.cpp

Go to the documentation of this file.
00001 #include "SdlArs.h"
00002 
00003 namespace Ars
00004 {
00005 XMPEG::XMPEG( void )
00006 : mpeg( 0 )
00007 {
00008 }
00009 
00010 XMPEG::~XMPEG( void )
00011 {
00012         if( mpeg )
00013                 SMPEG_delete( mpeg );
00014         mpeg = 0;
00015 }
00016 
00017 void XMPEG::Init( icstring &aStr )
00018 {
00019         XImage::Init( aStr );
00020 
00021         icstring        tmp = Rsrc::FindCrdOf( aStr , "mpeg" );
00022 
00023         sct = Rsrc::GetStr( tmp );
00024         key = Rsrc::GetStr( tmp );
00025         fname = Rsrc::GetStr( tmp );
00026 }
00027 
00028 const bool XMPEG::SetupWindow( const Message &msg )
00029 {
00030         XImage::SetupWindow( msg );
00031 
00032         if( !mpeg )
00033                 if( !sct.empty() || !key.empty() || !fname.empty() )
00034                 {
00035                         if( key.empty() )
00036                                 mpeg = SMPEG_new( fname.empty() ? sct.c_str() : fname.c_str() , &mpegInfo , 1 );
00037                         else
00038                         {
00039                                 if( fname.empty() )
00040                                         fname = Cfg::GetCfg().GetCfgFile( "Paths" , "Animate" );
00041                                 Cfg::Handler &h = Cfg::GetCfg( fname );
00042 
00043                                 mpeg = SMPEG_new( h.GetCfgFile( sct , key ).c_str() , &mpegInfo , 1 );
00044                         }
00045                 }
00046 
00047 //      SMPEG_enableaudio( mpeg , 1 );
00048         SMPEG_enablevideo( mpeg , 1 );
00049         SMPEG_setvolume( mpeg , 100 );
00050 
00051         SMPEG_setdisplay( mpeg , GetGDI() , 0 , 0 );
00052         SMPEG_move( mpeg , x , y );
00053         SMPEG_scaleXY( mpeg , w , h );
00054 
00055         return true;
00056 }
00057 
00058 
00059 const bool XMPEG::Play( void )
00060 {
00061         if( mpeg )
00062         {
00063                 if( SMPEG_status( mpeg ) != SMPEG_PLAYING )
00064                         SMPEG_play( mpeg );
00065                 return SMPEG_status( mpeg ) == SMPEG_PLAYING;
00066         }
00067         return false;
00068 }
00069 
00070 void XMPEG::EndPlay( void )
00071 {
00072         if( mpeg )
00073         {
00074                 SMPEG_delete( mpeg );
00075                 mpeg = 0;
00076         }
00077 }
00078 
00079 }

Generated on Fri Dec 5 04:06:01 2003 for Borqueror by doxygen 1.3.3