File indexing completed on 2024-04-28 08:40:19
0001 /* 0002 * AUDEX CDDA EXTRACTOR 0003 * 0004 * SPDX-FileCopyrightText: Copyright (C) 2007 Marco Nelles 0005 * <https://userbase.kde.org/Audex> 0006 * 0007 * SPDX-License-Identifier: GPL-3.0-or-later 0008 * 0009 */ 0010 0011 #ifndef CDDADEVICES_H 0012 #define CDDADEVICES_H 0013 0014 #include <QAbstractTableModel> 0015 #include <QHash> 0016 #include <QString> 0017 #include <QStringList> 0018 0019 #include <KLocalizedString> 0020 0021 #include <Solid/Block> 0022 #include <Solid/Device> 0023 #include <Solid/DeviceInterface> 0024 #include <Solid/DeviceNotifier> 0025 #include <Solid/GenericInterface> 0026 #include <Solid/OpticalDisc> 0027 #include <Solid/OpticalDrive> 0028 #include <Solid/StorageAccess> 0029 0030 struct OpticalAudioDisc { 0031 QString name; 0032 Solid::Device device; 0033 }; 0034 0035 class CDDADevices : public QObject 0036 { 0037 Q_OBJECT 0038 0039 public: 0040 explicit CDDADevices(QObject *parent = nullptr); 0041 ~CDDADevices() override; 0042 0043 const QString blockDevice(const QString &udi) const; 0044 0045 const QStringList udiList() const; 0046 int discCount() const; 0047 0048 public Q_SLOTS: 0049 void scanBus(); 0050 0051 void eject(const QString &udi); 0052 0053 // set display name 0054 void setName(const QString &udi, const QString &name); 0055 0056 Q_SIGNALS: 0057 void audioDiscDetected(const QString &udi); 0058 void audioDiscRemoved(const QString &udi); 0059 0060 private Q_SLOTS: 0061 void p_solid_device_added(const QString &udi); 0062 void p_solid_device_removed(const QString &udi); 0063 0064 private: 0065 QHash<QString, OpticalAudioDisc *> p_discs; 0066 0067 bool p_is_optical_audio_disc(const Solid::Device &device) const; 0068 0069 void p_clear(); 0070 }; 0071 0072 #endif