swift
audiodeviceinfolist.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_AUDIO_AUDIODEVICELIST_H
7 #define SWIFT_MISC_AUDIO_AUDIODEVICELIST_H
8 
9 #include <QAudioDevice>
10 #include <QMetaType>
11 #include <QStringList>
12 
14 #include "misc/collection.h"
15 #include "misc/identifier.h"
16 #include "misc/sequence.h"
17 #include "misc/swiftmiscexport.h"
18 
19 SWIFT_DECLARE_SEQUENCE_MIXINS(swift::misc::audio, CAudioDeviceInfo, CAudioDeviceInfoList)
20 
21 namespace swift::misc::audio
22 {
25  public CSequence<CAudioDeviceInfo>,
26  public mixin::MetaType<CAudioDeviceInfoList>
27  {
28  public:
31 
33  CAudioDeviceInfoList() = default;
34 
36  CAudioDeviceInfoList(const CSequence &other);
37 
39  CAudioDeviceInfoList getOutputDevices() const;
40 
42  CAudioDeviceInfoList getInputDevices() const;
43 
45  CAudioDeviceInfo findByName(const QString &name, bool strict = false) const;
46 
48  CAudioDeviceInfo findByNameOrDefault(const QString &name, const CAudioDeviceInfo &defaultDevice,
49  bool strict = false) const;
50 
52  CAudioDeviceInfoList findByHostName(const QString &hostName) const;
53 
55  CAudioDeviceInfo findRegisteredDeviceOrDefault(const CAudioDeviceInfo &device) const;
56 
58  void registerDevice(const CAudioDeviceInfo &device);
59 
61  void registerDevices(const CAudioDeviceInfoList &devices);
62 
64  void unRegisterDevice(const CAudioDeviceInfo &device);
65 
67  void unRegisterDevices(const CAudioDeviceInfoList &devices);
68 
70  void unRegisterDevices(const CIdentifier &identifier);
71 
73  bool isRegisteredDevice(const CAudioDeviceInfo &device) const;
74 
76  int count(CAudioDeviceInfo::DeviceType type) const;
77 
79  QStringList getDeviceNames() const;
80 
82  bool hasSameDevices(const CAudioDeviceInfoList &compareDevices) const;
83 
86  static CAudioDeviceInfoList allInputDevices();
87  static CAudioDeviceInfoList allOutputDevices();
88  static CAudioDeviceInfoList allDevices();
89  static QList<QAudioDevice> allQtInputDevices();
90  static QList<QAudioDevice> allQtOutputDevices();
91  static QAudioDevice defaultQtInputDevice();
92  static QAudioDevice defaultQtOutputDevice();
93  static CAudioDeviceInfo defaultInputDevice();
94  static CAudioDeviceInfo defaultOutputDevice();
96  };
97 } // namespace swift::misc::audio
98 
101 
102 #endif // SWIFT_MISC_AUDIO_AUDIODEVICELIST_H
Generic ordered container with value semantics.
Definition: collection.h:107
Value object encapsulating information identifying a component of a modular distributed swift process...
Definition: identifier.h:29
Generic sequential container with value semantics.
Definition: sequence.h:86
CSequence()=default
Default constructor.
Value object encapsulating information of a audio device.
Value object encapsulating a list of audio devices.
CAudioDeviceInfoList()=default
Default constructor.
CRTP class template from which a derived class can inherit common methods dealing with the metatype o...
Definition: mixinmetatype.h:29
#define SWIFT_MISC_DECLARE_USING_MIXIN_METATYPE(DERIVED)
When a derived class and a base class both inherit from mixin::MetaType, the derived class uses this ...
#define SWIFT_DECLARE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template declaration of mixins for a CSequence subclass to be placed near the top of the hea...
Definition: sequence.h:62
#define SWIFT_MISC_EXPORT
Export a class or function from the library.