summaryrefslogtreecommitdiffstats
path: root/media/midi
Commit message (Collapse)AuthorAgeFilesLines
* Web MIDI: link with alsa even if cras is enabledtoyoshim@chromium.org2014-02-264-10/+15
| | | | | | | | | | | | | | | | | This CL fixes a feature breakage on Chrome OS which happens by crrev.com/244251 accidentally. Chrome for Chrome OS should be linked with alsa even if cras is enabled. This is because Web MIDI implementation for Chrome OS depends on alsa. Also this changes add trace events for each platform implementation. This is also useful to know which implementation is enabled in the build. BUG=335865 Review URL: https://codereview.chromium.org/171603014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253373 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Web MIDI: enable important logs in release build"vollick@chromium.org2014-02-152-8/+7
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit 73113403b7d0fa04308689ebc79e765f65a3efad. This is causing chromeos bot failures: snippet: chromeos-chrome-34.0.1842.0_alpha-r1: ../../../../../../../home/chrome-bot/chrome_root/src/content/browser/browser_main_loop.cc:475: error: undefined reference to 'media::MidiManager::Create()' chromeos-chrome-34.0.1842.0_alpha-r1: collect2: error: ld returned 1 exit status chromeos-chrome-34.0.1842.0_alpha-r1: ninja: build stopped: subcommand failed. link to full output: http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28amd64%29/builds/14268/steps/BuildPackages/logs/stdio TBR=toyoshim@chromium.org BUG=None Review URL: https://codereview.chromium.org/168523002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251567 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: enable important logs in release buildtoyoshim@chromium.org2014-02-152-7/+8
| | | | | | | | | | | | To investigate a reason that Web MIDI goes not working recently in ChromeOS, this change enable some important log messages in release build. Also, this change make it impossible to disable MIDIManager for ChromeOS. BUG=335865 Review URL: https://codereview.chromium.org/166033004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251564 0039d316-1c4b-4281-b951-d872f2087c98
* Implement WebMIDI for android, output side.yhirano@chromium.org2014-02-127-1/+239
| | | | | | | | | | | | Implement WebMIDI for android. This CL implements the output function only. BUG=303596 R=toyoshim@chromium.org Review URL: https://codereview.chromium.org/133163006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250648 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: enable receiving functionality in Linux and Chrome OStoyoshim@chromium.org2014-02-062-2/+148
| | | | | | | | BUG=303601 Review URL: https://codereview.chromium.org/111103008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249359 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: make naming convention be consistenttoyoshim@chromium.org2014-02-0420-206/+207
| | | | | | | | | | | | | | | | | | | Naming cleanup based on following rules: - MidiFooBar ... use this style to be consistent with chromium - WebMIDIFooBar ... Web API name related things, or names in blink - MIDIFooBar ... APIs and structures defined by each operating systems Other cleanup: - Modify some TODO(crogers) to TODO(toyoshim) - Add some crbug links. - Remove some obsolete UI TODOs related to infobars BUG=none TEST=build for all platforms Review URL: https://codereview.chromium.org/151343002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248686 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: provide better port info on ALSAtoyoshim@chromium.org2014-02-021-9/+19
| | | | | | | | | | | - Speculate manufacturer name from the card longname. - Use driver name and library version for port version. BUG=303601 Review URL: https://codereview.chromium.org/151503002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248390 0039d316-1c4b-4281-b951-d872f2087c98
* [WebMIDI] Introduce MidiManagerUsbyhirano@chromium.org2014-01-299-18/+594
| | | | | | | | | | | | Introduce MidiManagerUsb, a MIDIManager subclass for USB-MIDI. Android port will use this class. BUG=303596 R=toyoshim@chromium.org Review URL: https://codereview.chromium.org/107163008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247665 0039d316-1c4b-4281-b951-d872f2087c98
* [WebMIDI] Introduce UsbMidi{Input, Output}Stream.yhirano@chromium.org2014-01-228-0/+904
| | | | | | | | | | | | UsbMidiInputStream converts USB-MIDI messages to MIDI messages. UsbMidiOutputStream converts MIDI MIDI messages to USB-MIDI messages. BUG=303596 R=toyoshim@chromium.org Review URL: https://codereview.chromium.org/107513012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246277 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce USB MIDI descriptor parseryhirano@chromium.org2014-01-104-0/+447
| | | | | | | | | | | | In order to recognize USB MIDI jacks associated with endpoints, this CL introduces a USB descriptor parser. BUG=303596 R=toyoshim@chromium.org Review URL: https://codereview.chromium.org/105043008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244101 0039d316-1c4b-4281-b951-d872f2087c98
* Do not compile Alsa based MIDI manager if use_alsa==0dnicoara@chromium.org2014-01-033-19/+19
| | | | | | | | | | | Renaming the Linux MIDI manager to Alsa so we can exclude it if compiling without Alsa. BUG= Review URL: https://codereview.chromium.org/110483008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242925 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: minimum support for Linux and Chrome OS (reland)toyoshim@chromium.org2014-01-033-2/+210
| | | | | | | | | | | | | | | This change enables Web MIDI API on Linux and Chrome OS. Only Sending functionality works with this first experimental change. BUG=303601 TBR=scherkus@chromium.org NOTRY=true Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=241524 Review URL: https://codereview.chromium.org/111443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242871 0039d316-1c4b-4281-b951-d872f2087c98
* Update uses of UTF conversions in courgette/, device/, extensions/, ↵avi@chromium.org2013-12-251-2/+2
| | | | | | | | | | | | google_apis/, gpu/, ipc/, media/, net/ to use the base:: namespace. BUG=330556 TEST=no change TBR=ben@chromium.org Review URL: https://codereview.chromium.org/112963005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242496 0039d316-1c4b-4281-b951-d872f2087c98
* Fix timestamp calculationyukawa@chromium.org2013-12-211-21/+27
| | | | | | | | | | Windows MIDI API specifies timestamps in milliseconds for MIM_DATA and MIM_LONGDATA. BUG=329964 Review URL: https://codereview.chromium.org/112403003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242252 0039d316-1c4b-4281-b951-d872f2087c98
* [WebMIDI] MIDIManager::create should return non-null object.yhirano@chromium.org2013-12-202-3/+16
| | | | | | | | | | | | enable-web-midi switch can be added for unsupported platforms, for development purpose. In such case, returning NULL in MIDIManager::create causes a crash. This CL prevents the crash. BUG=303596 Review URL: https://codereview.chromium.org/108603004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242028 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 241524 "Web MIDI: minimum support for Linux and Chrome OS"ksakamoto@chromium.org2013-12-183-180/+2
| | | | | | | | | | | | | | | | | | | | Broke Chromium OS ASAN bots. http://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20%28x86%29%20ASAN/builds/7556 > Web MIDI: minimum support for Linux and Chrome OS > > This change enables Web MIDI API on Linux and Chrome OS. > Only Sending functionality works with this first experimental change. > > BUG=303601 > > Review URL: https://codereview.chromium.org/111443005 TBR=toyoshim@chromium.org Review URL: https://codereview.chromium.org/107953003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241532 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: minimum support for Linux and Chrome OStoyoshim@chromium.org2013-12-183-2/+180
| | | | | | | | | | | This change enables Web MIDI API on Linux and Chrome OS. Only Sending functionality works with this first experimental change. BUG=303601 Review URL: https://codereview.chromium.org/111443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241524 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: regression bug fixtoyoshim@chromium.org2013-12-101-1/+1
| | | | | | | | | | | The send thread should start iff the thread is not running. Accidentally, the condition was reversed :( BUG=326888 Review URL: https://codereview.chromium.org/107513007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239710 0039d316-1c4b-4281-b951-d872f2087c98
* Enable WebMIDI for Windows behind the flagyukawa@chromium.org2013-12-053-1/+638
| | | | | | | | | | | This CL implements media::MIDIManagerWin on top of Windows multimedia API to provide native MIDI support for web applications. BUG=303599 TEST=manually done on Windows 8.1 Review URL: https://codereview.chromium.org/29793006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238861 0039d316-1c4b-4281-b951-d872f2087c98
* Make MIDIManager::DispatchSendMIDIData pure virtual.yukawa@chromium.org2013-12-044-57/+45
| | | | | | | | | | | | | | | With this CL, each OS-specific implementation of MIDIManager is responsible for implementing DispatchSendMIDIData() as a non-blocking function. Main motivations of this change are: - Whether non-blocking implementation of DispatchSendMIDIData() requires a background thread or not depends on MIDI APIs on each platform. - If the base class owns a background thread and the actual dispatch method is overridden by each implementation class, such background thread must be terminated *before* the subclass destructor() is finished to avoid pure virtual function call. This is a trick requirement in resource cleanup order that we'd like to avoid. BUG=303599 TEST=manually done on Mac Review URL: https://codereview.chromium.org/97583002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238703 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 237660 "Revert 237558 "Use MIDIMessageQueue/IsValidWebMID..."yukawa@chromium.org2013-11-296-0/+457
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The root cause was fixed as r237778. > Revert 237558 "Use MIDIMessageQueue/IsValidWebMIDIData for MIDI ..." > > Seems to have caused issues running perf tests. > > BUG=324160 > > > Use MIDIMessageQueue/IsValidWebMIDIData for MIDI byte stream validation > > > > WebMIDI spec draft: http://www.w3.org/TR/webmidi/ > > > > WebMIDI API guarantees that MIDIInput::onmessage is called back with a single MIDI message. To guarantee this, this CL introduces MIDIMessageQueue class, which allows you to > > - maintain fragmented MIDI message. > > - Skip any invalid data sequence. > > - Reorder MIDI messages so that "System Real Time Message", which can be inserted at any point of the byte stream, can be placed at the boundary of complete MIDI messages. > > - (Optional) Reconstruct complete MIDI messages from data stream that is compressed with "running status". > > > > This CL also replaces existing System Exclusive message validation logic in MIDIHost::OnSendData with MIDIHost::IsValidWebMIDIData, which can detect SysEx message even when it is concatenated with non-SysEx messages. > > > > With this change, renderer/blink can be much simpler and free from this kind of data validation. > > > > BUG=303599, 317355 > > TEST=media_unittests --gtest_filter=MIDI*, content_unittests --gtest_filter=MIDI* > > > > Review URL: https://codereview.chromium.org/68353002 > > TBR=yukawa@chromium.org > > Review URL: https://codereview.chromium.org/93583002 TBR=isherman@chromium.org, toyoshim@chromium.org, scherkus@chromium.org, jochen@chromium.org BUG=303599,317355,324160 Review URL: https://codereview.chromium.org/96113002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237889 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 237558 "Use MIDIMessageQueue/IsValidWebMIDIData for MIDI ..."isherman@chromium.org2013-11-286-457/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seems to have caused issues running perf tests. BUG=324160 > Use MIDIMessageQueue/IsValidWebMIDIData for MIDI byte stream validation > > WebMIDI spec draft: http://www.w3.org/TR/webmidi/ > > WebMIDI API guarantees that MIDIInput::onmessage is called back with a single MIDI message. To guarantee this, this CL introduces MIDIMessageQueue class, which allows you to > - maintain fragmented MIDI message. > - Skip any invalid data sequence. > - Reorder MIDI messages so that "System Real Time Message", which can be inserted at any point of the byte stream, can be placed at the boundary of complete MIDI messages. > - (Optional) Reconstruct complete MIDI messages from data stream that is compressed with "running status". > > This CL also replaces existing System Exclusive message validation logic in MIDIHost::OnSendData with MIDIHost::IsValidWebMIDIData, which can detect SysEx message even when it is concatenated with non-SysEx messages. > > With this change, renderer/blink can be much simpler and free from this kind of data validation. > > BUG=303599, 317355 > TEST=media_unittests --gtest_filter=MIDI*, content_unittests --gtest_filter=MIDI* > > Review URL: https://codereview.chromium.org/68353002 TBR=yukawa@chromium.org Review URL: https://codereview.chromium.org/93583002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237660 0039d316-1c4b-4281-b951-d872f2087c98
* Use MIDIMessageQueue/IsValidWebMIDIData for MIDI byte stream validationyukawa@chromium.org2013-11-276-0/+457
| | | | | | | | | | | | | | | | | | | | | WebMIDI spec draft: http://www.w3.org/TR/webmidi/ WebMIDI API guarantees that MIDIInput::onmessage is called back with a single MIDI message. To guarantee this, this CL introduces MIDIMessageQueue class, which allows you to - maintain fragmented MIDI message. - Skip any invalid data sequence. - Reorder MIDI messages so that "System Real Time Message", which can be inserted at any point of the byte stream, can be placed at the boundary of complete MIDI messages. - (Optional) Reconstruct complete MIDI messages from data stream that is compressed with "running status". This CL also replaces existing System Exclusive message validation logic in MIDIHost::OnSendData with MIDIHost::IsValidWebMIDIData, which can detect SysEx message even when it is concatenated with non-SysEx messages. With this change, renderer/blink can be much simpler and free from this kind of data validation. BUG=303599, 317355 TEST=media_unittests --gtest_filter=MIDI*, content_unittests --gtest_filter=MIDI* Review URL: https://codereview.chromium.org/68353002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237558 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI API: IAC driver supporttoyoshim@chromium.org2013-10-291-7/+27
| | | | | | | | | | | | | MIDI devices which is connected via IAC driver don't provide some string properties, e.g. kMIDIPropertyManufacturer, and so on. As a result, Chrome crashed due to an unexpected NULL CFStringRef. BUG=277383 TEST=manual (See, original bug report) Review URL: https://codereview.chromium.org/49443002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231508 0039d316-1c4b-4281-b951-d872f2087c98
* mac: Remove a static initializer.thakis@chromium.org2013-10-171-1/+4
| | | | | | | | | BUG=94925,94794 NOTRY=true Review URL: https://codereview.chromium.org/27423003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229117 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: fix multi-threading problem around message buffer handlingtoyoshim@chromium.org2013-08-274-42/+46
| | | | | | | | | | | | | Passing message buffer to another thread as const uint8* doesn't work since it might be invalid before another thread reads it. Keep on handling it as vector<uint8> from IPC to passing it to the OS. TEST=manual BUG=276810 Review URL: https://chromiumcodereview.appspot.com/23379002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219796 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: bug fix to make send operations worktoyoshim@chromium.org2013-08-201-1/+1
| | | | | | | | | BUG=273123 TEST=none Review URL: https://chromiumcodereview.appspot.com/23125006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218447 0039d316-1c4b-4281-b951-d872f2087c98
* Support sending MIDI data with throttlingcrogers@google.com2013-07-314-10/+61
| | | | | | | | | | | | | | | | The Web MIDI API allows sending of MIDI data, but we need to take care to not send too much data from the renderer to the browser. We implement a throttling mechanism where the browser process acknowledges the number of sent bytes back to the renderer, and the renderer only sends new data if it hasn't already sent too much unacknowledged data. BUG=163795 TEST=none Review URL: https://chromiumcodereview.appspot.com/19612004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214570 0039d316-1c4b-4281-b951-d872f2087c98
* Web MIDI: implement WebMIDIClient to handle permissionstoyoshim@chromium.org2013-07-252-18/+8
| | | | | | | | | | | | Implement WebMIDIClient to handle permissions and remove dependencies on old platform APIs. This transition is needed to remove old interfaces from platform APIs. BUG=163795 Review URL: https://chromiumcodereview.appspot.com/18611005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213644 0039d316-1c4b-4281-b951-d872f2087c98
* Fix MIDI code for 64 bit build.avi@chromium.org2013-06-251-6/+14
| | | | | | | | | BUG=163795 TEST=builds everywhere Review URL: https://chromiumcodereview.appspot.com/17617004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208519 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land 16025005 with tiny fix for statics perf issuecrogers@google.com2013-06-226-0/+514
| | | | | | | | | | | 16025005 had review from: palmer@chromium.org, piman@chromium.org, scherkus@chromium.org BUG=163795 TBR=scherkus@chromium.org Review URL: https://codereview.chromium.org/17288018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208003 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 207992: This looks like a reland of r207983, which was reverted insadrul@chromium.org2013-06-226-514/+0
| | | | | | | | | | r207989. But it looks more like an accidental commit. TBR=crogers@google.com Review URL: https://codereview.chromium.org/17176031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207996 0039d316-1c4b-4281-b951-d872f2087c98
* don't include iostream.hcrogers@google.com2013-06-226-0/+514
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | use ChildThread for main loop - fix Android build whitespace fix minor style fix last minute compile fixes address Antoine's comments minor changes to reflect latest Blink API -- address palmer comments last minute include order fix address last minute style nits stub out other OSes support Takashi's MIDIAccessor fix minor build err undo param traits changes get rid of param_traits - other minor style nits address scherkus comments use int64 for ParamTraits WIP fix white-space issues more style basically working some cleanup -- support for multiple clients forgot midi_manager.cc Get MIDI port information sent to renderer formatting fixes lots of cleanup - added RequestAccess and Send style more style only bother sending received messages to renderer if approval was asked early steps to granting permission to Blink some progress to sending port info to Blink send client_id when requesting access fix minor style issues in .gyp files fix context/browser DEPS fix include paths git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207992 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 207983 "Implement Web MIDI API back-end"crogers@google.com2013-06-226-518/+0
| | | | | | | | | | | | | | | | | | > Implement Web MIDI API back-end > > This involves browser-side support and IPC for sending and receiving > MIDI messages. Initially support for OSX is included. > > BUG=163795 > R=palmer@chromium.org, piman@chromium.org, scherkus@chromium.org > > Review URL: https://codereview.chromium.org/16025005 TBR=crogers@google.com Review URL: https://codereview.chromium.org/17334006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207989 0039d316-1c4b-4281-b951-d872f2087c98
* Implement Web MIDI API back-endcrogers@google.com2013-06-226-0/+518
This involves browser-side support and IPC for sending and receiving MIDI messages. Initially support for OSX is included. BUG=163795 R=palmer@chromium.org, piman@chromium.org, scherkus@chromium.org Review URL: https://codereview.chromium.org/16025005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207983 0039d316-1c4b-4281-b951-d872f2087c98