kodi_client 0.6.3 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/README.md +1 -0
  4. data/kodi_client.gemspec +2 -2
  5. data/lib/kodi_client/extensions/chainable.rb +73 -0
  6. data/lib/kodi_client/extensions/comparable.rb +29 -0
  7. data/lib/kodi_client/extensions/creatable.rb +132 -0
  8. data/lib/kodi_client/extensions/iterable.rb +14 -0
  9. data/lib/kodi_client/kodi_error.rb +14 -0
  10. data/lib/kodi_client/kodi_method.rb +34 -0
  11. data/lib/kodi_client/{options.rb → kodi_options.rb} +1 -1
  12. data/lib/kodi_client/kodi_request.rb +16 -0
  13. data/lib/kodi_client/kodi_response.rb +21 -0
  14. data/lib/kodi_client/{method → methods}/addons.rb +6 -6
  15. data/lib/kodi_client/{method → methods}/application.rb +2 -2
  16. data/lib/kodi_client/methods/audio_library.rb +334 -0
  17. data/lib/kodi_client/{method → methods}/favourites.rb +2 -2
  18. data/lib/kodi_client/{method → methods}/files.rb +6 -10
  19. data/lib/kodi_client/{method → methods}/gui.rb +2 -2
  20. data/lib/kodi_client/{method → methods}/input.rb +2 -2
  21. data/lib/kodi_client/{method → methods}/player.rb +2 -2
  22. data/lib/kodi_client/{method → methods}/profiles.rb +5 -7
  23. data/lib/kodi_client/{method → methods}/system.rb +2 -2
  24. data/lib/kodi_client/methods/video_library.rb +18 -0
  25. data/lib/kodi_client/types/addons/addon_content_type.rb +18 -0
  26. data/lib/kodi_client/types/addons/addon_dependency_type.rb +21 -0
  27. data/lib/kodi_client/types/addons/addon_details_type.rb +44 -0
  28. data/lib/kodi_client/types/addons/addon_extra_info_type.rb +20 -0
  29. data/lib/kodi_client/types/addons/addon_fields_type.rb +28 -0
  30. data/lib/kodi_client/types/addons/addon_types_type.rb +48 -0
  31. data/lib/kodi_client/types/addons/get_addon_returned_type.rb +21 -0
  32. data/lib/kodi_client/types/addons/get_addons_returned_type.rb +22 -0
  33. data/lib/kodi_client/types/application/property_name_type.rb +19 -0
  34. data/lib/kodi_client/types/application/property_value_type.rb +24 -0
  35. data/lib/kodi_client/types/application/version_type.rb +22 -0
  36. data/lib/kodi_client/types/audio/audio_album_release_type_type.rb +15 -0
  37. data/lib/kodi_client/types/audio/audio_artist_role_type.rb +21 -0
  38. data/lib/kodi_client/types/audio/audio_contributor_type.rb +22 -0
  39. data/lib/kodi_client/types/audio/audio_details_album_type.rb +58 -0
  40. data/lib/kodi_client/types/audio/audio_details_artist_type.rb +53 -0
  41. data/lib/kodi_client/types/audio/audio_details_base_type.rb +30 -0
  42. data/lib/kodi_client/types/audio/audio_details_media_type.rb +50 -0
  43. data/lib/kodi_client/types/audio/audio_details_role_type.rb +25 -0
  44. data/lib/kodi_client/types/audio/audio_details_song_type.rb +72 -0
  45. data/lib/kodi_client/types/audio/audio_fields_album_type.rb +50 -0
  46. data/lib/kodi_client/types/audio/audio_fields_artist_type.rb +39 -0
  47. data/lib/kodi_client/types/audio/audio_fields_role_type.rb +15 -0
  48. data/lib/kodi_client/types/audio/audio_fields_song_type.rb +61 -0
  49. data/lib/kodi_client/types/audio/available_art_type.rb +21 -0
  50. data/lib/kodi_client/types/audio/genre_type.rb +20 -0
  51. data/lib/kodi_client/types/audio/get_albums_returned_type.rb +22 -0
  52. data/lib/kodi_client/types/audio/get_artists_returned_type.rb +23 -0
  53. data/lib/kodi_client/types/audio/get_genres_returned_type.rb +24 -0
  54. data/lib/kodi_client/types/audio/get_roles_returned_type.rb +25 -0
  55. data/lib/kodi_client/types/audio/get_songs_returned_type.rb +25 -0
  56. data/lib/kodi_client/types/audio/get_sources_return_type.rb +25 -0
  57. data/lib/kodi_client/types/audio/property_name_type.rb +25 -0
  58. data/lib/kodi_client/types/audio/property_value_type.rb +33 -0
  59. data/lib/kodi_client/types/favourites/details_favourite_type.rb +24 -0
  60. data/lib/kodi_client/types/favourites/fields_favourite_type.rb +17 -0
  61. data/lib/kodi_client/types/favourites/get_favourite_returned_type.rb +22 -0
  62. data/lib/kodi_client/types/favourites/type_type.rb +18 -0
  63. data/lib/kodi_client/types/files/file_label_type.rb +20 -0
  64. data/lib/kodi_client/types/files/get_directory_returned_type.rb +22 -0
  65. data/lib/kodi_client/types/files/get_sources_returned_type.rb +22 -0
  66. data/lib/kodi_client/types/files/media_type.rb +18 -0
  67. data/lib/kodi_client/types/files/prepare_download_returned_type.rb +21 -0
  68. data/lib/kodi_client/types/global/direction_type.rb +17 -0
  69. data/lib/kodi_client/types/global/global_time_type.rb +22 -0
  70. data/lib/kodi_client/types/global/id_label_type.rb +20 -0
  71. data/lib/kodi_client/types/global/id_name_type.rb +20 -0
  72. data/lib/kodi_client/types/global/increment_decrement_type.rb +15 -0
  73. data/lib/kodi_client/types/global/next_prev_type.rb +17 -0
  74. data/lib/kodi_client/types/global/password_encryption_type.rb +16 -0
  75. data/lib/kodi_client/types/global/rotate_type.rb +15 -0
  76. data/lib/kodi_client/types/global/toggle_type.rb +16 -0
  77. data/lib/kodi_client/types/gui/gui_window_type.rb +124 -0
  78. data/lib/kodi_client/types/gui/property_name_type.rb +18 -0
  79. data/lib/kodi_client/types/gui/property_value_type.rb +26 -0
  80. data/lib/kodi_client/types/gui/stereoscopy_mode_type.rb +31 -0
  81. data/lib/kodi_client/types/input/input_action_type.rb +212 -0
  82. data/lib/kodi_client/types/{item_types.rb → items/item_details_base_type.rb} +2 -4
  83. data/lib/kodi_client/types/library/library_details_genre_type.rb +27 -0
  84. data/lib/kodi_client/types/library/library_details_source_type.rb +26 -0
  85. data/lib/kodi_client/types/library/library_fields_genre_type.rb +17 -0
  86. data/lib/kodi_client/types/library/library_fields_source_type.rb +17 -0
  87. data/lib/kodi_client/types/list/list_field_files_type.rb +83 -0
  88. data/lib/kodi_client/types/list/list_fields_all_type.rb +96 -0
  89. data/lib/kodi_client/types/list/list_item_all_type.rb +70 -0
  90. data/lib/kodi_client/types/list/list_item_base_type.rb +141 -0
  91. data/lib/kodi_client/types/list/list_item_file_type.rb +66 -0
  92. data/lib/kodi_client/types/list/list_limits_returned_type.rb +23 -0
  93. data/lib/kodi_client/types/list/list_limits_type.rb +23 -0
  94. data/lib/kodi_client/types/list/list_sort_method_type.rb +54 -0
  95. data/lib/kodi_client/types/list/list_sort_type.rb +28 -0
  96. data/lib/kodi_client/types/list/sort_order_type.rb +15 -0
  97. data/lib/kodi_client/types/media/media_artwork_type.rb +26 -0
  98. data/lib/kodi_client/types/media/media_details_base_type.rb +29 -0
  99. data/lib/kodi_client/types/media/media_type_type.rb +16 -0
  100. data/lib/kodi_client/types/player/audio_stream_type.rb +29 -0
  101. data/lib/kodi_client/types/player/player_position_time_type.rb +22 -0
  102. data/lib/kodi_client/types/player/player_repeat_type.rb +17 -0
  103. data/lib/kodi_client/types/player/player_speed_type.rb +26 -0
  104. data/lib/kodi_client/types/player/player_type.rb +24 -0
  105. data/lib/kodi_client/types/player/player_type_type.rb +16 -0
  106. data/lib/kodi_client/types/player/player_view_mode_type.rb +23 -0
  107. data/lib/kodi_client/types/player/player_visibility_type.rb +16 -0
  108. data/lib/kodi_client/types/player/property_name_type.rb +38 -0
  109. data/lib/kodi_client/types/player/property_value_type.rb +60 -0
  110. data/lib/kodi_client/types/player/seek_jump_type.rb +17 -0
  111. data/lib/kodi_client/types/player/seek_returned_type.rb +23 -0
  112. data/lib/kodi_client/types/player/subtitle_type.rb +24 -0
  113. data/lib/kodi_client/types/player/video_stream_type.rb +26 -0
  114. data/lib/kodi_client/types/player/view_mode_type.rb +22 -0
  115. data/lib/kodi_client/types/player/zoom_type.rb +15 -0
  116. data/lib/kodi_client/types/profiles/details_profile_type.rb +24 -0
  117. data/lib/kodi_client/types/profiles/fields_profile_type.rb +15 -0
  118. data/lib/kodi_client/types/profiles/get_profiles_returned_type.rb +22 -0
  119. data/lib/kodi_client/types/profiles/profile_password_type.rb +20 -0
  120. data/lib/kodi_client/types/{pvr_type.rb → pvr/channel_type_type.rb} +2 -4
  121. data/lib/kodi_client/types/system/property_name_type.rb +17 -0
  122. data/lib/kodi_client/types/{system_types.rb → system/property_value_type.rb} +2 -13
  123. data/lib/kodi_client/types/video/stream_details_type.rb +24 -0
  124. data/lib/kodi_client/types/video/video_cast_type.rb +22 -0
  125. data/lib/kodi_client/types/video/video_content_type_type.rb +18 -0
  126. data/lib/kodi_client/types/video/video_details_base_type.rb +29 -0
  127. data/lib/kodi_client/types/video/video_details_file_type.rb +37 -0
  128. data/lib/kodi_client/types/video/video_details_item_type.rb +32 -0
  129. data/lib/kodi_client/types/video/video_details_media_type.rb +28 -0
  130. data/lib/kodi_client/types/video/video_resume_type.rb +20 -0
  131. data/lib/kodi_client.rb +160 -49
  132. metadata +132 -38
  133. data/lib/kodi_client/Chainable.rb +0 -48
  134. data/lib/kodi_client/kodi_module.rb +0 -80
  135. data/lib/kodi_client/method/audio_library.rb +0 -46
  136. data/lib/kodi_client/types/addon_types.rb +0 -177
  137. data/lib/kodi_client/types/application_types.rb +0 -52
  138. data/lib/kodi_client/types/audio_types.rb +0 -221
  139. data/lib/kodi_client/types/favourites_types.rb +0 -61
  140. data/lib/kodi_client/types/files_types.rb +0 -63
  141. data/lib/kodi_client/types/global_types.rb +0 -102
  142. data/lib/kodi_client/types/gui_types.rb +0 -179
  143. data/lib/kodi_client/types/input_types.rb +0 -214
  144. data/lib/kodi_client/types/list_types.rb +0 -542
  145. data/lib/kodi_client/types/media_types.rb +0 -53
  146. data/lib/kodi_client/types/player_type.rb +0 -294
  147. data/lib/kodi_client/types/profiles_types.rb +0 -65
  148. data/lib/kodi_client/types/video_types.rb +0 -150
  149. data/lib/kodi_client/util/comparable.rb +0 -20
  150. data/lib/kodi_client/util/creatable.rb +0 -106
  151. data/lib/kodi_client/util/iterable.rb +0 -11
