aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2018-04-29 16:43:09 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2018-04-29 16:43:09 +0300
commit2cd773bca61b913804734a884618f5bfbfc306ed (patch)
tree6737f4b99763c317c2026667f5fa249e0092caee /utils
parent7bfbd8525a0f52746b6b1e8b5aca7fdf5226b058 (diff)
downloadlibADLMIDI-2cd773bca61b913804734a884618f5bfbfc306ed.tar.gz
libADLMIDI-2cd773bca61b913804734a884618f5bfbfc306ed.tar.bz2
libADLMIDI-2cd773bca61b913804734a884618f5bfbfc306ed.zip
ADLMIDIPlay: Fill g_audioFormat from obtained sample format value
To avoid distorted sound because wanted and obtained sample format is different.
Diffstat (limited to 'utils')
-rw-r--r--utils/midiplay/adlmidiplay.cpp71
1 files changed, 41 insertions, 30 deletions
diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp
index d1e9895..a591626 100644
--- a/utils/midiplay/adlmidiplay.cpp
+++ b/utils/midiplay/adlmidiplay.cpp
@@ -132,12 +132,20 @@ static const char *SDLAudioToStr(int format)
return "U8";
case AUDIO_S16:
return "S16";
+ case AUDIO_S16MSB:
+ return "S16MSB";
case AUDIO_U16:
return "U16";
+ case AUDIO_U16MSB:
+ return "U16MSB";
case AUDIO_S32:
return "S32";
+ case AUDIO_S32MSB:
+ return "S32MSB";
case AUDIO_F32:
return "F32";
+ case AUDIO_F32MSB:
+ return "F32MSB";
default:
return "UNK";
}
@@ -336,47 +344,17 @@ int main(int argc, char **argv)
recordWave = true;//Record library output into WAV file
}
else if(!std::strcmp("-s8", argv[2]) && !recordWave)
- {
spec.format = AUDIO_S8;
- g_audioFormat.type = ADLMIDI_SampleType_S8;
- g_audioFormat.containerSize = sizeof(Sint8);
- g_audioFormat.sampleOffset = sizeof(Sint8) * 2;
- }
else if(!std::strcmp("-u8", argv[2]) && !recordWave)
- {
spec.format = AUDIO_U8;
- g_audioFormat.type = ADLMIDI_SampleType_U8;
- g_audioFormat.containerSize = sizeof(Uint8);
- g_audioFormat.sampleOffset = sizeof(Uint8) * 2;
- }
else if(!std::strcmp("-s16", argv[2]) && !recordWave)
- {
spec.format = AUDIO_S16;
- g_audioFormat.type = ADLMIDI_SampleType_S16;
- g_audioFormat.containerSize = sizeof(Sint16);
- g_audioFormat.sampleOffset = sizeof(Sint16) * 2;
- }
else if(!std::strcmp("-u16", argv[2]) && !recordWave)
- {
spec.format = AUDIO_U16;
- g_audioFormat.type = ADLMIDI_SampleType_U16;
- g_audioFormat.containerSize = sizeof(Uint16);
- g_audioFormat.sampleOffset = sizeof(Uint16) * 2;
- }
else if(!std::strcmp("-s32", argv[2]) && !recordWave)
- {
spec.format = AUDIO_S32;
- g_audioFormat.type = ADLMIDI_SampleType_S32;
- g_audioFormat.containerSize = sizeof(Sint32);
- g_audioFormat.sampleOffset = sizeof(Sint32) * 2;
- }
else if(!std::strcmp("-f32", argv[2]) && !recordWave)
- {
spec.format = AUDIO_F32;
- g_audioFormat.type = ADLMIDI_SampleType_F32;
- g_audioFormat.containerSize = sizeof(float);
- g_audioFormat.sampleOffset = sizeof(float) * 2;
- }
#endif
else if(!std::strcmp("-t", argv[2]))
@@ -446,6 +424,39 @@ int main(int argc, char **argv)
SDLAudioToStr(spec.format), spec.samples, spec.freq, spec.channels,
SDLAudioToStr(obtained.format), obtained.samples, obtained.freq, obtained.channels);
}
+ switch(obtained.format)
+ {
+ case AUDIO_S8:
+ g_audioFormat.type = ADLMIDI_SampleType_S8;
+ g_audioFormat.containerSize = sizeof(Sint8);
+ g_audioFormat.sampleOffset = sizeof(Sint8) * 2;
+ break;
+ case AUDIO_U8:
+ g_audioFormat.type = ADLMIDI_SampleType_U8;
+ g_audioFormat.containerSize = sizeof(Uint8);
+ g_audioFormat.sampleOffset = sizeof(Uint8) * 2;
+ break;
+ case AUDIO_S16:
+ g_audioFormat.type = ADLMIDI_SampleType_S16;
+ g_audioFormat.containerSize = sizeof(Sint16);
+ g_audioFormat.sampleOffset = sizeof(Sint16) * 2;
+ break;
+ case AUDIO_U16:
+ g_audioFormat.type = ADLMIDI_SampleType_U16;
+ g_audioFormat.containerSize = sizeof(Uint16);
+ g_audioFormat.sampleOffset = sizeof(Uint16) * 2;
+ break;
+ case AUDIO_S32:
+ g_audioFormat.type = ADLMIDI_SampleType_S32;
+ g_audioFormat.containerSize = sizeof(Sint32);
+ g_audioFormat.sampleOffset = sizeof(Sint32) * 2;
+ break;
+ case AUDIO_F32:
+ g_audioFormat.type = ADLMIDI_SampleType_F32;
+ g_audioFormat.containerSize = sizeof(float);
+ g_audioFormat.sampleOffset = sizeof(float) * 2;
+ break;
+ }
}
#endif