MTP file transfers happen in two stages. The SendObjectInfo command sends
some information about the file and reserves an ObjectHandle for the new file.
The file transfer is then performed using the SendObject command.
To support this in the media provider, MtpDatabase.beginSendObject receives
the information from SendObjectInfo and creates an row for it in the MTP objects
table for the new file. After the file transfer has completed, then
MtpDatabase.endSendObject is called. In endSendObject, we run the media scanner
on the new file, which will add a row to the images, audio, video
or audio playlist table.
To avoid the media scanner creating a second row for the file in the MTP objects
table, we pass the ObjectHandle created in beginSendObject to the media scanner,
which then passes it to the media provider via the content values when it
performs its insert.
Change-Id: I1ebcc63d6bd4404b0d3a93c703a9d3c097381d3a
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit 'fd84f97af4b44d54bba53bb85b31a6dbce07f6e2' into gingerbread-plus-aosp
* commit 'fd84f97af4b44d54bba53bb85b31a6dbce07f6e2':
Added JAVA classes to control bass boost, equalizer, reverberation and virtualizer Effects.
Defined the following JAVA classes on top of AudioEffect class to facilitate control
off built-in audio effects with APIs aligned with interfaces defined in OpenSL ES
specification:
- BastBoot.java
- Equalizer.java
- PresetReverb.java
- EnvironmentalReverb.java
- Virtualizer.java
Split reverb API header file in two, one for preset reverb and one for environmental reverb.
Some changes in test reverb to support preset reverb.
Change-Id: Ie0a5ba06002e63dfd6da22cace5568c1e0b76ea1
Uses a new "MTP objects" table in the media provider to support basic
enumeration of the external storage file system.
Support for accessing audio, video and image metadata in the existing
media provider tables will be added in a later commit.
The C++ MtpDatabase class is now abstract, to support a proxy subclass that
calls through JNI to the Java MtpDatabase class in the media provider.
Change-Id: I90f0db5f3acc5d35ae78c27a8507edff16d14305
Signed-off-by: Mike Lockwood <lockwood@android.com>
The visualizer enables application to retrieve part of the currently playing audio for visualization purpose.
It is not an audio recording interface and only returns partial and low quality audio content as a waveform or
a frequency representation (FFT).
Removed temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method.
This commit also includes a change in AudioEffect class:
- the enable()/disable() methods have been replaced bya more standard setEnabled() method.
- some fixes in javadoc
Change-Id: Id092a1340e9e38dae68646ade7be054e3a36980e
Problem:
When the bluetooth device is removed, the AudioService clears all active SCO connections
and unlinks from the client application's binder interface death.
The problem is that the unlinking is done even if no more connections are active for a given client,
which throws a runtime exception that is not catched causing the system server to crash.
The fix consists in calling unlinkToDeath() in ScoClient.clearCount() only if the number of
active SCO connections for this client is not 0. The NoSuchElementException exception is also
catched when calling unlinkToDeath()
Change-Id: I7086424301fc63a5666da61c38169349d3e078f4
Merge commit 'eba857d126e2b76a368f41d3169a56fe28029674'
* commit 'eba857d126e2b76a368f41d3169a56fe28029674':
Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call.
Merge commit 'a0c2b53966238125143dec01d3f2598a8b9e33a2' into gingerbread-plus-aosp
* commit 'a0c2b53966238125143dec01d3f2598a8b9e33a2':
Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call.
Merge commit 'bda93c4cb94b47c86251d22df16e46a514c191ef'
* commit 'bda93c4cb94b47c86251d22df16e46a514c191ef':
Add multiple camera support for in MediaProfiles.
Now a single thread is used for passing USB host events up to MtpClient.
Change-Id: I0e3a277956cb3d1036da122ea10acb03a27844d6
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '09b9005769f2b717f637131578ce6cfa6bd62bd9' into gingerbread-plus-aosp
* commit '09b9005769f2b717f637131578ce6cfa6bd62bd9':
Add multiple camera support for in MediaProfiles.
Problem:
When the bluetooth device is removed, the AudioService clears all active SCO connections
and unlinks from the client application's binder interface death.
The problem is that the unlinking is done even if no more connections are active for a given client,
which throws a runtime exception that is not catched causing the system server to crash.
The fix consists in calling unlinkToDeath() in ScoClient.clearCount() only if the number of
active SCO connections for this client is not 0. The NoSuchElementException exception is also
catched when calling unlinkToDeath()
Change-Id: I29a28fcce1a579217cea271956a55778e05d3e37
Merge commit 'f29fbc58ec6a85115322100ed86c61679ac09c1c'
* commit 'f29fbc58ec6a85115322100ed86c61679ac09c1c':
Change in media scanner to set correct date
Merge commit '845f541454d1fa9f328c0b0bf79acf2fba363177'
* commit '845f541454d1fa9f328c0b0bf79acf2fba363177':
Added support for audio sessions in MediaPlayer and AudioTrack.
Merge commit '7d329785f3f3111d99d58f75ac4e44cf1a65915f'
* commit '7d329785f3f3111d99d58f75ac4e44cf1a65915f':
Fix issue 2301630: Mismatch of state occurs when media server is killed while in-call.
Audio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.
Change-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640
Use setParameters() API to indicate to audio HAL that we are restarting the media server after a crash.
The use made by audio HAL implementation of this indication is platform specific.
Change-Id: I085b174fa1474575da0e4d295921079b6b68efb8
Added AudioEffect C++ class. AudioEffect is the base class for effect specific implementations,
OpenSL ES effect interfaces and audio effect JNI.
Added the AudioEffect JNI and AudioEffect JAVA class. AudioEffect is the base class
to implement more specific JAVA classes to control audio effects from JAVA applications.
Change-Id: If300a1b708f2e6605891261e67bfb4f8330a4624
When the media scanner scanned a single file, the modified
date (DATE_MODIFIED) was not correctly set in the content
provider. It was set as milliseconds but should have been
set as seconds. This caused downloaded media items to display
wrongly in the camera album, since the date was wrong.
Change-Id: I24cd92215c26f579eb33a4a3890f96c6ef9ec8c0
Merge commit 'c40209ac60a64a7c08b0d0028060d5308fd7a0b8' into kraken
* commit 'c40209ac60a64a7c08b0d0028060d5308fd7a0b8':
Fix a Javadoc to clarify when setAudioStreamType() should be called.
Merge commit '28a92b2e76a13c18dc23e5239717b122a174182f' into froyo-plus-aosp
* commit '28a92b2e76a13c18dc23e5239717b122a174182f':
Fix a Javadoc to clarify when setAudioStreamType() should be called.
At this point much of the plumbing is in place, but only a few simple queries
are supported.
This is enough to support a proof of concept sample program that navigates
the file hierarchy of a digital camera connected via USB.
Also removed obsolete ptptest host test program.
Change-Id: I17644344b9f0ce1ecc302bc0478c1f3d44a1647f
Signed-off-by: Mike Lockwood <lockwood@android.com>