Unify playback libs with common base class
Remove duplicate code Fix bugs in implementations (threading, logic) Remove SetStreamVolumeMax and use SetGlobalVolume instead
This commit is contained in:
1 parent
0692fe3c9b
commit
a4b1c3eb86
34 files changed
+1160
-1750
No files matched your search
@@ -5,6 +5,7 @@
|
||||
|
||||
map<int, GstreamerAudioStream*> Streams;
|
||||
queue<int> IDs;
|
||||
float GlobalVolume = 1.f;
|
||||
EXTERN_C IMAGE_DOS_HEADER __ImageBase;
|
||||
DllExport void SetLogCallback (LogCallback Callback)
|
||||
{
|
||||
@@ -41,17 +42,20 @@ DllExport void SetGlobalVolume(float Volume)
|
||||
map<int, GstreamerAudioStream*>::iterator p;
|
||||
|
||||
for(p = Streams.begin(); p != Streams.end(); p++) {
|
||||
p->second->SetStreamVolume(Volume);
|
||||
p->second->SetStreamVolumeMax(Volume);
|
||||
}
|
||||
GlobalVolume = Volume;
|
||||
}
|
||||
|
||||
DllExport float GetGlobalVolume(){
|
||||
return GlobalVolume;
|
||||
}
|
||||
|
||||
DllExport int GetStreamCount(void)
|
||||
{
|
||||
return Streams.size();
|
||||
}
|
||||
|
||||
|
||||
DllExport void CloseAll(void)
|
||||
{
|
||||
map<int, GstreamerAudioStream*>::iterator p;
|
||||
@@ -66,7 +70,10 @@ DllExport int Load(const wchar_t* Media)
|
||||
GstreamerAudioStream *s = new GstreamerAudioStream(IDs.front());
|
||||
Streams.insert(pair<int, GstreamerAudioStream*> (IDs.front(), s));
|
||||
IDs.pop();
|
||||
return s->Load(Media);
|
||||
int result = s->Load(Media);
|
||||
s->SetStreamVolume(1.f);
|
||||
s->SetStreamVolumeMax(GlobalVolume);
|
||||
return result;
|
||||
}
|
||||
|
||||
DllExport int LoadPrescan(const wchar_t* Media, bool Prescan)
|
||||
@@ -74,7 +81,10 @@ DllExport int LoadPrescan(const wchar_t* Media, bool Prescan)
|
||||
GstreamerAudioStream *s = new GstreamerAudioStream(IDs.front());
|
||||
Streams.insert(pair<int, GstreamerAudioStream*> (IDs.front(), s));
|
||||
IDs.pop();
|
||||
return s->Load(Media, Prescan);
|
||||
int result = s->Load(Media, Prescan);
|
||||
s->SetStreamVolume(1.f);
|
||||
s->SetStreamVolumeMax(GlobalVolume);
|
||||
return result;
|
||||
}
|
||||
|
||||
DllExport void Close(int Stream)
|
||||
@@ -160,15 +170,6 @@ DllExport void SetStreamVolume(int Stream, float Volume)
|
||||
}
|
||||
}
|
||||
|
||||
DllExport void SetStreamVolumeMax(int Stream, float Volume)
|
||||
{
|
||||
map<int,GstreamerAudioStream*>::iterator it = Streams.find(Stream);
|
||||
if(it != Streams.end())
|
||||
{
|
||||
return it->second->SetStreamVolumeMax(Volume);
|
||||
}
|
||||
}
|
||||
|
||||
DllExport float GetLength(int Stream)
|
||||
{
|
||||
map<int,GstreamerAudioStream*>::iterator it = Streams.find(Stream);
|
||||
|
||||
Reference in new issue
Block a user