blob: 2fd6f6df417e0169410dcf67c76b894b512290c4
1 | #ifndef ANDROID_AMLOGIC_ITV_H |
2 | #define ANDROID_AMLOGIC_ITV_H |
3 | |
4 | #include <utils/RefBase.h> |
5 | #include <binder/IInterface.h> |
6 | #include <binder/Parcel.h> |
7 | #include <binder/IMemory.h> |
8 | #include <utils/String8.h> |
9 | #include <include/Tv.h> |
10 | |
11 | using namespace android; |
12 | |
13 | class ITvClient; |
14 | |
15 | class ITv: public IInterface |
16 | { |
17 | public: |
18 | DECLARE_META_INTERFACE(Tv); |
19 | |
20 | virtual void disconnect() = 0; |
21 | |
22 | // connect new client with existing tv remote |
23 | virtual status_t connect(const sp<ITvClient> &client) = 0; |
24 | |
25 | // prevent other processes from using this ITv interface |
26 | virtual status_t lock() = 0; |
27 | |
28 | // allow other processes to use this ITv interface |
29 | virtual status_t unlock() = 0; |
30 | |
31 | virtual status_t processCmd(const Parcel &p, Parcel *r) = 0; |
32 | |
33 | //share mem for subtitle bmp |
34 | virtual status_t createSubtitle(const sp<IMemory> &share_mem) = 0; |
35 | //share mem for video/hdmi bmp |
36 | virtual status_t createVideoFrame(const sp<IMemory> &share_mem) = 0; |
37 | |
38 | }; |
39 | |
40 | // ---------------------------------------------------------------------------- |
41 | |
42 | class BnTv: public BnInterface<ITv> |
43 | { |
44 | public: |
45 | virtual status_t onTransact( uint32_t code, |
46 | const Parcel &data, |
47 | Parcel *reply, |
48 | uint32_t flags = 0); |
49 | }; |
50 | |
51 | #endif |
52 |