| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Phone calls and rings are treated as a new client, with a dedicated
client ID that identifies it in the audio focus stack. When it is
present in the stack, others clients cannot request audio focus
(request is denied).
Because the phone state is now mostly handled like a new client,
there is no need monitor mode changes and to keep track of
undispatched focus changes, as those will delayed focus gains
will now automatically happen at the end of the call when the
phone client is removed from the focus stack.
Change-Id: I11ff73b015ab93f07040755fd8ee75c8d675e025
|
|\ \
| | |
| | |
| | | |
the is_music, is_ringtone, etc columns. This ensures that custom ringtones will still be shown in the ringtone picker after a rescan. Bug 2594125 Change-Id: I56761240d6f6e699514169d80a445317ba0de9e2" into froyo
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
the is_music, is_ringtone, etc columns. This ensures that custom
ringtones will still be shown in the ringtone picker after a rescan.
Bug 2594125
Change-Id: I56761240d6f6e699514169d80a445317ba0de9e2
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The problem occurs if the device is powered down in silent mode. When the device restarts,
AudioService reads current ringer mode from saved settings but does not call setRingerModeInt()
to perform actions required when ringer mode changes.
The volumes of streams affected by ringer mode are actually at 0 because they are also read from settings
but their mute state is not applied correclty. When we later exit from silent mode, the streams
other than STREAM_RING that are affected by ringer mode are not restored as they are not considered
muted. This applies to STREAM_SYSTEM but also to STREAM_NOTIFICATION if its volume is controlled independently
from STREAM_RING.
The fix consists in calling setRingerModeInt() when AudioService starts.
Change-Id: Ica75b9874938dda1bc1b634c3e97db4a650d295c
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
undocking.
There was a regression introduced by change 4c637b9e34f4c8db69a64ad21a4e2bcfa7485b5f
fixing issue 2578813. As the A2DP device disconnection is notified to the audio policy manager
after a delay, there is a period during which the A2DP device is actually not connected but the
A2DP output is considered present by audio framework. If a playback is started during this period,
The A2DP output requests the activation of the A2DP sink which in turn triggers a reconnection
of the A2DP sink.
The fix consists in suspending the A2DP output immediately when receiving the A2DP disconnection
intent so that any activity on A2DP output is ignored until the output is actually closed by the
audio policy manager.
Change-Id: I16eaace45e12bfc970f50836b46a73b756b493f0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
silent mode.
This is a regression introduced by change 5b4e654d0c7de8e4d58d73e73b0d5220f19b68f7 for issue 2472495.
When AudioService changes audio mode, setMode() reapplies current volume for the default active stream
which in this case is STREAM_RING.
Because the new implementation of silent mode actually mutes the ringer stream,
setStreamVolumeInt() now applies the volume change received while in silent mode
to the last audible value and we end up clearing the last audible volume for ringer.
The fix consists in not modifying last audible value when the new value is 0.
Also removed obsolete code in setStreamVolumeInt() since new implementation of setRingerModeInt()
in change 5b4e654d0c7de8e4d58d73e73b0d5220f19b68f7.
Change-Id: I746f3bc1af39a602ce12d130ce592007b2d0ebb6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The problem happens only if volume down key is pressed while
already in silent or vibrate mode. In this case, AudioService accepts
changing the last audible index for ringer volume from 1 to 0.
When volume up is pressed, current ringer volume value is restored from 0
instead of 1.
The fix consists in keeping last audible index at 1 once in silent of vibrate
mode even is volume down key is pressed.
Change-Id: Id08edd12ce985c22233124545eba2c3e4b8cdc8e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Moved broadcast of ACTION_AUDIO_BECOMING_NOISY from BluetoothA2dpService
to AudioService.
Broadcast ACTION_AUDIO_BECOMING_NOISY when disconnecting an A2DP
device.
Disconnect from A2DP docks with a delay to handle transient
disconnections.
Cancel delayed A2DP disconnections when connecting to a dock as this
can be a reconnection after a transient disconnection.
Change-Id: I1ee9e99f3ffa20727af38a4c4c8711942894a696
|
| |
| |
| |
| |
| | |
Bug: 2579295
Change-Id: Ia4207492c5dfa2c39d27372c4892b60121b6d9e8
|
| |
| |
| |
| |
| |
| |
| |
| | |
Unlike the other audio focus and media button stack handling
methods, abandonAudioFocus() and unregisterAudioFocusClient() were
not synchronized around their focus stack. This CL corrects this.
Change-Id: I5ada574e4e163fa95da9dad2fefe610b48303320
|
| |
| |
| |
| |
| |
| |
| |
| | |
MediaScannerConneciton.ScanResultListener to .OnScanCompletedListener
http://2553871
Change-Id: I293b8138a2c23ea107b634da014902f838966c0e
|
| |
| |
| |
| | |
Change-Id: I9a4798fefe3968ac847d46100036a6dde39791c9
|
| |
| |
| |
| |
| |
| |
| |
| | |
AudioFocus stack.
Enforce parameter check in AudioManager.requestAudioFocus()
Typo correction in AudioService.unregisterMediaButtonEventReceiver()
Change-Id: Iedd6081a2a096bd7effbaeb9f888a31691201b3b
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1. CamcorderProfile: “@see” links are broken; Remove m prefix from fields; remove “final”
2. CamcorderProfile.Quality: use an int rather than an enum
3. Add API on MediaRecorder to pass in a CamcorderProfile
4. CameraProfile.getImageEncodingQualityLevels @hide or make it consistent with CamcorderProfile
5. Remove a convenient method and instead let the (mms) app do that task
bug - 2553862
Change-Id: I759215c7892f772aeddf3651d17038489c6fbc50
|
| |
| |
| |
| |
| |
| |
| | |
Notes from API Council review:
Rename onAudioFocusChanged -> onAudioFocusChange
Change-Id: I8296cc84381506dabe8a9ceb1b5e3c0ab6d4af25
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Driveabout is taking.
The problem is that AudioService.adjustStreamVolume() only handles the ringer mode change when the
STREAM_RING volume changes from 1 to 0 or 0 to 1. If another stream is soloed, the STREAM_RING stream
volume is forced to 0 and then never transits from 0 to 0 when volume down key is pressed.
The fix consists in considering the saved value instead of current value when ajusting or setting
the volume of a muted stream: only the saved value is adjusted too, leaving the stream muted but updating
the value that will be restored when it will be unmuted.
Also changed implementation of stream volume control by setRingerModeInt() to use stream mute feature
instead of direct volume control.
Change-Id: Id85d76450b36d61a0fe8195eb4bffe63ffbd427c
|
| |
| |
| |
| | |
Change-Id: Ic9222b0bf6e2ff481c6aa5f16ac0259fa7a52355
|
| |
| |
| |
| |
| |
| |
| |
| | |
emulator yet.
bug - 2532726
Change-Id: If6dbf0d89c4681a647419e1911213a4c22dc3dab
|
|\ \
| | |
| | |
| | | |
during a call, the next focus owner in the stack was never notified - if a focus owner requests the focus while alread owning it, and the type of focus request changes, the previous focus owner was not notified that the type of focus loss had changed."
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- if a focus owner abandons audio focus during a call, the next
focus owner in the stack was never notified
- if a focus owner requests the focus while alread owning it, and
the type of focus request changes, the previous focus owner was
not notified that the type of focus loss had changed.
Change-Id: Iee6c6e17bcdd3c225a4b600f40ba434294870f17
|
|/ /
| |
| |
| |
| |
| |
| | |
where a new focus owner signals it allows other audio apps to keep
playing by ducking their audio streams.
Change-Id: I1109f44546f3cbcff8ad33ee21cfff50f4f12177
|
|\ \
| | |
| | |
| | | |
of a copy of the artist, since the media provider needs to know whether the album artist was actually set."
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
of the artist, since the media provider needs to know whether the album artist
was actually set.
Change-Id: I29b885c8293609299a55babadf9ca2a30e20e5bd
|
| | |
| | |
| | |
| | | |
Change-Id: I21495f0ef64b3dc154ce0e0ca2d44686afd752e9
|
| | |
| | |
| | |
| | | |
Change-Id: I024df1b513da117057a21c27e6c0cd134cdd8023
|
| | |
| | |
| | |
| | |
| | |
| | | |
is acceptable for the new audio focus owner.
Change-Id: I965483f12eeb717115a8f6992d8f1ab7fafa4e45
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Needed for issue 2416481 in order to allow unbundled applications to play and record
audio to/from a bluetooth SCO headset while not in call.
Change-Id: Ie1f96ded991e65da538c2c4a58bfa1e548d58a01
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | | |
Change-Id: Ic34e2d54557409866dc35c29ee397afdfe874762
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Added public methods to AudioManager API so that unbundled applications can use bluetooth
SCO audio when the phone is not incall.
Without this change, the only way to activate and use bluetooth SCO is via the BluetoothHeadset API
which is not public yet.
Change-Id: Ia1680f219ea1d0943092d475d5be7d6638983ebb
|
| |
| |
| |
| |
| |
| |
| | |
empty string when audio focus is requested or abandonned with a
null listener.
Change-Id: I7709b75c6092aefc002806343298bc679d42d6c6
|
|\ \
| | |
| | |
| | | |
among multiple applications competing for the remote control focus. AudioManager defines a new API for applications to use in order to register their BroadcastReceiver for the media button as the one to receive the corresponding intent, but all applications at the same time (in an ordered broadcast). AudioService handles a stack of remote control focus owners. It traps ACTION_MEDIA_BUTTON intents and sends a new intent to the remote control focus owner."
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
events among multiple applications competing for the remote control
focus.
AudioManager defines a new API for applications to use in order to
register their BroadcastReceiver for the media button as the one
to receive the corresponding intent, but all applications at the
same time (in an ordered broadcast).
AudioService handles a stack of remote control focus owners. It
traps ACTION_MEDIA_BUTTON intents and sends a new intent to the
remote control focus owner.
Change-Id: I3c109221ecfb160cbb1ec0e40a71b241aad73812
|
| | |
| | |
| | |
| | | |
Change-Id: Ia2cd00fb0fbdb32e9fb89b4d33ad3c1410eb40d3
|
|/ /
| |
| |
| | |
Change-Id: I7575ae3195dc510e7020368794a66bb064839104
|
| |
| |
| |
| |
| |
| | |
calculate it if needed.
Change-Id: I05cb8628f2333c26de5c05ee1c7676b8f79a5e9a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Part 1 of the fix: when the user doesn't elect to use the car dock
for music and media, the APM was not aware of the device being
docked.
This is fixed by dissociating the notification for the APM of
the docking to the dock from the sink state change of the A2DP
device.
Also missing was forcing the volumes to be reevaluated whenever
the device is docked or undocked, as volumes for docks may
differ, even when the same output device is being used.
Change-Id: If5314e27821a71adbd6df6fdf887c45208241d96
|
| |
| |
| |
| | |
Change-Id: Ifc7d764703632eb91db11587675ae70ec14510e8
|
| |
| |
| |
| | |
bug - 2375978
|
| | |
|
| |
| |
| |
| |
| |
| | |
- update comments and fix a check in setAudioChannels()
bug - 2362412
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
is turned off".
The problem is that even if silent mode is active, changing the alarm volume will change current
alarm stream volume. This is true for other stream types affected by ringer mode (ring, notification...) but
the UI design is such that it is not possible to change these volumes while in silent mode.
The fix consists in modifying AudioService.setStreamVolumeInt() so that when a stream is affected by ringer mode
and we are in silent mode, only the saved volume value is modified, current value remaining to unchanged (0).
|
| |
| |
| |
| | |
of AudioManager and AudioService.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In earlier versions of Android, "vibrate mode" (in which
only alarms and media produce sound, but notifications may
operate the vibe motor) was only accessible by adjusting the
ringer volume (via the device's volume rocker) down until
the "vibrate" icon appeared (between the lowest ring volume
and silent mode).
Many users prefer that "silent mode" always allow vibration.
Others prefer Android's historical behavior, in which silent
mode stops the vibes as well.
To accommodate these two distinct usage patterns, we now
allow the user to decide whether vibration is allowed in
"silent mode", a user interface abstraction that now spans
both AudioManager.RINGER_MODE_VIBRATE and
AudioManager.RINGER_MODE_SILENT.
To minimize API impact (and therefore maximize backward
compatibility), RINGER_MODE_VIBRATE and RINGER_MODE_SILENT
remain unchanged. What has changed is what happens when the
user activates silent mode, either via Settings,
GlobalActions (longpress on power), volume rocker, or the
keyguard tab. In essence, there is now only one "silent"
position in these controls, and whether RINGER_MODE_VIBRATE
or RINGER_MODE_SILENT is actually set on the AudioService is
determined by a new one-off setting
(System.VIBRATE_IN_SILENT). This new setting isn't meant to
be a long-term API, however: in the future we hope to
replace and extend this design with a much more
sophisticated set of systemwide feedback profiles. ETA TBD.
Related changes:
* I09ad7d69 (GlobalActions and keyguard)
* I22ba7bcf (Settings app)
Bug: 2457183
Change-Id: I14cf91b0910261ffdfd1bf302423f41ec747d057
|
|\ \
| | |
| | |
| | | |
few. Two reasons for this: - it's used in the system process - it's run in a separate thread, so the user of AsyncPlayer cannot catch these exceptions"
|
| | |
| | |
| | |
| | |
| | |
| | | |
Two reasons for this:
- it's used in the system process
- it's run in a separate thread, so the user of AsyncPlayer cannot catch these exceptions
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
- I decided to completely remove jpeg decoding related stuff from this change
I think that setting is better off if it is specified by the system properties.
We don't have to include MediaProfiles.h header in skia files
|
|\ \ \
| |/ /
|/| |
| | | |
API calls."
|
| | | |
|