@@ -0,0 +1,124 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module GUI
6
+ # GUI.Window https://kodi.wiki/view/JSON-RPC_API/v12#GUI.Window
7
+ module GUIWindow
8
+ extend Extensions::Iterable
9
+
10
+ ACCESS_POINTS = 'accesspoints'
11
+ ADDON = 'addon'
12
+ ADDON_BROWSER = 'addonbrowser'
13
+ ADDON_INFORMATION = 'addoninformation'
14
+ ADDON_SETTINGS = 'addonsettings'
15
+ APPEARANCE_SETTINGS = 'appearancesettings'
16
+ AUDIO_DSPM_ANAGER = 'audiodspmanager'
17
+ BUSY_DIALOG = 'busydialog'
18
+ CONTENTS_ETTINGS = 'contentsettings'
19
+ CONTEXT_MENU = 'contextmenu'
20
+ EVENT_LOG = 'eventlog'
21
+ EXTENDED_PROGRESS_DIALOG = 'extendedprogressdialog'
22
+ FAVOURITES = 'favourite'
23
+ FILE_BROWSER = 'filebrowser'
24
+ FILE_MANAGER = 'filemanager'
25
+ FULLSCREEN_INFO = 'fullscreeninfo'
26
+ FULLSCREEN_LIVE_TV = 'fullscreenlivetv'
27
+ FULLSCREEN_RADIO = 'fullscreenradio'
28
+ FULLSCREEN_VIDEO = 'fullscreenvideo'
29
+ GAME_CONTROLLERS = 'gamecontrollers'
30
+ GAMEPAD_INPUT = 'gamepadinput'
31
+ HOME = 'home'
32
+ INTERFACE_SETTINGS = 'interfacesettings'
33
+ LOCK_SETTINGS = 'locksettings'
34
+ LOGIN_SCREEN = 'loginscreen'
35
+ MEDIA_FILTER = 'mediafilter'
36
+ MEDIA_SETTINGS = 'mediasettings'
37
+ MEDIA_SOURCE = 'mediasource'
38
+ MOVIE_INFORMATION = 'movieinformation'
39
+ MUSIC = 'music'
40
+ MUSIC_INFORMATION = 'musicinformation'
41
+ MUSIC_OSD = 'musicosd'
42
+ MUSIC_PLAYLIST = 'musicplaylist'
43
+ MUSIC_PLAYLIST_EDITOR = 'musicplaylisteditor'
44
+ NETWORK_SETUP = 'networksetup'
45
+ NOTIFICATION = 'notification'
46
+ NUMERIC_INPUT = 'numericinput'
47
+ OK_DIALOG = 'okdialog'
48
+ OSD_AUDIO_DSP_SETTINGS = 'osdaudiodspsettings'
49
+ OSD_AUDIO_SETTINGS = 'osdaudiosettings'
50
+ OSD_CMS_SETTINGS = 'osdcmssettings'
51
+ OSD_VIDEO_SETTINGS = 'osdvideosettings'
52
+ PERIPHERAL_SETTINGS = 'peripheralsettings'
53
+ PICTURE_INFO = 'pictureinfo'
54
+ PICTURES = 'pictures'
55
+ PLAYER_CONTROLS = 'playercontrols'
56
+ PLAYER_PROCESS_INFO = 'playerprocessinfo'
57
+ PLAYER_SETTINGS = 'playersettings'
58
+ PROFILES = 'profiles'
59
+ PROFILE_SETTINGS = 'profilesettings'
60
+ PROGRAMS = 'programs'
61
+ PROGRESS_DIALOG = 'progressdialog'
62
+ PVR_CHANNEL_MANAGER = 'pvrchannelmanager'
63
+ PVR_CHANNEL_SCAN = 'pvrchannelscan'
64
+ PVR_GROUP_MANAGER = 'pvrgroupmanager'
65
+ PVR_GUIDE_INFO = 'pvrguideinfo'
66
+ PVR_GUIDE_SEARCH = 'pvrguidesearch'
67
+ PVR_OSD_CHANNELS = 'pvrosdchannels'
68
+ PVR_OSD_GUIDE = 'pvrosdguide'
69
+ PVR_OSD_TELETEXT = 'pvrosdteletext'
70
+ PVR_RADIO_RDS_INFO = 'pvrradiordsinfo'
71
+ PVR_RECORDING_INFO = 'pvrrecordinginfo'
72
+ PVR_SETTINGS = 'pvrsettings'
73
+ PVR_TIMER_SETTING = 'pvrtimersetting'
74
+ PVR_UPDATE_PROGRESS = 'pvrupdateprogress'
75
+ RADIO_CHANNELS = 'radiochannels'
76
+ RADIO_GUIDE = 'radioguide'
77
+ RADIO_RECORDINGS = 'radiorecordings'
78
+ RADIO_SEARCH = 'radiosearch'
79
+ RADIO_TIMER_RULES = 'radiotimerrules'
80
+ RADIO_TIMERS = 'radiotimers'
81
+ SCREEN_CALIBRATION = 'screencalibration'
82
+ SCREENSAVER = 'screensaver'
83
+ SEEKBAR = 'seekbar'
84
+ SELECT_DIALOG = 'selectdialog'
85
+ SERVICE_SETTINGS = 'servicesettings'
86
+ SETTINGS = 'settings'
87
+ SHUT_DOWN_MENU = 'shutdownmenu'
88
+ SKIN_SETTINGS = 'skinsettings'
89
+ SLIDER_DIALOG = 'sliderdialog'
90
+ SLIDESHOW = 'slideshow'
91
+ SMART_PLAYLIST_EDITOR = 'smartplaylisteditor'
92
+ SMART_PLAYLIST_RULE = 'smartplaylistrule'
93
+ SONG_INFORMATION = 'songinformation'
94
+ STARTUP = 'startup'
95
+ START_WINDOW = 'startwindow'
96
+ SUBMENU = 'submenu'
97
+ SUBTITLE_SEARCH = 'subtitlesearch'
98
+ SYSTEM_INFO = 'systeminfo'
99
+ SYSTEM_SETTINGS = 'systemsettings'
100
+ TELETEXT = 'teletext'
101
+ TEST_PATTERN = 'testpattern'
102
+ TEXT_VIEWER = 'textviewer'
103
+ TV_CHANNELS = 'tvchannels'
104
+ TV_GUIDE = 'tvguide'
105
+ TV_RECORDINGS = 'tvrecordings'
106
+ TV_SEARCH = 'tvsearch'
107
+ TV_TIMER_RULES = 'tvtimerrules'
108
+ TV_TIMERS = 'tvtimers'
109
+ VIDEO_BOOKMARKS = 'videobookmarks'
110
+ VIDEO_MENU = 'videomenu'
111
+ VIDEO_OSD = 'videoosd'
112
+ VIDEO_PLAYLIST = 'videoplaylist'
113
+ VIDEOS = 'videos'
114
+ VIDEO_TIME_SEEK = 'videotimeseek'
115
+ VIRTUAL_KEYBOARD = 'virtualkeyboard'
116
+ VISUALISATION = 'visualisation'
117
+ VISUALISATION_PRESET_LIST = 'visualisationpresetlist'
118
+ VOLUME_BAR = 'volumebar'
119
+ WEATHER = 'weather'
120
+ YES_NO_DIALOG = 'yesnodialog'
121
+ end
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module GUI
6
+ # GUI.Property.Name https://kodi.wiki/view/JSON-RPC_API/v12#GUI.Property.Name
7
+ module PropertyName
8
+ extend Extensions::Iterable
9
+
10
+ CURRENT_CONTROL = 'currentcontrol'
11
+ CURRENT_WINDOW = 'currentwindow'
12
+ FULLSCREEN = 'fullscreen'
13
+ SKIN = 'skin'
14
+ STEREOSCOPIC_MODE = 'stereoscopicmode'
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module GUI
6
+ # GUI.Property.Value https://kodi.wiki/view/JSON-RPC_API/v12#GUI.Property.Value
7
+ class PropertyValue
8
+ include Extensions::Comparable
9
+ extend Extensions::Creatable
10
+
11
+ attr_reader :current_control, :current_window, :fullscreen, :skin, :stereoscopic_mode
12
+
13
+ type_mapping ['currentcontrol', Global::IdLabel], ['currentwindow', Global::IdLabel],
14
+ ['skin', Global::IdName], ['stereoscopicmode', StereoscopyMode]
15
+
16
+ def initialize(current_control, current_window, fullscreen, skin, stereoscopic_mode)
17
+ @current_control = current_control
18
+ @current_window = current_window
19
+ @fullscreen = fullscreen
20
+ @skin = skin
21
+ @stereoscopic_mode = stereoscopic_mode
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module GUI
6
+ # GUI.Stereoscopy.Mode https://kodi.wiki/view/JSON-RPC_API/v12#GUI.Stereoscopy.Mode
7
+ class StereoscopyMode
8
+ include Extensions::Comparable
9
+ include Extensions::Iterable
10
+ extend Extensions::Creatable
11
+
12
+ attr_reader :label, :mode
13
+
14
+ OFF = 'off'
15
+ SPLIT_VERTICAL = 'split_vertical'
16
+ SPLIT_HORIZONTAL = 'split_horizontal'
17
+ ROW_INTERLEAVED = 'row_interleaved'
18
+ HARDWARE_BASED = 'hardware_based'
19
+ ANAGLYPH_CYAN_RED = 'anaglyph_cyan_red'
20
+ ANAGLYPH_GREEN_MAGENTA = 'anaglyph_green_magenta'
21
+ ANAGLYPH_YELLOW_BLUE = 'anaglyph_yellow_blue'
22
+ MONOSCOPIC = 'monoscopic'
23
+
24
+ def initialize(label, mode)
25
+ @label = label
26
+ @mode = mode
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,212 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module Input
6
+ # Input.Action https://kodi.wiki/view/JSON-RPC_API/v12#Input.Action
7
+ module InputAction
8
+ extend Extensions::Iterable
9
+
10
+ ANALOG_FAST_FORWARD = 'analogfastforward'
11
+ ANALOG_MOVE = 'analogmove'
12
+ ANALOG_MOVE_X = 'analogmovex'
13
+ ANALOG_MOVE_Y = 'analogmovey'
14
+ ANALOG_REWIND = 'analogrewind'
15
+ ANALOG_SEEK_BACK = 'analogseekback'
16
+ ANALOG_SEEK_FORWARD = 'analogseekforward'
17
+ ASPECT_RATIO = 'aspectratio'
18
+ AUDIO_DELAY = 'audiodelay'
19
+ AUDIO_DELAY_MINUS = 'audiodelayminus'
20
+ AUDIO_DELAY_PLUS = 'audiodelayplus'
21
+ AUDIO_NEXT_LANGUAGE = 'audionextlanguage'
22
+ AUDIO_TOGGLE_DIGITAL = 'audiotoggledigital'
23
+ BACK = 'back'
24
+ BACKSPACE = 'backspace'
25
+ BIG_STEP_BACK = 'bigstepback'
26
+ BIG_STEP_FORWARD = 'bigstepforward'
27
+ BLUE = 'blue'
28
+ CHANNEL_DOWN = 'channeldown'
29
+ CHANNEL_UP = 'channelup'
30
+ CHAPTER_OR_BIG_STEP_BACK = 'chapterorbigstepback'
31
+ CHAPTER_OR_BIG_STEP_FORWARD = 'chapterorbigstepforward'
32
+ CLOSE = 'close'
33
+ CODEC_INFO = 'codecinfo'
34
+ CONTEXT_MENU = 'contextmenu'
35
+ COPY = 'copy'
36
+ CREATE_BOOKMARK = 'createbookmark'
37
+ CREATE_EPISODE_BOOKMARK = 'createepisodebookmark'
38
+ CURSOR_LEFT = 'cursorleft'
39
+ CURSOR_RIGHT = 'cursorright'
40
+ CYCLE_SUBTITLE = 'cyclesubtitle'
41
+ DECREASE_PAR = 'decreasepar'
42
+ DECREASE_RATING = 'decreaserating'
43
+ DECREASE_VIS_RATING = 'decreasevisrating'
44
+ DELETE = 'delete'
45
+ DOUBLE_CLICK = 'doubleclick'
46
+ DOWN = 'down'
47
+ ENTER = 'enter'
48
+ ERROR = 'error'
49
+ FAST_FORWARD = 'fastforward'
50
+ FILTER = 'filter'
51
+ FILTER_CLEAR = 'filterclear'
52
+ FILTER_SMS2 = 'filtersms2'
53
+ FILTER_SMS3 = 'filtersms3'
54
+ FILTER_SMS4 = 'filtersms4'
55
+ FILTER_SMS5 = 'filtersms5'
56
+ FILTER_SMS6 = 'filtersms6'
57
+ FILTER_SMS7 = 'filtersms7'
58
+ FILTER_SMS8 = 'filtersms8'
59
+ FILTER_SMS9 = 'filtersms9'
60
+ FIRST_PAGE = 'firstpage'
61
+ FULLSCREEN = 'fullscreen'
62
+ GREEN = 'green'
63
+ GUI_PROFILE = 'guiprofile'
64
+ HIGHLIGHT = 'highlight'
65
+ INCREASE_PAR = 'increasepar'
66
+ INCREASE_RATING = 'increaserating'
67
+ INCREASE_VIS_RATING = 'increasevisrating'
68
+ INFO = 'info'
69
+ JUMP_SMS_2 = 'jumpsms2'
70
+ JUMP_SMS_3 = 'jumpsms3'
71
+ JUMP_SMS_4 = 'jumpsms4'
72
+ JUMP_SMS_5 = 'jumpsms5'
73
+ JUMP_SMS_6 = 'jumpsms6'
74
+ JUMP_SMS_7 = 'jumpsms7'
75
+ JUMP_SMS_8 = 'jumpsms8'
76
+ JUMP_SMS_9 = 'jumpsms9'
77
+ LAST_PAGE = 'lastpage'
78
+ LEFT = 'left'
79
+ LEFT_CLICK = 'leftclick'
80
+ LOCK_PRESET = 'lockpreset'
81
+ LONG_CLICK = 'longclick'
82
+ LONG_PRESS = 'longpress'
83
+ MENU = 'menu'
84
+ MIDDLE_CLICK = 'middleclick'
85
+ MOUSE_DRAG = 'mousedrag'
86
+ MOUSE_MOVE = 'mousemove'
87
+ MOVE = 'move'
88
+ MOVE_ITEMD_OWN = 'moveitemdown'
89
+ MOVE_ITEM_UP = 'moveitemup'
90
+ MUTE = 'mute'
91
+ NEXT_CALIBRATION = 'nextcalibration'
92
+ NEXT_CHANNEL_GROUP = 'nextchannelgroup'
93
+ NEXT_LETTER = 'nextletter'
94
+ NEXT_PICTURE = 'nextpicture'
95
+ NEXT_PRESET = 'nextpreset'
96
+ NEXT_RESOLUTION = 'nextresolution'
97
+ NEXT_SCENE = 'nextscene'
98
+ NEXT_STEREO_MODE = 'nextstereomode'
99
+ NEXT_SUBTITLE = 'nextsubtitle'
100
+ NOOP = 'noop'
101
+ NUMBER_0 = 'number0'
102
+ NUMBER_1 = 'number1'
103
+ NUMBER_2 = 'number2'
104
+ NUMBER_3 = 'number3'
105
+ NUMBER_4 = 'number4'
106
+ NUMBER_5 = 'number5'
107
+ NUMBER_6 = 'number6'
108
+ NUMBER_7 = 'number7'
109
+ NUMBER_8 = 'number8'
110
+ NUMBER_9 = 'number9'
111
+ OSD = 'osd'
112
+ PAGEDOWN = 'pagedown'
113
+ PAGEUP = 'pageup'
114
+ PAN_GESTURE = 'pangesture'
115
+ PARENT_DIR = 'parentdir'
116
+ PARENT_FOLDER = 'parentfolder'
117
+ PAUSE = 'pause'
118
+ PLAY = 'play'
119
+ PLAYER_DEBUG = 'playerdebug'
120
+ PLAYER_PROCESS_INFO = 'playerprocessinfo'
121
+ PLAYLIST = 'playlist'
122
+ PLAY_PAUSE = 'playpause'
123
+ PLAY_PVR = 'playpvr'
124
+ PLAY_PVR_RADIO = 'playpvrradio'
125
+ PLAY_PVR_TV = 'playpvrtv'
126
+ PREVIOUS_CHANNEL_GROUP = 'previouschannelgroup'
127
+ PREVIOUS_MENU = 'previousmenu'
128
+ PREVIOUS_PICTURE = 'previouspicture'
129
+ PREVIOUS_PRESET = 'previouspreset'
130
+ PREVIOUS_SCENE = 'previousscene'
131
+ PREVIOUS_STEREO_MODE = 'previousstereomode'
132
+ PREV_LETTER = 'prevletter'
133
+ QUEUE = 'queue'
134
+ RANDOM_PRESET = 'randompreset'
135
+ RECORD = 'record'
136
+ RED = 'red'
137
+ RELOAD_KEYMAPS = 'reloadkeymaps'
138
+ RENAME = 'rename'
139
+ RESET_CALIBRATION = 'resetcalibration'
140
+ REWIND = 'rewind'
141
+ RIGHT = 'right'
142
+ RIGHT_CLICK = 'rightclick'
143
+ ROTATE = 'rotate'
144
+ ROTATE_CCW = 'rotateccw'
145
+ ROTATE_GESTURE = 'rotategesture'
146
+ SCAN_ITEM = 'scanitem'
147
+ SCREENSHOT = 'screenshot'
148
+ SCROLL_DOWN = 'scrolldown'
149
+ SCROLL_UP = 'scrollup'
150
+ SELECT = 'select'
151
+ SET_RATING = 'setrating'
152
+ SETTINGS_LEVEL_CHANGE = 'settingslevelchange'
153
+ SETTINGS_RESET = 'settingsreset'
154
+ SHIFT = 'shift'
155
+ SHOW_PRESET = 'showpreset'
156
+ SHOW_SUBTITLES = 'showsubtitles'
157
+ SHOW_TIME = 'showtime'
158
+ SHOW_TIMER_RULE = 'showtimerrule'
159
+ SHOW_VIDEO_MENU = 'showvideomenu'
160
+ SKIP_NEXT = 'skipnext'
161
+ SKIP_PREVIOUS = 'skipprevious'
162
+ SMALL_STEP_BACK = 'smallstepback'
163
+ STEP_BACK = 'stepback'
164
+ STEP_FORWARD = 'stepforward'
165
+ STEREO_MODE = 'stereomode'
166
+ STEREO_MODE_TO_MONO = 'stereomodetomono'
167
+ STOP = 'stop'
168
+ SUBTITLE_ALIGN = 'subtitlealign'
169
+ SUBTITLE_DELAY = 'subtitledelay'
170
+ SUBTITLE_DELAY_MINUS = 'subtitledelayminus'
171
+ SUBTITLE_DELAY_PLUS = 'subtitledelayplus'
172
+ SUBTITLE_SHIFT_DOWN = 'subtitleshiftdown'
173
+ SUBTITLE_SHIF_TUP = 'subtitleshiftup'
174
+ SWIPE_DOWN = 'swipedown'
175
+ SWIPE_LEFT = 'swipeleft'
176
+ SWIPE_RIGHT = 'swiperight'
177
+ SWIPE_UP = 'swipeup'
178
+ SWITCH_PLAYER = 'switchplayer'
179
+ SYMBOLS = 'symbols'
180
+ TAP = 'tap'
181
+ TOGGLE_COMM_SKIP = 'togglecommskip'
182
+ TOGGLE_FULLSCREEN = 'togglefullscreen'
183
+ TOGGLE_STEREO_MODE = 'togglestereomode'
184
+ TOGGLE_WATCHED = 'togglewatched'
185
+ UP = 'up'
186
+ VERTICAL_SHIFT_DOWN = 'verticalshiftdown'
187
+ VERTICAL_SHIFT_UP = 'verticalshiftup'
188
+ VOL_AMP_DOWN = 'volampdown'
189
+ VOL_AMP_UP = 'volampup'
190
+ VOLUME_AMPLIFICATION = 'volumeamplification'
191
+ VOLUME_DOWN = 'volumedown'
192
+ VOLUME_UP = 'volumeup'
193
+ WHEEL_DOWN = 'wheeldown'
194
+ WHEEL_UP = 'wheelup'
195
+ YELLOW = 'yellow'
196
+ ZOOM_GESTURE = 'zoomgesture'
197
+ ZOOM_IN = 'zoomin'
198
+ ZOOM_LEVEL_1 = 'zoomlevel1'
199
+ ZOOM_LEVEL_2 = 'zoomlevel2'
200
+ ZOOM_LEVEL_3 = 'zoomlevel3'
201
+ ZOOM_LEVEL_4 = 'zoomlevel4'
202
+ ZOOM_LEVEL_5 = 'zoomlevel5'
203
+ ZOOM_LEVEL_6 = 'zoomlevel6'
204
+ ZOOM_LEVEL_7 = 'zoomlevel7'
205
+ ZOOM_LEVEL_8 = 'zoomlevel8'
206
+ ZOOM_LEVEL_9 = 'zoomlevel9'
207
+ ZOOM_NORMAL = 'zoomnormal'
208
+ ZOOM_OUT = 'zoomout'
209
+ end
210
+ end
211
+ end
212
+ end
@@ -3,18 +3,16 @@
3
3
  module KodiClient
