[cosmetics] update date in GPL header
[vuplus_xbmc] / xbmc / cores / amlplayer / DllLibamplayer.h
1 #pragma once
2 /*
3  *      Copyright (C) 2012-2013 Team XBMC
4  *      http://www.xbmc.org
5  *
6  *  This Program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 2, or (at your option)
9  *  any later version.
10  *
11  *  This Program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with XBMC; see the file COPYING.  If not, see
18  *  <http://www.gnu.org/licenses/>.
19  *
20  */
21
22 #include "system.h"
23
24 #include "DynamicDll.h"
25
26 extern "C"
27 {
28 #include <player_type.h>
29 #include <player_error.h>
30 }
31
32 struct AML_URLProtocol;
33
34 class DllLibAmplayerInterface
35 {
36 public:
37   virtual ~DllLibAmplayerInterface() {};
38
39   virtual int player_init(void)=0;
40   virtual int player_start(play_control_t *p, unsigned long priv)=0;
41   virtual int player_stop(int pid)=0;
42   virtual int player_stop_async(int pid)=0;
43   virtual int player_exit(int pid)=0;
44   virtual int player_pause(int pid)=0;
45   virtual int player_resume(int pid)=0;
46   virtual int player_timesearch(int pid, float s_time)=0;
47   virtual int player_forward(int pid, int speed)=0;
48   virtual int player_backward(int pid, int speed)=0;
49   virtual int player_aid(int pid, int audio_id)=0;
50   virtual int player_sid(int pid, int sub_id)=0;
51   virtual int player_progress_exit(void)=0;
52   virtual int player_list_allpid(pid_info_t *pid)=0;
53   virtual int check_pid_valid(int pid)=0;
54   virtual int player_get_play_info(int pid, player_info_t *info)=0;
55   virtual int player_get_media_info(int pid, media_info_t *minfo)=0;
56   virtual int player_video_overlay_en(unsigned enable)=0;
57   virtual int player_start_play(int pid)=0;
58   virtual player_status player_get_state(int pid)=0;
59   virtual unsigned int player_get_extern_priv(int pid)=0;
60   virtual int player_enable_autobuffer(int pid, int enable)=0;
61   virtual int player_set_autobuffer_level(int pid, float min, float middle, float max)=0;
62   virtual int player_register_update_callback(callback_t *cb,update_state_fun_t up_fn,int interval_s)=0;
63   virtual char* player_status2str(player_status status)=0;
64
65   virtual int audio_set_volume(int pid,float val)=0;
66   virtual int audio_set_delay(int pid, int delay)=0;
67   
68   virtual int codec_open_sub_read(void)=0;
69   virtual int codec_close_sub_fd(int sub_fd)=0;
70   virtual int codec_get_sub_size_fd(int sub_fd)=0;
71   virtual int codec_read_sub_data_fd(int sub_fd, char* buf, unsigned int length)=0;
72
73   virtual int av_register_protocol2(AML_URLProtocol *protocol, int size)=0;
74 };
75
76 class DllLibAmplayer : public DllDynamic, DllLibAmplayerInterface
77 {
78   DECLARE_DLL_WRAPPER(DllLibAmplayer, "libamplayer.so")
79
80   DEFINE_METHOD0(int,            player_init)
81   DEFINE_METHOD2(int,            player_start,          (play_control_t *p1, unsigned long p2))
82   DEFINE_METHOD1(int,            player_stop,           (int p1))
83   DEFINE_METHOD1(int,            player_stop_async,     (int p1))
84   DEFINE_METHOD1(int,            player_exit,           (int p1))
85   DEFINE_METHOD1(int,            player_pause,          (int p1))
86   DEFINE_METHOD1(int,            player_resume,         (int p1))
87   DEFINE_METHOD2(int,            player_timesearch,     (int p1, float p2))
88   DEFINE_METHOD2(int,            player_forward,        (int p1, int p2))
89   DEFINE_METHOD2(int,            player_backward,       (int p1, int p2))
90   DEFINE_METHOD2(int,            player_aid,            (int p1, int p2))
91   DEFINE_METHOD2(int,            player_sid,            (int p1, int p2))
92   DEFINE_METHOD0(int,            player_progress_exit)
93   DEFINE_METHOD1(int,            player_list_allpid,    (pid_info_t *p1))
94   DEFINE_METHOD1(int,            check_pid_valid,       (int p1))
95   DEFINE_METHOD2(int,            player_get_play_info,  (int p1, player_info_t *p2))
96   DEFINE_METHOD2(int,            player_get_media_info, (int p1, media_info_t *p2))
97   DEFINE_METHOD1(int,            player_video_overlay_en, (unsigned int p1))
98   DEFINE_METHOD1(int,            player_start_play,     (int p1))
99   DEFINE_METHOD1(player_status,  player_get_state,      (int p1))
100   DEFINE_METHOD1(unsigned int,   player_get_extern_priv,(int p1))
101   DEFINE_METHOD2(int,            player_enable_autobuffer, (int p1, int p2))
102   DEFINE_METHOD4(int,            player_set_autobuffer_level, (int p1, float p2, float p3, float p4))
103   DEFINE_METHOD3(int,            player_register_update_callback, (callback_t *p1, update_state_fun_t p2, int p3))
104   DEFINE_METHOD1(char*,          player_status2str,     (player_status p1))
105
106   DEFINE_METHOD2(int,            audio_set_volume,      (int p1, float p2))
107   DEFINE_METHOD2(int,            audio_set_delay,       (int p1, int p2))
108
109   DEFINE_METHOD0(int,            codec_open_sub_read)
110   DEFINE_METHOD1(int,            codec_close_sub_fd,    (int p1))
111   DEFINE_METHOD1(int,            codec_get_sub_size_fd, (int p1))
112   DEFINE_METHOD3(int,            codec_read_sub_data_fd,(int p1, char *p2, unsigned int p3))
113
114   DEFINE_METHOD2(int,            av_register_protocol2, (AML_URLProtocol *p1, int p2))
115
116   BEGIN_METHOD_RESOLVE()
117     RESOLVE_METHOD(player_init)
118     RESOLVE_METHOD(player_start)
119     RESOLVE_METHOD(player_stop)
120     RESOLVE_METHOD(player_stop_async)
121     RESOLVE_METHOD(player_exit)
122     RESOLVE_METHOD(player_pause)
123     RESOLVE_METHOD(player_resume)
124     RESOLVE_METHOD(player_timesearch)
125     RESOLVE_METHOD(player_forward)
126     RESOLVE_METHOD(player_backward)
127     RESOLVE_METHOD(player_aid)
128     RESOLVE_METHOD(player_sid)
129     RESOLVE_METHOD(player_progress_exit)
130     RESOLVE_METHOD(player_list_allpid)
131     RESOLVE_METHOD(check_pid_valid)
132     RESOLVE_METHOD(player_get_play_info)
133     RESOLVE_METHOD(player_get_media_info)
134     RESOLVE_METHOD(player_video_overlay_en)
135     RESOLVE_METHOD(player_start_play)
136     RESOLVE_METHOD(player_get_state)
137     RESOLVE_METHOD(player_get_extern_priv)
138     RESOLVE_METHOD(player_enable_autobuffer)
139     RESOLVE_METHOD(player_set_autobuffer_level)
140     RESOLVE_METHOD(player_register_update_callback)
141     RESOLVE_METHOD(player_status2str)
142
143     RESOLVE_METHOD(audio_set_volume)
144     RESOLVE_METHOD(audio_set_delay)
145
146     RESOLVE_METHOD(codec_open_sub_read)
147     RESOLVE_METHOD(codec_close_sub_fd)
148     RESOLVE_METHOD(codec_get_sub_size_fd)
149     RESOLVE_METHOD(codec_read_sub_data_fd)
150
151     RESOLVE_METHOD(av_register_protocol2)
152
153   END_METHOD_RESOLVE()
154 };