output: allow throwing any exception
This commit is contained in:
parent
510e6841a0
commit
412b04be58
|
@ -232,7 +232,7 @@ public:
|
||||||
AudioOutputControl &operator=(const AudioOutputControl &) = delete;
|
AudioOutputControl &operator=(const AudioOutputControl &) = delete;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Configure(const ConfigBlock &block);
|
void Configure(const ConfigBlock &block);
|
||||||
|
|
||||||
|
@ -383,7 +383,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Caller must lock the mutex.
|
* Caller must lock the mutex.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void InternalOpen2(AudioFormat in_audio_format);
|
void InternalOpen2(AudioFormat in_audio_format);
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ public:
|
||||||
FilterObserver convert_filter;
|
FilterObserver convert_filter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
FilteredAudioOutput(const char *_plugin_name,
|
FilteredAudioOutput(const char *_plugin_name,
|
||||||
std::unique_ptr<AudioOutput> &&_output,
|
std::unique_ptr<AudioOutput> &&_output,
|
||||||
|
@ -176,7 +176,7 @@ public:
|
||||||
void SetAttribute(std::string &&name, std::string &&value);
|
void SetAttribute(std::string &&name, std::string &&value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Enable();
|
void Enable();
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ public:
|
||||||
* Invoke OutputPlugin::open() and configure the
|
* Invoke OutputPlugin::open() and configure the
|
||||||
* #ConvertFilter.
|
* #ConvertFilter.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*
|
*
|
||||||
* Caller must not lock the mutex.
|
* Caller must not lock the mutex.
|
||||||
*/
|
*/
|
||||||
|
@ -236,7 +236,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
std::unique_ptr<FilteredAudioOutput>
|
std::unique_ptr<FilteredAudioOutput>
|
||||||
audio_output_new(EventLoop &event_loop,
|
audio_output_new(EventLoop &event_loop,
|
||||||
|
|
|
@ -80,7 +80,7 @@ public:
|
||||||
* Enable the device. This may allocate resources, preparing
|
* Enable the device. This may allocate resources, preparing
|
||||||
* for the device to be opened.
|
* for the device to be opened.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
virtual void Enable() {}
|
virtual void Enable() {}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Really open the device.
|
* Really open the device.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*
|
*
|
||||||
* @param audio_format the audio format in which data is going
|
* @param audio_format the audio format in which data is going
|
||||||
* to be delivered; may be modified by the plugin
|
* to be delivered; may be modified by the plugin
|
||||||
|
@ -150,7 +150,7 @@ public:
|
||||||
* Play a chunk of audio data. The method blocks until at
|
* Play a chunk of audio data. The method blocks until at
|
||||||
* least one audio frame is consumed.
|
* least one audio frame is consumed.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*
|
*
|
||||||
* @return the number of bytes played (must be a multiple of
|
* @return the number of bytes played (must be a multiple of
|
||||||
* the frame size)
|
* the frame size)
|
||||||
|
|
|
@ -52,7 +52,7 @@ struct AudioOutputPlugin {
|
||||||
* Configure and initialize the device, but do not open it
|
* Configure and initialize the device, but do not open it
|
||||||
* yet.
|
* yet.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*
|
*
|
||||||
* @param param the configuration section, or nullptr if there is
|
* @param param the configuration section, or nullptr if there is
|
||||||
* no configuration
|
* no configuration
|
||||||
|
|
|
@ -147,7 +147,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Ensure that ReadTag() or PeekData() return any input.
|
* Ensure that ReadTag() or PeekData() return any input.
|
||||||
*
|
*
|
||||||
* Throws std::runtime_error on error
|
* Throws on error
|
||||||
*
|
*
|
||||||
* @param mutex the #Mutex which protects the
|
* @param mutex the #Mutex which protects the
|
||||||
* #SharedPipeConsumer; it is locked by the caller, and may be
|
* #SharedPipeConsumer; it is locked by the caller, and may be
|
||||||
|
|
|
@ -248,7 +248,7 @@ private:
|
||||||
* Set up the snd_pcm_t object which was opened by the caller.
|
* Set up the snd_pcm_t object which was opened by the caller.
|
||||||
* Set up the configured settings and the audio format.
|
* Set up the configured settings and the audio format.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Setup(AudioFormat &audio_format, PcmExport::Params ¶ms);
|
void Setup(AudioFormat &audio_format, PcmExport::Params ¶ms);
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ struct JackOutput final : AudioOutput {
|
||||||
* Connect the JACK client and performs some basic setup
|
* Connect the JACK client and performs some basic setup
|
||||||
* (e.g. register callbacks).
|
* (e.g. register callbacks).
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Connect();
|
void Connect();
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ struct JackOutput final : AudioOutput {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Start();
|
void Start();
|
||||||
void Stop() noexcept;
|
void Stop() noexcept;
|
||||||
|
@ -141,7 +141,7 @@ struct JackOutput final : AudioOutput {
|
||||||
static constexpr Domain jack_output_domain("jack_output");
|
static constexpr Domain jack_output_domain("jack_output");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
static unsigned
|
static unsigned
|
||||||
parse_port_list(const char *source, std::string dest[])
|
parse_port_list(const char *source, std::string dest[])
|
||||||
|
|
|
@ -89,7 +89,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void SetupContext();
|
void SetupContext();
|
||||||
};
|
};
|
||||||
|
|
|
@ -120,7 +120,7 @@ private:
|
||||||
/**
|
/**
|
||||||
* Reopen the device with the saved audio_format, without any probing.
|
* Reopen the device with the saved audio_format, without any probing.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Reopen();
|
void Reopen();
|
||||||
|
|
||||||
|
@ -284,7 +284,7 @@ oss_try_ioctl(FileDescriptor fd, unsigned long request, int value,
|
||||||
* Set up the channel number, and attempts to find alternatives if the
|
* Set up the channel number, and attempts to find alternatives if the
|
||||||
* specified number is not supported.
|
* specified number is not supported.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
oss_setup_channels(FileDescriptor fd, AudioFormat &audio_format)
|
oss_setup_channels(FileDescriptor fd, AudioFormat &audio_format)
|
||||||
|
@ -333,7 +333,7 @@ oss_setup_channels(FileDescriptor fd, AudioFormat &audio_format)
|
||||||
* Set up the sample rate, and attempts to find alternatives if the
|
* Set up the sample rate, and attempts to find alternatives if the
|
||||||
* specified sample rate is not supported.
|
* specified sample rate is not supported.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
oss_setup_sample_rate(FileDescriptor fd, AudioFormat &audio_format)
|
oss_setup_sample_rate(FileDescriptor fd, AudioFormat &audio_format)
|
||||||
|
|
|
@ -109,7 +109,7 @@ private:
|
||||||
/**
|
/**
|
||||||
* Attempt to connect asynchronously to the PulseAudio server.
|
* Attempt to connect asynchronously to the PulseAudio server.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Connect();
|
void Connect();
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ private:
|
||||||
*
|
*
|
||||||
* Caller must lock the main loop.
|
* Caller must lock the main loop.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void SetupContext();
|
void SetupContext();
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ private:
|
||||||
*
|
*
|
||||||
* Caller must lock the main loop.
|
* Caller must lock the main loop.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void WaitConnection();
|
void WaitConnection();
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ private:
|
||||||
*
|
*
|
||||||
* Caller must lock the main loop.
|
* Caller must lock the main loop.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void SetupStream(const pa_sample_spec &ss);
|
void SetupStream(const pa_sample_spec &ss);
|
||||||
|
|
||||||
|
@ -163,14 +163,14 @@ private:
|
||||||
* not. The mainloop must be locked before calling this
|
* not. The mainloop must be locked before calling this
|
||||||
* function.
|
* function.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void WaitStream();
|
void WaitStream();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets cork mode on the stream.
|
* Sets cork mode on the stream.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void StreamPause(bool pause);
|
void StreamPause(bool pause);
|
||||||
};
|
};
|
||||||
|
|
|
@ -97,7 +97,7 @@ private:
|
||||||
/**
|
/**
|
||||||
* Finish the encoder and commit the file.
|
* Finish the encoder and commit the file.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void Commit();
|
void Commit();
|
||||||
|
|
||||||
|
|
|
@ -175,7 +175,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Caller must lock the mutex.
|
* Caller must lock the mutex.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void OpenEncoder(AudioFormat &audio_format);
|
void OpenEncoder(AudioFormat &audio_format);
|
||||||
|
|
||||||
|
@ -252,7 +252,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Mutext must not be locked.
|
* Mutext must not be locked.
|
||||||
*
|
*
|
||||||
* Throws #std::runtime_error on error.
|
* Throws on error.
|
||||||
*/
|
*/
|
||||||
void EncodeAndPlay(const void *chunk, size_t size);
|
void EncodeAndPlay(const void *chunk, size_t size);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue