|
@@ -13,7 +13,6 @@ GSLDatei::GSLDatei()
|
|
|
{
|
|
|
sounds = new Array< SoundKopf >();
|
|
|
pfad = new Text();
|
|
|
- InitializeCriticalSection( &cs );
|
|
|
ref = 1;
|
|
|
}
|
|
|
|
|
@@ -22,35 +21,37 @@ GSLDatei::~GSLDatei()
|
|
|
{
|
|
|
sounds->release();
|
|
|
pfad->release();
|
|
|
- DeleteCriticalSection( &cs );
|
|
|
}
|
|
|
|
|
|
// Datei open
|
|
|
void GSLDatei::setDatei( Framework::Text *txt )
|
|
|
{
|
|
|
- EnterCriticalSection( &cs );
|
|
|
+ cs.lock();
|
|
|
pfad->setText( txt );
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
}
|
|
|
|
|
|
void GSLDatei::setDatei( char *txt )
|
|
|
{
|
|
|
- EnterCriticalSection( &cs );
|
|
|
+ cs.lock();
|
|
|
pfad->setText( txt );
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
}
|
|
|
|
|
|
bool GSLDatei::leseDaten()
|
|
|
{
|
|
|
- EnterCriticalSection( &cs );
|
|
|
+ cs.lock();
|
|
|
sounds->leeren();
|
|
|
Datei d;
|
|
|
d.setDatei( *pfad );
|
|
|
- if( !d.getSize() )
|
|
|
- return 1;
|
|
|
+ if( !d.getSize() )
|
|
|
+ {
|
|
|
+ cs.unlock();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
if( !d.open( Datei::Style::lesen ) )
|
|
|
{
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
unsigned char sAnz = 0;
|
|
@@ -106,7 +107,7 @@ bool GSLDatei::leseDaten()
|
|
|
sounds->add( kpf );
|
|
|
}
|
|
|
d.close();
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
@@ -132,17 +133,17 @@ GSLSoundV *GSLDatei::getSound( Framework::Text *name )
|
|
|
|
|
|
GSLSoundV *GSLDatei::getSound( char *name )
|
|
|
{
|
|
|
- EnterCriticalSection( &cs );
|
|
|
+ cs.lock();
|
|
|
int anz = sounds->getEintragAnzahl();
|
|
|
for( int i = 0; i < anz; i++ )
|
|
|
{
|
|
|
if( sounds->get( i ).name.istGleich( name ) )
|
|
|
{
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return new GSLSound( sounds->get( i ) );
|
|
|
}
|
|
|
}
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -177,14 +178,14 @@ bool GSLDatei::speicherSound( GSLSoundV *zSound, char *name )
|
|
|
break;
|
|
|
}
|
|
|
name = kName;
|
|
|
- EnterCriticalSection( &cs );
|
|
|
+ cs.lock();
|
|
|
// Prüfen ob bereits vorhanden
|
|
|
int anz = sounds->getEintragAnzahl();
|
|
|
for( int i = 0; i < anz; i++ )
|
|
|
{
|
|
|
if( sounds->get( i ).name.istGleich( name ) )
|
|
|
{
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
@@ -196,7 +197,7 @@ bool GSLDatei::speicherSound( GSLSoundV *zSound, char *name )
|
|
|
tmp.erstellen();
|
|
|
if( !tmp.open( Datei::Style::schreiben ) )
|
|
|
{
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
char *buffer = new char[ 0x4000 ];
|
|
@@ -241,7 +242,7 @@ bool GSLDatei::speicherSound( GSLSoundV *zSound, char *name )
|
|
|
{
|
|
|
sounds->remove( sAnz );
|
|
|
tmp.remove();
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
sAnz = (unsigned char)sounds->getEintragAnzahl();
|
|
@@ -298,7 +299,7 @@ bool GSLDatei::speicherSound( GSLSoundV *zSound, char *name )
|
|
|
neu.close();
|
|
|
neu.remove();
|
|
|
sounds->remove( sAnz );
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
alt.setLPosition( hLen, 0 );
|
|
@@ -320,7 +321,7 @@ bool GSLDatei::speicherSound( GSLSoundV *zSound, char *name )
|
|
|
neu.close();
|
|
|
neu.remove();
|
|
|
sounds->remove( sAnz );
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
for( int i = 0; i < (int)tmp.getSize(); )
|
|
@@ -340,7 +341,7 @@ bool GSLDatei::speicherSound( GSLSoundV *zSound, char *name )
|
|
|
alt.remove();
|
|
|
neu.umbenennen( *pfad );
|
|
|
leseDaten();
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
@@ -354,7 +355,7 @@ bool GSLDatei::removeSound( Framework::Text *name )
|
|
|
|
|
|
bool GSLDatei::removeSound( char *name )
|
|
|
{
|
|
|
- EnterCriticalSection( &cs );
|
|
|
+ cs.lock();
|
|
|
// Prüfen ob vorhanden
|
|
|
int anz = sounds->getEintragAnzahl();
|
|
|
int num = -1;
|
|
@@ -368,7 +369,7 @@ bool GSLDatei::removeSound( char *name )
|
|
|
}
|
|
|
if( num < 0 )
|
|
|
{
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 1;
|
|
|
}
|
|
|
Text neuPf = pfad->getText();
|
|
@@ -379,7 +380,7 @@ bool GSLDatei::removeSound( char *name )
|
|
|
neu.erstellen();
|
|
|
if( !neu.open( Datei::Style::schreiben ) )
|
|
|
{
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
SoundKopf kpf = sounds->get( num );
|
|
@@ -443,7 +444,7 @@ bool GSLDatei::removeSound( char *name )
|
|
|
{
|
|
|
neu.close();
|
|
|
neu.remove();
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
alt.setLPosition( neu.getSPosition() + ( 140 + 5 * kpf.name.getLength() ) / 8, 0 );
|
|
@@ -475,7 +476,7 @@ bool GSLDatei::removeSound( char *name )
|
|
|
alt.remove();
|
|
|
neu.umbenennen( *pfad );
|
|
|
leseDaten();
|
|
|
- LeaveCriticalSection( &cs );
|
|
|
+ cs.unlock();
|
|
|
return 1;
|
|
|
}
|
|
|
|