]> git.vomp.tv Git - vompclient-marten.git/blob - defines.h
Add basic audio playback (stereo), fast forward, ThreadP bugfix and Stream interface...
[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 OsdOpenGL   // 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 AudioVPE   // This is Audio based on VPE (Vomp Presentation Engine) should support OpenMax and libav for decoding\r
96    #define Video_TYPE VideoVPEOGL   // This is Video based on VPE (Vomp Presentation Engine) should support 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 \r
115 #endif\r
116 #ifdef VOMP_PLATTFORM_MVP\r
117   #define Remote_TYPE RemoteMVP\r
118   #define RemoteStartDev "/dev/rawir"\r
119   #define Mtd_TYPE MtdMVP\r
120   #define Led_TYPE LedMVP\r
121   #define Osd_TYPE OsdMVP\r
122   #define OsdStartDev "/dev/stbgfx"\r
123   #define Audio_TYPE AudioMVP\r
124   #define Video_TYPE VideoMVP\r
125   #define DEFAULT_TCP_WINDOWSIZENR 1  /*=2048*/\r
126 #endif\r
127 \r
128 #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
129   #define Remote_TYPE RemoteLirc\r
130   #define RemoteStartDev "/dev/lircd"\r
131   #define Mtd_TYPE MtdNMT\r
132   #define Led_TYPE LedMVP\r
133   #define Osd_TYPE OsdDirectFB\r
134   #define OsdStartDev ""\r
135   #define Audio_TYPE AudioNMT\r
136   #define Video_TYPE VideoNMT\r
137   #define DEFAULT_TCP_WINDOWSIZENR 1  /*=2048*/\r
138 \r
139 #endif\r
140 \r
141 #endif\r
142 \r
143 /*\r
144 typedef struct\r
145 {\r
146   UINT id;               // Used for working out what has changed at the end\r
147   char *title;           // Name of the option\r
148   char *configSection;   // Which section of the config file\r
149   char *configParam;     // Parameter name in the config file\r
150   UINT optionType;       // 1 for text, 2 for int\r
151   UINT optionCount;      // How many choices?\r
152   UINT defaultOption;    // Serial of the default choice (base 0), or actual option in int mode\r
153   int startInt;          // Starting int for int mode\r
154   const char * const * options;  // Text for the options (null for int mode)\r
155 } OPTIONDATA;\r
156 */\r
157 \r
158 #endif\r