Magellan Linux

Annotation of /trunk/kdebase/patches/kdebase-3.4.3-hal-0.5.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (hide annotations) (download)
Tue May 8 20:06:05 2007 UTC (17 years, 1 month ago) by niro
File size: 37362 byte(s)
-import

1 niro 144 diff -Nur kdebase-3.4.3.orig/kioslave/media/configure.in.in kdebase-3.4.3/kioslave/media/configure.in.in
2     --- kdebase-3.4.3.orig/kioslave/media/configure.in.in 2005-10-05 15:38:19.000000000 +0200
3     +++ kdebase-3.4.3/kioslave/media/configure.in.in 2005-10-09 11:50:50.000000000 +0200
4     @@ -12,100 +12,100 @@
5     AC_ARG_WITH(hal,AC_HELP_STRING([--with-hal],[Enable HAL support [default=check]]),[hal_test="$withval"],[hal_test="yes"])
6    
7     if test "x$hal_test" = "xyes" ; then
8     -
9     -########### Check for the HAL, version 0.4.x
10     -
11     - AC_MSG_CHECKING(for the HAL 0.4)
12     -
13     +
14     +########### Check for the HAL
15     +
16     + AC_MSG_CHECKING(for the HAL)
17     +
18     hal_inc=NOTFOUND
19     hal_lib=NOTFOUND
20     hal=NOTFOUND
21     -
22     - search_incs="$kde_includes /usr/include /usr/local/include /usr/include/hal /usr/local/include/hal"
23     +
24     + search_incs="$kde_includes /usr/include /usr/include/hal /usr/local/include /usr/local/include/hal"
25     AC_FIND_FILE(libhal.h libhal-storage.h, $search_incs, hal_incdir)
26     -
27     +
28     if test -r $hal_incdir/libhal.h && test -r $hal_incdir/libhal-storage.h ; then
29     HAL_INCS="-I$hal_incdir"
30     hal_inc=FOUND
31     fi
32     -
33     +
34     + if test -r $hal_incdir/libhal-storage.h ; then
35     + hal_storage_version=4
36     + grep LibHalVolume $hal_incdir/libhal-storage.h \
37     + > /dev/null 2>&1 && hal_storage_version=5
38     + if test $hal_storage_version = 4 ; then
39     + AC_DEFINE(HAL_0_4, , [HAL API version 0.4])
40     + fi
41     + fi
42     +
43     search_libs="$kde_libraries /usr/lib /usr/local/lib"
44     AC_FIND_FILE(libhal.so libhal-storage.so, $search_libs, hal_libdir)
45     -
46     - if [test -r $hal_libdir/libhal.so] && test -r $hal_libdir/libhal-storage.so ; then
47     +
48     + if test -r $hal_libdir/libhal.so && test -r $hal_libdir/libhal-storage.so ; then
49     HAL_LIBS="-L$hal_libdir -lhal -lhal-storage"
50     hal_lib=FOUND
51     fi
52     -
53     - if test -r $hal_incdir/libhal.h ; then
54     - hal_version=5
55     - grep LibHalFunctions $hal_incdir/libhal.h \
56     - > /dev/null 2>&1 && hal_version=4
57     - if test $hal_version = 5 ; then
58     - hal_lib=NOT_FOUND
59     - fi
60     - fi
61     -
62     -
63     - if test "$hal_inc" = "FOUND" && test "$hal_lib" = "FOUND" ; then
64     +
65     +
66     + if test $hal_inc = FOUND && test $hal_lib = FOUND ; then
67     AC_MSG_RESULT(headers $hal_incdir libraries $hal_libdir)
68     - hal=FOUND
69     + hal=FOUND
70     else
71     AC_MSG_RESULT(searched but not found)
72     fi
73     -
74     +
75     AC_SUBST(HAL_INCS)
76     AC_SUBST(HAL_LIBS)
77     -
78     -
79     +
80     +
81     ########### Check for DBus
82     -
83     +
84     AC_MSG_CHECKING(for DBus)
85     -
86     +
87     dbus_inc=NOTFOUND
88     dbus_lib=NOTFOUND
89     dbus=NOTFOUND
90     -
91     - search_incs="$kde_includes /usr/include /usr/local/include /usr/include/dbus-1.0 /usr/local/include/dbus-1.0"
92     +
93     + search_incs="$kde_includes /usr/include /usr/include/dbus-1.0 /usr/local/include /usr/local/include/dbus-1.0"
94     AC_FIND_FILE(dbus/dbus.h, $search_incs, dbus_incdir)
95     -
96     +
97     search_incs_arch_deps="$kde_includes /usr/lib/dbus-1.0/include /usr/local/lib/dbus-1.0/include"
98     AC_FIND_FILE(dbus/dbus-arch-deps.h, $search_incs_arch_deps, dbus_incdir_arch_deps)
99     -
100     +
101     if test -r $dbus_incdir/dbus/dbus.h && test -r $dbus_incdir_arch_deps/dbus/dbus-arch-deps.h ; then
102     DBUS_INCS="-I$dbus_incdir -I$dbus_incdir_arch_deps"
103     dbus_inc=FOUND
104     fi
105     -
106     +
107     search_libs="$kde_libraries /usr/lib /usr/local/lib"
108     AC_FIND_FILE(libdbus-1.so, $search_libs, dbus_libdir)
109     -
110     +
111     if test -r $dbus_libdir/libdbus-1.so ; then
112     DBUS_LIBS="-L$dbus_libdir -ldbus-1"
113     dbus_lib=FOUND
114     fi
115     -
116     +
117     if test "$dbus_inc" = FOUND && test "$dbus_lib" = FOUND ; then
118     AC_MSG_RESULT(headers $dbus_incdir $dbus_incdir_arch_deps libraries $dbus_libdir)
119     dbus=FOUND
120     else
121     AC_MSG_RESULT(searched but not found)
122     fi
123     -
124     +
125     AC_SUBST(DBUS_INCS)
126     AC_SUBST(DBUS_LIBS)
127     -
128     +
129     ########### Check for DBus-Qt bindings
130     -
131     +
132     AC_MSG_CHECKING(for DBus-Qt bindings)
133     -
134     +
135     dbusqt_inc=NOTFOUND
136     dbusqt_lib=NOTFOUND
137     dbusqt=NOTFOUND
138     -
139     - search_incs="$kde_includes /usr/include /usr/local/include /usr/include/dbus-1.0 /usr/local/include/dbus-1.0"
140     +
141     + search_incs="$kde_includes /usr/include /usr/include/dbus-1.0 /usr/local/include /usr/local/include/dbus-1.0"
142     AC_FIND_FILE(dbus/connection.h, $search_incs, dbusqt_incdir)
143     -
144     +
145     if test -r $dbusqt_incdir/dbus/connection.h ; then
146     have_qt_patch=0
147     grep dbus_connection_setup_with_qt_main $dbusqt_incdir/dbus/connection.h \
148     @@ -115,15 +115,15 @@
149     dbusqt_inc=FOUND
150     fi
151     fi
152     -
153     +
154     search_libs="$kde_libraries /usr/lib /usr/local/lib"
155     AC_FIND_FILE(libdbus-qt-1.so, $search_libs, dbusqt_libdir)
156     -
157     +
158     if test -r $dbusqt_libdir/libdbus-qt-1.so ; then
159     DBUSQT_LIBS="-L$dbusqt_libdir -ldbus-qt-1"
160     dbusqt_lib=FOUND
161     fi
162     -
163     +
164     if test "$dbusqt_inc" = FOUND && test "$dbusqt_lib" = FOUND ; then
165     AC_MSG_RESULT(headers $dbusqt_incdir libraries $dbusqt_libdir)
166     dbusqt=FOUND
167     diff -Nur kdebase-3.4.3.orig/kioslave/media/kdedmodule/Makefile.am kdebase-3.4.3/kioslave/media/kdedmodule/Makefile.am
168     --- kdebase-3.4.3.orig/kioslave/media/kdedmodule/Makefile.am 2005-10-05 15:38:19.000000000 +0200
169     +++ kdebase-3.4.3/kioslave/media/kdedmodule/Makefile.am 2005-10-09 11:24:34.000000000 +0200
170     @@ -22,7 +22,7 @@
171    
172     noinst_LTLIBRARIES = $(LINUXCDPOLLING_LIB) $(HALBACKEND_LIB)
173    
174     -kded_mediamanager_la_SOURCES = mediamanager.cpp mediamanager.skel medialist.cpp backendbase.cpp fstabbackend.cpp removablebackend.cpp mediadirnotify.cpp mediadirnotify.skel
175     +kded_mediamanager_la_SOURCES = mediamanager.cpp mediamanager.skel medialist.cpp backendbase.cpp fstabbackend.cpp haladdition.cpp removablebackend.cpp mediadirnotify.cpp mediadirnotify.skel
176     kded_mediamanager_la_LDFLAGS = $(all_libraries) -module -avoid-version
177     kded_mediamanager_la_LIBADD = $(LIB_KSYCOCA) ../libmediacommon/libmediacommon.la $(HALBACKEND_LIB) $(LINUXCDPOLLING_LIB)
178    
179     diff -Nur kdebase-3.4.3.orig/kioslave/media/kdedmodule/haladdition.cpp kdebase-3.4.3/kioslave/media/kdedmodule/haladdition.cpp
180     --- kdebase-3.4.3.orig/kioslave/media/kdedmodule/haladdition.cpp 1970-01-01 01:00:00.000000000 +0100
181     +++ kdebase-3.4.3/kioslave/media/kdedmodule/haladdition.cpp 2005-10-09 11:24:34.000000000 +0200
182     @@ -0,0 +1,155 @@
183     +/* This file is part of the KDE Project
184     + Copyright (c) 2004 Kévin Ottens <ervin ipsquad net>
185     +
186     + This library is free software; you can redistribute it and/or
187     + modify it under the terms of the GNU Library General Public
188     + License version 2 as published by the Free Software Foundation.
189     +
190     + This library is distributed in the hope that it will be useful,
191     + but WITHOUT ANY WARRANTY; without even the implied warranty of
192     + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
193     + Library General Public License for more details.
194     +
195     + You should have received a copy of the GNU Library General Public License
196     + along with this library; see the file COPYING.LIB. If not, write to
197     + the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
198     + Boston, MA 02111-1307, USA.
199     +*/
200     +
201     +#include "haladdition.h"
202     +
203     +#include <klocale.h>
204     +#include <kdirwatch.h>
205     +#include <kurl.h>
206     +#include <kstandarddirs.h>
207     +
208     +#ifdef _OS_SOLARIS_
209     +#define MTAB "/etc/mnttab"
210     +#else
211     +#define MTAB "/etc/mtab"
212     +#endif
213     +
214     +
215     +HalAddition::HalAddition(MediaList &list)
216     + : QObject(), BackendBase(list)
217     +{
218     + KDirWatch::self()->addFile(MTAB);
219     +
220     + connect( KDirWatch::self(), SIGNAL( dirty(const QString&) ),
221     + this, SLOT( slotDirty(const QString&) ) );
222     +
223     + handleMtabChange();
224     +
225     + KDirWatch::self()->startScan();
226     +}
227     +
228     +void HalAddition::slotDirty(const QString &path)
229     +{
230     + if (path==MTAB)
231     + {
232     + handleMtabChange();
233     + }
234     +}
235     +
236     +void HalAddition::handleMtabChange()
237     +{
238     + QStringList new_mtabIds;
239     + KMountPoint::List mtab = KMountPoint::currentMountPoints();
240     +
241     + KMountPoint::List::iterator it = mtab.begin();
242     + KMountPoint::List::iterator end = mtab.end();
243     +
244     + for (; it!=end; ++it)
245     + {
246     + QString dev = (*it)->mountedFrom();
247     + QString mp = (*it)->mountPoint();
248     + QString fs = (*it)->mountType();
249     +
250     + if ( mp == "/"
251     + || mp.find("/media/floppy") != -1
252     + || mp.find("/media/zip") != -1
253     + || mp.find("/media/jaz") != -1
254     + )
255     + {
256     + QString device;
257     + const Medium *medium;
258     +
259     + device = dev;
260     + device.replace("/dev/", "");
261     +
262     + if (medium = m_mediaList.findByName(device))
263     + {
264     + QString mime, icon, label;
265     + guess(dev, mp, fs, true, mime, icon, label);
266     + m_mediaList.changeMediumState(medium->id(), dev, mp, fs, true, mime, icon, medium->label());
267     + new_mtabIds += device;
268     + }
269     + }
270     + }
271     +
272     + QStringList::iterator it2 = m_mtabIds.begin();
273     + QStringList::iterator end2 = m_mtabIds.end();
274     +
275     + for (; it2!=end2; ++it2)
276     + {
277     + if ( !new_mtabIds.contains(*it2) )
278     + {
279     + const Medium *medium;
280     +
281     + if (medium = m_mediaList.findByName(*it2))
282     + {
283     + QString dev = medium->deviceNode();
284     + QString mp = medium->mountPoint();
285     + QString fs = medium->fsType();
286     + QString mime, icon, label;
287     +
288     + guess(dev, mp, fs, false, mime, icon, label);
289     + m_mediaList.changeMediumState(medium->id(), false, mime, icon, medium->label());
290     + }
291     + }
292     + }
293     + m_mtabIds = new_mtabIds;
294     +}
295     +
296     +void HalAddition::guess(const QString &devNode, const QString &mountPoint,
297     + const QString &fsType, bool mounted,
298     + QString &mimeType, QString &iconName, QString &label)
299     +{
300     + if ( devNode.find("fd")!=-1 )
301     + {
302     + if ( devNode.find("360")!=-1 || devNode.find("1200")!=-1 )
303     + {
304     + mimeType = "media/floppy5";
305     + }
306     + else
307     + {
308     + mimeType = "media/floppy";
309     + }
310     + label = i18n("Floppy");
311     + }
312     + else if ( mountPoint.find("zip")!=-1
313     + || mountPoint.find("jaz")!=-1
314     + // FREEBSD SPECIFIC
315     + || devNode.find("/afd")!=-1
316     + )
317     + {
318     + mimeType = "media/zip";
319     + label = i18n("Zip Disk");
320     + }
321     + else
322     + {
323     + mimeType = "media/hdd";
324     + label = i18n("Harddisk");
325     + }
326     +
327     + QString tmp = devNode;
328     + if ( tmp.startsWith("/dev/") )
329     + {
330     + tmp = tmp.mid(5);
331     + }
332     + label+= " (" + tmp + ")";
333     + mimeType+= (mounted ? "_mounted" : "_unmounted");
334     + iconName = QString::null;
335     +}
336     +
337     +#include "haladdition.moc"
338     diff -Nur kdebase-3.4.3.orig/kioslave/media/kdedmodule/haladdition.h kdebase-3.4.3/kioslave/media/kdedmodule/haladdition.h
339     --- kdebase-3.4.3.orig/kioslave/media/kdedmodule/haladdition.h 1970-01-01 01:00:00.000000000 +0100
340     +++ kdebase-3.4.3/kioslave/media/kdedmodule/haladdition.h 2005-10-09 11:24:34.000000000 +0200
341     @@ -0,0 +1,49 @@
342     +/* This file is part of the KDE Project
343     + Copyright (c) 2004 Kévin Ottens <ervin ipsquad net>
344     +
345     + This library is free software; you can redistribute it and/or
346     + modify it under the terms of the GNU Library General Public
347     + License version 2 as published by the Free Software Foundation.
348     +
349     + This library is distributed in the hope that it will be useful,
350     + but WITHOUT ANY WARRANTY; without even the implied warranty of
351     + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
352     + Library General Public License for more details.
353     +
354     + You should have received a copy of the GNU Library General Public License
355     + along with this library; see the file COPYING.LIB. If not, write to
356     + the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
357     + Boston, MA 02111-1307, USA.
358     +*/
359     +
360     +#ifndef _HALADDITION_H_
361     +#define _HALADDITION_H_
362     +
363     +#include "backendbase.h"
364     +
365     +#include <qobject.h>
366     +#include <qstringlist.h>
367     +#include <kmountpoint.h>
368     +
369     +class HalAddition : public QObject, public BackendBase
370     +{
371     +Q_OBJECT
372     +
373     +public:
374     + HalAddition(MediaList &list);
375     + virtual ~HalAddition() {};
376     +
377     + static void guess(const QString &devNode, const QString &mountPoint,
378     + const QString &fsType, bool mounted,
379     + QString &mimeType, QString &iconName,
380     + QString &label);
381     +private slots:
382     + void slotDirty(const QString &path);
383     +
384     +private:
385     + void handleMtabChange();
386     + QStringList m_mtabIds;
387     +
388     +};
389     +
390     +#endif
391     diff -Nur kdebase-3.4.3.orig/kioslave/media/kdedmodule/halbackend.cpp kdebase-3.4.3/kioslave/media/kdedmodule/halbackend.cpp
392     --- kdebase-3.4.3.orig/kioslave/media/kdedmodule/halbackend.cpp 2005-10-05 15:38:19.000000000 +0200
393     +++ kdebase-3.4.3/kioslave/media/kdedmodule/halbackend.cpp 2005-10-09 13:54:26.000000000 +0200
394     @@ -1,5 +1,5 @@
395     /* This file is part of the KDE Project
396     - Copyright (c) 2004 Jérôme Lodewyck <lodewyck@clipper.ens.fr>
397     + Copyright (c) 2004 - 2005 Jérôme Lodewyck <lodewyck@clipper.ens.fr>
398    
399     This library is free software; you can redistribute it and/or
400     modify it under the terms of the GNU Library General Public
401     @@ -19,12 +19,14 @@
402     #include "halbackend.h"
403     #include "linuxcdpolling.h"
404    
405     +#include <stdlib.h>
406     +
407     #include <klocale.h>
408     #include <kurl.h>
409     #include <kdebug.h>
410    
411     -#define MOUNT_SUFFIX (hal_volume_is_mounted(halVolume) ? QString("_mounted") : QString("_unmounted"))
412     -#define MOUNT_ICON_SUFFIX (hal_volume_is_mounted(halVolume) ? QString("_mount") : QString("_unmount"))
413     +#define MOUNT_SUFFIX (libhal_volume_is_mounted(halVolume) ? QString("_mounted") : QString("_unmounted"))
414     +#define MOUNT_ICON_SUFFIX (libhal_volume_is_mounted(halVolume) ? QString("_mount") : QString("_unmount"))
415    
416     /* Static instance of this class, for static HAL callbacks */
417     static HALBackend* s_HALBackend;
418     @@ -34,9 +36,9 @@
419     {
420     char* _ppt_string;
421     QString _ppt_QString;
422     - _ppt_string = hal_device_get_property_string(ctx, udi, key);
423     + _ppt_string = libhal_device_get_property_string(ctx, udi, key, NULL);
424     _ppt_QString = QString(_ppt_string ? _ppt_string : "");
425     - hal_free_string(_ppt_string);
426     + libhal_free_string(_ppt_string);
427     return _ppt_QString;
428     }
429    
430     @@ -56,14 +58,24 @@
431     {
432     /* Close HAL connection */
433     if (m_halContext)
434     + {
435     + #ifdef HAL_0_4
436     hal_shutdown(m_halContext);
437     + #else
438     + libhal_ctx_shutdown(m_halContext, NULL);
439     + libhal_ctx_free(m_halContext);
440     + #endif
441     + }
442     if (m_halStoragePolicy)
443     - hal_storage_policy_free(m_halStoragePolicy);
444     + libhal_storage_policy_free(m_halStoragePolicy);
445     +
446     + /** @todo empty media list ? */
447     }
448    
449     /* Connect to the HAL */
450     bool HALBackend::InitHal()
451     {
452     +#ifdef HAL_0_4 /* HAL API 0.4 */
453     /* libhal initialization */
454     m_halFunctions.main_loop_integration = HALBackend::hal_main_loop_integration;
455     m_halFunctions.device_added = HALBackend::hal_device_added;
456     @@ -76,19 +88,72 @@
457     m_halContext = hal_initialize(&m_halFunctions, FALSE);
458     if (!m_halContext)
459     {
460     - kdDebug()<<"Failed to initialize HAL!"<<endl;
461     + kdDebug() << "Failed to initialize HAL!" << endl;
462     + return false;
463     + }
464     +
465     + /** @todo customize watch policy */
466     + kdDebug() << "Watch properties" << endl;
467     + if (libhal_device_property_watch_all(m_halContext, NULL))
468     + {
469     + kdDebug() << "Failed to watch HAL properties!" << endl;
470     + return false;
471     + }
472     +#else /* HAL API >= 0.5 */
473     + kdDebug() << "Context new" << endl;
474     + m_halContext = libhal_ctx_new();
475     + if (!m_halContext)
476     + {
477     + kdDebug() << "Failed to initialize HAL!" << endl;
478     + return false;
479     + }
480     +
481     + // Main loop integration
482     + kdDebug() << "Main loop integration" << endl;
483     + DBusError error;
484     + dbus_error_init(&error);
485     + DBusConnection *dbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
486     + if (dbus_error_is_set(&error)) {
487     + dbus_error_free(&error);
488     + libhal_ctx_free(m_halContext);
489     + m_halContext = NULL;
490     + return false;
491     + }
492     + MainLoopIntegration(dbus_connection);
493     + libhal_ctx_set_dbus_connection(m_halContext, dbus_connection);
494     +
495     + // HAL callback functions
496     + kdDebug() << "Callback functions" << endl;
497     + libhal_ctx_set_device_added(m_halContext, HALBackend::hal_device_added);
498     + libhal_ctx_set_device_removed(m_halContext, HALBackend::hal_device_removed);
499     + libhal_ctx_set_device_new_capability (m_halContext, NULL);
500     + libhal_ctx_set_device_lost_capability (m_halContext, NULL);
501     + libhal_ctx_set_device_property_modified (m_halContext, HALBackend::hal_device_property_modified);
502     + libhal_ctx_set_device_condition(m_halContext, HALBackend::hal_device_condition);
503     +
504     + kdDebug() << "Context Init" << endl;
505     + if (!libhal_ctx_init(m_halContext, &error))
506     + {
507     + if (dbus_error_is_set(&error))
508     + dbus_error_free(&error);
509     + libhal_ctx_free(m_halContext);
510     + m_halContext = NULL;
511     + kdDebug() << "Failed to init HAL context!" << endl;
512     return false;
513     }
514    
515     /** @todo customize watch policy */
516     - if (hal_device_property_watch_all(m_halContext))
517     + kdDebug() << "Watch properties" << endl;
518     + if (!libhal_device_property_watch_all(m_halContext, &error))
519     {
520     - kdDebug()<<"Failed to watch HAL properties!"<<endl;
521     + kdDebug() << "Failed to watch HAL properties!" << endl;
522     return false;
523     }
524     +#endif
525    
526     /* libhal-storage initialization */
527     - m_halStoragePolicy = hal_storage_policy_new();
528     + kdDebug() << "Storage Policy" << endl;
529     + m_halStoragePolicy = libhal_storage_policy_new();
530     /** @todo define libhal-storage icon policy */
531    
532     /* List devices at startup */
533     @@ -98,8 +163,10 @@
534     /* List devices (at startup)*/
535     bool HALBackend::ListDevices()
536     {
537     + kdDebug() << "ListDevices" << endl;
538     +
539     int numDevices;
540     - char** halDeviceList = hal_get_all_devices(m_halContext, &numDevices);
541     + char** halDeviceList = libhal_get_all_devices(m_halContext, &numDevices, NULL);
542    
543     if (!halDeviceList)
544     return false;
545     @@ -117,7 +184,7 @@
546     {
547     /* We don't deal with devices that do not expose their capabilities.
548     If we don't check this, we will get a lot of warning messages from libhal */
549     - if (!hal_device_property_exists(m_halContext, udi, "info.capabilities"))
550     + if (!libhal_device_property_exists(m_halContext, udi, "info.capabilities", NULL))
551     return;
552    
553     /* If the device is already listed, do not process.
554     @@ -127,17 +194,18 @@
555     return;
556    
557     /* Add volume block devices */
558     - if (hal_device_query_capability(m_halContext, udi, "volume"))
559     + if (libhal_device_query_capability(m_halContext, udi, "volume", NULL))
560     {
561     /* We only list volume that have a filesystem or volume that have an audio track*/
562     if ( (hal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "filesystem") &&
563     - (!hal_device_get_property_bool(m_halContext, udi, "volume.disc.has_audio")) )
564     + (!libhal_device_get_property_bool(m_halContext, udi, "volume.disc.has_audio", NULL)) )
565     return;
566     /* Query drive udi */
567     QString driveUdi = hal_device_get_property_QString(m_halContext, udi, "block.storage_device");
568     /* We don't list floppy volumes because we list floppy drives */
569     if ((hal_device_get_property_QString(m_halContext, driveUdi.ascii(), "storage.drive_type") == "floppy") ||
570     - (hal_device_get_property_QString(m_halContext, driveUdi.ascii(), "storage.drive_type") == "zip"))
571     + (hal_device_get_property_QString(m_halContext, driveUdi.ascii(), "storage.drive_type") == "zip") ||
572     + (hal_device_get_property_QString(m_halContext, driveUdi.ascii(), "storage.drive_type") == "jaz"))
573     return;
574    
575     /** @todo check exclusion list **/
576     @@ -149,11 +217,12 @@
577    
578     return;
579     }
580     -
581     +
582     /* Floppy & zip drives */
583     - if (hal_device_query_capability(m_halContext, udi, "storage"))
584     + if (libhal_device_query_capability(m_halContext, udi, "storage", NULL))
585     if ((hal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "floppy") ||
586     - (hal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "zip"))
587     + (hal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "zip") ||
588     + (hal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "jaz"))
589     {
590     /* Create medium */
591     Medium* medium = new Medium(udi, "");
592     @@ -163,7 +232,7 @@
593     }
594    
595     /* Camera handled by gphoto2*/
596     - if (hal_device_query_capability(m_halContext, udi, "camera"))
597     + if (libhal_device_query_capability(m_halContext, udi, "camera", NULL))
598    
599     {
600     /* Create medium */
601     @@ -181,9 +250,14 @@
602    
603     void HALBackend::ModifyDevice(const char *udi, const char* key)
604     {
605     - Q_UNUSED(udi);
606     + const char* mediumUdi = findMediumUdiFromUdi(udi);
607     + if (!mediumUdi)
608     + return;
609     + ResetProperties(mediumUdi);
610     +
611     Q_UNUSED(key);
612     /*
613     + Q_UNUSED(udi);
614     TODO: enable this when the watch policy is written
615     */
616     }
617     @@ -230,8 +304,8 @@
618     return medium->id().ascii();
619    
620     /* Hard part : this is a volume whose drive is registered */
621     - if (hal_device_property_exists(m_halContext, udi, "info.capabilities"))
622     - if (hal_device_query_capability(m_halContext, udi, "volume"))
623     + if (libhal_device_property_exists(m_halContext, udi, "info.capabilities", NULL))
624     + if (libhal_device_query_capability(m_halContext, udi, "volume", NULL))
625     {
626     QString driveUdi = hal_device_get_property_QString(m_halContext, udi, "block.storage_device");
627     return findMediumUdiFromUdi(driveUdi.ascii());
628     @@ -245,11 +319,11 @@
629     kdDebug() << "HALBackend::setProperties" << endl;
630    
631     Medium* m = new Medium(mediumUdi, "");
632     - if (hal_device_query_capability(m_halContext, mediumUdi, "volume"))
633     + if (libhal_device_query_capability(m_halContext, mediumUdi, "volume", NULL))
634     setVolumeProperties(m);
635     - if (hal_device_query_capability(m_halContext, mediumUdi, "storage"))
636     + if (libhal_device_query_capability(m_halContext, mediumUdi, "storage", NULL))
637     setFloppyProperties(m);
638     - if (hal_device_query_capability(m_halContext, mediumUdi, "camera"))
639     + if (libhal_device_query_capability(m_halContext, mediumUdi, "camera", NULL))
640     setCameraProperties(m);
641    
642     m_mediaList.changeMediumState(*m);
643     @@ -263,34 +337,35 @@
644    
645     const char* udi = medium->id().ascii();
646     /* Check if the device still exists */
647     - if (!hal_device_exists(m_halContext, udi))
648     + if (!libhal_device_exists(m_halContext, udi, NULL))
649     return;
650    
651     /* Get device information from libhal-storage */
652     - HalVolume* halVolume = hal_volume_from_udi(m_halContext, udi);
653     + LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, udi);
654     if (!halVolume)
655     return;
656     -
657     - QString driveUdi = hal_volume_get_storage_device_udi(halVolume);
658     - HalDrive* halDrive = hal_drive_from_udi(m_halContext, driveUdi.ascii());
659     + QString driveUdi = libhal_volume_get_storage_device_udi(halVolume);
660     + LibHalDrive* halDrive = libhal_drive_from_udi(m_halContext, driveUdi.ascii());
661    
662     medium->setName(
663     - generateName(hal_volume_get_device_file(halVolume)) );
664     + generateName(libhal_volume_get_device_file(halVolume)) );
665    
666     medium->mountableState(
667     - hal_volume_get_device_file(halVolume), /* Device node */
668     - hal_volume_get_mount_point(halVolume), /* Mount point */
669     - hal_volume_get_fstype(halVolume), /* Filesystem type */
670     - hal_volume_is_mounted(halVolume) ); /* Mounted ? */
671     + libhal_volume_get_device_file(halVolume), /* Device node */
672     + libhal_volume_get_mount_point(halVolume), /* Mount point */
673     + libhal_volume_get_fstype(halVolume), /* Filesystem type */
674     + libhal_volume_is_mounted(halVolume) ); /* Mounted ? */
675    
676     QString mimeType;
677     - if (hal_volume_is_disc(halVolume))
678     + if (libhal_volume_is_disc(halVolume))
679     {
680     mimeType = "media/cdrom" + MOUNT_SUFFIX;
681    
682     - HalVolumeDiscType discType = hal_volume_get_disc_type(halVolume);
683     - if ((discType == HAL_VOLUME_DISC_TYPE_CDR) || (discType == HAL_VOLUME_DISC_TYPE_CDRW))
684     - if (hal_volume_disc_is_blank(halVolume))
685     + LibHalVolumeDiscType discType = libhal_volume_get_disc_type(halVolume);
686     + if ((discType == LIBHAL_VOLUME_DISC_TYPE_CDROM) ||
687     + (discType == LIBHAL_VOLUME_DISC_TYPE_CDR) ||
688     + (discType == LIBHAL_VOLUME_DISC_TYPE_CDRW))
689     + if (libhal_volume_disc_is_blank(halVolume))
690     {
691     mimeType = "media/blankcd";
692     medium->unmountableState("");
693     @@ -298,10 +373,10 @@
694     else
695     mimeType = "media/cdwriter" + MOUNT_SUFFIX;
696    
697     - if ((discType == HAL_VOLUME_DISC_TYPE_DVDROM) || (discType == HAL_VOLUME_DISC_TYPE_DVDRAM) ||
698     - (discType == HAL_VOLUME_DISC_TYPE_DVDR) || (discType == HAL_VOLUME_DISC_TYPE_DVDRW) ||
699     - (discType == HAL_VOLUME_DISC_TYPE_DVDPLUSR) || (discType == HAL_VOLUME_DISC_TYPE_DVDPLUSRW) )
700     - if (hal_volume_disc_is_blank(halVolume))
701     + if ((discType == LIBHAL_VOLUME_DISC_TYPE_DVDROM) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDRAM) ||
702     + (discType == LIBHAL_VOLUME_DISC_TYPE_DVDR) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDRW) ||
703     + (discType == LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW) )
704     + if (libhal_volume_disc_is_blank(halVolume))
705     {
706     mimeType = "media/blankdvd";
707     medium->unmountableState("");
708     @@ -309,16 +384,16 @@
709     else
710     mimeType = "media/dvd" + MOUNT_SUFFIX;
711    
712     - if (hal_volume_disc_has_audio(halVolume) && !hal_volume_disc_has_data(halVolume))
713     + if (libhal_volume_disc_has_audio(halVolume) && !libhal_volume_disc_has_data(halVolume))
714     {
715     mimeType = "media/audiocd";
716     - medium->unmountableState( "audiocd:/?device=" + QString(hal_volume_get_device_file(halVolume)) );
717     + medium->unmountableState( "audiocd:/?device=" + QString(libhal_volume_get_device_file(halVolume)) );
718     }
719    
720     medium->setIconName(QString::null);
721     -
722     +
723     /* check if the disc id a vcd or a video dvd */
724     - DiscType type = LinuxCDPolling::identifyDiscType(hal_volume_get_device_file(halVolume));
725     + DiscType type = LinuxCDPolling::identifyDiscType(libhal_volume_get_device_file(halVolume));
726     switch (type)
727     {
728     case DiscType::VCD:
729     @@ -335,30 +410,30 @@
730     else
731     {
732     mimeType = "media/hdd" + MOUNT_SUFFIX;
733     - if (hal_drive_is_hotpluggable(halDrive))
734     + if (libhal_drive_is_hotpluggable(halDrive))
735     {
736     mimeType = "media/removable" + MOUNT_SUFFIX;
737     medium->needMounting();
738     - switch (hal_drive_get_type(halDrive)) {
739     - case HAL_DRIVE_TYPE_COMPACT_FLASH:
740     + switch (libhal_drive_get_type(halDrive)) {
741     + case LIBHAL_DRIVE_TYPE_COMPACT_FLASH:
742     medium->setIconName("compact_flash" + MOUNT_ICON_SUFFIX);
743     break;
744     - case HAL_DRIVE_TYPE_MEMORY_STICK:
745     + case LIBHAL_DRIVE_TYPE_MEMORY_STICK:
746     medium->setIconName("memory_stick" + MOUNT_ICON_SUFFIX);
747     break;
748     - case HAL_DRIVE_TYPE_SMART_MEDIA:
749     + case LIBHAL_DRIVE_TYPE_SMART_MEDIA:
750     medium->setIconName("smart_media" + MOUNT_ICON_SUFFIX);
751     break;
752     - case HAL_DRIVE_TYPE_SD_MMC:
753     + case LIBHAL_DRIVE_TYPE_SD_MMC:
754     medium->setIconName("sd_mmc" + MOUNT_ICON_SUFFIX);
755     break;
756     - case HAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER:
757     + case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER:
758     medium->setIconName(QString::null); //FIXME need icon
759     break;
760     - case HAL_DRIVE_TYPE_CAMERA:
761     + case LIBHAL_DRIVE_TYPE_CAMERA:
762     medium->setIconName("camera" + MOUNT_ICON_SUFFIX);
763     break;
764     - case HAL_DRIVE_TYPE_TAPE:
765     + case LIBHAL_DRIVE_TYPE_TAPE:
766     medium->setIconName(QString::null); //FIXME need icon
767     break;
768     default:
769     @@ -368,11 +443,15 @@
770     }
771     medium->setMimeType(mimeType);
772    
773     - medium->setLabel(QString::fromUtf8( hal_volume_policy_compute_display_name(halDrive,
774     - halVolume, m_halStoragePolicy) ) );
775     + char* name = libhal_volume_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy);
776     + //char* name = libhal_drive_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy);
777     + QString volume_name = QString::fromUtf8(name);
778     + QString media_name = volume_name;
779     + medium->setLabel(media_name);
780     + free(name);
781    
782     - hal_drive_free(halDrive);
783     - hal_volume_free(halVolume);
784     + libhal_drive_free(halDrive);
785     + libhal_volume_free(halVolume);
786     }
787    
788     // Handle floppies and zip drives
789     @@ -382,34 +461,34 @@
790    
791     const char* udi = medium->id().ascii();
792     /* Check if the device still exists */
793     - if (!hal_device_exists(m_halContext, udi))
794     + if (!libhal_device_exists(m_halContext, udi, NULL))
795     return;
796    
797     - HalDrive* halDrive = hal_drive_from_udi(m_halContext, udi);
798     + LibHalDrive* halDrive = libhal_drive_from_udi(m_halContext, udi);
799     if (!halDrive)
800     return;
801     int numVolumes;
802     - char** volumes = hal_drive_find_all_volumes(m_halContext, halDrive, &numVolumes);
803     - HalVolume* halVolume = NULL;
804     + char** volumes = libhal_drive_find_all_volumes(m_halContext, halDrive, &numVolumes);
805     + LibHalVolume* halVolume = NULL;
806     kdDebug() << " found " << numVolumes << " volumes" << endl;
807     if (numVolumes)
808     - halVolume = hal_volume_from_udi(m_halContext, volumes[0]);
809     + halVolume = libhal_volume_from_udi(m_halContext, volumes[0]);
810    
811     medium->setName(
812     - generateName(hal_drive_get_device_file(halDrive)) );
813     + generateName(libhal_drive_get_device_file(halDrive)) );
814    
815     if (halVolume)
816     {
817     medium->mountableState(
818     - hal_volume_get_device_file(halVolume), /* Device node */
819     - hal_volume_get_mount_point(halVolume), /* Mount point */
820     - hal_volume_get_fstype(halVolume), /* Filesystem type */
821     - hal_volume_is_mounted(halVolume) ); /* Mounted ? */
822     + libhal_volume_get_device_file(halVolume), /* Device node */
823     + libhal_volume_get_mount_point(halVolume), /* Mount point */
824     + libhal_volume_get_fstype(halVolume), /* Filesystem type */
825     + libhal_volume_is_mounted(halVolume) ); /* Mounted ? */
826     }
827     else
828     {
829     medium->mountableState(
830     - hal_drive_get_device_file(halDrive), /* Device node */
831     + libhal_drive_get_device_file(halDrive), /* Device node */
832     "", /* Mount point */
833     "", /* Filesystem type */
834     false ); /* Mounted ? */
835     @@ -422,7 +501,7 @@
836     else
837     medium->setMimeType("media/floppy_unmounted");
838     }
839     -
840     +
841     if (hal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "zip")
842     {
843     if (halVolume)
844     @@ -430,14 +509,29 @@
845     else
846     medium->setMimeType("media/zip_unmounted");
847     }
848     -
849     +
850     medium->setIconName(QString::null);
851    
852     - medium->setLabel(QString::fromUtf8( hal_drive_policy_compute_display_name(halDrive,
853     - halVolume, m_halStoragePolicy) ) );
854     + QString media_name;
855     + if (halVolume)
856     + {
857     + char* name = libhal_drive_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy);
858     + QString volume_name = QString::fromUtf8(name);
859     + media_name = volume_name;
860     + free(name);
861     + }
862     + else
863     + {
864     + char* name = libhal_drive_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy);
865     + QString drive_name = QString::fromUtf8(name);
866     + media_name = drive_name;
867     + free(name);
868     + }
869     + medium->setLabel(media_name);
870    
871     - hal_drive_free(halDrive);
872     - hal_volume_free(halVolume);
873     + free(volumes);
874     + libhal_drive_free(halDrive);
875     + libhal_volume_free(halVolume);
876     }
877    
878     void HALBackend::setCameraProperties(Medium* medium)
879     @@ -446,7 +540,7 @@
880    
881     const char* udi = medium->id().ascii();
882     /* Check if the device still exists */
883     - if (!hal_device_exists(m_halContext, udi))
884     + if (!libhal_device_exists(m_halContext, udi, NULL))
885     return;
886    
887     /** @todo find name */
888     @@ -468,6 +562,7 @@
889     ** HAL CALL-BACKS **
890     ******************************************/
891    
892     +#ifdef HAL_0_4
893     void HALBackend::hal_main_loop_integration(LibHalContext *ctx,
894     DBusConnection *dbus_connection)
895     {
896     @@ -475,6 +570,7 @@
897     Q_UNUSED(ctx);
898     s_HALBackend->MainLoopIntegration(dbus_connection);
899     }
900     +#endif
901    
902     void HALBackend::hal_device_added(LibHalContext *ctx, const char *udi)
903     {
904     @@ -499,8 +595,15 @@
905     Q_UNUSED(is_added);
906     s_HALBackend->ModifyDevice(udi, key);
907     }
908     +
909     void HALBackend::hal_device_condition(LibHalContext *ctx, const char *udi,
910     - const char *condition_name, DBusMessage *message)
911     + const char *condition_name,
912     + #ifdef HAL_0_4
913     + DBusMessage *message
914     + #else
915     + const char* message
916     + #endif
917     + )
918     {
919     kdDebug() << "HALBackend::hal_device_condition " << udi << " -- " << condition_name << endl;
920     Q_UNUSED(ctx);
921     diff -Nur kdebase-3.4.3.orig/kioslave/media/kdedmodule/halbackend.h kdebase-3.4.3/kioslave/media/kdedmodule/halbackend.h
922     --- kdebase-3.4.3.orig/kioslave/media/kdedmodule/halbackend.h 2005-10-05 15:38:19.000000000 +0200
923     +++ kdebase-3.4.3/kioslave/media/kdedmodule/halbackend.h 2005-10-09 11:24:34.000000000 +0200
924     @@ -35,6 +35,8 @@
925     #include <qstringlist.h>
926     #include <qstring.h>
927    
928     +#include <config.h>
929     +
930     /* We acknowledge the the dbus API is unstable */
931     #define DBUS_API_SUBJECT_TO_CHANGE
932     /* DBus-Qt bindings */
933     @@ -43,6 +45,65 @@
934     #include <libhal.h>
935     #include <libhal-storage.h>
936    
937     +/* The HAL API changed between 0.4 and 0.5 series.
938     +These defines enable backward compatibility */
939     +#ifdef HAL_0_4
940     + // libhal-storage 0.4 API
941     + #define LibHalStoragePolicy HalStoragePolicy
942     + #define LibHalDrive HalDrive
943     + #define LibHalVolume HalVolume
944     + #define LibHalVolumeDiscType HalVolumeDiscType
945     + #define libhal_storage_policy_free hal_storage_policy_free
946     + #define libhal_storage_policy_new hal_storage_policy_new
947     + #define libhal_drive_from_udi hal_drive_from_udi
948     + #define libhal_drive_find_all_volumes hal_drive_find_all_volumes
949     + #define libhal_drive_get_type hal_drive_get_type
950     + #define libhal_drive_get_device_file hal_drive_get_device_file
951     + #define libhal_drive_free hal_drive_free
952     + #define libhal_drive_policy_compute_display_name hal_drive_policy_compute_display_name
953     + #define libhal_drive_is_hotpluggable hal_drive_is_hotpluggable
954     + #define libhal_volume_from_udi hal_volume_from_udi
955     + #define libhal_volume_get_device_file hal_volume_get_device_file
956     + #define libhal_volume_get_mount_point hal_volume_get_mount_point
957     + #define libhal_volume_get_fstype hal_volume_get_fstype
958     + #define libhal_volume_is_mounted hal_volume_is_mounted
959     + #define libhal_volume_get_disc_type hal_volume_get_disc_type
960     + #define libhal_volume_free hal_volume_free
961     + #define libhal_volume_policy_compute_display_name hal_volume_policy_compute_display_name
962     + #define libhal_volume_disc_has_data hal_volume_disc_has_data
963     + #define libhal_volume_disc_has_audio hal_volume_disc_has_audio
964     + #define libhal_volume_disc_is_blank hal_volume_disc_is_blank
965     + #define libhal_volume_is_disc hal_volume_is_disc
966     + #define libhal_volume_get_storage_device_udi hal_volume_get_storage_device_udi
967     + #define LIBHAL_VOLUME_DISC_TYPE_CDROM HAL_VOLUME_DISC_TYPE_CDROM
968     + #define LIBHAL_VOLUME_DISC_TYPE_CDR HAL_VOLUME_DISC_TYPE_CDR
969     + #define LIBHAL_VOLUME_DISC_TYPE_CDRW HAL_VOLUME_DISC_TYPE_CDRW
970     + #define LIBHAL_VOLUME_DISC_TYPE_DVDROM HAL_VOLUME_DISC_TYPE_DVDROM
971     + #define LIBHAL_VOLUME_DISC_TYPE_DVDRAM HAL_VOLUME_DISC_TYPE_DVDRAM
972     + #define LIBHAL_VOLUME_DISC_TYPE_DVDR HAL_VOLUME_DISC_TYPE_DVDR
973     + #define LIBHAL_VOLUME_DISC_TYPE_DVDRW HAL_VOLUME_DISC_TYPE_DVDRW
974     + #define LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR HAL_VOLUME_DISC_TYPE_DVDPLUSR
975     + #define LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW HAL_VOLUME_DISC_TYPE_DVDPLUSRW
976     + #define LIBHAL_DRIVE_TYPE_COMPACT_FLASH HAL_DRIVE_TYPE_COMPACT_FLASH
977     + #define LIBHAL_DRIVE_TYPE_MEMORY_STICK HAL_DRIVE_TYPE_MEMORY_STICK
978     + #define LIBHAL_DRIVE_TYPE_SMART_MEDIA HAL_DRIVE_TYPE_SMART_MEDIA
979     + #define LIBHAL_DRIVE_TYPE_SD_MMC HAL_DRIVE_TYPE_SD_MMC
980     + #define LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER HAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER
981     + #define LIBHAL_DRIVE_TYPE_CAMERA HAL_DRIVE_TYPE_CAMERA
982     + #define LIBHAL_DRIVE_TYPE_TAPE HAL_DRIVE_TYPE_TAPE
983     +
984     + // libhal 0.4 API
985     + #define libhal_free_string hal_free_string
986     + #define libhal_device_exists(ctx, udi, error) hal_device_exists(ctx, udi)
987     + #define libhal_device_property_watch_all(ctx, error) hal_device_property_watch_all(ctx)
988     + #define libhal_get_all_devices(ctx, num_devices, error) hal_get_all_devices(ctx, num_devices)
989     + #define libhal_device_property_exists(ctx, udi, key, error) hal_device_property_exists(ctx, udi, key)
990     + #define libhal_device_get_property_bool(ctx, udi, key, error) hal_device_get_property_bool(ctx, udi, key)
991     + #define libhal_device_get_property_string(ctx, udi, key, error) hal_device_get_property_string(ctx, udi, key)
992     + #define libhal_device_query_capability(ctx, udi, capability, error) hal_device_query_capability(ctx, udi, capability)
993     +#endif
994     +
995     +
996     /**
997     * A handy function to query a hal string
998     *
999     @@ -137,12 +198,14 @@
1000    
1001     /* Hal call-backs -- from gvm*/
1002     public:
1003     +#ifdef HAL_0_4
1004     /** Invoked by libhal for integration with our mainloop.
1005     *
1006     * @param ctx LibHal context
1007     * @param dbus_connection D-BUS connection to integrate
1008     */
1009     static void hal_main_loop_integration(LibHalContext *ctx, DBusConnection *dbus_connection);
1010     +#endif
1011    
1012     /** Invoked when a device is added to the Global Device List.
1013     *
1014     @@ -175,7 +238,13 @@
1015     * @param message D-BUS message with variable parameters depending on condition
1016     */
1017     static void hal_device_condition(LibHalContext *ctx, const char *udi,
1018     - const char *condition_name, DBusMessage *message);
1019     + const char *condition_name,
1020     + #ifdef HAL_0_4
1021     + DBusMessage *message
1022     + #else
1023     + const char* message
1024     + #endif
1025     + );
1026    
1027     /* HAL and DBus structures */
1028     private:
1029     @@ -184,15 +253,17 @@
1030     */
1031     LibHalContext* m_halContext;
1032    
1033     +#ifdef HAL_0_4
1034     /**
1035     * Structure defining the hal callback function for devices events
1036     */
1037     LibHalFunctions m_halFunctions;
1038     +#endif
1039    
1040     /**
1041     * libhal-storage HAL policy, e.g. for icon names
1042     */
1043     - HalStoragePolicy* m_halStoragePolicy;
1044     + LibHalStoragePolicy* m_halStoragePolicy;
1045    
1046     /**
1047     * The DBus-Qt bindings connection for mainloop integration
1048     diff -Nur kdebase-3.4.3.orig/kioslave/media/kdedmodule/mediamanager.cpp kdebase-3.4.3/kioslave/media/kdedmodule/mediamanager.cpp
1049     --- kdebase-3.4.3.orig/kioslave/media/kdedmodule/mediamanager.cpp 2005-10-05 15:38:19.000000000 +0200
1050     +++ kdebase-3.4.3/kioslave/media/kdedmodule/mediamanager.cpp 2005-10-09 11:24:34.000000000 +0200
1051     @@ -31,6 +31,7 @@
1052    
1053     #ifdef COMPILE_HALBACKEND
1054     #include "halbackend.h"
1055     +#include "haladdition.h"
1056     #endif //COMPILE_HALBACKEND
1057    
1058     #ifdef COMPILE_LINUXCDPOLLING
1059     @@ -60,8 +61,10 @@
1060    
1061     #ifdef COMPILE_HALBACKEND
1062     HALBackend* halBackend = new HALBackend(m_mediaList, this);
1063     - if (halBackend->InitHal())
1064     + if (halBackend->InitHal()) {
1065     m_backends.append( halBackend );
1066     + m_backends.append( new HalAddition(m_mediaList) );
1067     + }
1068     else
1069     {
1070     delete halBackend;