1199 Commits

Author SHA1 Message Date
Eric Laurent
950e8cb40a Indicate screen off condition to audio framework.
Add a mechanism for AudioService to notify audio framework and audio HAL
that screen is turned on or off. This indication can be used by lower
audio layers to trigger low power audio playback mode.
Current implementaiton based on setParameters() method is experimental
and will be replaced by a different interface when ready.

Change-Id: Ie72ada0a8edec3d71b47681b9f51cb5bc839d45b
2011-10-14 11:40:24 -07:00
Jean-Michel Trivi
7ff866e8cf Fix 5153611 remove remote control client/display log from AudioService
Do not log debug messages for the RemoteControlClient and
 IRemoteControlDisplay related features.

Change-Id: I81bfeec1770f81b78b679dc03fb40806393b170a
2011-10-13 18:09:26 -07:00
Jean-Michel Trivi
09b4d99822 DO NOT MERGE Fix 5389442 RemoteControlClient javadoc
Extend RemoteControlClient class description with an example
 of instance creation showing how the PendingIntent is created
 and how it uses the same ComponentName as the one used
 in AudioManager.registerMediaButtonEventReceiver()

Change-Id: I1af61ddbf5cfb9160ea5b814bed7b881d51b7eff
2011-10-11 18:59:34 -07:00
James Dong
f58ba65069 Support AMR as a file type so that it can be imported into movie studio
Change-Id: I3fc4f49ae0a210f53b1bab68716f4e558b3d91c5
related-to-bug: 5419452
2011-10-09 21:14:58 -07:00
Marco Nelissen
b741c60486 Remove Ringtone.setWakeMode, it's not needed.
This partially reverts commit e47e8520fa48bd014287eda94ea39927de73d6bc.
(the other part of that change was already removed as part of a different
change)

Change-Id: Ica7c196ab1f74f96237e64d07580832f0d50022f
2011-09-29 15:58:41 -07:00
Marco Nelissen
d94a7b60cc Merge "Release MediaPlayer before letting it go out of scope." 2011-09-29 10:11:34 -07:00
Marco Nelissen
e1bd048cf2 Release MediaPlayer before letting it go out of scope.
Change-Id: Ib2b727146f6cba91b131e66d218251f5a3206fac
2011-09-29 09:59:03 -07:00
Jean-Michel Trivi
26b3d1ff38 Fix bug 5357295 NPE on display when remote control client dies
When a IRemoteControlClient dies, that client is set to null
 in the stack of remote control entries (mRCStack). This is done
 by calling registerRemoteControlClient() with a null client.
The bug is that registerRemoteControlClient(), after storing
 the new client, uses it to let it know what the current
 remote control display is. When that display is non null, the
 client is sent the current display. So when a client died
 when there was a display, the client reference was accessed
 in the part of the method where we haven't yet checked whether
 it is null or not.
The fix consists in moving the setting of the display on the
 client (method plugRemoteControlDisplay) only after having
 checked that the client is non-null.

Change-Id: Ic74d6cba9e3a3a16e78cd80a1ae5901abfeb3905
2011-09-28 11:43:36 -07:00
Dianne Hackborn
e47e8520fa Keyguard sound needs to hold wake lock.
We need to hold a wakelock while playing the keyguard lock sound,
so that it actually completes before the CPU goes to sleep.

Change-Id: I144c345383afeb911ea461b2eb17b31183b6d092
2011-09-21 13:34:33 -07:00
Jean-Michel Trivi
eb060254a0 am 9c43016b: Merge "Bug 5045498 Keep track of RemoteControlClient play state change time" into ics-factoryrom
* commit '9c43016b52afa855156aac2dc81a2bbe1e4ab436':
  Bug 5045498 Keep track of RemoteControlClient play state change time
2011-09-21 09:36:56 -07:00
Marco Nelissen
28b9a063ad Merge "MediaScanner: To query row ids of music files when handling playlists." 2011-09-21 08:48:46 -07:00
Jean-Michel Trivi
68622396b6 Bug 5045498 Keep track of RemoteControlClient play state change time
Store the time at which a RemoteControlClient changes it playback
 state, and send that time to the IRemoteControlDisplay.
