diff -r cc75c76972ee -r c0432d11811c src/multimedia/audio/qaudiooutput_alsa_p.cpp --- a/src/multimedia/audio/qaudiooutput_alsa_p.cpp Wed Apr 21 12:15:23 2010 +0300 +++ b/src/multimedia/audio/qaudiooutput_alsa_p.cpp Wed Apr 21 20:15:53 2010 +0300 @@ -84,8 +84,7 @@ resuming = false; opened = false; - QStringList list1 = QString(QLatin1String(device)).split(QLatin1String(":")); - m_device = QByteArray(list1.at(0).toLocal8Bit().constData()); + m_device = device; timer = new QTimer(this); connect(timer,SIGNAL(timeout()),SLOT(userFeed())); @@ -282,11 +281,11 @@ int count=0; unsigned int freakuency=settings.frequency(); - QString dev = QLatin1String(m_device.constData()); + QString dev = QString(QLatin1String(m_device.constData())); QList devices = QAudioDeviceInfoInternal::availableDevices(QAudio::AudioOutput); if(dev.compare(QLatin1String("default")) == 0) { #if(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14) - dev = QLatin1String(devices.first().constData()); + dev = QLatin1String(devices.first()); #else dev = QLatin1String("hw:0,0"); #endif @@ -485,7 +484,6 @@ void QAudioOutputPrivate::close() { - deviceState = QAudio::StoppedState; timer->stop(); if ( handle ) { @@ -701,6 +699,7 @@ } else if(l < 0) { close(); + deviceState = QAudio::StoppedState; errorState = QAudio::IOError; emit stateChanged(deviceState); }