In change Ic5b3fb75309893caae1a4f4b56068a543847f1f7, we added partial
support for the MTP properties:
MTP_PROPERTY_AUDIO_WAVE_CODE,
MTP_PROPERTY_BITRATE_TYPE
MTP_PROPERTY_AUDIO_BITRATE
MTP_PROPERTY_NUMBER_OF_CHANNELS
MTP_PROPERTY_SAMPLE_RATE
However we were not returning any values for these properties in the result
of the MTP GetObjectPropList command. Strangely, this triggers a nasty bug
in Windows 7 that results in data loss. When copying a directory containing
several MP3 files from one location on the device to another, Windows will
copy only some of the files to the new location, but delete all of the originals.
Finishing the implementation of these new object properties for some unknown
reason stops this bad behavior in Windows 7.
Bug: 19018427
Change-Id: I5fd3b91a89b31827d3100686445cef6795fe0f3f
As an audio playback API, AsyncPlayer needs to support specifying
AudioAttributes.
Deprecate play() method with stream type.
Change-Id: Ia9561883e7b398666a3d5d6da4e00324eda6b0e9
Broadcasts that might be sent before the boot process has completed must
be restricted to registered receivers, at least while still in the
middle of booting.
Bug 19060618
Change-Id: Ib4e0990cf252f34344f7a0bd19a0e72919013e0f
Make AudioPortEventHandler and audio port and patch caches
static members of AudioManager. There is only one callback
per process in AudioSystem for audio port updates
and having those non static would not work when more than
one AudioManager instance exists in one app.
Bug: 18727023.
Change-Id: I4c1041dc6441d168be4efa066e14289cc5f41872
Update the list of audio devices that cause the
ACTION_AUDIO_BECOMING_NOISY intent to be broadcast according
to the FOR_MEDIA forced configuration.
Synchronize access to list of "noisy" audio devices on the
connected devices, as it can be updated from different
threads.
Bug 18313377
Change-Id: Iffd95861d0796691350b0e19b596dd1db0567836
Handle stream mute/unmute requests at the stream
alias level (like is done volume changes) to be consistent.
E.g a request to mute/unmute a stream will affect all streams
sharing the same alias for volume management.
Bug: 18844550.
Change-Id: Ie2e463c58df0371589150f0ebb9b36c38b14e1be
Dead lock sequence:
1. called onSetA2dpConnectionState()
1-1. synchronized(mConnectedDevices)
2. called onServiceDisconnected()
2-1. synchronized(mA2DPAvrcpLock)
3. waiting to lock(mConnectedDevices) in onServiceDisconnected()
4. waiting to lock(mA2DPAvrcpLock) in onSetA2dpConnectionState()
========================================================================================
- watchdog issue
----- pid 3306 at 2014-10-14 16:15:12 -----
Cmd line: system_server
"main" prio=5 tid=1 MONITOR
- waiting to lock <0x4343e9b0> (a java.util.HashMap) held by tid=46 (AudioService)
at android.bluetooth.BluetoothA2dp$2.onServiceDisconnected(BluetoothA2dp.java:529)
"AudioService" prio=5 tid=46 MONITOR
- waiting to lock <0x42ab7a58> (a java.lang.Object) held by tid=1 (main)
========================================================================================
Signed-off-by: Seunghwan Hong <seunghwan.hong@lge.com>
Change-Id: I99e061c07be01aabcd26786ef2ebb71f46717b93
Attach/Detach logic
Decoupling card# and list index
Modern loop constructs
Consistent logging flags
Add class/type flags to device "address" string.
Factored UsbAudioDevice out of UsbAudioManager.
Bug: 18399845
Bug: 18717784
Change-Id: I6f185e1c24091d4c0d21eb7e922a1496748d32c3
static void CallStaticVoidMethod is variable argument function.
if pass 0 to the function like: CallStaticVoidMethod(......, 0),
0 will be treated as INT data type.but in the CallStaticVoidMethod
implement 0 will be treated as pointer data type.Pointer in 64bit
system occupied 8 bytes, but in 64bit system int occupied 4 bytes.
if call function like: CallStaticVoidMethod(......, 0),
only low 4 bytes will be assigned 0.Turned out it actually call
function like this: CallStaticVoidMethod(......, 0xXXXXXXXX00000000).
intent to pass NULL to function but passed non-NULL parameter to
the function.this will cause GCDaemon crash.
Bug: 18911458
Change-Id: I9d700d3790a80dbee6826f64baf9ef5d81ca390f
Reviewed-by: Liao, Bruce <bruce.liao@intel.com>
Signed-off-by: Yong Yao <yong.yao@intel.com>
Only one callback can be set on a given media id on MediaBrowser. When you
try to subscribe with a new callback it replaces the old callback, but it
wasn't resending the child data for the id. This causes calling subscribe
again also cause the data to be reloaded and sent to the app again.
bug:18683452
Change-Id: I2d30dbbbfe07cb9a720fb6d65664c1c4c58cb637
CallStaticVoidMethod is varargs function, and calling it with
a literal 0 like CallStaticVoidMethod(..., 0) will treat the
argument as a 4 byte int in both 32 and 64 bit processes.
This is incorrect for pointer arguments where NULL should be
used instead.
Reviewed-by: Liao, Bruce <bruce.liao@intel.com>
Signed-off-by: Yong Yao <yong.yao@intel.com>
Change-Id: I9d700d3790a80dbee6826f64baf9ef5d81ca390f