Ticket #8862: 8862-aodx_scan.patch
File 8862-aodx_scan.patch, 3.1 KB (added by , 14 years ago) |
---|
-
audiooutput.cpp
351 351 delete adc; 352 352 } 353 353 354 name = "DirectX:Primary Sound Driver"; 355 desc = ""; 356 adc = GetAudioDeviceConfig(name, desc); 357 if (adc) 354 QMap<int, QString> *dxdevs = AudioOutputDX::GetDXDevices(); 355 356 if (!dxdevs->empty()) 358 357 { 359 list->append(*adc); 360 delete adc; 358 for (QMap<int, QString>::const_iterator i = dxdevs->begin(); 359 i != dxdevs->end(); ++i) 360 { 361 QString desc = i.value(); 362 QString devname = QString("DirectX:%1").arg(desc); 363 364 adc = GetAudioDeviceConfig(devname, desc); 365 if (!adc) 366 continue; 367 list->append(*adc); 368 delete adc; 369 } 361 370 } 371 delete dxdevs; 362 372 } 363 373 #endif 364 374 -
audiooutputdx.cpp
97 97 GUID deviceGUID, *chosenGUID; 98 98 int device_count, device_num; 99 99 QString device_name; 100 QMap<int, QString> device_list; 100 101 }; 101 102 102 103 … … 149 150 context->device_num = device_count; 150 151 } 151 152 153 context->device_list.insert(device_count, enum_desc); 152 154 context->device_count++; 153 155 return 1; 154 156 } … … 172 174 chosenGUID = NULL; 173 175 device_count = 0; 174 176 device_num = 0; 177 device_list.clear(); 175 178 } 176 179 177 180 int AudioOutputDXPrivate::InitDirectSound(void) … … 189 192 goto error; 190 193 } 191 194 192 device_name = parent->m_UseSPDIF ? 195 if (parent) // parent can be NULL only when called from GetDXDevices() 196 device_name = parent->m_UseSPDIF ? 193 197 parent->passthru_device : parent->main_device; 194 198 device_name = device_name.section(':', 1); 195 199 device_num = device_name.toInt(&ok, 10); … … 598 602 VBAUDIO(QString("Set volume %1").arg(dxVolume)); 599 603 } 600 604 605 QMap<int, QString> *AudioOutputDX::GetDXDevices(void) 606 { 607 AudioOutputDXPrivate *tmp_priv = new AudioOutputDXPrivate(NULL); 608 tmp_priv->InitDirectSound(); 609 QMap<int, QString> *dxdevs = new QMap<int, QString>(tmp_priv->device_list); 610 delete tmp_priv; 611 return dxdevs; 612 } 613 601 614 /* vim: set expandtab tabstop=4 shiftwidth=4: */ -
audiooutputdx.h
1 1 #ifndef AUDIOOUTPUTDX 2 2 #define AUDIOOUTPUTDX 3 3 4 #include <QMap> 5 4 6 // MythTV headers 5 7 #include "audiooutputbase.h" 6 8 #include "audiooutputsettings.h" … … 16 18 17 19 virtual int GetVolumeChannel(int channel) const; 18 20 virtual void SetVolumeChannel(int channel, int volume); 21 static QMap<int, QString> *GetDXDevices(void); 19 22 20 23 protected: 21 24 virtual bool OpenDevice(void);