Commit cc936a29 authored by agoode's avatar agoode Committed by Commit bot

Rename CardInfo to MidiDevice and factor out some device probing logic

BUG=431489

Review URL: https://codereview.chromium.org/1007613006

Cr-Commit-Position: refs/heads/master@{#320846}
parent 42632edb
This diff is collapsed.
......@@ -36,14 +36,15 @@ class MEDIA_EXPORT MidiManagerAlsa : public MidiManager {
private:
FRIEND_TEST_ALL_PREFIXES(MidiManagerAlsaTest, ExtractManufacturer);
FRIEND_TEST_ALL_PREFIXES(MidiManagerAlsaTest, UdevEscape);
class CardInfo {
class MidiDevice {
public:
CardInfo(const MidiManagerAlsa* outer,
const std::string& alsa_name, const std::string& alsa_longname,
const std::string& alsa_driver, int card_index);
~CardInfo();
MidiDevice(const MidiManagerAlsa* outer,
const std::string& alsa_name,
const std::string& alsa_longname,
const std::string& alsa_driver,
int card_index);
~MidiDevice();
const std::string alsa_name() const;
const std::string manufacturer() const;
......@@ -53,7 +54,6 @@ class MEDIA_EXPORT MidiManagerAlsa : public MidiManager {
private:
FRIEND_TEST_ALL_PREFIXES(MidiManagerAlsaTest, ExtractManufacturer);
FRIEND_TEST_ALL_PREFIXES(MidiManagerAlsaTest, UdevEscape);
// Extracts the manufacturer using heuristics and a variety of sources.
static std::string ExtractManufacturerString(
......@@ -68,16 +68,25 @@ class MEDIA_EXPORT MidiManagerAlsa : public MidiManager {
std::string alsa_driver_;
std::string udev_id_path_;
std::string udev_id_id_;
DISALLOW_COPY_AND_ASSIGN(MidiDevice);
};
// Returns an ordered vector of all the rawmidi devices on the system.
ScopedVector<MidiDevice> AllMidiDevices();
// Enumerate all the ports for initial setup.
void EnumeratePorts();
// An internal callback that runs on MidiSendThread.
void SendMidiData(uint32 port_index,
const std::vector<uint8>& data);
void EventReset();
void ScheduleEventLoop();
void EventLoop();
void ProcessSingleEvent(snd_seq_event_t* event, double timestamp);
// Alsa seq handles.
// ALSA seq handles.
snd_seq_t* in_client_;
snd_seq_t* out_client_;
int out_client_id_;
......@@ -86,11 +95,11 @@ class MEDIA_EXPORT MidiManagerAlsa : public MidiManager {
int in_port_;
std::vector<int> out_ports_;
// Mapping from Alsa client:port to our index.
// Mapping from ALSA client:port to our index.
typedef std::map<int, uint32> SourceMap;
SourceMap source_map_;
// Alsa event <-> MIDI coders.
// ALSA event <-> MIDI coders.
snd_midi_event_t* decoder_;
typedef std::vector<snd_midi_event_t*> EncoderList;
EncoderList encoders_;
......
......@@ -10,68 +10,39 @@ namespace media {
TEST(MidiManagerAlsaTest, ExtractManufacturer) {
ASSERT_EQ("My\\x20Vendor",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"My\\x20Vendor",
"1234",
"My Vendor, Inc.",
"Card",
"My Vendor Inc Card at bus"));
ASSERT_EQ("My Vendor",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"My Vendor",
"1234",
"My Vendor, Inc.",
"Card",
MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"My\\x20Vendor", "1234", "My Vendor, Inc.", "Card",
"My Vendor Inc Card at bus"));
ASSERT_EQ("My Vendor", MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"My Vendor", "1234", "My Vendor, Inc.", "Card",
"My Vendor Inc Card at bus"));
ASSERT_EQ("My Vendor, Inc.",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"1234",
"1234",
"My Vendor, Inc.",
"Card",
MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"1234", "1234", "My Vendor, Inc.", "Card",
"My Vendor Inc Card at bus"));
ASSERT_EQ("My Vendor Inc",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"1234",
"1234",
"",
"Card",
"My Vendor Inc Card at bus"));
MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"1234", "1234", "", "Card", "My Vendor Inc Card at bus"));
ASSERT_EQ("My Vendor Inc",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"",
"",
"",
"Card",
"My Vendor Inc Card at bus"));
ASSERT_EQ("",
MidiManagerAlsa::CardInfo::ExtractManufacturerString("1234",
"1234",
"",
"Card",
"Longname"));
MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"", "", "", "Card", "My Vendor Inc Card at bus"));
ASSERT_EQ("", MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"1234", "1234", "", "Card", "Longname"));
ASSERT_EQ("Keystation\\x20Mini\\x2032",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"Keystation\\x20Mini\\x2032",
"129d",
"Evolution Electronics, Ltd",
"Keystation Mini 32",
MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"Keystation\\x20Mini\\x2032", "129d",
"Evolution Electronics, Ltd", "Keystation Mini 32",
"Keystation Mini 32 Keystation Mini 32 at"
" usb-0000:00:14.0-2.4.4, full speed"));
ASSERT_EQ("Keystation Mini 32",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"Keystation Mini 32",
"129d",
"Evolution Electronics, Ltd",
MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"Keystation Mini 32", "129d", "Evolution Electronics, Ltd",
"Keystation Mini 32",
"Keystation Mini 32 Keystation Mini 32 at"
" usb-0000:00:14.0-2.4.4, full speed"));
ASSERT_EQ("Keystation Mini 32",
MidiManagerAlsa::CardInfo::ExtractManufacturerString(
"",
"",
"",
"Keystation Mini 32",
MidiManagerAlsa::MidiDevice::ExtractManufacturerString(
"", "", "", "Keystation Mini 32",
"Keystation Mini 32 Keystation Mini 32 at"
" usb-0000:00:14.0-2.4.4, full speed"));
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment