summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Use a status_t return type for GL functors"Romain Guy2012-03-261-0/+17
|\
| * Use a status_t return type for GL functorsRomain Guy2012-03-261-0/+17
| | | | | | | | | | | | | | | | | | WebView needs more fine-grained control over the behavior of the framework upon execution of the display lists. The new status_t allows WebView to requests its functor to be re-executed directly without causing a redraw of the entire hierarchy. Change-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc
* | stagefright: compile without chromium for pdk buildsColin Cross2012-03-262-5/+10
| | | | | | | | Change-Id: I7d85e04fb9f0caa8460a111ca6181bba6f6497ac
* | Merge "Provisional support for secure decryption of media streams."Andreas Huber2012-03-2627-38/+900
|\ \
| * | Provisional support for secure decryption of media streams.Andreas Huber2012-03-2627-38/+900
| | | | | | | | | | | | Change-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe
* | | Merge "Removed code related to simulator build in TimedEventQueue to get rid ↵James Dong2012-03-261-21/+0
|\ \ \ | | | | | | | | | | | | of the dependency on jni.h"
| * | | Removed code related to simulator build in TimedEventQueue to get rid of the ↵James Dong2012-03-261-21/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | dependency on jni.h o related-to-bug: 6214141 Change-Id: I548d84a9888be884d3903dc9dea9235258792165
* | | Merge "fix visualizer inactivity detection"Eric Laurent2012-03-261-9/+24
|\ \ \
| * | | fix visualizer inactivity detectionEric Laurent2012-03-261-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current method implemented by the visualizer to detect that audioflinger has stopped providing audio buffers does not work if the application reads pcm captures too fast. The fix consist in implementing a method based on real time measurement only. One drawback is that the new method makes use of system calls that add some overhead to the process and capture functions. Change-Id: I53bd596b856f1cc7f0f47e08413af3335227100b
* | | | Merge "reorganize SoundPool and JetPlayer code."Eric Laurent2012-03-267-5/+1332
|\ \ \ \
| * | | | reorganize SoundPool and JetPlayer code.Eric Laurent2012-03-267-5/+1332
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reorganize SoundPool and JetPlayer code to be ready for the creation of libmedia_native. Split SoundPool between libsoundpool (JNI) and libmedia(sound pool implementation). Remove dependencies on nativehelper/jni.h from JetPlayer. Change-Id: I130c6014173b714329929dd82c5dfb70b757a610
* | | | Merge changes Ib4d0e0c0,Iea8f4a23Colin Cross2012-03-265-16/+104
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | * changes: libmedia: remove skia include stagefright: remove dependency on skia
| * | | libmedia: remove skia includeColin Cross2012-03-241-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | skia is not used in this file, remove the unnecessary include. Change-Id: Ib4d0e0c0090c6b37ff8cfb816c0d8ba82a9638a4
| * | | stagefright: remove dependency on skiaColin Cross2012-03-244-15/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | skia is only used to write a jpeg file, link directly to libjpeg instead. Change-Id: Iea8f4a2347c38328776541d2b74bcbdea3f62041
* | | | Add TRACK_FAST for IAudioFlinger::createTrackGlenn Kasten2012-03-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Currently not implemented by client or server Change-Id: Ib11dda57db3eeb871bcc7b546e340078776875f5
* | | | Merge "IAudioFlinger::createTrack and openRecord flags"Glenn Kasten2012-03-267-27/+28
|\ \ \ \ | |/ / / |/| | |
| * | | IAudioFlinger::createTrack and openRecord flagsGlenn Kasten2012-03-197-27/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | createTrack and openRecord don't need the "old" flags parameter, which was either audio_policy_output_t or audio_in_acoustics_t shifted left by 16 bits. But they do need "new" flags, which are defined by the application use case. Initially, the only application use case flag is timed output, but others are planned. For output, the audio_policy_output_t flags are passed to AudioSystem::getOutput, which returns an audio_io_handle_t, and that handle is then passed to createTrack. So createTrack doesn't need the old flags parameter. For input, the audio_in_acoustics_t flags are passed to AudioSystem::getInput, which returns an audio_io_handle_t, and that handle is then passed to openRecord. So openRecord doesn't need the old flags parameter. Change-Id: I18a9870911846cca69d420c19fe6a9face2fe8c4
* | | | remove jni.h include from IOMX.hColin Cross2012-03-241-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | jni.h is not used in IOMX.h and is not available in pdk builds, remove it. Change-Id: I9bc8fd70f617942712d9f684c6fc927bf18be753
* | | | Merge "Remove JNI in LOCAL_C_INCLUDE from non-JNI related Android.mk files."James Dong2012-03-2412-20/+0
|\ \ \ \
| * | | | Remove JNI in LOCAL_C_INCLUDE from non-JNI related Android.mk files.James Dong2012-03-2412-20/+0
| | |/ / | |/| | | | | | | | | | | | | | | | | | o related-to-bug: 6214141 Change-Id: Ic88d1732b3e014af47532a0809e01f6086e8464d
* | | | Fixed missing return value from a method should have returned status_tJames Dong2012-03-241-1/+1
|/ / / | | | | | | | | | Change-Id: I83ad2735eaf8a8dfa5f8f29f30aec1311b3222de
* | | Merge "Revert "Split libmedia into libmedia and libmedia_native""Glenn Kasten2012-03-232-44/+37
|\ \ \
| * | | Revert "Split libmedia into libmedia and libmedia_native"Glenn Kasten2012-03-232-44/+37
| | | | | | | | | | | | This reverts commit 0a3edd38df0743dcc7091bb7ebf29e7e7dadc7cb
* | | | Merge "Revert "AudioFlinger does not need libmedia any more""Glenn Kasten2012-03-231-0/+1
|\ \ \ \
| * | | | Revert "AudioFlinger does not need libmedia any more"Glenn Kasten2012-03-231-0/+1
| | | | | | | | | | | | | | | This reverts commit c920dee060ac69684be33210ee44b99a5fc3e8b2
* | | | | Fix the file mimetype reported by the mpeg4 extractor.Andreas Huber2012-03-232-2/+3
| |_|_|/ |/| | | | | | | | | | | | | | | Change-Id: I72474c17757dba5867f55b0e99e76e9e4e32ce7b related-to-bug: 6217289
* | | | Merge "Merge remote-tracking branch 'goog/ics-aah-exp' into merge"Mike Lockwood2012-03-220-0/+0
|\ \ \ \ | |/ / / |/| | |
| * | | Merge remote-tracking branch 'goog/ics-aah-exp' into mergeMike Lockwood2012-03-220-0/+0
| |\ \ \
| | * | | LibAAH_RTP: Fix an issue which crept in during code review.John Grossman2012-03-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a mistake which came in as part of a merge conflict resolution during code review of the recent unicast mode refactor of LibAAH_RTP. Nop packet which were supposed to carry TS transformations for the pause state accidentally got flagged as Flush operations. The flush packet successfully carried the TS transformation, but also had the undesired side effect of constantly flushing the stream. Change-Id: I4c6aa0043fc274a1d7e880ed1d19cf277f22194b Signed-off-by: John Grossman <johngro@google.com>
| | * | | LibAAH_RTP: Properly handle EOS conditions.John Grossman2012-03-215-50/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EOS was being treated as a flush operation which was causing problems. In particular, the transmitter was delcaring that playback was complete early (by the clock lead time of the system, which was 1 second in this case). Also, the receiver was treating the EOS message just like the flush message, immediately destroying the substreams associated with the program without letting them play out first. Change the transmitter to send the EOS message like it always does, but have it wait until the media time of the last sample has arrived before reporting playback complete to the app level of things. On the receiver side of things, don't treat the EOS message like the flush message. Instead, have the EOS message simply put the substream into EOS mode, allowing it to signal EOS to its decoder and shut off the isAboutToUnderflow hack. Change-Id: Ibe3ac01044373f83edb7a5f4b70478bd78c16d11
| | * | | LibAAH_RTP: Get rid of PipeEventJohn Grossman2012-03-219-158/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bionic/Android support eventfd, so there is really no reason to have PipeEvent around any more. This change gets rid of it in LibAAH_RTP and replaces it with eventfds. Change-Id: I841fcb71bf5015d521d7517c69f44eac0ea92278 Signed-off-by: John Grossman <johngro@google.com>
| | * | | LibAAH_RTP: Add unicast mode support to the RXPlayerJohn Grossman2012-03-218-110/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for unicast mode to the AAH RXPlayer. At the API level, things should be pretty simple. To use unicast mode, instead of passing the multicast address and port in the data source URL, just pass the unicast address and port of the transmitters command and control port. For example, instead of aahRX://224.128.60.5:8867 one might instead pass aahRX://192.168.63.5:55476 Change-Id: I7b40716983d7a91def86dcf40f093dda4255aae3 Signed-off-by: John Grossman <johngro@google.com>
| | * | | LibAAH_RTP: Fix a stuttering audio bug.John Grossman2012-03-2113-243/+555
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a bug discovered while working on adding unicast mode to the TX/RX players. Also some general cleanup/consolidation regarding timeout code. The bug went like this. When a TX player had hit EOS, it would send an EOS command payload to its receivers. Later, when application level code shutdown and cleaned up the player, it would send another. In situations where there is massive packet loss, there is a chance that not only did both of the EOS packets get dropped, but that they never got filled in by the retry algorithm because the receiver gave up on the RTP gap due to an aboutToUnderflow situation in at least one of its active substreams. When this happens, there are two major problems. First, all of the substreams associated with the TX player which has now gone away have become effectively leaked. They will only get cleaned up if the entire RTP stream (the TX Group) goes away for 10 seconds or more, or when the RX Player itself is reset by application level code or a fatal error. These substreams are holding decoder and renderer resources which are probably in very short supply, which is a Bad Thing. Second, there is now at least one substream in the RX player which is never going to receive another payload (its TX player source is gone), but is still considered to be active by the rx player. Assuming that this substream's program was in the play state when the track ended, there is now at least one substream which is always "aboutToUnderflow". From here on out, when the retry algorithm is attempting to decide whether or not it has the time to attempt to fill in a gap in the muxed RTP sequence, it always decides that it does not have the time because of the orphaned substream which is stuck in its about to underflow state. This effectively means that the retry algorithm is completely shut off until the rx player gets reset somehow (something which does not happen during normal operation). Since the environment had to be extremely lossy to trigger this chain of events in the first place, and its probably no better now, your playback is just going to be chock full of gaps which produces horrible stuttering in the presentation stage of the system. Two new failsafes have been introduced to keep the double EOS drop from causing this. First, a timeout has been introduced on the substream level, in addition to the already existing RTP level timeout. If a substream fails to receive an activity for 10 seconds (same timeout as the master RTP timeout), it will be automatically flushed and purged. Second, the nature of the master RTP timeout on the transmitter side has been changed. Instead of just sending an empty NOP command packet to indicate that the main RTP stream is still alive, the transmitter now sends a new time of command packet; the Active Program Update packet. This packet contains a list of all the active program ID attached to this TX group. Upon receiving one of these APU packets, RX players reset the inactivity timers for all substreams which are members of the programs listed in the packet, but they also immediately purge any substreams associated with programs not present in the APU. Between the two of these, no matter how nasty and selective the packet smashing gremlins in your system happen to be, substreams will always eventually clean up and avoid getting stuck in a perma-stutter situation. Also in this CL: + Extract some common utility code into a utils.cpp file so that it can be shared across the library. + Stop using custom timeout logic in the RXPlayer. Instead, use the common Timeout helper class in utils.cpp. Signed-off-by: John Grossman <johngro@google.com> Change-Id: I350869942074f2cae020f719c2911d9092ba8055
| | * | | LibAAH_RTP: Refactor TXGroup code, add unicast mode.John Grossman2012-03-217-529/+1343
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Significantly refactor the TXGroup code to allow transmit groups to operate in a unicast fanout mode in addition to the traditional pure multicast mode. Important changes include... + Each transmit group active in the system now has its own socket to send and receive traffic on. In the past, this socket was used to listen for retry requests from clients. Now it is also used to listen for group membership reports (IGMPv3 style) from unicast clients. Having an individual socket per transmit group allows unicast clients to join the group needing only the IP address and port of the transmitters socket, and not needing any additional "group id" to be sent to the client beforehand. + Setup for the transmitter is now slightly different. As before, to setup for multicast mode, a user can call setRetransmitEndpoint passing an IPv4 multicast address and specific port to transmit to. It used to also be the case that a user could pass a specific unicast address and port to transmit to as well. This is no longer allowed. Instead, to operate in unicast mode, a user passes 0.0.0.0 (IPADDR_ANY) as the IP address. In addition, they need to pass either 0 for a port to create a new unicast mode TX group, or they need to pass a specific port to cause the player to attempt to use an existing unicast mode TX group. The specific port should be the command and control port of the TX group which was bound to when the group was originally created. + A magic invoke was added to allow clients to fetch the command and control port on which a TX Player's TX Group is listening. The API described above is most likely temporary and should eventually be replaced with one where TX groups are formal top level objects with their own independent interface and life-cycle management. Signed-off-by: John Grossman <johngro@google.com> Change-Id: Ib4e9737c10660d36c50f1825c9824fff5390b1c7
| | * | | LibAAH_RTP: Change names to prepare for refactor.John Grossman2012-03-215-72/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename AAH_TXSender to AAH_TXGroup in preparation for refactoring to support unicast retransmission. Signed-off-by: John Grossman <johngro@google.com> Change-Id: I3984db27d1c61c6155d5d7cb9c38eead421b9249
| | * | | am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ↵Eric Laurent2012-03-191-1/+2
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ics-mr1 * commit '14958e21c12f922d7501d32c3bec05109eb342d5': audioflinger: fix issue with camcorder and A2DP
| | * \ \ \ am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1Eric Laurent2012-03-163-5/+9
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '2a0d685ed62ff7a5e5a40be0748860c092165984': MediaPlayerService: fix AudioSink latency
| | * \ \ \ \ am 3fe7ee65: Merge "AudioTrack: relax check on minimum buffer size" into ics-mr1Eric Laurent2012-03-162-8/+7
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '3fe7ee651db0aae9485ead227c89db1e24b9e245': AudioTrack: relax check on minimum buffer size
| | * \ \ \ \ \ am 4d7bc655: Doc change: String changes for Android MarketDirk Dougherty2012-03-051-1/+1
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '4d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219': Doc change: String changes for Android Market
| | * | | | | | | Switch the way we configure for MediaPlayer retransmission.John Grossman2012-02-2310-92/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move in the direction of a more publishable API for configuring a media player for retransmission. It used to be that we used a custom invoke and a modified URL (prefixed with aahTX://). There are many issues with this technique and it was never meant to stand the test of time. This CL gets rid of all that. A new (but currently hidden) method was introduced to the java level MediaPlayer API, called setRetransmitTarget(InetSocketAddress), which allows an app writer to set the retransmit target. For now, this method needs to be called before a call to setDataSource (which is pretty unusual for the MediaPlayer API) because this mid level code uses this as a cue to instantiate an aahTX player instead of relying on the data source to select a player. When retranmit functionality becomes part of the existing android player implemenation, this set-retrans-before-set-data-source behavior can go away, along with the aahTX player itself. Change-Id: I6ab07d89b2eeb0650e634b8c3b7a0b36aba4e7dd
| | * | | | | | | Revert "Add a way to play file descriptor data sources using the A@H ↵John Grossman2012-02-236-66/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | transmitter media player." This reverts commit 64006cb1642b2ec0ee74c66007d869b884391fd1. Back out this change in order to get ready to implement a longer term, more media-team approved way of selecting a retransmit player. Change-Id: I97b68b9859a174eab858598cb00d4445a14fbc17
| | * | | | | | | LibAAH_RTP: Add support for AAC in MP4.John Grossman2012-02-216-104/+399
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ie8298eb9d253fc6ede448da87660a60d23170987
| | * | | | | | | Put a bandaid on a segfault in timed audio track handling.John Grossman2012-02-121-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a bandaid to prevent a segfault which can occur while handling timed audio buffers. There is a deeper problem which should eventually be addressed, but for now this fix should prevent any crashing. The deeper problem is as follows. When the AudioFlinger mixer gets data to mix from an AudioTrack, it ends up getting a structure filled out which points into an IMemory region owned by the AudioTrack. Unfortunately, this structure is not holding a refcount on the IMemory which it points into. If the IMemory refcount hits 0 and the chunk of RAM is retuned to the binder heap it came from, there can still be a Buffer object being held by the AudioFlinger mixer which points into the region of memory which was retuned to the binfer heap. If AF reads from this buffer, it could read corrupt data (if the region of memory gets handed back out to a writer), or it could segfault (if the heap has been freed and the pages unmapped). Similar problems could happen if AF attempts to write to the buffer, heap corruption in one case, segfaulting in the other. In the past, this has not been an issue for AF, because tracks allocate a single IMemory (which serves as a ring buffer) and the IMemory lives for as long as the track lives. As an artifact of the way the code came out, the mixer cannot be holding a Buffer structure pointing into the IMemory which used to be owned by a track if the track no longer exists. Tracks cannot come into or out of existence during a mix operation, which is the only thing which makes this safe. TimedTracks work differently, however. Timed tracks each allocate a small binder heap, and then hand out IMemory instances broken out of this heap. The heap lives as long as the track, so the worst which could happen here is that a TimedTrack's IMemory gets returned to the heap while there is still a buffer structure in flight pointing into the memory region, then the region gets handed out again and overwritten by new data causing the mixer to mix the wrong audio. The timing to cause this to happen is very difficult to encounter, and you to generate the timing conditions required, you need to be in a pretty bad failure state where audio is already breaking up and skipping, so its unlikely that anyone would notice (which is why I'm band-aiding the segfault and letting the deeper issue slide for now). In general, however, it might be a good idea to revisit this buffering design. On principal, if someone is going to hold pointers into a refcounted object, they should be holding a ref on the object at the same time. Failure to do this will usually lead to a situation where there are corruption or segfault issues, or to a system where the refcounted object's lifetime must be implicitly managed very carefully in ways which are usually non-obvious and are easy to break by new engineers on a project. Change-Id: Ib391075395ed0ef46a03c37aa38a82d09e88abeb
| | * | | | | | | Fix a segfault in AudioFlinger.John Grossman2012-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check the string returned by a HAL's implementation of get_parameters for NULL before attempting to make use of it. That way, we won't bring down the mediaserver because of a poorly written HAL. Change-Id: I45f0fd3de003151f98acf32c36c42f58d053f3a0
| | * | | | | | | Explicitly manage common clock client lifetimes.John Grossman2012-02-0610-37/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the CCHelper class to be an instanced instead of a static pattern. The CCHelper instances all share an interface to the common clock service and register/unregister a callback handler in response to there being CCHelper instance in the system or not. This brings usage of the CCHelper into like with the new auto-disable functionality of the common time service. For any given process, whenever there are CCHelper instances active, the process will maintain a callback target to the common clock service and will be considered to be an active client. Also change all of the users of the CCHelper interface to manage the lifecycle of their new CCHelper instances. Change-Id: I7c28c5d70d9b07ba7407b4ac706e7e7d7253001b
| | * | | | | | | Add native common time config service.John Grossman2012-02-033-0/+582
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define a native service interface for configuring and controlling the common time service. Implement the native marshallers and stub the implementation of the new interface. Change-Id: Ia6a6a20ef3d221e8829c55be1dd5f98ed996c610
| | * | | | | | | Add marshallers for the new common clock methods.John Grossman2012-02-035-45/+271
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add marshallers and stub implementations for new methods in the common clock interface to support new functionality being added in the process of integrating the common time service more closely with the Java level of Android. Change-Id: Iac2d3fb405d1b64cea1d8e13f988160afb76a06d
| | * | | | | | | Change ICommonClock marshallers to return explicit error codes.John Grossman2012-02-031-19/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the ICommonClock marshallers to return an explicit error with each transaction. This makes it easier to disambiguate between binder errors (dead object due to the service crashing) vs. runtime errors (cannot return common time due to lack of sync) Change-Id: I2182cf0cfb2e11b4669f392554f104ef7c4bca8b
| | * | | | | | | Move the definition of time server state.John Grossman2012-02-031-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the State enum up to the ICommonClock interface so it can be returned for status/debugging up to clients. Change-Id: I81fef5b96ffc69a4f2e9801b3744feea099ccd47
| | * | | | | | | De-AAH-ify the common time service.John Grossman2012-02-0314-10/+673
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bulk name change to remove references to Android@Home from the common time service in preparation for cleanup and up-integration into the master branch. Basically, aah_timesrv is now common_time. Change-Id: I3d3db212f96e8ba171aa36b9c58e27e4a336cb0a