Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1282)

Unified Diff: media/midi/midi_manager_alsa.h

Issue 1145653002: Web MIDI ALSA: Enable hardware based device matching (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@magical-sound-shower
Patch Set: Update comment Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | media/midi/midi_manager_alsa.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « no previous file | media/midi/midi_manager_alsa.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698