This file is indexed.

/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