]> git.sesse.net Git - nageru/blobdiff - alsa_input.h
Fix a deadlock issue when shutting down ALSA cards.
[nageru] / alsa_input.h
index 724b64011749f01bc554cb720e3c095473113c3c..895760fed8fef76737e341e44e188267db7c9692 100644 (file)
@@ -22,7 +22,7 @@
 
 class ALSAInput {
 public:
-       typedef std::function<void(const uint8_t *data, unsigned num_samples, bmusb::AudioFormat audio_format, int64_t frame_length)> audio_callback_t;
+       typedef std::function<bool(const uint8_t *data, unsigned num_samples, bmusb::AudioFormat audio_format, int64_t frame_length)> audio_callback_t;
 
        ALSAInput(const char *device, unsigned sample_rate, unsigned num_channels, audio_callback_t audio_callback);
        ~ALSAInput();
@@ -34,6 +34,14 @@ public:
        void start_capture_thread();
        void stop_capture_thread();
 
+       // TODO: Worry about hotplug.
+       struct Device {
+               std::string address;  // E.g. “hw:0,0”.
+               std::string name, info;
+               unsigned num_channels;
+       };
+       static std::vector<Device> enumerate_devices();
+
 private:
        void capture_thread_func();
        int64_t frames_to_pts(uint64_t n) const;