1/* This file is part of the KDE project
2Copyright (C) 2006-2008 Matthias Kretz <kretz@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) version 3, or any
8 later version accepted by the membership of KDE e.V. (or its
9 successor approved by the membership of KDE e.V.), Nokia Corporation
10 (or its successors, if any) and the KDE Free Qt Foundation, which shall
11 act as a proxy defined in Section 6 of version 3 of the license.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library. If not, see <http://www.gnu.org/licenses/>.
20
21*/
22
23#ifndef PHONON_GLOBALCONFIG_H
24#define PHONON_GLOBALCONFIG_H
25
26#include "phonon_export.h"
27#include "phononnamespace.h"
28#include "phonondefs.h"
29
30QT_BEGIN_HEADER
31QT_BEGIN_NAMESPACE
32
33namespace Phonon
34{
35 class GlobalConfigPrivate;
36
37 class PHONON_EXPORT GlobalConfig
38 {
39 K_DECLARE_PRIVATE(GlobalConfig)
40 public:
41 GlobalConfig();
42 virtual ~GlobalConfig();
43
44 enum DevicesToHideFlag {
45 ShowUnavailableDevices = 0,
46 ShowAdvancedDevices = 0,
47 HideAdvancedDevices = 1,
48 AdvancedDevicesFromSettings = 2,
49 HideUnavailableDevices = 4
50 };
51 bool hideAdvancedDevices() const;
52 void setHideAdvancedDevices(bool hide = true);
53 void setAudioOutputDeviceListFor(Phonon::Category category, QList<int> order);
54 QList<int> audioOutputDeviceListFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const;
55 int audioOutputDeviceFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const;
56
57#ifndef QT_NO_PHONON_AUDIOCAPTURE
58 void setAudioCaptureDeviceListFor(Phonon::Category category, QList<int> order);
59 QList<int> audioCaptureDeviceListFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const;
60 int audioCaptureDeviceFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const;
61#endif //QT_NO_PHONON_AUDIOCAPTURE
62
63 protected:
64 GlobalConfigPrivate *const k_ptr;
65 };
66} // namespace Phonon
67
68QT_END_NAMESPACE
69QT_END_HEADER
70
71#endif // PHONON_GLOBALCONFIG_H
72