2010-07-23 15:46:30 +02:00
|
|
|
#ifndef MACDEVICELISTER_H
|
|
|
|
#define MACDEVICELISTER_H
|
|
|
|
|
|
|
|
#include "devicelister.h"
|
|
|
|
|
|
|
|
#include <QThread>
|
|
|
|
|
|
|
|
#include <DiskArbitration/DADisk.h>
|
|
|
|
#include <DiskArbitration/DADissenter.h>
|
|
|
|
#include <IOKit/IOKitLib.h>
|
|
|
|
|
|
|
|
class MacDeviceLister : public DeviceLister {
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
MacDeviceLister();
|
|
|
|
~MacDeviceLister();
|
|
|
|
|
|
|
|
virtual QStringList DeviceUniqueIDs();
|
|
|
|
virtual QStringList DeviceIcons(const QString& id);
|
|
|
|
virtual QString DeviceManufacturer(const QString& id);
|
|
|
|
virtual QString DeviceModel(const QString& id);
|
|
|
|
virtual quint64 DeviceCapacity(const QString& id);
|
|
|
|
virtual quint64 DeviceFreeSpace(const QString& id);
|
|
|
|
virtual QVariantMap DeviceHardwareInfo(const QString& id);
|
|
|
|
virtual QString MakeFriendlyName(const QString& id);
|
2010-08-01 13:55:01 +02:00
|
|
|
virtual QList<QUrl> MakeDeviceUrls(const QString& id);
|
2010-07-23 15:46:30 +02:00
|
|
|
|
2010-07-25 03:07:51 +02:00
|
|
|
virtual void UnmountDevice(const QString &id);
|
|
|
|
|
2010-07-23 15:46:30 +02:00
|
|
|
private:
|
|
|
|
virtual void Init();
|
|
|
|
|
|
|
|
static void DiskAddedCallback(DADiskRef disk, void* context);
|
|
|
|
static void DiskRemovedCallback(DADiskRef disk, void* context);
|
|
|
|
|
2010-07-25 03:29:22 +02:00
|
|
|
static void DiskUnmountCallback(
|
|
|
|
DADiskRef disk, DADissenterRef dissenter, void* context);
|
|
|
|
|
|
|
|
DASessionRef loop_session_;
|
|
|
|
|
2010-07-24 20:34:22 +02:00
|
|
|
QMap<QString, QString> current_devices_;
|
2010-07-23 15:46:30 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|