Game operations
These are mandatory functions for using this add-on for gameplay functionality.
Game operation parts in interface:
Copy this to your project and extend with your parts or leave functions complete away where not used or supported.
|
| | Class: CStream |
| | Class: kodi::addon::CInstanceGame::CStream Game stream handler
|
| |
◆ LoadGame()
| virtual GAME_ERROR LoadGame |
( |
const std::string & | url | ) |
|
|
inlinevirtual |
◆ LoadGameSpecial()
Load a game that requires multiple files.
- Parameters
-
| [in] | type | The game type |
| [in] | urls | An array of urls |
- Returns
- The error, or GAME_ERROR_NO_ERROR if the game was loaded
◆ LoadStandalone()
Begin playing without a game file.
If the add-on supports standalone mode, it must add the <supports_standalone> tag to the extension point in addon.xml:
<supports_no_game>false</supports_no_game>
- Returns
- The error, or GAME_ERROR_NO_ERROR if the game add-on was loaded
◆ UnloadGame()
Unload the current game.
Unloads a currently loaded game
- Returns
- The error, or GAME_ERROR_NO_ERROR if the game was unloaded
◆ GetGameTiming()
Get timing information about the loaded game.
- Parameters
-
| [out] | timing_info | The info structure to fill |
- Returns
- The error, or GAME_ERROR_NO_ERROR if info was filled
◆ GetRegion()
Get region of the loaded game.
- Returns
- The region, or GAME_REGION_UNKNOWN if unknown or no game is loaded
◆ RequiresGameLoop()
| virtual bool RequiresGameLoop |
( |
| ) |
|
|
inlinevirtual |
Return true if the client requires the frontend to provide a game loop.
The game loop is a thread that calls RunFrame() in a loop at a rate determined by the playback speed and the client's FPS.
- Returns
- True if the frontend should provide a game loop, false otherwise
◆ RunFrame()
Run a single frame for add-ons that use a game loop.
- Returns
- The error, or GAME_ERROR_NO_ERROR if there was no error
◆ Reset()
◆ CloseGame()
Callback to Kodi Function
Requests the frontend to stop the current game
◆ ReportMissingFile()
| void ReportMissingFile |
( |
const std::string & | path | ) |
|
|
inline |
Callback to Kodi Function
Name a file the game client looked for and couldn't find, such as a BIOS file, so Kodi can tell the user which one is missing.
- Parameters
-
| [in] | path | The file's path, relative to the system directory |
◆ GetPlaybackSpeed()
| double GetPlaybackSpeed |
( |
| ) |
|
|
inline |
Callback to Kodi Function
Get the speed the game is being played back at
- Returns
- The speed as a multiple of normal speed
The value is the same one Kodi shows the user, so it follows the player's fast-forward and rewind semantics:
1.0 is normal speed
0.0 is paused
- greater than
1.0 is fast-forward
- between
0.0 and 1.0 is slow motion
- less than
0.0 is rewind
Rewind is driven by Kodi replaying saved states, so a client is run forwards even while the speed is negative. A client that changes its behaviour with the speed should read the sign as "the user is going
backwards", not as a direction to run in.
◆ SetGameTiming()
Callback to Kodi Function
Update the video and audio timing of the running game
- Parameters
-
| [in] | timingInfo | The new video frame rate and audio sample rate |
This updates timing reported by the add-on after gameplay has started. Add-ons should call this when the game changes its timing dynamically.
◆ SetFastForwarding()
| void SetFastForwarding |
( |
bool | fastForward, |
|
|
double | ratio ) |
|
inline |
Callback to Kodi Function
Ask Kodi to fast-forward the game, or to stop a fast-forward it asked for
- Parameters
-
| [in] | fastForward | True to fast-forward, false to return to normal speed |
| [in] | ratio | The speed asked for if above 1, otherwise Kodi chooses |
For a game that wants to pass over a wait of its own, such as loading from tape. Kodi leaves a speed the user chose alone: it only fast-forwards from normal speed, and only returns to normal speed from the one it set.