Solid
audiointerface.h
Go to the documentation of this file.
00001 /* 00002 Copyright 2006-2007 Kevin Ottens <ervin@kde.org> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Lesser General Public 00006 License as published by the Free Software Foundation; either 00007 version 2.1 of the License, or (at your option) version 3, or any 00008 later version accepted by the membership of KDE e.V. (or its 00009 successor approved by the membership of KDE e.V.), which shall 00010 act as a proxy defined in Section 6 of version 3 of the license. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public 00018 License along with this library. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #ifndef SOLID_AUDIOINTERFACE_H 00022 #define SOLID_AUDIOINTERFACE_H 00023 00024 #include <solid/solid_export.h> 00025 00026 #include <solid/deviceinterface.h> 00027 00028 class QVariant; 00029 namespace Solid 00030 { 00031 class AudioInterfacePrivate; 00032 class Device; 00033 00037 class SOLID_EXPORT AudioInterface : public DeviceInterface 00038 { 00039 Q_OBJECT 00040 Q_ENUMS(AudioDriver AudioInterfaceType SoundcardType) 00041 Q_FLAGS(AudioInterfaceTypes) 00042 Q_PROPERTY(AudioDriver driver READ driver) 00043 Q_PROPERTY(QVariant driverHandle READ driverHandle) 00044 Q_PROPERTY(QString name READ name) 00045 Q_PROPERTY(AudioInterfaceTypes deviceType READ deviceType) 00046 Q_PROPERTY(SoundcardType soundcardType READ soundcardType) 00047 Q_DECLARE_PRIVATE(AudioInterface) 00048 friend class Device; 00049 00050 public: 00055 enum AudioDriver 00056 { 00060 Alsa, 00064 OpenSoundSystem, 00068 UnknownAudioDriver 00069 }; 00070 00075 enum AudioInterfaceType 00076 { 00080 UnknownAudioInterfaceType = 0, 00084 AudioControl = 1, 00088 AudioInput = 2, 00092 AudioOutput = 4 00093 }; 00094 00098 Q_DECLARE_FLAGS(AudioInterfaceTypes, AudioInterfaceType) 00099 00100 00103 enum SoundcardType { 00107 InternalSoundcard, 00111 UsbSoundcard, 00115 FirewireSoundcard, 00121 Headset, 00128 Modem 00129 }; 00130 00131 00132 private: 00141 explicit AudioInterface(QObject *backendObject); 00142 00143 public: 00147 virtual ~AudioInterface(); 00148 00149 00156 static Type deviceInterfaceType() { return DeviceInterface::AudioInterface; } 00157 00158 00159 00166 AudioDriver driver() const; 00167 00186 QVariant driverHandle() const; 00187 00188 00189 00199 QString name() const; 00200 00207 AudioInterfaceTypes deviceType() const; 00208 00215 SoundcardType soundcardType() const; 00216 }; 00217 } 00218 00219 Q_DECLARE_OPERATORS_FOR_FLAGS(Solid::AudioInterface::AudioInterfaceTypes) 00220 00221 #endif // SOLID_AUDIOINTERFACE_H
KDE 4.6 API Reference