This change will enable displays to implement strategies such as
 timeouts (e.g. to not display transport controls for clients which have
 been paused or stopped for a certain amount of time).

Change-Id: I902882500565743d455d56f6000efaf612cbe0a9
2011-09-20 11:59:51 -07:00
Chih-Chung Chang
ed4cfe70ca Merge "Fix 5224359: Add width and height to media store." 2011-09-20 09:23:34 -07:00
Chih-Chung Chang
e1bf8efaff Fix 5224359: Add width and height to media store.
Change-Id: I27376285a551e648eb0ea010dfdf6b8ed873cdd8
2011-09-20 20:41:44 +08:00
James Dong
92d0a64b90 Merge "Add QVGA resolution to CamcorderProfile" into ics-factoryrom 2011-09-19 20:06:52 -07:00
James Dong
07b9ae3312 Add QVGA resolution to CamcorderProfile
Change-Id: Icebbafb68d8164370f98a2c36699845d10ef081b
related-to-bug: 5145483
2011-09-19 19:32:26 -07:00
Jean-Michel Trivi
f0cff04562 Bug 5300223 RemoteControlClient uses PendingIntent for media button events
Update the implementation of the RemoteControlClient / Display
 feature rely on PendingIntent as provided in the construction
 of the RemoteControlClient instance.
The ComponentName that describes the target of the media button
 events is set as the target of the Intent from which
 a PendingIntent is constructed.
This ComponentName is still saved in the stack for persisting
 the last media button event receiver.

This CL also updates the lockscreen IRemoteControlDisplay
 implementation to use the PendingIntent supplied by the
 application when sending transport control events. A (good)
 side effect of doing this is that intent will be directly
 targeted at the application.

Restoration of the media button event receiver
 after reboot is not fully functional yet.

Change-Id: I2be82f2839e9dee1de02512437b3fb41cc386cde
2011-09-16 12:40:43 -07:00
Jean-Michel Trivi
34d0d300ca Fix bug 5327199 Recycle bitmaps in RemoteControlClient
When applying the new bitmap from the editor to the client,
 recycle the old bitmap, and set the reference to the editor
 bitmap to null.

Change-Id: I7d79e4b8410e5035fa51b20be4b1ada391c84c28
2011-09-16 11:33:50 -07:00
Eric Laurent
16066ec591 Merge "Issue 5044873: Pb with BT SCO AudioManager API" 2011-09-14 09:18:23 -07:00
Jean-Michel Trivi
e83f771f0a Merge "Bug 5300223 RemoteControlClient uses PendingIntent" 2011-09-14 09:05:36 -07:00
Eric Laurent
d7454be47f Issue 5044873: Pb with BT SCO AudioManager API
Do not identify the SCO connection client by the binder interface
passed when starting the connection as this binder changes if the
AudioManager proxy changes. Use the client PID instead.

This solves an issue with gTalk starting a SCO connection from one
AudioManager proxy and then changing audio mode from another thus
terminating the previously started SCO connection.

Change-Id: Ia3067fecc551fc15df3bf75ce0c43d181859e4f0
2011-09-14 08:45:58 -07:00
Jean-Michel Trivi
6e920e6dac Bug 5300223 RemoteControlClient uses PendingIntent
API change so RemoteControlClient is given a PendingIntent in
 its constructor, which will be used for receiving media button
 events from remote controls.
Leave the old constructors (but hidden) to not break
 current functionality until the AudioManager and AudioService
 implementations have been updated.

Change-Id: Ifa12c8036c948931adc386a827dce2936788e1cd
2011-09-13 19:27:20 -07:00
Dianne Hackborn
48c5fb1493 API review: Metadata class not used.
The Metadata class doesn't actually seem to be used with anything
in the SDK, and the API probably needs some work, so hide it.

