output: allow throwing any exception
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user