ALSAPortAudioInterface.hpp
1 #pragma once
2 #include <Audio/AudioInterface.hpp>
3 #include <Audio/PortAudioInterface.hpp>
4 
5 #include <ossia/audio/pulseaudio_protocol.hpp>
6 
7 #include <QObject>
8 class QComboBox;
9 namespace Audio
10 {
11 #if defined(OSSIA_AUDIO_PORTAUDIO) && __has_include(<pa_linux_alsa.h>)
12 class ALSAPortAudioFactory final
13  : public QObject
14  , public AudioFactory
15 {
16  SCORE_CONCRETE("3533ee88-9a8d-486c-b20b-6c966cf4eaa0")
17 public:
18  std::vector<PortAudioCard> devices;
19 
20  ALSAPortAudioFactory();
21  ~ALSAPortAudioFactory() override;
22 
23  void
24  initialize(Audio::Settings::Model& set, const score::ApplicationContext& ctx) override;
25  void rescan();
26 
27  bool available() const noexcept override { return true; }
28  QString prettyName() const override;
29  std::shared_ptr<ossia::audio_engine> make_engine(
30  const Audio::Settings::Model& set, const score::ApplicationContext& ctx) override;
31 
32  void setCard(QComboBox* combo, QString val);
33 
34  QWidget* make_settings(
36  score::SettingsCommandDispatcher& m_disp, QWidget* parent) override;
37 };
38 #endif
39 }
40 
41 namespace Audio
42 {
43 #if defined(OSSIA_AUDIO_PULSEAUDIO)
44 class PulseAudioFactory final
45  : public QObject
46  , public AudioFactory
47 {
48  SCORE_CONCRETE("015cb998-7bad-46e0-ba57-669b7733eadc")
49 public:
51  ~PulseAudioFactory() override;
52 
53  bool available() const noexcept override;
54  void
55  initialize(Audio::Settings::Model& set, const score::ApplicationContext& ctx) override
56  {
57  }
58  QString prettyName() const override;
59  std::shared_ptr<ossia::audio_engine> make_engine(
60  const Audio::Settings::Model& set, const score::ApplicationContext& ctx) override;
61 
62  QWidget* make_settings(
64  score::SettingsCommandDispatcher& m_disp, QWidget* parent) override;
65 };
66 #endif
67 }
Definition: AudioInterface.hpp:28
Definition: ALSAPortAudioInterface.hpp:47
Definition: score-plugin-audio/Audio/Settings/Model.hpp:22
Definition: score-plugin-audio/Audio/Settings/View.hpp:19
Definition: SettingsCommandDispatcher.hpp:10
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Used to access all the application-wide state and structures.
Definition: ApplicationContext.hpp:24