1
mirror of https://code.videolan.org/videolan/vlc synced 2024-09-04 09:11:33 +02:00

* winamp2.xml: hack to support nums_ex.bmp and numbers.bmp

* theme_loader.cpp: correct handling of subdirectories in winamp
  skins
This commit is contained in:
Cyril Deguet 2005-11-06 17:05:50 +00:00
parent 4d447b068c
commit 8e20a9cfb1
5 changed files with 34 additions and 10 deletions

View File

@ -146,6 +146,12 @@ void Builder::addBitmap( const BuilderData::Bitmap &rData )
GenericBitmap *pBmp =
new FileBitmap( getIntf(), m_pImageHandler,
rData.m_fileName, rData.m_alphaColor );
if( !pBmp->getData() )
{
// Invalid bitmap
delete pBmp;
return;
}
m_pTheme->m_bitmaps[rData.m_id] = GenericBitmapPtr( pBmp );
}
@ -175,6 +181,13 @@ void Builder::addBitmapFont( const BuilderData::BitmapFont &rData )
{
GenericBitmap *pBmp =
new FileBitmap( getIntf(), m_pImageHandler, rData.m_file, 0 );
if( !pBmp->getData() )
{
// invalid bitmap
delete pBmp;
return;
}
m_pTheme->m_bitmaps[rData.m_id] = GenericBitmapPtr( pBmp );
GenericFont *pFont = new BitmapFont( getIntf(), *pBmp, rData.m_type );

View File

@ -28,7 +28,7 @@
FileBitmap::FileBitmap( intf_thread_t *pIntf, image_handler_t *pImageHandler,
string fileName, uint32_t aColor ):
GenericBitmap( pIntf ), m_width( 0 ), m_height( 0 )
GenericBitmap( pIntf ), m_width( 0 ), m_height( 0 ), m_pData( NULL )
{
video_format_t fmt_in = {0}, fmt_out = {0};
picture_t *pPic;

View File

@ -44,6 +44,11 @@ void BitmapImpl::drawBitmap( const GenericBitmap &rSource, int xSrc, int ySrc,
{
int srcWidth = rSource.getWidth();
uint32_t *pSrc = (uint32_t*)rSource.getData() + ySrc * srcWidth + xSrc;
if( !pSrc )
{
return;
}
uint32_t *pDest = (uint32_t*)m_pData + yDest * m_width + xDest ;
for( int y = 0; y < height; y++ )
{

View File

@ -283,16 +283,21 @@ bool ThemeLoader::extract( const string &fileName )
}
else
{
// No XML file, assume it is a winamp2 skin
path = tempPath;
// Look for winamp2.xml in the resource path
list<string> resPath = pOsFactory->getResourcePath();
list<string>::const_iterator it;
for( it = resPath.begin(); it != resPath.end(); it++ )
// No XML file, check if it is a winamp2 skin
string mainBmp;
if( findFile( tempPath, "main.bmp", mainBmp ) )
{
if( findFile( *it, WINAMP2_XML_FILE, xmlFile ) )
break;
msg_Dbg( getIntf(), "Try to load a winamp2 skin" );
path = getFilePath( mainBmp );
// Look for winamp2.xml in the resource path
list<string> resPath = pOsFactory->getResourcePath();
list<string>::const_iterator it;
for( it = resPath.begin(); it != resPath.end(); it++ )
{
if( findFile( *it, WINAMP2_XML_FILE, xmlFile ) )
break;
}
}
}

View File

@ -22,6 +22,7 @@
<SubBitmap id="quit_up" x="18" y="0" width="9" height="9" />
<SubBitmap id="quit_down" x="18" y="9" width="9" height="9" />
</Bitmap>
<BitmapFont id="digits_font" file="numbers.bmp" type="digits"/>
<BitmapFont id="digits_font" file="nums_ex.bmp" type="digits"/>
<BitmapFont id="text_font" file="text.bmp" type="text"/>