Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > 6334de56886c0b2f13e042231cd22660 > files > 5

amarok-2.4.1-1.1.mga1.src.rpm

diff -Naur amarok-2.4.3.orig/src/MediaDeviceCache.cpp amarok-2.4.3/src/MediaDeviceCache.cpp
--- amarok-2.4.3.orig/src/MediaDeviceCache.cpp	2011-07-28 15:04:45.000000000 +0200
+++ amarok-2.4.3/src/MediaDeviceCache.cpp	2011-08-19 12:34:14.000000000 +0200
@@ -93,14 +93,8 @@
         debug() << "Device name is = " << device.product() << " and was made by " << device.vendor();
 
         const Solid::StorageAccess* ssa = device.as<Solid::StorageAccess>();
-        const Solid::OpticalDisc * opt = device.as<Solid::OpticalDisc>();
 
-        if ( opt && opt->availableContent() & Solid::OpticalDisc::Audio )
-        {
-            m_type[ device.udi() ] = MediaDeviceCache::SolidAudioCdType;
-            m_name[ device.udi() ] = device.vendor() + " - " + device.product();
-        }
-        else if( ssa )
+        if( ssa )
         {
             if( !m_volumes.contains( device.udi() ) )
             {
@@ -133,6 +127,21 @@
             m_name[device.udi()] = device.vendor() + " - " + device.product();
         }
     }
+    deviceList = Solid::Device::listFromType( Solid::DeviceInterface::OpticalDisc );
+    foreach( const Solid::Device &device, deviceList )
+    {
+        debug() << "Found Solid::DeviceInterface::OpticalDisc with udi = " << device.udi();
+        debug() << "Device name is = " << device.product() << " and was made by " << device.vendor();
+
+        const Solid::OpticalDisc * opt = device.as<Solid::OpticalDisc>();
+
+        if ( opt && opt->availableContent() & Solid::OpticalDisc::Audio )
+        {
+            debug() << "device is an Audio CD";
+            m_type[device.udi()] = MediaDeviceCache::SolidAudioCdType;
+            m_name[device.udi()] = device.vendor() + " - " + device.product();
+        }
+    }
     deviceList = Solid::Device::allDevices();
     foreach( const Solid::Device &device, deviceList )
     {