summaryrefslogtreecommitdiff
path: root/libs/backends/alsa/alsa_audiobackend.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/backends/alsa/alsa_audiobackend.h')
-rw-r--r--libs/backends/alsa/alsa_audiobackend.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.h b/libs/backends/alsa/alsa_audiobackend.h
index c175a1950b..e90bec5df9 100644
--- a/libs/backends/alsa/alsa_audiobackend.h
+++ b/libs/backends/alsa/alsa_audiobackend.h
@@ -158,6 +158,23 @@ class AlsaMidiPort : public AlsaPort {
int _bufperiod;
}; // class AlsaMidiPort
+class AlsaDeviceReservation
+{
+ public:
+ AlsaDeviceReservation ();
+ AlsaDeviceReservation (const char* device_name);
+ ~AlsaDeviceReservation ();
+
+ bool acquire_device (const char* device_name);
+ void release_device ();
+
+ private:
+ ARDOUR::SystemExec* _device_reservation;
+ PBD::ScopedConnectionList _reservation_connection;
+ void reservation_stdout (std::string, size_t);
+ bool _reservation_succeeded;
+};
+
class AlsaAudioBackend : public AudioBackend {
friend class AlsaPort;
public:
@@ -345,12 +362,7 @@ class AlsaAudioBackend : public AudioBackend {
std::string _midi_driver_option;
/* audio device reservation */
- ARDOUR::SystemExec *_device_reservation;
- PBD::ScopedConnectionList _reservation_connection;
- void reservation_stdout (std::string, size_t);
- bool acquire_device(const char* device_name);
- void release_device();
- bool _reservation_succeeded;
+ AlsaDeviceReservation _device_reservation;
/* audio settings */
float _samplerate;