xbmc
GameClientTranslator.h
1 /*
2  * Copyright (C) 2016-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "addons/kodi-dev-kit/include/kodi/addon-instance/Game.h"
12 #include "cores/RetroPlayer/streams/RetroPlayerStreamTypes.h"
13 #include "games/controllers/ControllerTypes.h"
14 #include "input/keyboard/KeyboardTypes.h"
15 
16 extern "C"
17 {
18 #include <libavutil/pixfmt.h>
19 }
20 
21 namespace KODI
22 {
23 namespace GAME
24 {
32 {
33  CGameClientTranslator() = delete;
34 
35 public:
41  static const char* ToString(GAME_ERROR error);
42 
48  static const char* ToString(GAME_MEMORY error);
49 
56  static bool TranslateStreamType(GAME_STREAM_TYPE gameType, RETRO::StreamType& retroType);
57 
63  static AVPixelFormat TranslatePixelFormat(GAME_PIXEL_FORMAT format);
64 
70  static GAME_PIXEL_FORMAT TranslatePixelFormat(AVPixelFormat format);
71 
77  static RETRO::PCMFormat TranslatePCMFormat(GAME_PCM_FORMAT format);
78 
84  static RETRO::AudioChannel TranslateAudioChannel(GAME_AUDIO_CHANNEL channel);
85 
91  static RETRO::VideoRotation TranslateRotation(GAME_VIDEO_ROTATION rotation);
92 
98  static GAME_KEY_MOD GetModifiers(KEYBOARD::Modifier modifier);
99 
105  static const char* TranslateRegion(GAME_REGION region);
106 
112  static PORT_TYPE TranslatePortType(GAME_PORT_TYPE portType);
113 };
114 } // namespace GAME
115 } // namespace KODI
static GAME_KEY_MOD GetModifiers(KEYBOARD::Modifier modifier)
Translate key modifiers (Kodi to Game API).
Definition: GameClientTranslator.cpp:199
GAME_AUDIO_CHANNEL
Audio channel
Definition: game.h:90
GAME_VIDEO_ROTATION
Video rotation position
Definition: game.h:221
static RETRO::VideoRotation TranslateRotation(GAME_VIDEO_ROTATION rotation)
Translate video rotation (Game API to RetroPlayer).
Definition: GameClientTranslator.cpp:183
GAME_PCM_FORMAT
Stream Format
Definition: game.h:76
static PORT_TYPE TranslatePortType(GAME_PORT_TYPE portType)
Translate port type (Game API to Kodi)
Definition: GameClientTranslator.cpp:241
Translates data types from Game API to the corresponding format in Kodi.
Definition: GameClientTranslator.h:31
static RETRO::AudioChannel TranslateAudioChannel(GAME_AUDIO_CHANNEL channel)
Translate audio channels (Game API to RetroPlayer).
Definition: GameClientTranslator.cpp:133
static RETRO::PCMFormat TranslatePCMFormat(GAME_PCM_FORMAT format)
Translate audio PCM format (Game API to RetroPlayer).
Definition: GameClientTranslator.cpp:121
Controller configuration window.
Definition: AudioDecoder.h:18
GAME_MEMORY
Game Memory
Definition: game.h:599
GAME_PORT_TYPE
Type of port on the virtual game console.
Definition: game.h:768
GAME_PIXEL_FORMAT
Pixel format
Definition: game.h:201
GAME_REGION
Game reguin definition
Definition: game.h:562
static const char * ToString(GAME_ERROR error)
Translates game errors to string representation (e.g. for logging).
Definition: GameClientTranslator.cpp:14
static const char * TranslateRegion(GAME_REGION region)
Translate region to string representation (e.g. for logging).
Definition: GameClientTranslator.cpp:227
static bool TranslateStreamType(GAME_STREAM_TYPE gameType, RETRO::StreamType &retroType)
Translate stream type (Game API to RetroPlayer).
Definition: GameClientTranslator.cpp:66
GAME_STREAM_TYPE
Game stream types
Definition: game.h:457
static AVPixelFormat TranslatePixelFormat(GAME_PIXEL_FORMAT format)
Translate pixel format (Game API to RetroPlayer/FFMPEG).
Definition: GameClientTranslator.cpp:89