[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/k3b
From: Sebastian Trueg <sebastian () trueg ! de>
Date: 2005-07-01 13:29:46
Message-ID: 1120224586.357168.27802.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 430474 by trueg:
Fixed HAL integration (device are properly removed now)
M +17 -20 libk3bdevice/k3bhalconnection.cpp
M +2 -0 libk3bdevice/k3bhalconnection.h
M +1 -1 tests/hal-test.h
M +3 -2 tests/hal-test.pro
--- trunk/extragear/multimedia/k3b/libk3bdevice/k3bhalconnection.cpp #430473:430474
@@ -100,9 +100,10 @@
s_contextMap[m_halContext] = this;
// report all already detected devices
- QStringList devs = devices();
- for( QStringList::const_iterator it = devs.constBegin(); it != devs.constEnd(); ++it )
- emit deviceAdded( *it );
+ int numDevices;
+ char** halDeviceList = libhal_get_all_devices( m_halContext, &numDevices, 0 );
+ for( int i = 0; i < numDevices; ++i )
+ addDevice( halDeviceList[i] );
return true;
}
@@ -133,17 +134,7 @@
QStringList K3bDevice::HalConnection::devices() const
{
- QStringList devs;
- if( m_halContext ) {
- int numDevices;
- char** halDeviceList = libhal_get_all_devices( m_halContext, &numDevices, 0 );
- for( int i = 0; i < numDevices; ++i ) {
- QString dev = getSystemDeviceForCdrom( halDeviceList[i] );
- if( !dev.isEmpty() )
- devs.append( dev );
- }
- }
- return devs;
+ return QStringList( m_udiDeviceMap.values() );
}
@@ -169,16 +160,22 @@
void K3bDevice::HalConnection::addDevice( const char* udi )
{
QString s = getSystemDeviceForCdrom( udi );
- if( !s.isEmpty() )
+ if( !s.isEmpty() ) {
+ // kdDebug() << "Mapping udi " << udi << " to device " << s << endl;
+ m_udiDeviceMap[udi] = s;
emit deviceAdded( s );
+ }
}
void K3bDevice::HalConnection::removeDevice( const char* udi )
{
- QString s = getSystemDeviceForCdrom( udi );
- if( !s.isEmpty() )
- emit deviceRemoved( s );
+ QMapIterator<QCString, QString> it = m_udiDeviceMap.find( udi );
+ if( it != m_udiDeviceMap.end() ) {
+ // kdDebug() << "Unmapping udi " << udi << " from device " << it.data() << endl;
+ emit deviceRemoved( it.data() );
+ m_udiDeviceMap.erase( it );
+ }
}
@@ -192,7 +189,7 @@
// CALLBACKS
void K3bDevice::HalConnection::halDeviceAdded( LibHalContext* ctx, const char* udi )
{
- // kdDebug() << k_funcinfo << endl;
+ // kdDebug() << "adding udi " << udi << endl;
HalConnection* con = s_contextMap[ctx];
con->addDevice( udi );
}
@@ -200,7 +197,7 @@
void K3bDevice::HalConnection::halDeviceRemoved( LibHalContext* ctx, const char* udi )
{
- // kdDebug() << k_funcinfo << endl;
+ // kdDebug() << "removing udi " << udi << endl;
HalConnection* con = s_contextMap[ctx];
con->removeDevice( udi );
}
--- trunk/extragear/multimedia/k3b/libk3bdevice/k3bhalconnection.h #430473:430474
@@ -85,6 +85,8 @@
LibHalFunctions m_halFunctions;
#endif
+ QMap<QCString, QString> m_udiDeviceMap;
+
/**
* \return the system device for cdrom devices and an empty string for all other devices.
*/
--- trunk/extragear/multimedia/k3b/tests/hal-test.h #430473:430474
@@ -1,4 +1,4 @@
-#include "../k3bhalconnection.h"
+#include "../libk3bdevice/k3bhalconnection.h"
#include <qlabel.h>
--- trunk/extragear/multimedia/k3b/tests/hal-test.pro #430473:430474
@@ -1,8 +1,9 @@
+DEFINES = HAL_0_4
LIBS = -lhal -ldbus-qt-1 -L/usr/kde/3.4/lib -lkdecore
INCLUDEPATH = /usr/include/dbus-1.0 /usr/kde/3.4/include ../libk3bdevice
CONFIG = qt debug
-SOURCES = hal-test.cpp ../k3bhalconnection.cpp
+SOURCES = hal-test.cpp ../libk3bdevice/k3bhalconnection.cpp
HEADERS = hal-test.h
TARGET = hal-test
QMAKE_EXTRA_UNIX_TARGETS = k3bhalconnection.moc
-k3bhalconnection.moc.commands = moc -o k3bhalconnection.moc ../k3bhalconnection.h
+k3bhalconnection.moc.commands = moc -o k3bhalconnection.moc ../libk3bdevice/k3bhalconnection.h
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic