3664 Commits

Author SHA1 Message Date
Mike Lockwood
f2cd802402 MidiDeviceInfo meta-data improvements:
Add property for user visible device name
Add names for input and output ports
Rename "model" to "product" to match USB specification.

Change-Id: I8dc50da935f26825ffc73de456d34e7933aa987c
2015-03-12 12:05:47 -07:00
Mike Lockwood
57baee2e12 Merge "MidiManager: Add MIDI device status notifications" 2015-03-11 19:43:49 +00:00
Mike Lockwood
70bea13774 Merge "MidiDevice: Add support for making direct connections between ports" 2015-03-11 19:43:31 +00:00
Mike Lockwood
5ff9e2a171 MidiManager: Add MIDI device status notifications
MidiManager clients can be notified of device status changes via a new MidiDeviceStatus object.
MidiDeviceStatus contains the busy status of the device's input ports and number of
connections to the output ports.
MidiDeviceService now has an optional callback for receiving notifications when its ports change as well.

Change-Id: I1600df4464d82724bc026c27b9633ae9c412d3f0
2015-03-11 10:19:45 -07:00
Mike Lockwood
46326e59a0 MidiDevice: Add support for making direct connections between ports
The output port of one device can be connected to the input port of another
device using the new MidiDevice.connectPorts() method.
This allows an application to direct the output of one device directly
to the input port of another without having to copy data from one to another.

Change-Id: I4d361c4e0950b9b9516b0c2f0c158677b1aca208
2015-03-11 10:19:37 -07:00
Mike Lockwood
22e78c65be Merge "Add MidiReceiver.send() and MidiReceiver.getMaxMessageSize()" 2015-03-11 10:55:43 +00:00
Mike Lockwood
0c7342f015 Add MidiReceiver.send() and MidiReceiver.getMaxMessageSize()
Change-Id: I10d4f5e2400fcaf41f455e56ca25bbc0c781a042
2015-03-11 03:51:38 -07:00
Narayan Kamath
c9a245a45e am debf5a09: am c2826fb9: am 3d333c74: Merge "Fix typos in AudioManager javadoc"
* commit 'debf5a09e46027f29c26b6502d4aa6508dd3e4b5':
  Fix typos in AudioManager javadoc
2015-03-11 00:23:35 +00:00
Narayan Kamath
c2826fb922 am 3d333c74: Merge "Fix typos in AudioManager javadoc"
* commit '3d333c745f928ca1595aca111d9938fa3cf3e282':
  Fix typos in AudioManager javadoc
2015-03-10 15:23:06 +00:00
Eemi Haukkala
bc68256fea Fix typos in AudioManager javadoc
The ACTION_HDMI_AUDIO_PLUG constant's description
had spelled "HDMI" as "HMDI" and was missing a
period. Fixes issue 93726.

Change-Id: Idfd5352dba022afcd81bc9e50864fc6e95c661db
Signed-off-by: Eemi Haukkala <eemi.haukkala@gmail.com>
2015-03-10 15:10:05 +00:00
Mike Lockwood
7f602b75ee Merge "MIDI Manager changes:" 2015-03-10 02:03:00 +00:00
Eino-Ville Talvala
62d9670e98 Merge "Add DEPTH image formats, support in ImageReader" 2015-03-10 00:16:16 +00:00
Eino-Ville Talvala
805f3c9428 Add DEPTH image formats, support in ImageReader
- Add an explicit mapping between public ImageFormat/
  PixelFormat enums and internal HAL format/dataspace.
- Add DEPTH16 and DEPTH_POINT_CLOUD formats
- Wire up mapping layer to ImageReader to support depth
  formats

Change-Id: I8197eccef900cc91baddcfcb934ccd4d8c972eff
2015-03-09 16:42:25 -07:00
Eric Laurent
00a009204e enable FM tuner and hotword capture for system apps.
AudioRecord constructor with AudioAttributes and session ID as well
as HOTWORD and RADIO_TUNER audio sources are now system APIs.
Renamed MediaRecorder.AudioSource.FM_TUNER to
MediaRecorder.AudioSource.RADIO_TUNER.

Change-Id: I231c20c21e3e8cffe1837482976ebe284c9af541
2015-03-09 13:06:05 -07:00
Mike Lockwood
be215dd572 MIDI Manager changes:
Add CloseGuard support to MidiDevice and MidiDeviceServer
Make MidiDevice.close() thread safe
Make non-subclassable API classes final
Other misc cleanup

Change-Id: I7a5d31b06b8c2403cfbc5597c5c1395f0ac90194
2015-03-09 11:58:04 -07:00
Mike Lockwood
4a3d7ed45d MIDI Manager: Add explicit close mechanism for input and output ports
Relying on errors from closing the file descriptor is not reliable
and was resulting in file descriptor leaks in device servers.

Change-Id: Ib5cc22dba493eae6608a12cc6d4178d8390da77b
2015-03-06 12:17:12 -08:00
Mike Lockwood
eebc98ff18 MidiDeviceService: Add getDeviceInfo() accessor method
so service implementations can access their own device info object.

Change-Id: I93e0c449e72d76568d7b4c9f7f7db00a846b5a33
2015-03-06 08:17:33 -08:00
Mike Lockwood
35110d1ed7 Add MidiDevice.close() method so we can clean up our ServiceConnection
Change-Id: I65cd4cfd940b02709daeffef6dab814305b8a6b0
2015-03-04 20:38:42 -08:00
Mike Lockwood
3b7664589b Make MidiSender and MidiReceiver abstract classes, rename MidiReceiver.post() to receive()
Change-Id: I1cef3bd48ca0acf2968c9de223f78445f3434404
2015-03-04 20:38:37 -08:00
Mike Lockwood
20821ecbe8 Eliminate MidiPort base class for MidiInputPort and MidiOutputPort
Change-Id: I628c0468ac980eee909add53a4d6e55e9b358603
2015-03-04 16:15:45 -08:00
Mike Lockwood
c623ec973b Merge "MidiManager: Virtual MIDI devices are now implemented as Services" 2015-03-05 00:01:33 +00:00
John Spurlock
75328b703f Merge "Audio: Remove the concept of master volume." 2015-03-04 22:59:41 +00:00
John Spurlock
ee5ad729b9 Audio: Remove the concept of master volume.
- Remove two config resources (use master volume, and volume ramp).
- Remove master volume adjustments / getters / intents.
- Retain @hidden setMasterMute, needed for device admin
- Remove master volume logic in AudioService.
- Remove master volume logic in VolumePanel.
- Rename "getMasterStreamType" to "getUiSoundsStreamType" to avoid confusion.

Bug: 19582978
Change-Id: Id02c8fa4898cff3b913147f5ac1b4038e2e7cc24
2015-03-04 17:51:44 -05:00
Mike Lockwood
11fd96d6ff MidiManager: Virtual MIDI devices are now implemented as Services
To implement a virtual MIDI device, include a subclass of MidiDeviceService in
your application.  This service is identified by an intent filter and meta-data
in the application's manifest to allow the MIDI manager to register the virtual device
without actually running the application. Instead, the application's MidiDeviceService
subclass is started on demand when MIDI manager clients want to open the device.

Here is an example of how the MidiDeviceService might be described in the application manifest:

    <service android:name="VirtualDeviceService">
        <intent-filter>
            <action android:name="android.media.midi.MidiDeviceService" />
        </intent-filter>
        <meta-data android:name="android.media.midi.MidiDeviceService"
            android:resource="@xml/device_info" />
    </service>

and the device_info.xml meta-data:

<devices>
    <device manufacturer="Sample Manufacturer" model="Sample Model" private="false">
        <input-port name="my input port" />
        <output-port name="my output port" />
    </device>
</devices>

(note that the <input-port> and <output-port> names are not currently used, but support for these
will be added in a subsequent change)

Client's of the virtual device will bind directly to the hosting application's MidiDeviceService subclass.
To support this, MidiManager.openDevice() now returns the MidiDevice asynchronously via a callback.

This change also adds a utility class called MidiDispatcher, which is a MidiReceiver
that dispatches all data it receives to a list of other MidiReceivers.
We now use this internally in MidiInputPort and MidiDeviceServer, but developers
may use it for other purposes as well.

Change-Id: Ic3009f06d56f3d5edbd87de3f0c330b51a1c217d
2015-03-04 13:45:38 -08:00
Wei Jia
d93fcf4002 MediaPlayer: add setPlaybackRate JAVA API.
Bug: 19196501
Change-Id: I43daced7d9b53bcaca4e6a8d81ca729b32efc79f
2015-03-03 14:43:55 -08:00
John Spurlock
08c7116ab9 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
Chong Zhang
cff41ae363 Merge "MediaRecorder: pass capture fps in float" 2015-02-24 22:22:11 +00:00
Mike Lockwood
b673770f71 Add MIDI Manager API tweaks:
- Change the package name from android.midi to android.media.midi

- Add option for specifying a Handler for DeviceCallback notifications

Change-Id: Ia9e9817a651c06299f4e02ee1da3c9666ff64cb9
2015-02-23 14:32:23 -08:00
Chong Zhang
fbdee2c04b MediaRecorder: pass capture fps in float
bug: 19460202
Change-Id: I4723c8ed44b4de399de2f3bf051b2d1a4e881910
2015-02-23 22:00:39 +00:00
Paul McLean
ceb47aae5a Changing AudioManager.listAudioDevicePorts to take a ArrayList<AudioDevicePort> argument.
Change-Id: Ide9a2f58a7544e263600e100ba4274403201c5fa
2015-02-19 15:33:34 -08:00
Paul McLean
83b40599bb Merge "Audio Device Enumeration API." 2015-02-19 23:09:07 +00:00
Paul McLean
0e4242f9cb Audio Device Enumeration API.
Change-Id: Ic78fda8b2a6f6ac0f37a1f665b29f3359cfc5ecc
2015-02-19 15:03:53 -08:00
John Spurlock
0a7269bbaf Merge "AudioAttributes: introduce new flags to bypass audio restrictions." 2015-02-19 18:24:24 +00:00
John Spurlock
bbfd31a5d4 AudioAttributes: introduce new flags to bypass audio restrictions.
- New @hidden @SystemApi FLAG_BYPASS_INTERRUPTION_POLICY, request
   to ignore any current audio restrictions, such as zen mode
   content-based notification filtering.
 - Wire up FLAG_BYPASS_INTERRUPTION_POLICY to the existing
   audio restriction checks in the framework.

 - New @hidden @SystemApi FLAG_BYPASS_MUTE, request to play
   audibly, even if the underlying stream is muted.
 - Wiring up to audio framework TBD.

 - Use both of these new flags on the inline volume slider
   controls used in Settings, ensuring playback is heard
   regardless of the current device filter state.

Bug: 19407114
Change-Id: I3d44394931592ccbc1b61ddd9a4d1cc984da17cc
2015-02-18 20:48:26 -05:00
Tor Norbye
7b9c912f53 Add @ResourceInt annotations on APIs
Change-Id: I119cc059c2f8bd98fd585fc84ac2b1b7d5892a08
2015-02-18 07:49:03 -08:00
John Spurlock
a9dfbe8b12 Volume: Allow dialog to query "muteable" streams.
Similar to the existing ability to query streams affected
by ringer mode.

Bug:19260237
Change-Id: I76eb5ab6b7c7e3a4d73ac1909289c560194d4fe8
2015-02-17 11:01:51 -05:00
John Spurlock
b25334ca3c Merge "Allow sysui-managed remote volume controllers." 2015-02-13 14:50:50 +00:00
John Spurlock
cdb57aeb0e Allow sysui-managed remote volume controllers.
- Relax restriction on audio service calls that assume the volume
  ui is systemui, allow calls from a blessed component app.
- Blessed component app service saved in secure settings.
- SystemUI mediates requests to replace the volume dialog, prompts
  the user on activation.
- Show a low pri ongoing notification when the volume dialog is
  being replaced, to allow user restoration at any time.
- Replace the controller management code in VolumeUI to use a
  ServiceMonitor, backed by the new blessed app component setting.
- Add proper zen-related noman client wrappers, make avail to the
  registered volume controller.
- Everything is still @hidden, no api impact.

Bug: 19260237
Change-Id: Ie1383f57659090318a7eda737fdad5b8f88737d4
2015-02-12 22:48:37 -05:00
Chong Zhang
d6686a62f7 Merge "media: discard duplicate CEA-608 ctrl code" 2015-02-11 02:35:08 +00:00
John Spurlock
6156017c22 Move AudioService to services.
...and a few dependencies. Move remaining shared items to AudioSystem.

Change-Id: Ib9623ff867678d34977337856bb0156e8cdaeeb5
2015-02-09 17:13:38 -05:00
RoboErik
7d85bc4c43 Merge "Delay unmuting on volume down" 2015-02-09 22:08:05 +00:00
Chong Zhang
56a7ed6982 media: discard duplicate CEA-608 ctrl code
bug: 19297083
Change-Id: I6c108e2c597e7b3fd770306a26e110208dc5ece0
2015-02-09 13:52:20 -08:00
RoboErik
5452e25844 Delay unmuting on volume down
This allows the user to turn the volume down before a stream is unmuted by
delaying the unmute call while volume down requests are still being made.

bug:19297183
Change-Id: I65a8e489eb4cbfeace4f539103ee0025584102da
2015-02-09 12:54:19 -08:00
Chong Zhang
fb54267e71 am 6cad6513: Merge "reset col position to 1 on row PAC" into lmp-mr1-dev automerge: eceae03
automerge: 3968f0c

* commit '3968f0c2dfa5cbb1432d49af47ad2fa89f1b2225':
  reset col position to 1 on row PAC
2015-02-06 03:21:37 +00:00
Chong Zhang
3968f0c2df am 6cad6513: Merge "reset col position to 1 on row PAC" into lmp-mr1-dev
automerge: eceae03

* commit 'eceae03f6a21b36baddabe4ca5a2c1d9d238240a':
  reset col position to 1 on row PAC
2015-02-06 03:17:36 +00:00
Chong Zhang
6cad6513e0 Merge "reset col position to 1 on row PAC" into lmp-mr1-dev 2015-02-06 02:06:24 +00:00
Chong Zhang
6286f8ec05 reset col position to 1 on row PAC
bug: 19284568
Change-Id: I7d439027ab6411bcd5c149580babee80dc5f9478
2015-02-05 16:46:06 -08:00
RoboErik
5387988fc9 Merge "Make isStreamMute correctly handle master volume devices" 2015-02-05 23:23:16 +00:00
Paul McLean
26bf3ea56e Merge "Add additional info to AudioPort for enum/selection API." 2015-02-05 18:26:56 +00:00
John Spurlock
951c04bf4d Merge "Use shared value for default muteable streams." 2015-02-05 17:40:50 +00:00