mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-30 18:37:40 +01:00
move AudioBackend::_start() into protected, and expand a bit on documenting ::start() vs ::_start()
This commit is contained in:
parent
4d0caa6ddd
commit
dc4a984cd6
2 changed files with 24 additions and 14 deletions
|
|
@ -282,17 +282,7 @@ class AudioBackend : public PortEngine {
|
|||
virtual std::string midi_option () const = 0;
|
||||
|
||||
/* State Control */
|
||||
|
||||
/* non-virtual method to avoid possible overrides of default
|
||||
* parameters. See Scott Meyers or other books on C++ to
|
||||
* understand this pattern, or possibly just this:
|
||||
*
|
||||
* http://stackoverflow.com/questions/12139786/good-pratice-default-arguments-for-pure-virtual-method
|
||||
*/
|
||||
int start (bool for_latency_measurement=false) {
|
||||
return _start (for_latency_measurement);
|
||||
}
|
||||
|
||||
|
||||
/** Start using the device named in the most recent call
|
||||
* to set_device(), with the parameters set by various
|
||||
* the most recent calls to set_sample_rate() etc. etc.
|
||||
|
|
@ -308,8 +298,24 @@ class AudioBackend : public PortEngine {
|
|||
* any existing systemic latency settings.
|
||||
*
|
||||
* Return zero if successful, negative values otherwise.
|
||||
*/
|
||||
virtual int _start (bool for_latency_measurement) = 0;
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* Why is this non-virtual but ::_start() is virtual ?
|
||||
* Virtual methods with default parameters create possible ambiguity
|
||||
* because a derived class may implement the same method with a different
|
||||
* type or value of default parameter.
|
||||
*
|
||||
* So we make this non-virtual method to avoid possible overrides of
|
||||
* default parameters. See Scott Meyers or other books on C++ to understand
|
||||
* this pattern, or possibly just this:
|
||||
*
|
||||
* http://stackoverflow.com/questions/12139786/good-pratice-default-arguments-for-pure-virtual-method
|
||||
*/
|
||||
int start (bool for_latency_measurement=false) {
|
||||
return _start (for_latency_measurement);
|
||||
}
|
||||
|
||||
/** Stop using the device currently in use.
|
||||
*
|
||||
|
|
@ -481,6 +487,8 @@ class AudioBackend : public PortEngine {
|
|||
|
||||
protected:
|
||||
AudioEngine& engine;
|
||||
|
||||
virtual int _start (bool for_latency_measurement) = 0;
|
||||
};
|
||||
|
||||
struct AudioBackendInfo {
|
||||
|
|
|
|||
|
|
@ -89,7 +89,6 @@ class JACKAudioBackend : public AudioBackend {
|
|||
std::string control_app_name () const;
|
||||
void launch_control_app ();
|
||||
|
||||
int _start (bool for_latency_measurement);
|
||||
int stop ();
|
||||
int freewheel (bool);
|
||||
|
||||
|
|
@ -272,6 +271,9 @@ class JACKAudioBackend : public AudioBackend {
|
|||
*/
|
||||
|
||||
JACKSession* _session;
|
||||
|
||||
protected:
|
||||
int _start (bool for_latency_measurement);
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue