mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-28 06:53:58 +00:00
- fixed: 'stat music' tried to access a non-existent stream decoder for any music played through Timidity++ on OpenAL.
This commit is contained in:
parent
2abd16f117
commit
6552e5a7a1
1 changed files with 24 additions and 18 deletions
|
@ -407,7 +407,7 @@ public:
|
||||||
virtual FString GetStats()
|
virtual FString GetStats()
|
||||||
{
|
{
|
||||||
FString stats;
|
FString stats;
|
||||||
size_t pos, len;
|
size_t pos = 0, len = 0;
|
||||||
ALfloat volume;
|
ALfloat volume;
|
||||||
ALint offset;
|
ALint offset;
|
||||||
ALint processed;
|
ALint processed;
|
||||||
|
@ -429,13 +429,18 @@ public:
|
||||||
return stats;
|
return stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Decoder != nullptr)
|
||||||
|
{
|
||||||
pos = Decoder->getSampleOffset();
|
pos = Decoder->getSampleOffset();
|
||||||
len = Decoder->getSampleLength();
|
len = Decoder->getSampleLength();
|
||||||
|
}
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
|
||||||
stats = (state == AL_INITIAL) ? "Buffering" : (state == AL_STOPPED) ? "Underrun" :
|
stats = (state == AL_INITIAL) ? "Buffering" : (state == AL_STOPPED) ? "Underrun" :
|
||||||
(state == AL_PLAYING || state == AL_PAUSED) ? "Ready" : "Unknown state";
|
(state == AL_PLAYING || state == AL_PAUSED) ? "Ready" : "Unknown state";
|
||||||
|
|
||||||
|
if (Decoder != nullptr)
|
||||||
|
{
|
||||||
if (state == AL_STOPPED)
|
if (state == AL_STOPPED)
|
||||||
offset = BufferCount * (Data.Size() / FrameSize);
|
offset = BufferCount * (Data.Size() / FrameSize);
|
||||||
else
|
else
|
||||||
|
@ -451,6 +456,7 @@ public:
|
||||||
stats.AppendFormat(", %zu.%03zu", pos / 1000, pos % 1000);
|
stats.AppendFormat(", %zu.%03zu", pos / 1000, pos % 1000);
|
||||||
if (len > 0)
|
if (len > 0)
|
||||||
stats.AppendFormat(" / %zu.%03zu", len / 1000, len % 1000);
|
stats.AppendFormat(" / %zu.%03zu", len / 1000, len % 1000);
|
||||||
|
}
|
||||||
if(state == AL_PAUSED)
|
if(state == AL_PAUSED)
|
||||||
stats += ", paused";
|
stats += ", paused";
|
||||||
if(state == AL_PLAYING)
|
if(state == AL_PLAYING)
|
||||||
|
|
Loading…
Reference in a new issue