]> git.sesse.net Git - nageru/blobdiff - audio_mixer.h
Move InputMapping and friends into its own header file.
[nageru] / audio_mixer.h
index 2e73ebd7a1e7e68ff29dee3024dbc90b8911b316..7ae5464d44ab61fe336e28603460f693cc9a33ea 100644 (file)
@@ -25,6 +25,7 @@
 #include "defs.h"
 #include "ebu_r128_proc.h"
 #include "filter.h"
+#include "input_mapping.h"
 #include "resampling_queue.h"
 #include "stereocompressor.h"
 
@@ -32,26 +33,6 @@ namespace bmusb {
 struct AudioFormat;
 }  // namespace bmusb
 
-enum class InputSourceType { SILENCE, CAPTURE_CARD, ALSA_INPUT };
-struct DeviceSpec {
-       InputSourceType type;
-       unsigned index;
-
-       bool operator== (const DeviceSpec &other) const {
-               return type == other.type && index == other.index;
-       }
-
-       bool operator< (const DeviceSpec &other) const {
-               if (type != other.type)
-                       return type < other.type;
-               return index < other.index;
-       }
-};
-struct DeviceInfo {
-       std::string name;
-       unsigned num_channels;
-};
-
 enum EQBand {
        EQ_BAND_BASS = 0,
        EQ_BAND_MID,
@@ -59,26 +40,6 @@ enum EQBand {
        NUM_EQ_BANDS
 };
 
-static inline uint64_t DeviceSpec_to_key(const DeviceSpec &device_spec)
-{
-       return (uint64_t(device_spec.type) << 32) | device_spec.index;
-}
-
-static inline DeviceSpec key_to_DeviceSpec(uint64_t key)
-{
-       return DeviceSpec{ InputSourceType(key >> 32), unsigned(key & 0xffffffff) };
-}
-
-struct InputMapping {
-       struct Bus {
-               std::string name;
-               DeviceSpec device;
-               int source_channel[2] { -1, -1 };  // Left and right. -1 = none.
-       };
-
-       std::vector<Bus> buses;
-};
-
 class AudioMixer {
 public:
        AudioMixer(unsigned num_cards);
@@ -115,7 +76,7 @@ public:
                return alsa_pool.get_card_state(index);
        }
 
-       void set_name(DeviceSpec device_spec, const std::string &name);
+       void set_display_name(DeviceSpec device_spec, const std::string &name);
 
        void set_input_mapping(const InputMapping &input_mapping);
        InputMapping get_input_mapping() const;
@@ -284,7 +245,7 @@ private:
        struct AudioDevice {
                std::unique_ptr<ResamplingQueue> resampling_queue;
                int64_t next_local_pts = 0;
-               std::string name;
+               std::string display_name;
                unsigned capture_frequency = OUTPUT_FREQUENCY;
                // Which channels we consider interesting (ie., are part of some input_mapping).
                std::set<unsigned> interesting_channels;