Add accessors to audio::mixer

This commit is contained in:
rexy712
2020-08-25 14:05:36 -07:00
parent dd16d8be84
commit 202692a56a
6 changed files with 32 additions and 6 deletions

View File

@@ -44,7 +44,7 @@ namespace audio::impl{
audio::stream m_output_sink;
public:
mixer(int output_channels, size_t channel_count);
mixer(int output_channels, size_t channel_count, size_t samplerate);
mixer(const mixer&) = delete;
mixer(mixer&&) = delete;
~mixer();
@@ -67,6 +67,10 @@ namespace audio::impl{
bool should_exit()const;
void exit();
size_t output_channels()const;
size_t get_samplerate()const;
size_t channel_count()const;
private:
static int callback(const void* /*input*/, void* output, unsigned long frame_count, unsigned long flags, mixer& mix);
};

View File

@@ -38,7 +38,7 @@ namespace audio{
private:
impl::mixer* m_mix;
public:
mixer(mode m, size_t channel_count);
mixer(mode m, size_t channel_count, size_t samplerate = 48000);
mixer(const mixer&) = delete;
mixer(mixer&&) = delete;
~mixer();
@@ -56,6 +56,9 @@ namespace audio{
void pause();
void resume();
void terminate();
size_t get_samplerate()const;
size_t channel_count()const;
};
}

View File

@@ -34,6 +34,7 @@ namespace audio{
detail::callback_iface* m_cb = nullptr;
PaStream* m_stream = nullptr;
mutable PaError m_err = paNoError;
double m_samplerate;
int m_in_channels;
int m_out_channels;
@@ -46,6 +47,7 @@ namespace audio{
m_cb(new detail::callback_impl<Callback,Args...>(std::forward<Callback>(cb), std::forward<Args>(cbargs)...)),
m_stream(initialize_global_instance()),
m_err(open_default_stream(&m_stream, in_c, out_c, paFloat32, samplerate, buffersize, m_cb)),
m_samplerate(samplerate),
m_in_channels(in_c),
m_out_channels(out_c){}
@@ -62,6 +64,8 @@ namespace audio{
int input_count()const;
int output_count()const;
double get_samplerate()const;
error last_error()const;
private: