]> git.vomp.tv Git - vompclient-marten.git/blob - defines.h
Switch to OpenVG based OSD, note Teletext and Subtitle rendering not working and...
[vompclient-marten.git] / defines.h
1 /*\r
2     Copyright 2004-2005 Chris Tallon\r
3 \r
4     This file is part of VOMP.\r
5 \r
6     VOMP is free software; you can redistribute it and/or modify\r
7     it under the terms of the GNU General Public License as published by\r
8     the Free Software Foundation; either version 2 of the License, or\r
9     (at your option) any later version.\r
10 \r
11     VOMP is distributed in the hope that it will be useful,\r
12     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14     GNU General Public License for more details.\r
15 \r
16     You should have received a copy of the GNU General Public License\r
17     along with VOMP; if not, write to the Free Software\r
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.\r
19 */\r
20 \r
21 #ifndef DEFINES_H\r
22 #define DEFINES_H\r
23 \r
24 typedef unsigned char UCHAR;\r
25 typedef unsigned short USHORT;\r
26 typedef unsigned int UINT;\r
27 typedef unsigned long ULONG;\r
28 typedef unsigned long long ULLONG;\r
29 \r
30 #define OPTIONTYPE_TEXT 1\r
31 #define OPTIONTYPE_INT 2\r
32 \r
33 #define BENCHMARK_FPS\r
34 \r
35 //ULLONG htonll(ULLONG a);\r
36 //ULLONG ntohll(ULLONG a);\r
37 void MILLISLEEP(ULONG a);\r
38 long long getTimeMS();\r
39 \r
40 #ifdef WIN32\r
41 \r
42   #define Surface_TYPE SurfaceWin\r
43   #define Thread_TYPE ThreadWin\r
44   #define ThreadID_TYPE unsigned int\r
45 \r
46   #define SNPRINTF _snprintf\r
47   #define VSNPRINTF _vsnprintf\r
48   #define STRCASECMP _stricmp\r
49   #define STRCASESTR StrStrI\r
50 /*  #define STRTOULL _strtoui64 */\r
51   #define STRTOUL strtoul\r
52   #define CLOSESOCKET closesocket\r
53   #define DEFAULT_TCP_WINDOWSIZENR 1  /*=2048*/\r
54 \r
55 \r
56 #else\r
57 \r
58   int max(int, int);\r
59   int min(UINT, int);\r
60 /*#ifdef _MIPS_ARCH\r
61   #define Surface_TYPE SurfaceDirectFB\r
62 #else\r
63   #define Surface_TYPE SurfaceMVP\r
64 #endif*/\r
65 #ifdef __ANDROID__\r
66   #define Thread_TYPE ThreadPAndroid\r
67 \r
68 #else\r
69   #define Thread_TYPE ThreadP\r
70 \r
71 #endif\r
72   #include <pthread.h>\r
73   #define ThreadID_TYPE pthread_t\r
74 \r
75   #define SNPRINTF snprintf\r
76   #define VSNPRINTF vsnprintf\r
77   #define STRCASECMP strcasecmp\r
78   #define STRCASESTR strcasestr\r
79   #define STRTOUL strtoul\r
80   #define CLOSESOCKET close\r
81 \r
82 // add here defines for plattform specific objects\r
83 #ifdef VOMP_PLATTFORM_RASPBERRY\r
84    #define Remote_TYPE RemoteLinux  // Generic Remote under Linux (Konsole!, not X) will support in the end:\r
85    #define RemoteStartDev ""//No devices passed\r
86 \r
87   // Keyboard\r
88   // remotes under /dev/event\r
89   // HDMI CEC\r
90   //lirc?\r
91    #define Mtd_TYPE MtdRaspberry  //this is device dependent\r
92    #define Led_TYPE LedRaspberry  //this is device dependent\r
93    #define Osd_TYPE OsdOpenVG   // This OpenGL ES 2.0, in the moment only for raspberry, but might be splitted for other devices\r
94    #define OsdStartDev ""\r
95    #define Audio_TYPE AudioOMX   // This is Audio based on OpenMax and libav for decoding\r
96    #define Video_TYPE VideoOMX   // This is Video based on OpenMax\r
97 \r
98 \r
99 \r
100    #define VPE_OMX_SUPPORT // Activate support for hardware codec using openmax il\r
101    #define VPE_OMX_H264_DECODER "OMX.broadcom.video_decode"\r
102    #define VPE_OMX_MPEG2_DECODER "OMX.broadcom.video_decode"\r
103    #define VPE_OMX_VIDEO_SCHED "OMX.broadcom.video_scheduler"\r
104    #define VPE_OMX_VIDEO_REND "OMX.broadcom.video_render"\r
105    #define VPE_OMX_VIDEO_DEINTERLACE "OMX.broadcom.image_fx"\r
106    #define VPE_OMX_CLOCK "OMX.broadcom.clock"\r
107    #define VPE_OMX_AUDIO_DECODER "OMX.broadcom.audio_decode"\r
108    #define VPE_OMX_AUDIO_REND "OMX.broadcom.audio_render"\r
109 \r
110    //#define  VPE_LIBAV_SUPPORT\r
111   // #define  VPE_LIBAV_MPEG2_TRANSCODING\r
112 \r
113   #define DEFAULT_TCP_WINDOWSIZENR 6  /*=2048*/\r
114   #define TV_NORM_SWITCHABLE\r
115 \r
116   #define VOMP_LINUX_CLOCK  CLOCK_MONOTONIC\r
117 \r
118 #endif\r
119 #ifdef VOMP_PLATTFORM_MVP\r
120   #define Remote_TYPE RemoteMVP\r
121   #define RemoteStartDev "/dev/rawir"\r
122   #define Mtd_TYPE MtdMVP\r
123   #define Led_TYPE LedMVP\r
124   #define Osd_TYPE OsdMVP\r
125   #define OsdStartDev "/dev/stbgfx"\r
126   #define Audio_TYPE AudioMVP\r
127   #define Video_TYPE VideoMVP\r
128   #define DEFAULT_TCP_WINDOWSIZENR 1  /*=2048*/\r
129   #define PAL_WSS\r
130   #define MVP_REMOTE_TYPES\r
131 \r
132   #define VOMP_LINUX_CLOCK  CLOCK_REALTIME\r
133 #endif\r
134 \r
135 #ifdef VOMP_PLATTFORM_NMT // This was the attempt to port vomp to nmt, it failed but maybe the code is useful at some time\r
136   #define Remote_TYPE RemoteLirc\r
137   #define RemoteStartDev "/dev/lircd"\r
138   #define Mtd_TYPE MtdNMT\r
139   #define Led_TYPE LedMVP\r
140   #define Osd_TYPE OsdDirectFB\r
141   #define OsdStartDev ""\r
142   #define Audio_TYPE AudioNMT\r
143   #define Video_TYPE VideoNMT\r
144   #define DEFAULT_TCP_WINDOWSIZENR 1  /*=2048*/\r
145 \r
146   #define VOMP_LINUX_CLOCK  CLOCK_REALTIME\r
147 \r
148 #endif\r
149 \r
150 #endif\r
151 \r
152 /*\r
153 typedef struct\r
154 {\r
155   UINT id;               // Used for working out what has changed at the end\r
156   char *title;           // Name of the option\r
157   char *configSection;   // Which section of the config file\r
158   char *configParam;     // Parameter name in the config file\r
159   UINT optionType;       // 1 for text, 2 for int\r
160   UINT optionCount;      // How many choices?\r
161   UINT defaultOption;    // Serial of the default choice (base 0), or actual option in int mode\r
162   int startInt;          // Starting int for int mode\r
163   const char * const * options;  // Text for the options (null for int mode)\r
164 } OPTIONDATA;\r
165 */\r
166 \r
167 #endif\r