From be933ef2241d79558f91796cc5b3a161f72ebf9c Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 19 Oct 2020 00:52:24 +0200 Subject: sync with upstream --- .../kodi/c-api/addon-instance/image_decoder.h | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/image_decoder.h (limited to 'xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/image_decoder.h') diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/image_decoder.h b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/image_decoder.h new file mode 100644 index 0000000..6455b38 --- /dev/null +++ b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/image_decoder.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2005-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#ifndef C_API_ADDONINSTANCE_IMAGE_DECODER_H +#define C_API_ADDONINSTANCE_IMAGE_DECODER_H + +#include "../addon_base.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + //============================================================================ + /// @ingroup cpp_kodi_addon_imagedecoder_Defs + /// @brief **Image format types**\n + /// Used to define wanted target format where image decoder should give to + /// Kodi. + /// + typedef enum ImageFormat + { + /// @brief A 32-bit ARGB pixel format, with alpha, that uses 8 bits per + /// channel, ARGBARGB... + ADDON_IMG_FMT_A8R8G8B8 = 1, + + /// @brief A 8, alpha only, 8bpp, AAA... + ADDON_IMG_FMT_A8 = 2, + + /// @brief RGBA 8:8:8:8, with alpha, 32bpp, RGBARGBA... + ADDON_IMG_FMT_RGBA8 = 3, + + /// @brief RGB 8:8:8, with alpha, 24bpp, RGBRGB... + ADDON_IMG_FMT_RGB8 = 4 + } ImageFormat; + //---------------------------------------------------------------------------- + + typedef struct AddonProps_ImageDecoder + { + const char* mimetype; + } AddonProps_ImageDecoder; + + typedef struct AddonToKodiFuncTable_ImageDecoder + { + KODI_HANDLE kodi_instance; + } AddonToKodiFuncTable_ImageDecoder; + + struct AddonInstance_ImageDecoder; + typedef struct KodiToAddonFuncTable_ImageDecoder + { + KODI_HANDLE addonInstance; + bool(__cdecl* load_image_from_memory)(const struct AddonInstance_ImageDecoder* instance, + unsigned char* buffer, + unsigned int buf_size, + unsigned int* width, + unsigned int* height); + + bool(__cdecl* decode)(const struct AddonInstance_ImageDecoder* instance, + unsigned char* pixels, + unsigned int width, + unsigned int height, + unsigned int pitch, + enum ImageFormat format); + } KodiToAddonFuncTable_ImageDecoder; + + typedef struct AddonInstance_ImageDecoder + { + struct AddonProps_ImageDecoder* props; + struct AddonToKodiFuncTable_ImageDecoder* toKodi; + struct KodiToAddonFuncTable_ImageDecoder* toAddon; + } AddonInstance_ImageDecoder; + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* !C_API_ADDONINSTANCE_IMAGE_DECODER_H */ -- cgit v1.2.3