Change-Id: Ifecf49130b90cbb4c588ad8104f1e7957978f789
2011-09-13 16:24:45 -07:00
Marco Nelissen
02ea7d4877 Merge "Fix bug 5045498 Unhide Remote Control Client API" 2011-09-09 08:44:19 -07:00
Eric Laurent
ebf6478f55 Merge "Fix issue 4673378: switching from VoIP to GSM call" 2011-09-09 08:27:04 -07:00
Eric Laurent
9f103de83f Fix issue 4673378: switching from VoIP to GSM call
The problem is that any app can change the audio mode and override
a mode previously set by another app. If two apps (gTalk and Phone) compete
for audio mode ownership, there is no mechanism to maintain coherency
in the actual audio mode selected.

Added a mechanism in AudioService to manage an audio mode request stack.
Any app requesting a mode different from NORMAL enters at the top of the stack
and the requested mode is applied. When an app sets mode back to NORMAL, it exits
the stack and the new mode corresponding to the request at the top of the
stack (if any) is applied.

Change-Id: I68d1755d0922f680df4a19bfc5ab924f5a5d8ccd
2011-09-08 19:23:56 -07:00
Chih-Chung Chang
70ad1c378b Merge "Fix 5156702: rotate thumbnails" 2011-09-08 05:52:44 -07:00
Dongwon Kang
7d92a22d9d MediaScanner: To query row ids of music files when handling playlists.
Change-Id: I3c2a803618bfdaf4915f2487669952d5e3b4dd32
2011-09-08 10:50:40 +09:00
Chih-Chung Chang
47a52158d2 Fix 5156702: rotate thumbnails
Change-Id: I97b51dadf129172d5b154e9dfd66da254e4559d7
2011-09-07 19:20:45 +08:00
Marco Nelissen
671db6f3ba Fix startBluetoothSco race
Change-Id: I8b711bd3c6b12f2e3e92144c0dadac72261bf914
2011-09-06 16:51:21 -07:00
Jamie Gennis
2e6f49cc81 Merge "MediaPlayer: remove the setTexture method" 2011-09-05 14:50:33 -07:00
Chih-Chung Chang
09bb20b5f6 Merge "Fix 5240036: Generate a reasonable bitrate for intermediate clips." 2011-09-04 19:36:20 -07:00
Eric Laurent
dca56b9432 Fix issue 5252593: any app can restart the runtime
Replace null device address string by empty sting.

Change-Id: I285c35f3345334e6d2190493b1a8a5aca1a361a4
2011-09-02 15:59:50 -07:00
Jamie Gennis
83fb94d188 MediaPlayer: remove the setTexture method
This change removes the MediaPlayer#setTexture method.  It has been
replaced with MediaPlayer#setSurface.

Change-Id: Iaecbbac7629d7092883f270694c5c67391f4ed6c
2011-09-02 15:48:52 -07:00
Dave Burke
fc301b0bb5 Require INTERNET permission for network-based content.
Bug #1870981

Change-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f
2011-09-02 11:26:59 +01:00
Chih-Chung Chang
8b1f350993 Fix 5240036: Generate a reasonable bitrate for intermediate clips.
Change-Id: I96bf9a7d0e2ce78fd19cce7bccbd4ac318748709
2011-09-02 18:19:54 +08:00
Jean-Michel Trivi
466ade5ad6 Fix bug 5045498 Unhide Remote Control Client API
The RemoteControlClient API enables media application to have
 information such as album art, current song, playback state
 be displayed on "remote control displays", as well as be
 controlled by "remote controls".
The new API consists in:
 - a new class, RemoteControlClient
 - new methods in AudioManager to register a RemoteControlClient
 - a new class, RemoteControlClient.MetadataEditor to edit and
  apply the information associated with a RemoteControlClient,
  and which will be displayed on a "remote control display"

Change-Id: I5616085e4ad58ce0bbc1a5953b0a5a28d32f8703
2011-09-01 16:13:50 -07:00
Jean-Michel Trivi
a6ec356d2f Merge "Fix 5243349 RemoteControlDisplay incorrectly updated" 2011-08-31 19:02:59 -07:00
Jean-Michel Trivi
b716f0b7b2 Fix 5243349 RemoteControlDisplay incorrectly updated
This fixes a case where the RCD would display transport control
 for a RemoteControlClient that didn't have audio focus.
This was happening because registering an RCD was directly calling
 the updateRemoteControlDisplay method, without first calling
 the checkUpdateRemoteControlDisplay method which verifies the
 conditions before updating the display. One of those conditions
 is that the audio focus stack shouldn't be empty.

To verify this fix, several functions were also rename to clearly
 indicate the lock order and verify we properly synchronize on
 the right objects. In doing so, a missing synchronization on
 audio focus was found.

Change-Id: If1baaac224ea676aeb83ac0aefcc53f87461c32e
2011-08-31 18:24:04 -07:00
Rajneesh Chowdury
270bcaa9d1 Merge "Fix for 5156702 Rotate video output for thumbnails and export" 2011-08-31 17:14:52 -07:00
Eric Laurent
16b241a58f Merge "Change condition to enter silent mode." 2011-08-31 12:59:28 -07:00
Jean-Michel Trivi
3387945766 Fix 5242200 only update RemoteControlDisplay when a client is present
A precondition for updateRemoteControlDisplay_syncRcs() is that
 mRCStack is not null. This condition was not verified when
 registering a RemoteControlDisplay.

Change-Id: I0b152410e57c590114b387e9ab83f0c4d15d060d
2011-08-31 11:52:16 -07:00
Eric Laurent
3d4c06f907 Change condition to enter silent mode.
Previously, silent mode was entered if volume was already at 0 and
volume down key was pressed once.

The new volume management policy specifies that silent mode is entered when
volume is at last audible step and volume down key is pressed once.

Change-Id: Id3e75a99c522d8afe276868010b6e73495d23fde
2011-08-31 09:47:24 -07:00
Jean-Michel Trivi
5ad4b9fb96 RemoteControlClient metadata: add method for metadata of long type
Update to the RemoteControlClient.Editor API:
 - new method for setting metadata of type long
 - methods for setting metadata throw an exception if using
    the wrong key with the wrong method.

Note that this change will cause the Music2 application to
 throw an exception when it tries to set the duration as a string.

Change-Id: I17cff86467851a0aff313c07653e752ae6b6180f
2011-08-30 18:42:33 -07:00
Jean-Michel Trivi
2261c7d645 Merge "Bug 5045498 Force display update when display registers" 2011-08-30 15:14:12 -07:00
Jean-Michel Trivi
958bba6862 Bug 5045498 Force display update when display registers
When an IRemoteControlDisplay registers, cause the
 RemoteControlClient to send all its information to the newly
 registered display.
The previous code was only sending a request for update: this
 request didn't here cause the client to send the data because
 a new client generation had not been synchronized among clients
 and displays.
This CL uses the same code path to force an update as when audio
 focus changes, or a new client registers, by calling the same
 method that is called in those cases,
 updateRemoteControlDisplay_syncRcs(flags).
Also in this CL: more method renames to indicate methods that
 are called synchronized on mRCStack.

Change-Id: I54102f45ba1cd4812d958ecd883bec7bc45ae88f
2011-08-30 14:48:31 -07:00
Jamie Gennis
8d102eb672 Merge changes I33f59705,Ia4c8c822,I2fb695ab,I2e587afc
* changes:
  MediaDump: use the MediaPlayer#setSurface method
  HTML5VideoView: switch to MediaPlayer#setSurface
  MediaPlayer: unhide the setSurface method
  Surface: unhide the SurfaceTexture ctor
2011-08-30 14:38:56 -07:00
Rajneesh Chowdury
c847b1a89d Fix for 5156702 Rotate video output for thumbnails and export
This is part of a multi project submit.
This is the Java and Jni changes.

Change-Id: I8851f5d865e657b7846bcded38e752f388f95895
2011-08-30 12:44:44 -07:00
Rajneesh Chowdury
8f7bf02506 5106773 Can't export a movie - Error returned from OMX API in ducati
Video Editor engine wrongly set the profile in place of level.
So level was always 1 (default value for Profile)

Change-Id: I202f866d32e81869d9692174d59d9d777a772282
2011-08-29 20:16:22 -07:00
Jamie Gennis
b283dc64bc MediaPlayer: unhide the setSurface method
Change-Id: I2fb695ab918d1099ad7cc51bfd436712a0b640d9
2011-08-29 14:33:10 -07:00