11#ifndef KODI_VERSIONS_H
12#define KODI_VERSIONS_H
16#define STR_HELPER(x) #x
17#define STR(x) STR_HELPER(x)
40#define ADDON_GLOBAL_VERSION_MAIN "2.0.2"
41#define ADDON_GLOBAL_VERSION_MAIN_MIN "2.0.0"
42#define ADDON_GLOBAL_VERSION_MAIN_XML_ID "kodi.binary.global.main"
43#define ADDON_GLOBAL_VERSION_MAIN_DEPENDS "AddonBase.h" \
47#define ADDON_GLOBAL_VERSION_GENERAL "1.0.5"
48#define ADDON_GLOBAL_VERSION_GENERAL_MIN "1.0.4"
49#define ADDON_GLOBAL_VERSION_GENERAL_XML_ID "kodi.binary.global.general"
50#define ADDON_GLOBAL_VERSION_GENERAL_DEPENDS "General.h"
52#define ADDON_GLOBAL_VERSION_GUI "5.15.1"
53#define ADDON_GLOBAL_VERSION_GUI_MIN "5.15.0"
54#define ADDON_GLOBAL_VERSION_GUI_XML_ID "kodi.binary.global.gui"
55#define ADDON_GLOBAL_VERSION_GUI_DEPENDS "c-api/gui/input/action_ids.h" \
59#define ADDON_GLOBAL_VERSION_AUDIOENGINE "1.1.1"
60#define ADDON_GLOBAL_VERSION_AUDIOENGINE_MIN "1.1.0"
61#define ADDON_GLOBAL_VERSION_AUDIOENGINE_XML_ID "kodi.binary.global.audioengine"
62#define ADDON_GLOBAL_VERSION_AUDIOENGINE_DEPENDS "AudioEngine.h" \
63 "c-api/audio_engine.h"
65#define ADDON_GLOBAL_VERSION_FILESYSTEM "1.1.9"
66#define ADDON_GLOBAL_VERSION_FILESYSTEM_MIN "1.1.7"
67#define ADDON_GLOBAL_VERSION_FILESYSTEM_XML_ID "kodi.binary.global.filesystem"
68#define ADDON_GLOBAL_VERSION_FILESYSTEM_DEPENDS "Filesystem.h" \
69 "c-api/filesystem.h" \
73#define ADDON_GLOBAL_VERSION_NETWORK "1.0.4"
74#define ADDON_GLOBAL_VERSION_NETWORK_MIN "1.0.0"
75#define ADDON_GLOBAL_VERSION_NETWORK_XML_ID "kodi.binary.global.network"
76#define ADDON_GLOBAL_VERSION_NETWORK_DEPENDS "Network.h" \
79#define ADDON_GLOBAL_VERSION_TOOLS "1.0.4"
80#define ADDON_GLOBAL_VERSION_TOOLS_MIN "1.0.0"
81#define ADDON_GLOBAL_VERSION_TOOLS_XML_ID "kodi.binary.global.tools"
82#define ADDON_GLOBAL_VERSION_TOOLS_DEPENDS "tools/DllHelper.h" \
84 "tools/StringUtils.h" \
88#define ADDON_INSTANCE_VERSION_AUDIODECODER "4.0.0"
89#define ADDON_INSTANCE_VERSION_AUDIODECODER_MIN "4.0.0"
90#define ADDON_INSTANCE_VERSION_AUDIODECODER_XML_ID "kodi.binary.instance.audiodecoder"
91#define ADDON_INSTANCE_VERSION_AUDIODECODER_DEPENDS "c-api/addon-instance/audiodecoder.h" \
92 "addon-instance/AudioDecoder.h"
94#define ADDON_INSTANCE_VERSION_AUDIOENCODER "3.0.0"
95#define ADDON_INSTANCE_VERSION_AUDIOENCODER_MIN "3.0.0"
96#define ADDON_INSTANCE_VERSION_AUDIOENCODER_XML_ID "kodi.binary.instance.audioencoder"
97#define ADDON_INSTANCE_VERSION_AUDIOENCODER_DEPENDS "c-api/addon-instance/audioencoder.h" \
98 "addon-instance/AudioEncoder.h"
100#define ADDON_INSTANCE_VERSION_GAME "4.1.0"
101#define ADDON_INSTANCE_VERSION_GAME_MIN "4.1.0"
102#define ADDON_INSTANCE_VERSION_GAME_XML_ID "kodi.binary.instance.game"
103#define ADDON_INSTANCE_VERSION_GAME_DEPENDS "addon-instance/Game.h"
105#define ADDON_INSTANCE_VERSION_IMAGEDECODER "3.0.1"
106#define ADDON_INSTANCE_VERSION_IMAGEDECODER_MIN "3.0.0"
107#define ADDON_INSTANCE_VERSION_IMAGEDECODER_XML_ID "kodi.binary.instance.imagedecoder"
108#define ADDON_INSTANCE_VERSION_IMAGEDECODER_DEPENDS "c-api/addon-instance/imagedecoder.h" \
109 "addon-instance/ImageDecoder.h"
111#define ADDON_INSTANCE_VERSION_INPUTSTREAM "3.3.0"
112#define ADDON_INSTANCE_VERSION_INPUTSTREAM_MIN "3.3.0"
113#define ADDON_INSTANCE_VERSION_INPUTSTREAM_XML_ID "kodi.binary.instance.inputstream"
114#define ADDON_INSTANCE_VERSION_INPUTSTREAM_DEPENDS "c-api/addon-instance/inputstream.h" \
115 "c-api/addon-instance/inputstream/demux_packet.h" \
116 "c-api/addon-instance/inputstream/stream_codec.h" \
117 "c-api/addon-instance/inputstream/stream_constants.h" \
118 "c-api/addon-instance/inputstream/stream_crypto.h" \
119 "c-api/addon-instance/inputstream/timing_constants.h" \
120 "addon-instance/Inputstream.h" \
121 "addon-instance/inputstream/DemuxPacket.h" \
122 "addon-instance/inputstream/StreamCodec.h" \
123 "addon-instance/inputstream/StreamConstants.h" \
124 "addon-instance/inputstream/StreamCrypto.h" \
125 "addon-instance/inputstream/TimingConstants.h"
127#define ADDON_INSTANCE_VERSION_PERIPHERAL "3.0.2"
128#define ADDON_INSTANCE_VERSION_PERIPHERAL_MIN "3.0.0"
129#define ADDON_INSTANCE_VERSION_PERIPHERAL_XML_ID "kodi.binary.instance.peripheral"
130#define ADDON_INSTANCE_VERSION_PERIPHERAL_DEPENDS "addon-instance/Peripheral.h" \
131 "addon-instance/PeripheralUtils.h"
133#define ADDON_INSTANCE_VERSION_PVR "9.2.0"
134#define ADDON_INSTANCE_VERSION_PVR_MIN "9.2.0"
135#define ADDON_INSTANCE_VERSION_PVR_XML_ID "kodi.binary.instance.pvr"
136#define ADDON_INSTANCE_VERSION_PVR_DEPENDS "c-api/addon-instance/pvr.h" \
137 "c-api/addon-instance/pvr/pvr_channel_groups.h" \
138 "c-api/addon-instance/pvr/pvr_channels.h" \
139 "c-api/addon-instance/pvr/pvr_defines.h" \
140 "c-api/addon-instance/pvr/pvr_edl.h" \
141 "c-api/addon-instance/pvr/pvr_epg.h" \
142 "c-api/addon-instance/pvr/pvr_general.h" \
143 "c-api/addon-instance/pvr/pvr_menu_hook.h" \
144 "c-api/addon-instance/pvr/pvr_providers.h" \
145 "c-api/addon-instance/pvr/pvr_recordings.h" \
146 "c-api/addon-instance/pvr/pvr_stream.h" \
147 "c-api/addon-instance/pvr/pvr_timers.h" \
148 "addon-instance/PVR.h" \
149 "addon-instance/pvr/ChannelGroups.h" \
150 "addon-instance/pvr/Channels.h" \
151 "addon-instance/pvr/EDL.h" \
152 "addon-instance/pvr/EPG.h" \
153 "addon-instance/pvr/General.h" \
154 "addon-instance/pvr/MenuHook.h" \
155 "addon-instance/pvr/Providers.h" \
156 "addon-instance/pvr/Recordings.h" \
157 "addon-instance/pvr/Stream.h" \
158 "addon-instance/pvr/Timers.h"
160#define ADDON_INSTANCE_VERSION_SCREENSAVER "2.2.0"
161#define ADDON_INSTANCE_VERSION_SCREENSAVER_MIN "2.2.0"
162#define ADDON_INSTANCE_VERSION_SCREENSAVER_XML_ID "kodi.binary.instance.screensaver"
163#define ADDON_INSTANCE_VERSION_SCREENSAVER_DEPENDS "c-api/addon-instance/screensaver.h" \
164 "addon-instance/Screensaver.h"
166#define ADDON_INSTANCE_VERSION_SHADERPRESET "1.0.0"
167#define ADDON_INSTANCE_VERSION_SHADERPRESET_MIN "1.0.0"
168#define ADDON_INSTANCE_VERSION_SHADERPRESET_XML_ID "kodi.binary.instance.shaderpreset"
169#define ADDON_INSTANCE_VERSION_SHADERPRESET_DEPENDS "addon-instance/ShaderPreset.h"
171#define ADDON_INSTANCE_VERSION_VFS "3.0.1"
172#define ADDON_INSTANCE_VERSION_VFS_MIN "3.0.1"
173#define ADDON_INSTANCE_VERSION_VFS_XML_ID "kodi.binary.instance.vfs"
174#define ADDON_INSTANCE_VERSION_VFS_DEPENDS "c-api/addon-instance/vfs.h" \
175 "addon-instance/VFS.h"
177#define ADDON_INSTANCE_VERSION_VISUALIZATION "4.0.0"
178#define ADDON_INSTANCE_VERSION_VISUALIZATION_MIN "4.0.0"
179#define ADDON_INSTANCE_VERSION_VISUALIZATION_XML_ID "kodi.binary.instance.visualization"
180#define ADDON_INSTANCE_VERSION_VISUALIZATION_DEPENDS "addon-instance/Visualization.h" \
181 "c-api/addon-instance/visualization.h"
183#define ADDON_INSTANCE_VERSION_VIDEOCODEC "2.1.0"
184#define ADDON_INSTANCE_VERSION_VIDEOCODEC_MIN "2.1.0"
185#define ADDON_INSTANCE_VERSION_VIDEOCODEC_XML_ID "kodi.binary.instance.videocodec"
186#define ADDON_INSTANCE_VERSION_VIDEOCODEC_DEPENDS "c-api/addon-instance/video_codec.h" \
187 "c-api/addon-instance/inputstream/stream_codec.h" \
188 "c-api/addon-instance/inputstream/stream_crypto.h" \
189 "addon-instance/VideoCodec.h" \
190 "addon-instance/inputstream/StreamCodec.h" \
191 "addon-instance/inputstream/StreamCrypto.h"
210 ADDON_GLOBAL_MAIN = 0,
211 ADDON_GLOBAL_GUI = 1,
212 ADDON_GLOBAL_AUDIOENGINE = 2,
213 ADDON_GLOBAL_GENERAL = 3,
214 ADDON_GLOBAL_NETWORK = 4,
215 ADDON_GLOBAL_FILESYSTEM = 5,
216 ADDON_GLOBAL_TOOLS = 6,
219 ADDON_GLOBAL_MAX = 6,
279 inline const char* GetTypeVersion(
int type)
287 case ADDON_GLOBAL_MAIN:
288 return ADDON_GLOBAL_VERSION_MAIN;
289#if !defined(BUILD_KODI_ADDON) || defined(ADDON_GLOBAL_VERSION_GENERAL_USED)
290 case ADDON_GLOBAL_GENERAL:
291 return ADDON_GLOBAL_VERSION_GENERAL;
293#if !defined(BUILD_KODI_ADDON) || defined(ADDON_GLOBAL_VERSION_GUI_USED)
294 case ADDON_GLOBAL_GUI:
295 return ADDON_GLOBAL_VERSION_GUI;
297#if !defined(BUILD_KODI_ADDON) || defined(ADDON_GLOBAL_VERSION_AUDIOENGINE_USED)
298 case ADDON_GLOBAL_AUDIOENGINE:
299 return ADDON_GLOBAL_VERSION_AUDIOENGINE;
301#if !defined(BUILD_KODI_ADDON) || defined(ADDON_GLOBAL_VERSION_FILESYSTEM_USED)
302 case ADDON_GLOBAL_FILESYSTEM:
303 return ADDON_GLOBAL_VERSION_FILESYSTEM;
305#if !defined(BUILD_KODI_ADDON) || defined(ADDON_GLOBAL_VERSION_NETWORK_USED)
306 case ADDON_GLOBAL_NETWORK:
307 return ADDON_GLOBAL_VERSION_NETWORK;
309#if !defined(BUILD_KODI_ADDON) || defined(ADDON_GLOBAL_VERSION_TOOLS_USED)
310 case ADDON_GLOBAL_TOOLS:
311 return ADDON_GLOBAL_VERSION_TOOLS;
315#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_AUDIODECODER_USED)
317 return ADDON_INSTANCE_VERSION_AUDIODECODER;
319#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_AUDIOENCODER_USED)
321 return ADDON_INSTANCE_VERSION_AUDIOENCODER;
323#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_GAME_USED)
325 return ADDON_INSTANCE_VERSION_GAME;
327#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_IMAGEDECODER_USED)
329 return ADDON_INSTANCE_VERSION_IMAGEDECODER;
331#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_INPUTSTREAM_USED)
333 return ADDON_INSTANCE_VERSION_INPUTSTREAM;
335#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_PERIPHERAL_USED)
337 return ADDON_INSTANCE_VERSION_PERIPHERAL;
339#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_PVR_USED)
341 return ADDON_INSTANCE_VERSION_PVR;
343#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_SCREENSAVER_USED)
345 return ADDON_INSTANCE_VERSION_SCREENSAVER;
347#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_SHADERPRESET_USED)
349 return ADDON_INSTANCE_VERSION_SHADERPRESET;
351#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_VFS_USED)
353 return ADDON_INSTANCE_VERSION_VFS;
355#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_VISUALIZATION_USED)
357 return ADDON_INSTANCE_VERSION_VISUALIZATION;
359#if !defined(BUILD_KODI_ADDON) || defined(ADDON_INSTANCE_VERSION_VIDEOCODEC_USED)
361 return ADDON_INSTANCE_VERSION_VIDEOCODEC;
375 inline const char* GetTypeMinVersion(
int type)
380 case ADDON_GLOBAL_MAIN:
381 return ADDON_GLOBAL_VERSION_MAIN_MIN;
382 case ADDON_GLOBAL_GUI:
383 return ADDON_GLOBAL_VERSION_GUI_MIN;
384 case ADDON_GLOBAL_GENERAL:
385 return ADDON_GLOBAL_VERSION_GENERAL_MIN;
386 case ADDON_GLOBAL_AUDIOENGINE:
387 return ADDON_GLOBAL_VERSION_AUDIOENGINE_MIN;
388 case ADDON_GLOBAL_FILESYSTEM:
389 return ADDON_GLOBAL_VERSION_FILESYSTEM_MIN;
390 case ADDON_GLOBAL_NETWORK:
391 return ADDON_GLOBAL_VERSION_NETWORK_MIN;
392 case ADDON_GLOBAL_TOOLS:
393 return ADDON_GLOBAL_VERSION_TOOLS_MIN;
397 return ADDON_INSTANCE_VERSION_AUDIODECODER_MIN;
399 return ADDON_INSTANCE_VERSION_AUDIOENCODER_MIN;
401 return ADDON_INSTANCE_VERSION_GAME_MIN;
403 return ADDON_INSTANCE_VERSION_IMAGEDECODER_MIN;
405 return ADDON_INSTANCE_VERSION_INPUTSTREAM_MIN;
407 return ADDON_INSTANCE_VERSION_PERIPHERAL_MIN;
409 return ADDON_INSTANCE_VERSION_PVR_MIN;
411 return ADDON_INSTANCE_VERSION_SCREENSAVER_MIN;
413 return ADDON_INSTANCE_VERSION_SHADERPRESET_MIN;
415 return ADDON_INSTANCE_VERSION_VFS_MIN;
417 return ADDON_INSTANCE_VERSION_VISUALIZATION_MIN;
419 return ADDON_INSTANCE_VERSION_VIDEOCODEC_MIN;
431 inline const char* GetTypeName(
int type)
436 case ADDON_GLOBAL_MAIN:
438 case ADDON_GLOBAL_GUI:
440 case ADDON_GLOBAL_GENERAL:
442 case ADDON_GLOBAL_AUDIOENGINE:
443 return "AudioEngine";
444 case ADDON_GLOBAL_FILESYSTEM:
446 case ADDON_GLOBAL_NETWORK:
448 case ADDON_GLOBAL_TOOLS:
453 return "AudioDecoder";
455 return "AudioEncoder";
459 return "ImageDecoder";
461 return "Inputstream";
467 return "ScreenSaver";
469 return "ShaderPreset";
471 return "Visualization";
487 inline int GetTypeId(
const char* name)
491 if (strcmp(name,
"addon") == 0)
492 return ADDON_GLOBAL_MAIN;
493 else if (strcmp(name,
"general") == 0)
494 return ADDON_GLOBAL_GENERAL;
495 else if (strcmp(name,
"gui") == 0)
496 return ADDON_GLOBAL_GUI;
497 else if (strcmp(name,
"audioengine") == 0)
498 return ADDON_GLOBAL_AUDIOENGINE;
499 else if (strcmp(name,
"filesystem") == 0)
500 return ADDON_GLOBAL_FILESYSTEM;
501 else if (strcmp(name,
"network") == 0)
502 return ADDON_GLOBAL_NETWORK;
503 else if (strcmp(name,
"tools") == 0)
504 return ADDON_GLOBAL_TOOLS;
505 else if (strcmp(name,
"audiodecoder") == 0)
507 else if (strcmp(name,
"audioencoder") == 0)
509 else if (strcmp(name,
"game") == 0)
511 else if (strcmp(name,
"imagedecoder") == 0)
513 else if (strcmp(name,
"inputstream") == 0)
515 else if (strcmp(name,
"peripheral") == 0)
517 else if (strcmp(name,
"pvr") == 0)
519 else if (strcmp(name,
"screensaver") == 0)
521 else if (strcmp(name,
"shaderpreset") == 0)
523 else if (strcmp(name,
"vfs") == 0)
525 else if (strcmp(name,
"visualization") == 0)
527 else if (strcmp(name,
"videocodec") == 0)
ADDON_TYPE
Definition versions.h:208
@ ADDON_INSTANCE_PVR
PVR client instance, see kodi::addon::CInstancePVRClient.
Definition versions.h:239
@ ADDON_INSTANCE_AUDIODECODER
Audio decoder instance, see kodi::addon::CInstanceAudioDecoder.
Definition versions.h:224
@ ADDON_INSTANCE_VISUALIZATION
Music visualization instance, see kodi::addon::CInstanceVisualization.
Definition versions.h:245
@ ADDON_INSTANCE_AUDIOENCODER
Audio encoder instance, see kodi::addon::CInstanceAudioEncoder.
Definition versions.h:227
@ ADDON_INSTANCE_SCREENSAVER
Screen saver instance, see kodi::addon::CInstanceScreensaver.
Definition versions.h:242
@ ADDON_INSTANCE_VFS
Virtual Filesystem (VFS) instance, see kodi::addon::CInstanceVFS.
Definition versions.h:248
@ ADDON_INSTANCE_INPUTSTREAM
Input stream instance, see kodi::addon::CInstanceInputStream.
Definition versions.h:233
@ ADDON_INSTANCE_VIDEOCODEC
Video codec instance, see kodi::addon::CInstanceVideoCodec.
Definition versions.h:254
@ ADDON_INSTANCE_PERIPHERAL
Peripheral instance, see kodi::addon::CInstancePeripheral.
Definition versions.h:236
@ ADDON_INSTANCE_SHADERPRESET
Shader preset instance, see kodi::addon::CInstanceShaderPreset.
Definition versions.h:257
@ ADDON_INSTANCE_GAME
Game instance, see kodi::addon::CInstanceGame.
Definition versions.h:230
@ ADDON_INSTANCE_IMAGEDECODER
Image decoder instance, see kodi::addon::CInstanceImageDecoder.
Definition versions.h:251