diff options
author | Insun Kang <insun@google.com> | 2012-02-27 17:14:28 +0900 |
---|---|---|
committer | Insun Kang <insun@google.com> | 2012-02-27 17:14:28 +0900 |
commit | 3008f0329bb5a3e4ce93ec7b597893a318b5bd11 (patch) | |
tree | 0c1d58e5f0be80e917122b67438ba79bfadf4078 /include | |
parent | c108613fb8ef0fabb3f08198a52bd0877e382937 (diff) | |
download | frameworks_base-3008f0329bb5a3e4ce93ec7b597893a318b5bd11.zip frameworks_base-3008f0329bb5a3e4ce93ec7b597893a318b5bd11.tar.gz frameworks_base-3008f0329bb5a3e4ce93ec7b597893a318b5bd11.tar.bz2 |
Moves TimedTextDriver.h into include/media/stagefright/timedtext.
So that other players can include TimedTextDriver.h properly.
Change-Id: I15e72bf655de8555eef6244a6c853c27a0828a1d
Diffstat (limited to 'include')
-rw-r--r-- | include/media/stagefright/timedtext/TimedTextDriver.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/include/media/stagefright/timedtext/TimedTextDriver.h b/include/media/stagefright/timedtext/TimedTextDriver.h new file mode 100644 index 0000000..efedb6e --- /dev/null +++ b/include/media/stagefright/timedtext/TimedTextDriver.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef TIMED_TEXT_DRIVER_H_ +#define TIMED_TEXT_DRIVER_H_ + +#include <media/stagefright/foundation/ABase.h> // for DISALLOW_* macro +#include <utils/Errors.h> // for status_t +#include <utils/RefBase.h> +#include <utils/threads.h> + +namespace android { + +class ALooper; +class MediaPlayerBase; +class MediaSource; +class Parcel; +class TimedTextPlayer; +class TimedTextSource; + +class TimedTextDriver { +public: + TimedTextDriver(const wp<MediaPlayerBase> &listener); + + ~TimedTextDriver(); + + // TODO: pause-resume pair seems equivalent to stop-start pair. + // Check if it is replaceable with stop-start. + status_t start(); + status_t stop(); + status_t pause(); + status_t resume(); + + status_t seekToAsync(int64_t timeUs); + + status_t addInBandTextSource(const sp<MediaSource>& source); + status_t addOutOfBandTextSource(const Parcel &request); + + status_t setTimedTextTrackIndex(int32_t index); + +private: + Mutex mLock; + + enum State { + UNINITIALIZED, + STOPPED, + PLAYING, + PAUSED, + }; + + sp<ALooper> mLooper; + sp<TimedTextPlayer> mPlayer; + wp<MediaPlayerBase> mListener; + + // Variables to be guarded by mLock. + State mState; + Vector<sp<TimedTextSource> > mTextInBandVector; + Vector<sp<TimedTextSource> > mTextOutOfBandVector; + // -- End of variables to be guarded by mLock + + status_t setTimedTextTrackIndex_l(int32_t index); + + DISALLOW_EVIL_CONSTRUCTORS(TimedTextDriver); +}; + +} // namespace android + +#endif // TIMED_TEXT_DRIVER_H_ |