| Index: media/midi/midi_manager_alsa.h
|
| diff --git a/media/midi/midi_manager_alsa.h b/media/midi/midi_manager_alsa.h
|
| index 6228e574db3df3021706b9cdcd535f921e13f355..8b211fe9df408ce942b2162d417d5dc6739ed708 100644
|
| --- a/media/midi/midi_manager_alsa.h
|
| +++ b/media/midi/midi_manager_alsa.h
|
| @@ -48,8 +48,40 @@ class MIDI_EXPORT MidiManagerAlsa final : public MidiManager {
|
| public:
|
| enum class Type { kInput, kOutput };
|
|
|
| + // The Id class is used to keep the multiple strings separate
|
| + // but compare them all together for equality purposes.
|
| + // The individual strings that make up the Id can theoretically contain
|
| + // arbitrary characters, so unfortunately there is no simple way to
|
| + // concatenate them into a single string.
|
| + class Id final {
|
| + public:
|
| + Id();
|
| + Id(const std::string& bus,
|
| + const std::string& vendor_id,
|
| + const std::string& model_id,
|
| + const std::string& usb_interface_num,
|
| + const std::string& serial);
|
| + Id(const Id&);
|
| + ~Id();
|
| + bool operator==(const Id&) const;
|
| + bool empty() const;
|
| +
|
| + std::string bus() const { return bus_; }
|
| + std::string vendor_id() const { return vendor_id_; }
|
| + std::string model_id() const { return model_id_; }
|
| + std::string usb_interface_num() const { return usb_interface_num_; }
|
| + std::string serial() const { return serial_; }
|
| +
|
| + private:
|
| + std::string bus_;
|
| + std::string vendor_id_;
|
| + std::string model_id_;
|
| + std::string usb_interface_num_;
|
| + std::string serial_;
|
| + };
|
| +
|
| MidiPort(const std::string& path,
|
| - const std::string& id,
|
| + const Id& id,
|
| int client_id,
|
| int port_id,
|
| int midi_device,
|
| @@ -84,7 +116,7 @@ class MIDI_EXPORT MidiManagerAlsa final : public MidiManager {
|
|
|
| // accessors
|
| std::string path() const { return path_; }
|
| - std::string id() const { return id_; }
|
| + Id id() const { return id_; }
|
| std::string client_name() const { return client_name_; }
|
| std::string port_name() const { return port_name_; }
|
| std::string manufacturer() const { return manufacturer_; }
|
| @@ -119,7 +151,7 @@ class MIDI_EXPORT MidiManagerAlsa final : public MidiManager {
|
|
|
| private:
|
| // Immutable properties.
|
| - const std::string id_;
|
| + const Id id_;
|
| const int midi_device_;
|
|
|
| const Type type_;
|
| @@ -277,21 +309,22 @@ class MIDI_EXPORT MidiManagerAlsa final : public MidiManager {
|
| class AlsaCard {
|
| public:
|
| AlsaCard(udev_device* dev,
|
| - const std::string& alsa_name,
|
| - const std::string& alsa_longname,
|
| - const std::string& alsa_driver,
|
| + const std::string& name,
|
| + const std::string& longname,
|
| + const std::string& driver,
|
| int midi_device_count);
|
| ~AlsaCard();
|
| - const std::string alsa_name() const { return alsa_name_; }
|
| - const std::string alsa_longname() const { return alsa_longname_; }
|
| - const std::string manufacturer() const { return manufacturer_; }
|
| - const std::string alsa_driver() const { return alsa_driver_; }
|
| + std::string name() const { return name_; }
|
| + std::string longname() const { return longname_; }
|
| + std::string driver() const { return driver_; }
|
| + std::string path() const { return path_; }
|
| + std::string bus() const { return bus_; }
|
| + std::string vendor_id() const { return vendor_id_; }
|
| + std::string model_id() const { return model_id_; }
|
| + std::string usb_interface_num() const { return usb_interface_num_; }
|
| + std::string serial() const { return serial_; }
|
| int midi_device_count() const { return midi_device_count_; }
|
| - // Returns hardware path.
|
| - const std::string path() const;
|
| - // Returns the id we can use to try to match hardware across different
|
| - // paths.
|
| - const std::string id() const;
|
| + std::string manufacturer() const { return manufacturer_; }
|
|
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(MidiManagerAlsaTest, ExtractManufacturer);
|
| @@ -301,20 +334,20 @@ class MIDI_EXPORT MidiManagerAlsa final : public MidiManager {
|
| const std::string& udev_id_vendor,
|
| const std::string& udev_id_vendor_id,
|
| const std::string& udev_id_vendor_from_database,
|
| - const std::string& alsa_name,
|
| - const std::string& alsa_longname);
|
| -
|
| - std::string alsa_name_;
|
| - std::string alsa_longname_;
|
| - std::string manufacturer_;
|
| - std::string alsa_driver_;
|
| - std::string path_;
|
| - std::string bus_;
|
| - std::string serial_;
|
| - std::string vendor_id_;
|
| - std::string model_id_;
|
| - std::string usb_interface_num_;
|
| - int midi_device_count_;
|
| + const std::string& name,
|
| + const std::string& longname);
|
| +
|
| + const std::string name_;
|
| + const std::string longname_;
|
| + const std::string driver_;
|
| + const std::string path_;
|
| + const std::string bus_;
|
| + const std::string vendor_id_;
|
| + const std::string model_id_;
|
| + const std::string usb_interface_num_;
|
| + const std::string serial_;
|
| + const int midi_device_count_;
|
| + const std::string manufacturer_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(AlsaCard);
|
| };
|
|
|