4
4
  module Types
5
5
  module Items
6
-
7
6
  # Item.Details.Base https://kodi.wiki/view/JSON-RPC_API/v12#Item.Details.Base
8
7
  module ItemDetailsBase
9
-
10
8
  attr_reader :label
11
9
 
12
10
  def item_details_base_mappings
13
- {}
11
+ []
14
12
  end
15
13
 
16
14
  def item_details_base_by_hash(hash)
17
- item_details_base(*Creatable.hash_to_arr(hash, %w[label], item_details_base_mappings))
15
+ item_details_base(*Extensions::Creatable.hash_to_arr(hash, %w[label], item_details_base_mappings))
18
16
  end
19
17
 
20
18
  def item_details_base(label)
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module Library
6
+ # Library.Details.Genre https://kodi.wiki/view/JSON-RPC_API/v12#Library.Details.Genre
7
+ class LibraryDetailsGenre
8
+ include Items::ItemDetailsBase
9
+ include Extensions::Comparable
10
+ extend Extensions::Creatable
11
+
12
+ attr_reader :title, :thumbnail, :source_id
13
+
14
+ fields_to_map %w[genre_id source_id thumbnail title label]
15
+
16
+ def initialize(genre_id, source_id, thumbnail, title, label)
17
+ @genre_id = genre_id
18
+ @title = title
19
+ @thumbnail = thumbnail
20
+ @source_id = source_id
21
+ item_details_base(label)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module Library
6
+ # Library.Details.Source https://kodi.wiki/view/JSON-RPC_API/v12#Library.Details.Source
7
+ class AudioDetailsSource
8
+ include Items::ItemDetailsBase
9
+ include Extensions::Comparable
10
+ extend Extensions::Creatable
11
+
12
+ attr_reader :file, :paths, :source_id
13
+
14
+ fields_to_map %w[file paths source_id label]
15
+
16
+ def initialize(file, paths, source_id, label)
17
+ @file = file
18
+ @paths = paths
19
+ @source_id = source_id
20
+ item_details_base(label)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module Library
6
+ # Library.Fields.Genre https://kodi.wiki/view/JSON-RPC_API/v12#Library.Fields.Genre
7
+ module LibraryFieldsGenre
8
+ extend Extensions::Iterable
9
+
10
+ TITLE = 'title'
11
+ THUMBNAIL = 'thumbnail'
12
+ SOURCE_ID = 'sourceid'
13
+ end
14
+ end
15
+ end
16
+ end
17
+
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module Library
6
+ # Library.Fields.Source https://kodi.wiki/view/JSON-RPC_API/v12#Library.Fields.Source
7
+ module LibraryFieldsSource
8
+ extend Extensions::Iterable
9
+
10
+ FILE = 'file'
11
+ PATHS = 'paths'
12
+ end
13
+ end
14
+ end
15
+ end
16
+
17
+
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module List
6
+ # List.Fields.Files https://kodi.wiki/view/JSON-RPC_API/v12#List.Fields.Files
7
+ module ListFieldFiles
8
+ extend Extensions::Iterable
9
+
10
+ ALBUM = 'album'
11
+ ALBUM_ARTIST = 'albumartist'
12
+ ALBUM_ARTIST_ID = 'albumartistid'
13
+ ALBUM_ID = 'albumid'
14
+ ALBUM_LABEL = 'albumlabel'
15
+ ART = 'art'
16
+ ARTIST = 'artist'
17
+ ARTIST_ID = 'artistid'
18
+ CAST = 'cast'
19
+ COMMENT = 'comment'
20
+ COUNTRY = 'country'
21
+ DATE_ADDED = 'dateadded'
22
+ DESCRIPTION = 'description'
23
+ DIRECTOR = 'director'
24
+ DISC = 'disc'
25
+ DISPLAY_ARTIST = 'displayartist'
26
+ DURATION = 'duration'
27
+ EPISODE = 'episode'
28
+ EPISODE_GUIDE = 'episodeguide'
29
+ FAN_ART = 'fanart'
30
+ FILE = 'file'
31
+ FIRST_AIRED = 'firstaired'
32
+ GENRE = 'genre'
33
+ GENRE_ID = 'genreid'
34
+ IMDB_NUMBER = 'imdbnumber'
35
+ LAST_MODIFIED = 'lastmodified'
36
+ LAST_PLAYED = 'lastplayed'
37
+ LYRICS = 'lyrics'
38
+ MIMETYPE = 'mimetype'
39
+ MOOD = 'mood'
40
+ MPAA = 'mpaa'
41
+ MUSICBRAINZ_ALBUM_ARTIST_ID = 'musicbrainzalbumartistid'
42
+ MUSICBRAINZ_ALBUM_ID = 'musicbrainzalbumid'
43
+ MUSICBRAINZ_ARTIST_ID = 'musicbrainzartistid'
44
+ MUSICBRAINZ_TRACK_ID = 'musicbrainztrackid'
45
+ ORIGINAL_TITLE = 'originaltitle'
46
+ PLAY_COUNT = 'playcount'
47
+ PLOT = 'plot'
48
+ PLOT_OUTLINE = 'plotoutline'
49
+ PREMIERED = 'premiered'
50
+ PRODUCTION_CODE = 'productioncode'
51
+ RATING = 'rating'
52
+ RESUME = 'resume'
53
+ RUNTIME = 'runtime'
54
+ SEASON = 'season'
55
+ SET = 'set'
56
+ SET_ID = 'setid'
57
+ SHOW_LINK = 'showlink'
58
+ SHOW_TITLE = 'showtitle'
59
+ SIZE = 'size'
60
+ SORT_TITLE = 'sorttitle'
61
+ SPECIAL_SORT_EPISODE = 'specialsortepisode'
62
+ SPECIAL_SORT_SEASON = 'specialsortseason'
63
+ STREAM_DETAILS = 'streamdetails'
64
+ STUDIO = 'studio'
65
+ STYLE = 'style'
66
+ TAG = 'tag'
67
+ TAGLINE = 'tagline'
68
+ THEME = 'theme'
69
+ THUMBNAIL = 'thumbnail'
70
+ TITLE = 'title'
71
+ TOP250 = 'top250'
72
+ TRACK = 'track'
73
+ TRAILER = 'trailer'
74
+ TV_SHOW_ID = 'tvshowid'
75
+ UNIQUE_ID = 'uniqueid'
76
+ VOTES = 'votes'
77
+ WATCHED_EPISODES = 'watchedepisodes'
78
+ WRITER = 'writer'
79
+ YEAR = 'year'
80
+ end
81
+ end
82
+ end
83
+ end