kodi
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 {
33 {
34  CGameClientTranslator() = delete;
35 
36 public:
42  static const char* ToString(GAME_ERROR error);
43 
49  static const char* ToString(GAME_MEMORY error);
50 
57  static bool TranslateStreamType(GAME_STREAM_TYPE gameType, RETRO::StreamType& retroType);
58 
64  static AVPixelFormat TranslatePixelFormat(GAME_PIXEL_FORMAT format);
65 
71  static GAME_PIXEL_FORMAT TranslatePixelFormat(AVPixelFormat format);
72 
78  static RETRO::PCMFormat TranslatePCMFormat(GAME_PCM_FORMAT format);
79 
85  static RETRO::AudioChannel TranslateAudioChannel(GAME_AUDIO_CHANNEL channel);
86 
92  static RETRO::VideoRotation TranslateRotation(GAME_VIDEO_ROTATION rotation);
93 
99  static GAME_KEY_MOD GetModifiers(KEYBOARD::Modifier modifier);
100 
106  static const char* TranslateRegion(GAME_REGION region);
107 
113  static PORT_TYPE TranslatePortType(GAME_PORT_TYPE portType);
114 };
115 } // namespace GAME
116 } // 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:84
GAME_VIDEO_ROTATION
Video rotation position
Definition: game.h:215
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:70
static PORT_TYPE TranslatePortType(GAME_PORT_TYPE portType)
Translate port type (Game API to Kodi)
Definition: GameClientTranslator.cpp:241
GAME_KEY_MOD
A modifier key pressed to give another key a special meaning.
Definition: game.h:788
Translates data types from Game API to the corresponding format in Kodi.
Definition: GameClientTranslator.h:32
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
Definition: AudioDecoder.h:18
GAME_MEMORY
Game Memory
Definition: game.h:596
GAME_PORT_TYPE
Type of port on the virtual game console.
Definition: game.h:821
GAME_PIXEL_FORMAT
Pixel format
Definition: game.h:195
GAME_REGION
Game region definition
Definition: game.h:559
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
PORT_TYPE
Type of input provided by a hardware or controller port.
Definition: ControllerTypes.h:39
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:451
static AVPixelFormat TranslatePixelFormat(GAME_PIXEL_FORMAT format)
Translate pixel format (Game API to RetroPlayer/FFMPEG).
Definition: GameClientTranslator.cpp:89