summaryrefslogtreecommitdiffstats
path: root/src/server/PortAudioDriver.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/PortAudioDriver.hpp')
-rw-r--r--src/server/PortAudioDriver.hpp75
1 files changed, 32 insertions, 43 deletions
diff --git a/src/server/PortAudioDriver.hpp b/src/server/PortAudioDriver.hpp
index 679223ad..6c7bfb9e 100644
--- a/src/server/PortAudioDriver.hpp
+++ b/src/server/PortAudioDriver.hpp
@@ -19,30 +19,20 @@
#include "Driver.hpp"
#include "EnginePort.hpp"
-#include "ingen_config.h"
#include "types.hpp"
-#include "ingen/URI.hpp"
-#include "lv2/atom/forge.h"
-#include "raul/Semaphore.hpp"
+#include <raul/Semaphore.hpp>
+#include <boost/intrusive/options.hpp>
+#include <boost/intrusive/slist.hpp>
#include <portaudio.h>
#include <atomic>
-#include <cstddef>
#include <cstdint>
#include <memory>
-namespace Raul { class Path; }
+namespace ingen::server {
-namespace ingen {
-
-class Atom;
-
-namespace server {
-
-class Buffer;
-class DuplexPort;
class Engine;
class FrameTimer;
class RunContext;
@@ -51,7 +41,7 @@ class PortAudioDriver : public Driver
{
public:
explicit PortAudioDriver(Engine& engine);
- ~PortAudioDriver();
+ ~PortAudioDriver() override;
bool attach();
@@ -59,37 +49,37 @@ public:
void deactivate() override;
EnginePort* create_port(DuplexPort* graph_port) override;
- EnginePort* get_port(const Raul::Path& path) override;
+ EnginePort* get_port(const raul::Path& path) override;
- void rename_port(const Raul::Path& old_path, const Raul::Path& new_path) override;
- void port_property(const Raul::Path& path, const URI& uri, const Atom& value) override;
- void add_port(RunContext& context, EnginePort* port) override;
- void remove_port(RunContext& context, EnginePort* port) override;
+ void rename_port(const raul::Path& old_path, const raul::Path& new_path) override;
+ void port_property(const raul::Path& path, const URI& uri, const Atom& value) override;
+ void add_port(RunContext& ctx, EnginePort* port) override;
+ void remove_port(RunContext& ctx, EnginePort* port) override;
void register_port(EnginePort& port) override;
void unregister_port(EnginePort& port) override;
- void append_time_events(RunContext& context, Buffer& buffer) override {}
+ void append_time_events(RunContext& ctx, Buffer& buffer) override {}
SampleCount frame_time() const override;
int real_time_priority() override { return 80; }
SampleCount block_length() const override { return _block_length; }
- size_t seq_size() const override { return _seq_size; }
+ uint32_t seq_size() const override { return _seq_size; }
SampleCount sample_rate() const override { return _sample_rate; }
private:
friend class PortAudioPort;
- inline static int
- pa_process_cb(const void* inputs,
- void* outputs,
- unsigned long nframes,
- const PaStreamCallbackTimeInfo* time,
- PaStreamCallbackFlags flags,
- void* handle) {
- return ((PortAudioDriver*)handle)->process_cb(
- inputs, outputs, nframes, time, flags);
+ static int pa_process_cb(const void* inputs,
+ void* outputs,
+ unsigned long nframes,
+ const PaStreamCallbackTimeInfo* time,
+ PaStreamCallbackFlags flags,
+ void* handle)
+ {
+ return static_cast<PortAudioDriver*>(handle)->process_cb(
+ inputs, outputs, nframes, time, flags);
}
int process_cb(const void* inputs,
@@ -98,12 +88,12 @@ private:
const PaStreamCallbackTimeInfo* time,
PaStreamCallbackFlags flags);
- void pre_process_port(RunContext& context,
+ void pre_process_port(RunContext& ctx,
EnginePort* port,
const void* inputs,
void* outputs);
- void post_process_port(RunContext& context,
+ void post_process_port(RunContext& ctx,
EnginePort* port,
const void* inputs,
void* outputs);
@@ -116,19 +106,18 @@ protected:
Ports _ports;
PaStreamParameters _inputParameters;
PaStreamParameters _outputParameters;
- Raul::Semaphore _sem;
+ raul::Semaphore _sem{0U};
std::unique_ptr<FrameTimer> _timer;
- PaStream* _stream;
- size_t _seq_size;
+ PaStream* _stream{nullptr};
+ uint32_t _seq_size{4096U};
uint32_t _block_length;
- uint32_t _sample_rate;
- uint32_t _n_inputs;
- uint32_t _n_outputs;
- std::atomic<bool> _flag;
- bool _is_activated;
+ uint32_t _sample_rate{48000U};
+ uint32_t _n_inputs{0U};
+ uint32_t _n_outputs{0U};
+ std::atomic<bool> _flag{false};
+ bool _is_activated{false};
};
-} // namespace server
-} // namespace ingen
+} // namespace ingen::server
#endif // INGEN_ENGINE_PORTAUDIODRIVER_HPP