[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/amarok/src
From: Alejandro Daniel Wainzinger <aikawarazuni () gmail ! com>
Date: 2008-07-19 19:00:14
Message-ID: 1216494014.740051.22483.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 834957 by awainzinger:
Add mtp device detection, fix an infinite signal/slot loop.
M +32 -2 MediaDeviceMonitor.cpp
M +2 -1 MediaDeviceMonitor.h
--- trunk/extragear/multimedia/amarok/src/MediaDeviceMonitor.cpp #834956:834957
@@ -29,6 +29,7 @@
#include <solid/device.h>
#include <solid/storageaccess.h>
#include <solid/storagedrive.h>
+#include <solid/portablemediaplayer.h>
MediaDeviceMonitor* MediaDeviceMonitor::s_instance = 0;
@@ -63,7 +64,7 @@
connect( MediaDeviceCache::instance(), SIGNAL( deviceAdded( const QString& ) ),
SLOT( deviceAdded( const QString& ) ) );
connect( MediaDeviceCache::instance(), SIGNAL( deviceRemoved( const QString& ) ),
- SLOT( deviceRemoved( const QString& ) ) );
+ SLOT( slotDeviceRemoved( const QString& ) ) );
connect( MediaDeviceCache::instance(), SIGNAL( accessibilityChanged( bool, const QString & ) ),
SLOT( slotAccessibilityChanged( bool, const QString & ) ) );
@@ -96,6 +97,10 @@
{
emit ipodDetected( MediaDeviceCache::instance()->volumeMountPoint(udi), udi );
}
+ if( isMtp( udi ) )
+ {
+ emit mtpDetected();
+ }
}
}
@@ -121,7 +126,7 @@
}
void
-MediaDeviceMonitor::deviceRemoved( const QString &udi )
+MediaDeviceMonitor::slotDeviceRemoved( const QString &udi )
{
DEBUG_BLOCK
@@ -174,3 +179,28 @@
}
+bool
+MediaDeviceMonitor::isMtp( const QString &udi )
+{
+ DEBUG_BLOCK
+
+ Solid::Device device;
+
+ device = Solid::Device( udi );
+ if( !device.is<Solid::PortableMediaPlayer>() )
+ return false;
+
+ Solid::PortableMediaPlayer *pmp = device.as<Solid::PortableMediaPlayer>();
+
+ foreach( QString protocol, pmp->supportedProtocols() )
+ {
+ if( protocol == "mtp" )
+ {
+ debug() << "MTP device detected!";
+ return true;
+ }
+ }
+
+ return false;
+}
+
--- trunk/extragear/multimedia/amarok/src/MediaDeviceMonitor.h #834956:834957
@@ -55,6 +55,7 @@
void refreshDevices(); // check all connected devices
signals:
+ void deviceRemoved( const QString &udi );
void ipodDetected( const QString &mountPoint, const QString &udi );
void mtpDetected();
@@ -65,7 +66,7 @@
void deviceAdded( const QString &udi );
- void deviceRemoved( const QString &udi );
+ void slotDeviceRemoved( const QString &udi );
void slotAccessibilityChanged( bool accessible, const QString & udi );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic