Commit Graph

50 Commits

Author SHA1 Message Date
Glenn Kasten
8b4b97a14a Bug 3352047 Wrong message when adjusting volume
Add hidden AudioManager.getDevicesForStream and output device codes.

Change-Id: I4d1c1d3b6a077cd117720817d1f733dda557b947
2011-02-10 14:37:42 -08:00
Eric Laurent
402f7f2963 Fix issues 3425035 and 3423785.
- Make sure that STREAM_MUSIC is affected by ringer mode on non voice capable
devices whatever the saved settings say.

- Added a hidden method to AudioManager for VolumePanel to override
the stream selection logic while the panel is showing.

Change-Id: Ib2ff2a7af63decb4e29c45700c41e5058f79d877
2011-02-04 12:39:14 -08:00
Eric Laurent
25101b0b9a Fix issue 3371080
Modified default volume control logic in AudioService:
1 IN_CALL volume if in video/audio chat
2 NOTIFICATION if notification is playing or was playing less than 5s ago.
3 MUSIC

Modified silent mode:
- now also affect MUSIC stream type
- entering silent mode when VOL- hard key is pressed once while selected
stream volume is already at 0 (except for VOICE_CALL stream).
- exiting silent mode when pressing VOL+ hard key while in silent mode

Play sound FX (audible selections, keyboard clicks) at a fixed volume.

Modified audio framework:
- isStreamActive() method now implemented in AudioPolicyManagerBase (previously AudioFlinger)
- iStreamActive() now specifies a time window during which the stream is considered
active after it actually stopped.

Change-Id: I7e5a0724099450b9fc90825224180ac97322785f
2011-02-03 09:26:24 -08:00
Jean-Michel Trivi
8aa798b244 Unhide android.media.AudioManager.MODE_IN_COMMUNICATION
Unhide new constant for an audio mode for a system state when
 the device has a VoIP (as opposed to telephony) call established.
Update the setMode and getMode javadoc to link to the mode constants
 that can be set or retrieved.

Change-Id: I90c4417679f215eb66e5305086fd077beddaa59c
2010-11-22 13:30:34 -08:00
Jean-Michel Trivi
8f677d66d9 Add new audio mode for audio communications other than telelphony.
The audio mode MODE_IN_CALL signals the system the device a phone
 call is currently underway. There was no way for audio video
 chat or VoIP applications to signal a call is underway, but not
 using the telephony resources. This change introduces a new mode
 to address this. Changes in other parts of the system (java
 and native) are required to take this new mode into account.
The generic AudioPolicyManager is updated to not use its phone
 state variable directly, but to use two new convenience methods,
 isInCall() and isStateInCall(int) instead.

Change-Id: Id744cd26520ea1d1a4795eabe6a1f0c58789af76
2010-11-16 10:23:37 -08:00
Joe Onorato
86f6786032 Move the volume, media, call, camera and search key handling from
PhoneWindow to a new PhoneFallbackEventHandler class that is used
for all windows, not just ones with decors.

Bug: 3155146
Change-Id: Ib070fa3e523e3564b225bca576c08012fef4f416
2010-11-05 18:58:29 -07:00
Xavier Ducrohet
c5c16f5f60 am 6914e17a: am 08eff49f: am d9712b69: am b1235a57: Merge "Hide two audio focus methods." into froyo 2010-05-12 09:25:25 -07:00
Jean-Michel Trivi
1e438357f0 am 4f9c9aa8: am fd5a747f: am 0c73adb1: am 3e90c76c: Merge "Update javadoc in android.media.AudioManager to not hide the registerAudioFocusListener() methods." into froyo 2010-05-12 09:24:12 -07:00
Jean-Michel Trivi
9f7c4112ac am 11e26c28: am 9f35d39a: am ea37d9b4: am aaa01b18: Merge " Fix bug 2670395 and 2599698 When the user selects a "Silent" notification sound, the Uri encoded path is an empty string. Setting this Uri as the data source of the MediaPlayer used to play not 2010-05-12 09:14:19 -07:00
Xavier Ducrohet
5f53f0883a Hide two audio focus methods.
Change-Id: I53ddf736892cde8edfaffa7d69dd9c234df52efa
2010-05-11 14:28:38 -07:00
Jean-Michel Trivi
46b3a1808a Update javadoc in android.media.AudioManager to not hide the
registerAudioFocusListener() methods.

Change-Id: I8df37bd89df6f492aeb70fa636200552140578f9
2010-05-11 11:22:54 -07:00
Jean-Michel Trivi
392a2bbb52 Fix bug 2670395 and 2599698
When the user selects a "Silent" notification sound, the Uri encoded
    path is an empty string. Setting this Uri as the data source of the
    MediaPlayer used to play notifications caused the completion listener
    to not be called, which with the AudioFocus logic causes the Music
    app to pause and never resume. The NotificationPlayer modifications
    cause the MediaPlayer for the notification to only request audio
    focus when the data source is not empty.
    The audio focus code in AudioService is defensively synchronized
    against a unique lock, and the exception observed in bug 2670395
    is explicitely caught in case another edge case wasn't caught by
    this fix.
    The AudioFocus handling in AudioManager is modified so only the
    requestAudioFocus and abandonAudioFocus methods are meant to be
    used, as registerAudioFocusListener and unregisterAudioFocusListener
    provided no additional functionality over the request/abandon
    methods. abandonAudioFocus() also removes the listener from the
    map in AudioManager since after abandonning focus, the listener
    would no longer be called.

Change-Id: I3b553ee8a8163c25e01117d7e5479dd5fdfa7c6b
2010-05-11 09:20:49 -07:00
Jean-Michel Trivi
5a3a3b16ba am 055897ac: am 28525488: am 9ab05fff: Merge "Fix bug 2565463 Ensure an object cannot appear twice in the AudioFocus stack. Enforce parameter check in AudioManager.requestAudioFocus() Typo correction in AudioService.unregisterMediaButtonEventReceiver()" into froyo 2010-04-02 09:28:50 -07:00
Jean-Michel Trivi
55d1bb3483 Fix bug 2565463 Ensure an object cannot appear twice in the
AudioFocus stack.
 Enforce parameter check in AudioManager.requestAudioFocus()
 Typo correction in AudioService.unregisterMediaButtonEventReceiver()

Change-Id: Iedd6081a2a096bd7effbaeb9f888a31691201b3b
2010-04-01 17:40:58 -07:00
Glenn Kasten
7f9b1fa671 Add isSilentMode initially hidden before API council approval, test case to be added separately.
Change-Id: Id9384a2caf45b8775705cde6c990c3c65c7c6312
2010-03-31 15:54:12 -07:00
Jean-Michel Trivi
7f7e67f1b6 Fix bug 2553575 API REVIEW: android.media Change 1 of 3
Notes from API Council review:
  Rename onAudioFocusChanged -> onAudioFocusChange

Change-Id: I8296cc84381506dabe8a9ceb1b5e3c0ab6d4af25
2010-03-31 12:08:26 -07:00
Jean-Michel Trivi
bbbb1dc3c3 Unhide the MediaButton receiver API in android.media.AudioManager
Change-Id: Ic9222b0bf6e2ff481c6aa5f16ac0259fa7a52355
2010-03-22 13:49:30 -07:00
Jean-Michel Trivi
983ac2b8cf Unhide new constants used in AudioFocus API to denote a situation
where a new focus owner signals it  allows other audio apps to keep
playing by ducking their audio streams.

Change-Id: I1109f44546f3cbcff8ad33ee21cfff50f4f12177
2010-03-19 16:10:42 -07:00
Jean-Michel Trivi
4b55d496dd Fix SDK build Remove links to hidden constant in javadoc.
Change-Id: I21495f0ef64b3dc154ce0e0ca2d44686afd752e9
2010-03-18 21:37:29 -07:00
Eric Laurent
95b88fbe74 Attempt to fix the SDK build.
Change-Id: I024df1b513da117057a21c27e6c0cd134cdd8023
2010-03-18 20:39:38 -07:00
Jean-Michel Trivi
078fd47e91 Support focus requests where ducking of the loser of audio focus
is acceptable for the new audio focus owner.

Change-Id: I965483f12eeb717115a8f6992d8f1ab7fafa4e45
2010-03-18 18:28:27 -07:00
Eric Laurent
c04cfa3596 Unhide AudioManager API to control bluetooth SCO audio connection.
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
2010-03-18 18:18:48 -07:00
Eric Laurent
3def1eec2b Issue 2416481: Support Voice Dialer over BT SCO.
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
2010-03-18 00:26:46 -07:00
Jean-Michel Trivi
308e9a5d09 Fix bug where the ID stored for an OnAudioFocusChangeListener is an
empty string when audio focus is requested or abandonned with a
null listener.

Change-Id: I7709b75c6092aefc002806343298bc679d42d6c6
2010-03-17 15:04:20 -07:00
Jean-Michel Trivi
d327f21626 Implementation of the policing of transport control key press
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
2010-03-17 11:24:15 -07:00
Jean-Michel Trivi
eabb6df2fa Unhide API additions to AudioManager for AudioFocus support.
Change-Id: Ifc7d764703632eb91db11587675ae70ec14510e8
2010-03-09 09:15:19 -08:00
Jean-Michel Trivi
d5176cfe6e First implementation of the audio focus management as an extension
of AudioManager and AudioService.
2010-03-02 08:39:26 -08:00
Eric Laurent
9ce379aef1 Fix issue 2440226: Car dock volume synchronization.
AudioService now sends intent AudioManager.VOLUME_CHANGED_ACTION  when the volume is changed
on any stream type (previously the intent was sent only for STREAM_BLUETOOTH_SCO stream).
A new extra for previous volume value is added to the intent.
2010-02-16 06:40:20 -08:00
Eric Laurent
6015a97154 Fix issue 2418668: AudioManager isWiredHeadsetOn() always returns false for headset without mic. 2010-02-12 07:41:14 -08:00
Eric Laurent
23f25cda0c Fix issue 2378022: AudioService should direct volume control to STREAM_VOICE_CALL stream when STREAM_VOICE_CALL stream is active.
Modified AudioService.getActiveStreamType() so that STREAM_VOICE_CALL is selected when a track using this stream
type is playing.

Chanded isMusicActive() for a more generic isStreamActive(stream) method in AudioSystem, IAudioFlinger and AudioFlinger.
2010-01-25 14:00:10 -08:00
Eric Laurent
9272b4b4a4 Fix issue 2349345: Media sound output stuck on earpiece rather than speaker.
This change fixes a problem occuring when an application (for instance a VoIP application)
changes the audio mode to MODE_IN_CALL and crashes. In this case, the audio routing policy
remains as if we were in call until the audio mode is changed back to MODE_NORMAL, for instance when a new call
made or received and terminated.

The fix consists in registering a death receipient to the binder that made the setMode() request and resetting the audio
mode in case of client process crash.
2010-01-25 09:01:48 -08:00
Eric Laurent
a2ef57dba9 Fix issue 2141503: Keyclick sound doesn't honor volume settings.
Use music stream volume minus 3 dB for sound effects if volume is not explicitly requested by application.
2009-09-29 15:00:40 -07:00
Jean-Michel Trivi
fccb25d207 Fix bug 2115258 where the AudioManager javadoc doesn't warn against
misuse of some of the methods that should only be used to implement
the Settings and Phone apps, and the audio service.
2009-09-15 16:13:59 -07:00
Eric Laurent
9d85d5adf9 Fix issue 2097083: STREAM_SYSTEM should be at max volume.
Changed default volume for STREAM_SYSTEM and STREAM_SYSTEM_ENFORCED to the maximum value.
2009-09-03 01:28:26 -07:00
Dianne Hackborn
4a51c20ce6 I am getting tired of the java doc warnings, so fix them.
Change-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1
2009-08-24 17:37:32 -07:00
Jared Suttles
5982013cfc Change the number of volume steps from 6 to 7 per Verizon Requirements
Submitted on behalf of Helen Tran <Helen.Tran@motorola.com>
Signed-off-by: Jared Suttles <jared.suttles@motorola.com>
2009-08-13 21:27:55 -07:00
Eric Laurent
c42ac9d4d0 Fix issue 2019031: Volume changes have no effect.
Send initStreamVolume() for each stream when media server restarts.
Also added restoring of phone state, device connection state and forced device for communications.
2009-07-29 08:53:03 -07:00
Eric Laurent
a553c25b33 Fix issue 1795088 Improve audio routing code
Initial commit for review.
Integrated comments after patch set 1 review.
Fixed lockup in AudioFlinger::ThreadBase::exit()
Fixed lockup when playing tone with AudioPlocyService startTone()
2009-07-23 06:03:39 -07:00
Eric Laurent
4050c93601 Fix issue 1967295: Add a method to request reloading of audio settings by AudioService. 2009-07-08 06:59:50 -07:00
Marco Nelissen
d282ac8610 Findbugs fixes. 2009-05-14 13:18:16 -07:00
Eric Laurent
b9c9d260f2 fix issue 1713090: After a Bluetooth call, MusicPlayer starts playing on speaker rather than wired external audio.
Temporary fix until audio routing is refactored in Eclair release:
- centralized and synchronized all audio routing control in AudioService.setRouting()
- deprecated AudioManager.setRouting() and AudioManager.getRouting() methods
2009-05-06 10:52:19 -07:00
The Android Open Source Project
105925376f auto import from //branches/cupcake_rel/...@140373 2009-03-18 17:39:46 -07:00
The Android Open Source Project
9066cfe988 auto import from //depot/cupcake/@135843 2009-03-03 19:31:44 -08:00
The Android Open Source Project
d83a98f4ce auto import from //depot/cupcake/@135843 2009-03-03 18:28:45 -08:00
The Android Open Source Project
3001a03543 auto import from //branches/cupcake/...@132276 2009-02-19 10:57:31 -08:00
The Android Open Source Project
da996f390e auto import from //branches/cupcake/...@131421 2009-02-13 12:57:50 -08:00
The Android Open Source Project
d24b8183b9 auto import from //branches/cupcake/...@130745 2009-02-10 15:44:00 -08:00
The Android Open Source Project
b798689749 auto import from //branches/cupcake/...@125939 2009-01-09 17:51:23 -08:00
The Android Open Source Project
f013e1afd1 Code drop from //branches/cupcake/...@124589 2008-12-17 18:05:43 -08:00
The Android Open Source Project
54b6cfa9a9 Initial Contribution 2008-10-21 07:00:00 -07:00