1 /*
2  *  Copyright (C) 2005-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 /**
12  * \defgroup kodi_key_action_ids Action Id's
13  * \ingroup python_xbmcgui_window_cb
14  * \ingroup python_xbmcgui_action
15  * @{
16  * @brief Actions that we have defined.
17  */
18 #define ACTION_NONE 0
19 #define ACTION_MOVE_LEFT 1
20 #define ACTION_MOVE_RIGHT 2
21 #define ACTION_MOVE_UP 3
22 #define ACTION_MOVE_DOWN 4
23 #define ACTION_PAGE_UP 5
24 #define ACTION_PAGE_DOWN 6
25 #define ACTION_SELECT_ITEM 7
26 #define ACTION_HIGHLIGHT_ITEM 8
27 #define ACTION_PARENT_DIR 9
28 #define ACTION_PREVIOUS_MENU 10
29 #define ACTION_SHOW_INFO 11
30 
31 #define ACTION_PAUSE 12
32 #define ACTION_STOP 13
33 #define ACTION_NEXT_ITEM 14
34 #define ACTION_PREV_ITEM 15
35 
36 //! Can be used to specify specific action in a window, Playback control is
37 //! handled in ACTION_PLAYER_*
38 #define ACTION_FORWARD 16
39 
40 //! Can be used to specify specific action in a window, Playback control is
41 //! handled in ACTION_PLAYER_*
42 #define ACTION_REWIND 17
43 
44 //! Toggle between GUI and movie or GUI and visualisation.
45 #define ACTION_SHOW_GUI 18
46 
47 //! Toggle quick-access zoom modes. Can be used in videoFullScreen.zml window id=2005
48 #define ACTION_ASPECT_RATIO 19
49 
50 //! Seek +1% in the movie. Can be used in videoFullScreen.xml window id=2005
51 #define ACTION_STEP_FORWARD 20
52 
53 //! Seek -1% in the movie. Can be used in videoFullScreen.xml window id=2005
54 #define ACTION_STEP_BACK 21
55 
56 //! Seek +10% in the movie. Can be used in videoFullScreen.xml window id=2005
57 #define ACTION_BIG_STEP_FORWARD 22
58 
59 //! Seek -10% in the movie. Can be used in videoFullScreen.xml window id=2005
60 #define ACTION_BIG_STEP_BACK 23
61 
62 //! Show/hide OSD. Can be used in videoFullScreen.xml window id=2005
63 #define ACTION_SHOW_OSD 24
64 
65 //! Turn subtitles on/off. Can be used in videoFullScreen.xml window id=2005
66 #define ACTION_SHOW_SUBTITLES 25
67 
68 //! Switch to next subtitle of movie. Can be used in videoFullScreen.xml window id=2005
69 #define ACTION_NEXT_SUBTITLE 26
70 
71 //! Show debug info for VideoPlayer
72 #define ACTION_PLAYER_DEBUG 27
73 
74 //! Show next picture of slideshow. Can be used in slideshow.xml window id=2007
75 #define ACTION_NEXT_PICTURE 28
76 
77 //! Show previous picture of slideshow. Can be used in slideshow.xml window id=2007
78 #define ACTION_PREV_PICTURE 29
79 
80 //! Zoom in picture during slideshow. Can be used in slideshow.xml window id=2007
81 #define ACTION_ZOOM_OUT 30
82 
83 //! Zoom out picture during slideshow. Can be used in slideshow.xml window id=2007
84 #define ACTION_ZOOM_IN 31
85 
86 //! Used to toggle between source view and destination view. Can be used in
87 //! myfiles.xml window < id=3
88 #define ACTION_TOGGLE_SOURCE_DEST 32
89 
90 //! Used to toggle between current view and playlist view. Can be used in all mymusic xml files
91 #define ACTION_SHOW_PLAYLIST 33
92 
93 //! Used to queue a item to the playlist. Can be used in all mymusic xml files
94 #define ACTION_QUEUE_ITEM 34
95 
96 //! Not used anymore
97 #define ACTION_REMOVE_ITEM 35
98 
99 //! Not used anymore
100 #define ACTION_SHOW_FULLSCREEN 36
101 
102 //! Zoom 1x picture during slideshow. Can be used in slideshow.xml window id=2007
103 #define ACTION_ZOOM_LEVEL_NORMAL 37
104 
105 //! Zoom 2x picture during slideshow. Can be used in slideshow.xml window id=2007
106 #define ACTION_ZOOM_LEVEL_1 38
107 
108 //! Zoom 3x picture during slideshow. Can be used in slideshow.xml window id=2007
109 #define ACTION_ZOOM_LEVEL_2 39
110 
111 //! Zoom 4x picture during slideshow. Can be used in slideshow.xml window id=2007
112 #define ACTION_ZOOM_LEVEL_3 40
113 
114 //! Zoom 5x picture during slideshow. Can be used in slideshow.xml window id=2007
115 #define ACTION_ZOOM_LEVEL_4 41
116 
117 //! Zoom 6x picture during slideshow. Can be used in slideshow.xml window id=2007
118 #define ACTION_ZOOM_LEVEL_5 42
119 
120 //! Zoom 7x picture during slideshow. Can be used in slideshow.xml window id=2007
121 #define ACTION_ZOOM_LEVEL_6 43
122 
123 //! Zoom 8x picture during slideshow. Can be used in slideshow.xml window id=2007
124 #define ACTION_ZOOM_LEVEL_7 44
125 
126 //! Zoom 9x picture during slideshow. Can be used in slideshow.xml window id=2007
127 #define ACTION_ZOOM_LEVEL_8 45
128 
129 //< Zoom 10x picture during slideshow. Can be used in slideshow.xml window id=2007
130 #define ACTION_ZOOM_LEVEL_9 46
131 
132 //< Select next arrow. Can be used in: settingsScreenCalibration.xml windowid=11
133 #define ACTION_CALIBRATE_SWAP_ARROWS 47
134 
135 //! Reset calibration to defaults. Can be used in: `settingsScreenCalibration.xml`
136 //! windowid=11/settingsUICalibration.xml windowid=10
137 #define ACTION_CALIBRATE_RESET 48
138 
139 //! Analog thumbstick move. Can be used in: `slideshow.xml`
140 //! windowid=2007/settingsScreenCalibration.xml windowid=11/settingsUICalibration.xml
141 //! windowid=10
142 //! @note see also ACTION_ANALOG_MOVE_X_LEFT, ACTION_ANALOG_MOVE_X_RIGHT,
143 //! ACTION_ANALOG_MOVE_Y_UP, ACTION_ANALOG_MOVE_Y_DOWN
144 #define ACTION_ANALOG_MOVE 49
145 
146 //! Rotate current picture clockwise during slideshow. Can be used in
147 //! slideshow.xml window < id=2007
148 #define ACTION_ROTATE_PICTURE_CW 50
149 
150 //! Rotate current picture counterclockwise during slideshow. Can be used in
151 //! slideshow.xml window id=2007
152 #define ACTION_ROTATE_PICTURE_CCW 51
153 
154 //! Decrease subtitle/movie Delay.  Can be used in videoFullScreen.xml window id=2005
155 #define ACTION_SUBTITLE_DELAY_MIN 52
156 
157 //! Increase subtitle/movie Delay.  Can be used in videoFullScreen.xml window id=2005
158 #define ACTION_SUBTITLE_DELAY_PLUS 53
159 
160 //! Increase avsync delay.  Can be used in videoFullScreen.xml window id=2005
161 #define ACTION_AUDIO_DELAY_MIN 54
162 
163 //! Decrease avsync delay.  Can be used in videoFullScreen.xml window id=2005
164 #define ACTION_AUDIO_DELAY_PLUS 55
165 
166 //! Select next language in movie.  Can be used in videoFullScreen.xml window id=2005
167 #define ACTION_AUDIO_NEXT_LANGUAGE 56
168 
169 //! Switch 2 next resolution. Can b used during screen calibration
170 //! settingsScreenCalibration.xml windowid=11
171 #define ACTION_CHANGE_RESOLUTION 57
172 
173 //! Remote keys 0-9 are used by multiple windows.
174 //!
175 //! For example, in videoFullScreen.xml window id=2005 you can enter
176 //! time (mmss) to jump to particular point in the movie.
177 //!
178 //! With spincontrols you can enter a 3-digit number to quickly set the
179 //! spincontrol to desired value.
180 //!@{
181 #define REMOTE_0 58
182 
183 //! @see REMOTE_0 about details.
184 #define REMOTE_1 59
185 
186 //! @see REMOTE_0 about details.
187 #define REMOTE_2 60
188 
189 //! @see REMOTE_0 about details.
190 #define REMOTE_3 61
191 
192 //! @see REMOTE_0 about details.
193 #define REMOTE_4 62
194 
195 //! @see REMOTE_0 about details.
196 #define REMOTE_5 63
197 
198 //! @see REMOTE_0 about details.
199 #define REMOTE_6 64
200 
201 //! @see REMOTE_0 about details.
202 #define REMOTE_7 65
203 
204 //! @see REMOTE_0 about details.
205 #define REMOTE_8 66
206 
207 //! @see REMOTE_0 about details.
208 #define REMOTE_9 67
209 //!@}
210 
211 //! Show player process info (video decoder, pixel format, pvr signal strength
212 //! and the like
213 #define ACTION_PLAYER_PROCESS_INFO 69
214 
215 #define ACTION_PLAYER_PROGRAM_SELECT 70
216 
217 #define ACTION_PLAYER_RESOLUTION_SELECT 71
218 
219 //! Jumps a few seconds back during playback of movie. Can be used in videoFullScreen.xml
220 //! window id=2005
221 #define ACTION_SMALL_STEP_BACK 76
222 
223 //! FF in current file played. global action, can be used anywhere
224 #define ACTION_PLAYER_FORWARD 77
225 
226 //! RW in current file played. global action, can be used anywhere
227 #define ACTION_PLAYER_REWIND 78
228 
229 //! Play current song. Unpauses song and sets playspeed to 1x. global action,
230 //! can be used anywhere
231 #define ACTION_PLAYER_PLAY 79
232 
233 //! Delete current selected item. Can be used in myfiles.xml window id=3 and in
234 //! myvideoTitle.xml window id=25
235 #define ACTION_DELETE_ITEM 80
236 
237 //! Copy current selected item. Can be used in myfiles.xml window id=3
238 #define ACTION_COPY_ITEM 81
239 
240 //! Move current selected item. Can be used in myfiles.xml window id=3
241 #define ACTION_MOVE_ITEM 82
242 
243 //! Take a screenshot
244 #define ACTION_TAKE_SCREENSHOT 85
245 
246 //! Rename item
247 #define ACTION_RENAME_ITEM 87
248 
249 #define ACTION_VOLUME_UP 88
250 #define ACTION_VOLUME_DOWN 89
251 #define ACTION_VOLAMP 90
252 #define ACTION_MUTE 91
253 #define ACTION_NAV_BACK 92
254 #define ACTION_VOLAMP_UP 93
255 #define ACTION_VOLAMP_DOWN 94
256 
257 //! Creates an episode bookmark on the currently playing video file containing
258 //! more than one episode
259 #define ACTION_CREATE_EPISODE_BOOKMARK 95
260 
261 //! Creates a bookmark of the currently playing video file
262 #define ACTION_CREATE_BOOKMARK 96
263 
264 //! Goto the next chapter, if not available perform a big step forward
265 #define ACTION_CHAPTER_OR_BIG_STEP_FORWARD 97
266 
267 //! Goto the previous chapter, if not available perform a big step back
268 #define ACTION_CHAPTER_OR_BIG_STEP_BACK 98
269 
270 //! Switch to next subtitle of movie, but will not enable/disable the subtitles.
271 //! Can be used in videoFullScreen.xml window id=2005
272 #define ACTION_CYCLE_SUBTITLE 99
273 
274 #define ACTION_MOUSE_START 100
275 #define ACTION_MOUSE_LEFT_CLICK 100
276 #define ACTION_MOUSE_RIGHT_CLICK 101
277 #define ACTION_MOUSE_MIDDLE_CLICK 102
278 #define ACTION_MOUSE_DOUBLE_CLICK 103
279 #define ACTION_MOUSE_WHEEL_UP 104
280 #define ACTION_MOUSE_WHEEL_DOWN 105
281 #define ACTION_MOUSE_DRAG 106
282 #define ACTION_MOUSE_MOVE 107
283 #define ACTION_MOUSE_LONG_CLICK 108
284 #define ACTION_MOUSE_DRAG_END 109
285 #define ACTION_MOUSE_END 109
286 
287 #define ACTION_BACKSPACE 110
288 #define ACTION_SCROLL_UP 111
289 #define ACTION_SCROLL_DOWN 112
290 #define ACTION_ANALOG_FORWARD 113
291 #define ACTION_ANALOG_REWIND 114
292 
293 #define ACTION_MOVE_ITEM_UP 115 //!< move item up in playlist
294 #define ACTION_MOVE_ITEM_DOWN 116 //!< move item down in playlist
295 #define ACTION_CONTEXT_MENU 117 //!< pops up the context menu
296 
297 // stuff for virtual keyboard shortcuts
298 #define ACTION_SHIFT 118 //!< stuff for virtual keyboard shortcuts
299 #define ACTION_SYMBOLS 119 //!< stuff for virtual keyboard shortcuts
300 #define ACTION_CURSOR_LEFT 120 //!< stuff for virtual keyboard shortcuts
301 #define ACTION_CURSOR_RIGHT 121 //!< stuff for virtual keyboard shortcuts
302 
303 #define ACTION_BUILT_IN_FUNCTION 122
304 
305 //! Displays current time, can be used in videoFullScreen.xml window id=2005
306 #define ACTION_SHOW_OSD_TIME 123
307 
308 #define ACTION_ANALOG_SEEK_FORWARD 124 //!< seeks forward, and displays the seek bar.
309 #define ACTION_ANALOG_SEEK_BACK 125 //!< seeks backward, and displays the seek bar.
310 
311 #define ACTION_VIS_PRESET_SHOW 126
312 #define ACTION_VIS_PRESET_NEXT 128
313 #define ACTION_VIS_PRESET_PREV 129
314 #define ACTION_VIS_PRESET_LOCK 130
315 #define ACTION_VIS_PRESET_RANDOM 131
316 #define ACTION_VIS_RATE_PRESET_PLUS 132
317 #define ACTION_VIS_RATE_PRESET_MINUS 133
318 
319 #define ACTION_SHOW_VIDEOMENU 134
320 #define ACTION_ENTER 135
321 
322 #define ACTION_INCREASE_RATING 136
323 #define ACTION_DECREASE_RATING 137
324 
325 #define ACTION_NEXT_SCENE 138 //!< switch to next scene/cutpoint in movie
326 #define ACTION_PREV_SCENE 139 //!< switch to previous scene/cutpoint in movie
327 
328 #define ACTION_NEXT_LETTER 140 //!< jump through a list or container by letter
329 #define ACTION_PREV_LETTER 141
330 
331 #define ACTION_JUMP_SMS2 142 //!< jump direct to a particular letter using SMS-style input
332 #define ACTION_JUMP_SMS3 143
333 #define ACTION_JUMP_SMS4 144
334 #define ACTION_JUMP_SMS5 145
335 #define ACTION_JUMP_SMS6 146
336 #define ACTION_JUMP_SMS7 147
337 #define ACTION_JUMP_SMS8 148
338 #define ACTION_JUMP_SMS9 149
339 
340 #define ACTION_FILTER_CLEAR 150
341 #define ACTION_FILTER_SMS2 151
342 #define ACTION_FILTER_SMS3 152
343 #define ACTION_FILTER_SMS4 153
344 #define ACTION_FILTER_SMS5 154
345 #define ACTION_FILTER_SMS6 155
346 #define ACTION_FILTER_SMS7 156
347 #define ACTION_FILTER_SMS8 157
348 #define ACTION_FILTER_SMS9 158
349 
350 #define ACTION_FIRST_PAGE 159
351 #define ACTION_LAST_PAGE 160
352 
353 #define ACTION_AUDIO_DELAY 161
354 #define ACTION_SUBTITLE_DELAY 162
355 #define ACTION_MENU 163
356 
357 #define ACTION_SET_RATING 164
358 
359 #define ACTION_RECORD 170
360 
361 #define ACTION_PASTE 180
362 #define ACTION_NEXT_CONTROL 181
363 #define ACTION_PREV_CONTROL 182
364 #define ACTION_CHANNEL_SWITCH 183
365 #define ACTION_CHANNEL_UP 184
366 #define ACTION_CHANNEL_DOWN 185
367 #define ACTION_NEXT_CHANNELGROUP 186
368 #define ACTION_PREVIOUS_CHANNELGROUP 187
369 #define ACTION_PVR_PLAY 188
370 #define ACTION_PVR_PLAY_TV 189
371 #define ACTION_PVR_PLAY_RADIO 190
372 #define ACTION_PVR_SHOW_TIMER_RULE 191
373 #define ACTION_CHANNEL_NUMBER_SEP 192
374 #define ACTION_PVR_ANNOUNCE_REMINDERS 193
375 
376 #define ACTION_TOGGLE_FULLSCREEN 199 //!< switch 2 desktop resolution
377 #define ACTION_TOGGLE_WATCHED 200 //!< Toggle watched status (videos)
378 #define ACTION_SCAN_ITEM 201 //!< scan item
379 #define ACTION_TOGGLE_DIGITAL_ANALOG 202 //!< switch digital <-> analog
380 #define ACTION_RELOAD_KEYMAPS 203 //!< reloads CButtonTranslator's keymaps
381 #define ACTION_GUIPROFILE_BEGIN 204 //!< start the GUIControlProfiler running
382 
383 #define ACTION_TELETEXT_RED 215 //!< Teletext Color button <b>Red</b> to control TopText
384 #define ACTION_TELETEXT_GREEN 216 //!< Teletext Color button <b>Green</b> to control TopText
385 #define ACTION_TELETEXT_YELLOW 217 //!< Teletext Color button <b>Yellow</b> to control TopText
386 #define ACTION_TELETEXT_BLUE 218 //!< Teletext Color button <b>Blue</b> to control TopText
387 
388 #define ACTION_INCREASE_PAR 219
389 #define ACTION_DECREASE_PAR 220
390 
391 #define ACTION_VSHIFT_UP 227 //!< shift up video image in VideoPlayer
392 #define ACTION_VSHIFT_DOWN 228 //!< shift down video image in VideoPlayer
393 
394 #define ACTION_PLAYER_PLAYPAUSE 229 //!< Play/pause. If playing it pauses, if paused it plays.
395 
396 #define ACTION_SUBTITLE_VSHIFT_UP 230 //!< shift up subtitles in VideoPlayer
397 #define ACTION_SUBTITLE_VSHIFT_DOWN 231 //!< shift down subtitles in VideoPlayer
398 #define ACTION_SUBTITLE_ALIGN 232 //!< toggle vertical alignment of subtitles
399 
400 #define ACTION_FILTER 233
401 
402 #define ACTION_SWITCH_PLAYER 234
403 
404 #define ACTION_STEREOMODE_NEXT 235
405 #define ACTION_STEREOMODE_PREVIOUS 236
406 #define ACTION_STEREOMODE_TOGGLE 237 //!< turns 3d mode on/off
407 #define ACTION_STEREOMODE_SELECT 238
408 #define ACTION_STEREOMODE_TOMONO 239
409 #define ACTION_STEREOMODE_SET 240
410 
411 #define ACTION_SETTINGS_RESET 241
412 #define ACTION_SETTINGS_LEVEL_CHANGE 242
413 
414 //! Show autoclosing OSD. Can be used in videoFullScreen.xml window id=2005
415 #define ACTION_TRIGGER_OSD 243
416 #define ACTION_INPUT_TEXT 244
417 #define ACTION_VOLUME_SET 245
418 #define ACTION_TOGGLE_COMMSKIP 246
419 
420 #define ACTION_BROWSE_SUBTITLE 247 //!< Browse for subtitle. Can be used in videofullscreen
421 
422 #define ACTION_PLAYER_RESET 248 //!< Send a reset command to the active game
423 
424 #define ACTION_TOGGLE_FONT 249 //!< Toggle font. Used in TextViewer dialog
425 
426 #define ACTION_VIDEO_NEXT_STREAM 250 //!< Cycle video streams. Used in videofullscreen.
427 
428 //! Used to queue an item to the next position in the playlist
429 #define ACTION_QUEUE_ITEM_NEXT 251
430 
431 #define ACTION_HDR_TOGGLE 260 //!< Toggle display HDR on/off
432 
433 #define ACTION_CYCLE_TONEMAP_METHOD 261 //!< Switch to next tonemap method
434 
435 //! Show debug info for video (source format, metadata, shaders, render flags and output format)
436 #define ACTION_PLAYER_DEBUG_VIDEO 262
437 
438 // Voice actions
439 #define ACTION_VOICE_RECOGNIZE 300
440 
441 // Touch actions
442 #define ACTION_TOUCH_TAP 401 //!< touch actions
443 #define ACTION_TOUCH_TAP_TEN 410 //!< touch actions
444 #define ACTION_TOUCH_LONGPRESS 411 //!< touch actions
445 #define ACTION_TOUCH_LONGPRESS_TEN 420 //!< touch actions
446 
447 #define ACTION_GESTURE_NOTIFY 500
448 #define ACTION_GESTURE_BEGIN 501
449 
450 //! sendaction with point and currentPinchScale (fingers together < 1.0 ->
451 //! fingers apart  > 1.0)
452 #define ACTION_GESTURE_ZOOM 502
453 #define ACTION_GESTURE_ROTATE 503
454 #define ACTION_GESTURE_PAN 504
455 #define ACTION_GESTURE_ABORT 505 //!< gesture was interrupted in unspecified state
456 
457 #define ACTION_GESTURE_SWIPE_LEFT 511
458 #define ACTION_GESTURE_SWIPE_LEFT_TEN 520
459 #define ACTION_GESTURE_SWIPE_RIGHT 521
460 #define ACTION_GESTURE_SWIPE_RIGHT_TEN 530
461 #define ACTION_GESTURE_SWIPE_UP 531
462 #define ACTION_GESTURE_SWIPE_UP_TEN 540
463 #define ACTION_GESTURE_SWIPE_DOWN 541
464 #define ACTION_GESTURE_SWIPE_DOWN_TEN 550
465 
466 //! 5xx is reserved for additional gesture actions
467 #define ACTION_GESTURE_END 599
468 
469 /*!
470  * @brief Other, non-gesture actions
471  */
472 ///@{
473 
474 //!< analog thumbstick move, horizontal axis, left; see ACTION_ANALOG_MOVE
475 #define ACTION_ANALOG_MOVE_X_LEFT 601
476 
477 //!< analog thumbstick move, horizontal axis, right; see ACTION_ANALOG_MOVE
478 #define ACTION_ANALOG_MOVE_X_RIGHT 602
479 
480 //!< analog thumbstick move, vertical axis, up; see ACTION_ANALOG_MOVE
481 #define ACTION_ANALOG_MOVE_Y_UP 603
482 
483 //!< analog thumbstick move, vertical axis, down; see ACTION_ANALOG_MOVE
484 #define ACTION_ANALOG_MOVE_Y_DOWN 604
485 
486 ///@}
487 
488 // The NOOP action can be specified to disable an input event. This is
489 // useful in user keyboard.xml etc to disable actions specified in the
490 // system mappings. ERROR action is used to play an error sound
491 #define ACTION_ERROR 998
492 #define ACTION_NOOP 999
493