| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_MIDI_MIDI_MANAGER_ALSA_H_ | 5 #ifndef MEDIA_MIDI_MIDI_MANAGER_ALSA_H_ |
| 6 #define MEDIA_MIDI_MIDI_MANAGER_ALSA_H_ | 6 #define MEDIA_MIDI_MIDI_MANAGER_ALSA_H_ |
| 7 | 7 |
| 8 #include <alsa/asoundlib.h> | 8 #include <alsa/asoundlib.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 }; | 366 }; |
| 367 }; | 367 }; |
| 368 | 368 |
| 369 using SourceMap = base::hash_map<int, uint32_t>; | 369 using SourceMap = base::hash_map<int, uint32_t>; |
| 370 using OutPortMap = base::hash_map<uint32_t, int>; | 370 using OutPortMap = base::hash_map<uint32_t, int>; |
| 371 using ScopedSndSeqPtr = std::unique_ptr<snd_seq_t, SndSeqDeleter>; | 371 using ScopedSndSeqPtr = std::unique_ptr<snd_seq_t, SndSeqDeleter>; |
| 372 using ScopedSndMidiEventPtr = | 372 using ScopedSndMidiEventPtr = |
| 373 std::unique_ptr<snd_midi_event_t, SndMidiEventDeleter>; | 373 std::unique_ptr<snd_midi_event_t, SndMidiEventDeleter>; |
| 374 | 374 |
| 375 // An internal callback that runs on MidiSendThread. | 375 // An internal callback that runs on MidiSendThread. |
| 376 void SendMidiData(uint32_t port_index, const std::vector<uint8_t>& data); | 376 void SendMidiData(int instance_id, |
| 377 MidiManagerClient* client, |
| 378 uint32_t port_index, |
| 379 const std::vector<uint8_t>& data); |
| 377 | 380 |
| 378 void ScheduleEventLoop(); | 381 void EventLoop(int instance_id); |
| 379 void EventLoop(); | |
| 380 void ProcessSingleEvent(snd_seq_event_t* event, double timestamp); | 382 void ProcessSingleEvent(snd_seq_event_t* event, double timestamp); |
| 381 void ProcessClientStartEvent(int client_id); | 383 void ProcessClientStartEvent(int client_id); |
| 382 void ProcessPortStartEvent(const snd_seq_addr_t& addr); | 384 void ProcessPortStartEvent(const snd_seq_addr_t& addr); |
| 383 void ProcessClientExitEvent(const snd_seq_addr_t& addr); | 385 void ProcessClientExitEvent(const snd_seq_addr_t& addr); |
| 384 void ProcessPortExitEvent(const snd_seq_addr_t& addr); | 386 void ProcessPortExitEvent(const snd_seq_addr_t& addr); |
| 385 void ProcessUdevEvent(udev_device* dev); | 387 void ProcessUdevEvent(udev_device* dev); |
| 386 void AddCard(udev_device* dev); | 388 void AddCard(udev_device* dev); |
| 387 void RemoveCard(int number); | 389 void RemoveCard(int number); |
| 388 | 390 |
| 389 // Updates port_state_ and Web MIDI state from alsa_seq_state_. | 391 // Updates port_state_ and Web MIDI state from alsa_seq_state_. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 int out_client_id_; | 442 int out_client_id_; |
| 441 int in_port_id_; | 443 int in_port_id_; |
| 442 | 444 |
| 443 // ALSA event -> MIDI coder. | 445 // ALSA event -> MIDI coder. |
| 444 ScopedSndMidiEventPtr decoder_; | 446 ScopedSndMidiEventPtr decoder_; |
| 445 | 447 |
| 446 // udev, for querying hardware devices. | 448 // udev, for querying hardware devices. |
| 447 device::ScopedUdevPtr udev_; | 449 device::ScopedUdevPtr udev_; |
| 448 device::ScopedUdevMonitorPtr udev_monitor_; | 450 device::ScopedUdevMonitorPtr udev_monitor_; |
| 449 | 451 |
| 450 // Threads for sending and receiving. These are initialized in the | 452 int instance_id_; |
| 451 // constructor, but are started at the end of StartInitialization. | |
| 452 base::Thread event_thread_; | |
| 453 base::Thread send_thread_; | |
| 454 | 453 |
| 455 DISALLOW_COPY_AND_ASSIGN(MidiManagerAlsa); | 454 DISALLOW_COPY_AND_ASSIGN(MidiManagerAlsa); |
| 456 }; | 455 }; |
| 457 | 456 |
| 458 } // namespace midi | 457 } // namespace midi |
| 459 | 458 |
| 460 #endif // MEDIA_MIDI_MIDI_MANAGER_ALSA_H_ | 459 #endif // MEDIA_MIDI_MIDI_MANAGER_ALSA_H_ |
| OLD | NEW |