/usr/include/solid/audiointerface.h is in kdelibs5-dev 4:4.14.16-0ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | /*
Copyright 2006-2007 Kevin Ottens <ervin@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) version 3, or any
later version accepted by the membership of KDE e.V. (or its
successor approved by the membership of KDE e.V.), which shall
act as a proxy defined in Section 6 of version 3 of the license.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SOLID_AUDIOINTERFACE_H
#define SOLID_AUDIOINTERFACE_H
#include <solid/solid_export.h>
#include <solid/deviceinterface.h>
class QVariant;
namespace Solid
{
class AudioInterfacePrivate;
class Device;
/**
* This device interface is available on interfaces exposed by sound cards.
*/
class SOLID_EXPORT AudioInterface : public DeviceInterface
{
Q_OBJECT
Q_ENUMS(AudioDriver AudioInterfaceType SoundcardType)
Q_FLAGS(AudioInterfaceTypes)
Q_PROPERTY(AudioDriver driver READ driver)
Q_PROPERTY(QVariant driverHandle READ driverHandle)
Q_PROPERTY(QString name READ name)
Q_PROPERTY(AudioInterfaceTypes deviceType READ deviceType)
Q_PROPERTY(SoundcardType soundcardType READ soundcardType)
Q_DECLARE_PRIVATE(AudioInterface)
friend class Device;
public:
/**
* This enum type defines the type of driver required to
* interact with the device.
*/
enum AudioDriver
{
/**
* An Advanced Linux Sound Architecture (ALSA) driver device
*/
Alsa,
/**
* An Open Sound System (OSS) driver device
*/
OpenSoundSystem,
/**
* An unknown driver device
*/
UnknownAudioDriver
};
/**
* This enum type defines the type of audio interface this
* device expose.
*/
enum AudioInterfaceType
{
/**
* An unknown audio interface
*/
UnknownAudioInterfaceType = 0,
/**
* A control/mixer interface
*/
AudioControl = 1,
/**
* An audio source
*/
AudioInput = 2,
/**
* An audio sink
*/
AudioOutput = 4
};
/**
* This type stores an OR combination of AudioInterfaceType values.
*/
Q_DECLARE_FLAGS(AudioInterfaceTypes, AudioInterfaceType)
/**
* This enum defines the type of soundcard of this device.
*/
enum SoundcardType {
/**
* An internal soundcard (onboard or PCI card).
*/
InternalSoundcard,
/**
* An external USB soundcard (that is not a headphone).
*/
UsbSoundcard,
/**
* An external Firewire soundcard.
*/
FirewireSoundcard,
/**
* A headset attached to a USB port or connected via Bluetooth (the headset includes its
* own audio hardware; it is impossible to detect a headset connected to the internal
* soundcard).
*/
Headset,
/**
* A modem device.
*
* Softmodems today are implemented as (cheap) soundcards. ALSA can provide an interface
* to the modem.
*/
Modem
};
private:
/**
* Creates a new AudioInterface object.
* You generally won't need this. It's created when necessary using
* Device::as().
*
* @param backendObject the device interface object provided by the backend
* @see Solid::Device::as()
*/
explicit AudioInterface(QObject *backendObject);
public:
/**
* Destroys an AudioInterface object.
*/
virtual ~AudioInterface();
/**
* Get the Solid::DeviceInterface::Type of the AudioInterface device interface.
*
* @return the AudioInterface device interface type
* @see Solid::DeviceInterface::Type
*/
static Type deviceInterfaceType() { return DeviceInterface::AudioInterface; }
/**
* Retrieves the audio driver that should be used to access the device.
*
* @return the driver needed to access the device
* @see Solid::AudioInterface::AudioDriver
*/
AudioDriver driver() const;
/**
* Retrieves a driver specific handle to access the device.
*
* For Alsa devices it is a list with (card, device, subdevice).
* \code
* QVariantList list = dev->driverHandle().toList();
* QString card = list[0].toString();
* int device = list[1].toInt();
* int subdevice = list[2].toInt();
* \endcode
* The card entry sometimes can be converted to an integer, but it may just as well be the
* textual id for the card. So don't rely on it to work with QVariant::toInt().
*
* For OSS devices it is simply a string like "/dev/dsp". Use QVariant::toString() to
* retrieve the string.
*
* @return the driver specific data to handle this device
*/
QVariant driverHandle() const;
/**
* Retrieves the name of this audio interface.
*
* The product name of the parent device is normally better suited for the user to identify
* the soundcard. If the soundcard has multiple devices, though you need to add this name to
* differentiate between the devices.
*
* @return the name of the audio interface if available, QString() otherwise
*/
QString name() const;
/**
* Retrieves the type of this audio interface (in/out/control).
*
* @return the type of this audio interface
* @see Solid::AudioInterface::AudioInterfaceType
*/
AudioInterfaceTypes deviceType() const;
/**
* Retrieves the type of soundcard (internal/headset/...).
*
* @return the type of soundcard
* @see Solid::AudioInterface::SoundcardType
*/
SoundcardType soundcardType() const;
};
}
Q_DECLARE_OPERATORS_FOR_FLAGS(Solid::AudioInterface::AudioInterfaceTypes)
#endif // SOLID_AUDIOINTERFACE_H
|