diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-03-17 09:48:51 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-03-17 09:48:51 +0100 |
commit | 64b75cc1d7ab1c3a557c809e15154d5d3a03d1ad (patch) | |
tree | fc77380849c882da0dbc3c96f4fbbf92b0c21d33 /src/plugins | |
parent | d109e6dd5d6a18e715b979f3d3ef845946b1b787 (diff) | |
parent | d4208cc5a1c6d6bf114653b39b8880fe4c00c1f3 (diff) | |
download | qtmultimedia-64b75cc1d7ab1c3a557c809e15154d5d3a03d1ad.tar.gz |
Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: Id24f14bef17b86e7027e055473f0357854780979
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/alsa/qalsaaudiodeviceinfo.cpp | 109 | ||||
-rw-r--r-- | src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp | 4 |
2 files changed, 54 insertions, 59 deletions
diff --git a/src/plugins/alsa/qalsaaudiodeviceinfo.cpp b/src/plugins/alsa/qalsaaudiodeviceinfo.cpp index 717b6471b..be90ca666 100644 --- a/src/plugins/alsa/qalsaaudiodeviceinfo.cpp +++ b/src/plugins/alsa/qalsaaudiodeviceinfo.cpp @@ -337,9 +337,14 @@ QList<QByteArray> QAlsaAudioDeviceInfo::availableDevices(QAudio::Mode mode) #if(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14) // Create a list of all current audio devices that support mode - void **hints; + void **hints, **n; char *name, *descr, *io; - int card = -1; + + if(snd_device_name_hint(-1, "pcm", &hints) < 0) { + qWarning() << "no alsa devices available"; + return devices; + } + n = hints; if(mode == QAudio::AudioInput) { filter = "Input"; @@ -347,35 +352,28 @@ QList<QByteArray> QAlsaAudioDeviceInfo::availableDevices(QAudio::Mode mode) filter = "Output"; } - while (snd_card_next(&card) == 0 && card >= 0) { - if (snd_device_name_hint(card, "pcm", &hints) < 0) - continue; - - void **n = hints; - while (*n != NULL) { - name = snd_device_name_get_hint(*n, "NAME"); - if (name != 0 && qstrcmp(name, "null") != 0) { - descr = snd_device_name_get_hint(*n, "DESC"); - io = snd_device_name_get_hint(*n, "IOID"); - - if ((descr != NULL) && ((io == NULL) || (io == filter))) { - QString deviceName = QLatin1String(name); - QString deviceDescription = QLatin1String(descr); - if (deviceDescription.contains(QLatin1String("Default Audio Device"))) - devices.prepend(deviceName.toLocal8Bit().constData()); - else - devices.append(deviceName.toLocal8Bit().constData()); - } - - free(descr); - free(io); + while (*n != NULL) { + name = snd_device_name_get_hint(*n, "NAME"); + if (name != 0 && qstrcmp(name, "null") != 0) { + descr = snd_device_name_get_hint(*n, "DESC"); + io = snd_device_name_get_hint(*n, "IOID"); + + if ((descr != NULL) && ((io == NULL) || (io == filter))) { + QString deviceName = QLatin1String(name); + QString deviceDescription = QLatin1String(descr); + if (deviceDescription.contains(QLatin1String("Default Audio Device"))) + devices.prepend(deviceName.toLocal8Bit().constData()); + else + devices.append(deviceName.toLocal8Bit().constData()); } - free(name); - ++n; - } - snd_device_name_free_hint(hints); + free(descr); + free(io); + } + free(name); + ++n; } + snd_device_name_free_hint(hints); #else int idx = 0; char* name; @@ -416,41 +414,38 @@ void QAlsaAudioDeviceInfo::checkSurround() surround51 = false; surround71 = false; - void **hints; + void **hints, **n; char *name, *descr, *io; - int card = -1; - while (snd_card_next(&card) == 0 && card >= 0) { - if (snd_device_name_hint(card, "pcm", &hints) < 0) - continue; + if(snd_device_name_hint(-1, "pcm", &hints) < 0) + return; - void **n = hints; - while (*n != NULL) { - name = snd_device_name_get_hint(*n, "NAME"); - descr = snd_device_name_get_hint(*n, "DESC"); - io = snd_device_name_get_hint(*n, "IOID"); - if((name != NULL) && (descr != NULL)) { - QString deviceName = QLatin1String(name); - if (mode == QAudio::AudioOutput) { - if(deviceName.contains(QLatin1String("surround40"))) - surround40 = true; - if(deviceName.contains(QLatin1String("surround51"))) - surround51 = true; - if(deviceName.contains(QLatin1String("surround71"))) - surround71 = true; - } + n = hints; + + while (*n != NULL) { + name = snd_device_name_get_hint(*n, "NAME"); + descr = snd_device_name_get_hint(*n, "DESC"); + io = snd_device_name_get_hint(*n, "IOID"); + if((name != NULL) && (descr != NULL)) { + QString deviceName = QLatin1String(name); + if (mode == QAudio::AudioOutput) { + if(deviceName.contains(QLatin1String("surround40"))) + surround40 = true; + if(deviceName.contains(QLatin1String("surround51"))) + surround51 = true; + if(deviceName.contains(QLatin1String("surround71"))) + surround71 = true; } - if(name != NULL) - free(name); - if(descr != NULL) - free(descr); - if(io != NULL) - free(io); - ++n; } - - snd_device_name_free_hint(hints); + if(name != NULL) + free(name); + if(descr != NULL) + free(descr); + if(io != NULL) + free(io); + ++n; } + snd_device_name_free_hint(hints); } QT_END_NAMESPACE diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp index 14a26c0b9..c65dec44e 100644 --- a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp +++ b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp @@ -307,7 +307,7 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent, { StateChangeNotifier notifier(this); - mReloadingMedia = (mMediaContent == mediaContent); + mReloadingMedia = (mMediaContent == mediaContent) && !mPendingSetMedia; if (!mReloadingMedia) { mMediaContent = mediaContent; @@ -712,8 +712,8 @@ void QAndroidMediaPlayerControl::resetBufferingProgress() void QAndroidMediaPlayerControl::flushPendingStates() { if (mPendingSetMedia) { - mPendingSetMedia = false; setMedia(mMediaContent, 0); + mPendingSetMedia = false; return; } |