From c04dcc2e7d834218ef2d4194331e383402495ae1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 20:07:22 +0200 Subject: Adding upstream version 2:20.4+dfsg. Signed-off-by: Daniel Baumann --- system/IRSSmap.xml | 91 + system/Lircmap.xml | 724 ++++ system/X10-Lola-IRSSmap.xml | 96 + system/addon-manifest.xml | 59 + system/colors.xml | 153 + system/dialogcolors.xml | 166 + system/keyboardlayouts/arabic.xml | 27 + system/keyboardlayouts/bulgarian.xml | 47 + system/keyboardlayouts/chinese.xml | 27 + system/keyboardlayouts/croatian.xml | 27 + system/keyboardlayouts/czech.xml | 27 + system/keyboardlayouts/danish.xml | 27 + system/keyboardlayouts/english.xml | 85 + system/keyboardlayouts/estonian.xml | 27 + system/keyboardlayouts/french.xml | 27 + system/keyboardlayouts/german.xml | 59 + system/keyboardlayouts/greek.xml | 27 + system/keyboardlayouts/hebrew.xml | 47 + system/keyboardlayouts/hungarian.xml | 27 + system/keyboardlayouts/icelandic.xml | 27 + system/keyboardlayouts/italian.xml | 45 + system/keyboardlayouts/korean.xml | 27 + system/keyboardlayouts/lithuanian.xml | 47 + system/keyboardlayouts/norwegian.xml | 27 + system/keyboardlayouts/persian.xml | 27 + system/keyboardlayouts/polish.xml | 27 + system/keyboardlayouts/portuguese.xml | 47 + system/keyboardlayouts/romanian.xml | 27 + system/keyboardlayouts/russian.xml | 47 + system/keyboardlayouts/silesian.xml | 27 + system/keyboardlayouts/slovak.xml | 67 + system/keyboardlayouts/slovenian.xml | 27 + system/keyboardlayouts/spanish.xml | 27 + system/keyboardlayouts/swedish.xml | 27 + system/keyboardlayouts/thai.xml | 27 + system/keyboardlayouts/turkish.xml | 27 + system/keyboardlayouts/ukrainian.xml | 47 + system/keymaps/appcommand.xml | 31 + system/keymaps/customcontroller.AppleRemote.xml | 202 + system/keymaps/customcontroller.Harmony.xml | 343 ++ system/keymaps/customcontroller.SiriRemote.xml | 147 + system/keymaps/gamepad.xml | 322 ++ system/keymaps/joystick.xml | 415 ++ system/keymaps/keyboard.xml | 849 ++++ system/keymaps/mouse.xml | 68 + system/keymaps/nyxboard/keyboard.xml | 15 + system/keymaps/osmc/osmc_remote.xml | 576 +++ system/keymaps/remote.xml | 720 ++++ system/keymaps/touchscreen.xml | 133 + system/keymaps/wetek-play/keyboard.xml | 275 ++ system/library/music/addons.xml | 6 + system/library/music/albums.xml | 6 + system/library/music/artists.xml | 6 + system/library/music/boxsets.xml | 6 + system/library/music/compilations.xml | 6 + system/library/music/files.xml | 6 + system/library/music/genres.xml | 7 + system/library/music/musicroles/albumartists.xml | 6 + system/library/music/musicroles/allartists.xml | 6 + .../library/music/musicroles/allcontributors.xml | 6 + system/library/music/musicroles/allroles.xml | 6 + system/library/music/musicroles/arrangers.xml | 6 + system/library/music/musicroles/composers.xml | 6 + system/library/music/musicroles/conductors.xml | 6 + system/library/music/musicroles/djmixers.xml | 6 + system/library/music/musicroles/index.xml | 5 + system/library/music/musicroles/lyricists.xml | 6 + system/library/music/musicroles/orchestras.xml | 6 + system/library/music/musicroles/remixers.xml | 6 + system/library/music/musicvideos/albums.xml | 7 + system/library/music/musicvideos/artists.xml | 7 + system/library/music/musicvideos/directors.xml | 7 + system/library/music/musicvideos/genres.xml | 7 + system/library/music/musicvideos/index.xml | 5 + system/library/music/musicvideos/studios.xml | 7 + system/library/music/musicvideos/tags.xml | 7 + system/library/music/musicvideos/titles.xml | 7 + system/library/music/musicvideos/years.xml | 7 + system/library/music/playlists.xml | 6 + system/library/music/recentlyaddedalbums.xml | 6 + system/library/music/recentlyplayedalbums.xml | 6 + system/library/music/singles.xml | 6 + system/library/music/songs.xml | 6 + system/library/music/sources.xml | 6 + system/library/music/top100/index.xml | 5 + system/library/music/top100/top100albums.xml | 12 + system/library/music/top100/top100songs.xml | 12 + system/library/music/years.xml | 7 + system/library/video/addons.xml | 6 + system/library/video/files.xml | 6 + system/library/video/movies/actors.xml | 8 + system/library/video/movies/country.xml | 7 + system/library/video/movies/directors.xml | 7 + system/library/video/movies/genres.xml | 7 + system/library/video/movies/index.xml | 5 + .../library/video/movies/recentlyaddedmovies.xml | 6 + system/library/video/movies/sets.xml | 7 + system/library/video/movies/studios.xml | 7 + system/library/video/movies/tags.xml | 7 + system/library/video/movies/titles.xml | 7 + system/library/video/movies/years.xml | 7 + system/library/video/musicvideos/albums.xml | 7 + system/library/video/musicvideos/artists.xml | 7 + system/library/video/musicvideos/directors.xml | 7 + system/library/video/musicvideos/genres.xml | 7 + system/library/video/musicvideos/index.xml | 5 + .../video/musicvideos/recentlyaddedmusicvideos.xml | 6 + system/library/video/musicvideos/studios.xml | 7 + system/library/video/musicvideos/tags.xml | 7 + system/library/video/musicvideos/titles.xml | 7 + system/library/video/musicvideos/years.xml | 7 + system/library/video/playlists.xml | 6 + system/library/video/tvshows/actors.xml | 7 + system/library/video/tvshows/genres.xml | 7 + system/library/video/tvshows/index.xml | 5 + system/library/video/tvshows/inprogressshows.xml | 6 + .../video/tvshows/recentlyaddedepisodes.xml | 6 + system/library/video/tvshows/studios.xml | 7 + system/library/video/tvshows/tags.xml | 7 + system/library/video/tvshows/titles.xml | 7 + system/library/video/tvshows/years.xml | 7 + system/library/video_flat/addons.xml | 6 + system/library/video_flat/files.xml | 6 + system/library/video_flat/inprogressshows.xml | 6 + system/library/video_flat/movies.xml | 7 + system/library/video_flat/musicvideos.xml | 7 + system/library/video_flat/playlists.xml | 6 + .../library/video_flat/recentlyaddedepisodes.xml | 6 + system/library/video_flat/recentlyaddedmovies.xml | 6 + .../video_flat/recentlyaddedmusicvideos.xml | 6 + system/library/video_flat/tvshows.xml | 7 + system/peripherals.xml | 66 + system/playercorefactory.xml | 40 + .../etc/fonts/conf.avail/10-autohint.conf | 9 + .../etc/fonts/conf.avail/10-no-sub-pixel.conf | 9 + .../etc/fonts/conf.avail/10-sub-pixel-bgr.conf | 9 + .../etc/fonts/conf.avail/10-sub-pixel-rgb.conf | 9 + .../etc/fonts/conf.avail/10-sub-pixel-vbgr.conf | 9 + .../etc/fonts/conf.avail/10-sub-pixel-vrgb.conf | 9 + .../etc/fonts/conf.avail/10-unhinted.conf | 9 + .../etc/fonts/conf.avail/20-fix-globaladvance.conf | 29 + .../etc/fonts/conf.avail/20-lohit-gujarati.conf | 11 + .../etc/fonts/conf.avail/20-unhint-small-vera.conf | 49 + .../etc/fonts/conf.avail/30-amt-aliases.conf | 21 + .../etc/fonts/conf.avail/30-urw-aliases.conf | 52 + .../etc/fonts/conf.avail/40-generic.conf | 66 + .../etc/fonts/conf.avail/49-sansserif.conf | 21 + .../VideoPlayer/etc/fonts/conf.avail/50-user.conf | 7 + .../VideoPlayer/etc/fonts/conf.avail/51-local.conf | 7 + .../VideoPlayer/etc/fonts/conf.avail/60-latin.conf | 42 + .../etc/fonts/conf.avail/65-fonts-persian.conf | 539 +++ .../etc/fonts/conf.avail/65-nonlatin.conf | 38 + .../etc/fonts/conf.avail/69-unifont.conf | 24 + .../etc/fonts/conf.avail/70-no-bitmaps.conf | 13 + .../etc/fonts/conf.avail/70-yes-bitmaps.conf | 13 + .../etc/fonts/conf.avail/80-delicious.conf | 20 + .../etc/fonts/conf.avail/90-synthetic.conf | 64 + .../VideoPlayer/etc/fonts/conf.avail/README | 48 + .../etc/fonts/conf.d/20-fix-globaladvance.conf | 29 + .../etc/fonts/conf.d/20-lohit-gujarati.conf | 11 + .../etc/fonts/conf.d/20-unhint-small-vera.conf | 49 + .../etc/fonts/conf.d/30-amt-aliases.conf | 21 + .../etc/fonts/conf.d/30-urw-aliases.conf | 52 + .../VideoPlayer/etc/fonts/conf.d/40-generic.conf | 66 + .../VideoPlayer/etc/fonts/conf.d/49-sansserif.conf | 21 + .../VideoPlayer/etc/fonts/conf.d/50-user.conf | 7 + .../VideoPlayer/etc/fonts/conf.d/51-local.conf | 7 + .../VideoPlayer/etc/fonts/conf.d/60-latin.conf | 42 + .../etc/fonts/conf.d/65-fonts-persian.conf | 539 +++ .../VideoPlayer/etc/fonts/conf.d/65-nonlatin.conf | 38 + .../VideoPlayer/etc/fonts/conf.d/69-unifont.conf | 24 + .../VideoPlayer/etc/fonts/conf.d/80-delicious.conf | 20 + .../VideoPlayer/etc/fonts/conf.d/90-synthetic.conf | 64 + system/players/VideoPlayer/etc/fonts/fonts.conf | 156 + system/players/VideoPlayer/etc/fonts/fonts.dtd | 222 ++ system/settings/android.xml | 44 + system/settings/darwin.xml | 69 + system/settings/darwin_ios.xml | 90 + system/settings/darwin_osx.xml | 12 + system/settings/darwin_tvos.xml | 161 + system/settings/freebsd.xml | 1 + system/settings/linux.xml | 249 ++ system/settings/settings.xml | 4059 ++++++++++++++++++++ system/settings/win10.xml | 51 + system/settings/win32.xml | 18 + system/settings/windows.xml | 73 + system/shaders/GL/1.2/gl_convolution-4x4.glsl | 89 + system/shaders/GL/1.2/gl_convolution-6x6.glsl | 100 + system/shaders/GL/1.2/gl_output.glsl | 58 + system/shaders/GL/1.2/gl_shader_frag_default.glsl | 29 + system/shaders/GL/1.2/gl_shader_frag_fonts.glsl | 34 + system/shaders/GL/1.2/gl_shader_frag_multi.glsl | 32 + .../GL/1.2/gl_shader_frag_multi_blendcolor.glsl | 33 + system/shaders/GL/1.2/gl_shader_frag_texture.glsl | 31 + .../GL/1.2/gl_shader_frag_texture_noblend.glsl | 30 + system/shaders/GL/1.2/gl_shader_vert.glsl | 40 + system/shaders/GL/1.2/gl_shader_vert_default.glsl | 31 + system/shaders/GL/1.2/gl_stretch.glsl | 41 + system/shaders/GL/1.2/gl_videofilter_frag.glsl | 30 + system/shaders/GL/1.2/gl_videofilter_vertex.glsl | 34 + system/shaders/GL/1.2/gl_yuv2rgb_basic.glsl | 131 + system/shaders/GL/1.2/gl_yuv2rgb_vertex.glsl | 38 + system/shaders/GL/1.5/gl_convolution-4x4.glsl | 71 + system/shaders/GL/1.5/gl_convolution-6x6.glsl | 83 + system/shaders/GL/1.5/gl_output.glsl | 37 + system/shaders/GL/1.5/gl_shader_frag_default.glsl | 14 + system/shaders/GL/1.5/gl_shader_frag_fonts.glsl | 19 + system/shaders/GL/1.5/gl_shader_frag_multi.glsl | 17 + .../GL/1.5/gl_shader_frag_multi_blendcolor.glsl | 18 + system/shaders/GL/1.5/gl_shader_frag_texture.glsl | 16 + .../shaders/GL/1.5/gl_shader_frag_texture_lim.glsl | 15 + .../GL/1.5/gl_shader_frag_texture_noblend.glsl | 15 + system/shaders/GL/1.5/gl_shader_vert.glsl | 20 + system/shaders/GL/1.5/gl_shader_vert_default.glsl | 11 + system/shaders/GL/1.5/gl_stretch.glsl | 22 + system/shaders/GL/1.5/gl_tonemap.glsl | 50 + system/shaders/GL/1.5/gl_videofilter_frag.glsl | 12 + system/shaders/GL/1.5/gl_videofilter_vertex.glsl | 14 + system/shaders/GL/1.5/gl_yuv2rgb_basic.glsl | 123 + system/shaders/GL/1.5/gl_yuv2rgb_vertex.glsl | 20 + system/shaders/GL/4.0/gl_yuv2rgb_filter4.glsl | 141 + system/shaders/GLES/2.0/gles_convolution-4x4.frag | 78 + system/shaders/GLES/2.0/gles_convolution-6x6.frag | 89 + system/shaders/GLES/2.0/gles_shader.vert | 41 + system/shaders/GLES/2.0/gles_shader_default.frag | 38 + system/shaders/GLES/2.0/gles_shader_fonts.frag | 41 + system/shaders/GLES/2.0/gles_shader_multi.frag | 41 + .../GLES/2.0/gles_shader_multi_blendcolor.frag | 42 + system/shaders/GLES/2.0/gles_shader_rgba.frag | 43 + .../GLES/2.0/gles_shader_rgba_blendcolor.frag | 43 + system/shaders/GLES/2.0/gles_shader_rgba_bob.frag | 56 + .../shaders/GLES/2.0/gles_shader_rgba_bob_oes.frag | 58 + system/shaders/GLES/2.0/gles_shader_rgba_oes.frag | 41 + system/shaders/GLES/2.0/gles_shader_texture.frag | 40 + .../GLES/2.0/gles_shader_texture_noalpha.frag | 25 + .../GLES/2.0/gles_shader_texture_noblend.frag | 39 + system/shaders/GLES/2.0/gles_tonemap.frag | 50 + system/shaders/GLES/2.0/gles_videofilter.frag | 11 + system/shaders/GLES/2.0/gles_videofilter.vert | 14 + system/shaders/GLES/2.0/gles_yuv2rgb.vert | 40 + system/shaders/GLES/2.0/gles_yuv2rgb_basic.frag | 93 + system/shaders/GLES/2.0/gles_yuv2rgb_bob.frag | 113 + system/shaders/convolution-4x4_d3d.fx | 88 + system/shaders/convolution-6x6_d3d.fx | 96 + system/shaders/convolution_d3d.fx | 61 + system/shaders/convolutionsep-4x4_d3d.fx | 109 + system/shaders/convolutionsep-6x6_d3d.fx | 121 + system/shaders/guishader_checkerboard_left.hlsl | 40 + system/shaders/guishader_checkerboard_right.hlsl | 40 + system/shaders/guishader_common.hlsl | 116 + system/shaders/guishader_default.hlsl | 28 + system/shaders/guishader_fonts.hlsl | 31 + system/shaders/guishader_interlaced_left.hlsl | 40 + system/shaders/guishader_interlaced_right.hlsl | 40 + system/shaders/guishader_multi_texture_blend.hlsl | 31 + system/shaders/guishader_texture.hlsl | 30 + system/shaders/guishader_texture_noblend.hlsl | 30 + system/shaders/guishader_vert.hlsl | 32 + system/shaders/output_d3d.fx | 197 + system/shaders/rp_output_d3d.fx | 81 + system/shaders/yuv2rgb_d3d.fx | 138 + 261 files changed, 18331 insertions(+) create mode 100644 system/IRSSmap.xml create mode 100644 system/Lircmap.xml create mode 100644 system/X10-Lola-IRSSmap.xml create mode 100644 system/addon-manifest.xml create mode 100644 system/colors.xml create mode 100644 system/dialogcolors.xml create mode 100644 system/keyboardlayouts/arabic.xml create mode 100644 system/keyboardlayouts/bulgarian.xml create mode 100644 system/keyboardlayouts/chinese.xml create mode 100644 system/keyboardlayouts/croatian.xml create mode 100644 system/keyboardlayouts/czech.xml create mode 100644 system/keyboardlayouts/danish.xml create mode 100644 system/keyboardlayouts/english.xml create mode 100644 system/keyboardlayouts/estonian.xml create mode 100644 system/keyboardlayouts/french.xml create mode 100644 system/keyboardlayouts/german.xml create mode 100644 system/keyboardlayouts/greek.xml create mode 100644 system/keyboardlayouts/hebrew.xml create mode 100644 system/keyboardlayouts/hungarian.xml create mode 100644 system/keyboardlayouts/icelandic.xml create mode 100644 system/keyboardlayouts/italian.xml create mode 100644 system/keyboardlayouts/korean.xml create mode 100644 system/keyboardlayouts/lithuanian.xml create mode 100644 system/keyboardlayouts/norwegian.xml create mode 100644 system/keyboardlayouts/persian.xml create mode 100644 system/keyboardlayouts/polish.xml create mode 100644 system/keyboardlayouts/portuguese.xml create mode 100644 system/keyboardlayouts/romanian.xml create mode 100644 system/keyboardlayouts/russian.xml create mode 100644 system/keyboardlayouts/silesian.xml create mode 100644 system/keyboardlayouts/slovak.xml create mode 100644 system/keyboardlayouts/slovenian.xml create mode 100644 system/keyboardlayouts/spanish.xml create mode 100644 system/keyboardlayouts/swedish.xml create mode 100644 system/keyboardlayouts/thai.xml create mode 100644 system/keyboardlayouts/turkish.xml create mode 100644 system/keyboardlayouts/ukrainian.xml create mode 100644 system/keymaps/appcommand.xml create mode 100644 system/keymaps/customcontroller.AppleRemote.xml create mode 100644 system/keymaps/customcontroller.Harmony.xml create mode 100644 system/keymaps/customcontroller.SiriRemote.xml create mode 100644 system/keymaps/gamepad.xml create mode 100644 system/keymaps/joystick.xml create mode 100644 system/keymaps/keyboard.xml create mode 100644 system/keymaps/mouse.xml create mode 100644 system/keymaps/nyxboard/keyboard.xml create mode 100644 system/keymaps/osmc/osmc_remote.xml create mode 100644 system/keymaps/remote.xml create mode 100644 system/keymaps/touchscreen.xml create mode 100644 system/keymaps/wetek-play/keyboard.xml create mode 100644 system/library/music/addons.xml create mode 100644 system/library/music/albums.xml create mode 100644 system/library/music/artists.xml create mode 100644 system/library/music/boxsets.xml create mode 100644 system/library/music/compilations.xml create mode 100644 system/library/music/files.xml create mode 100644 system/library/music/genres.xml create mode 100644 system/library/music/musicroles/albumartists.xml create mode 100644 system/library/music/musicroles/allartists.xml create mode 100644 system/library/music/musicroles/allcontributors.xml create mode 100644 system/library/music/musicroles/allroles.xml create mode 100644 system/library/music/musicroles/arrangers.xml create mode 100644 system/library/music/musicroles/composers.xml create mode 100644 system/library/music/musicroles/conductors.xml create mode 100644 system/library/music/musicroles/djmixers.xml create mode 100644 system/library/music/musicroles/index.xml create mode 100644 system/library/music/musicroles/lyricists.xml create mode 100644 system/library/music/musicroles/orchestras.xml create mode 100644 system/library/music/musicroles/remixers.xml create mode 100644 system/library/music/musicvideos/albums.xml create mode 100644 system/library/music/musicvideos/artists.xml create mode 100644 system/library/music/musicvideos/directors.xml create mode 100644 system/library/music/musicvideos/genres.xml create mode 100644 system/library/music/musicvideos/index.xml create mode 100644 system/library/music/musicvideos/studios.xml create mode 100644 system/library/music/musicvideos/tags.xml create mode 100644 system/library/music/musicvideos/titles.xml create mode 100644 system/library/music/musicvideos/years.xml create mode 100644 system/library/music/playlists.xml create mode 100644 system/library/music/recentlyaddedalbums.xml create mode 100644 system/library/music/recentlyplayedalbums.xml create mode 100644 system/library/music/singles.xml create mode 100644 system/library/music/songs.xml create mode 100644 system/library/music/sources.xml create mode 100644 system/library/music/top100/index.xml create mode 100644 system/library/music/top100/top100albums.xml create mode 100644 system/library/music/top100/top100songs.xml create mode 100644 system/library/music/years.xml create mode 100644 system/library/video/addons.xml create mode 100644 system/library/video/files.xml create mode 100644 system/library/video/movies/actors.xml create mode 100644 system/library/video/movies/country.xml create mode 100644 system/library/video/movies/directors.xml create mode 100644 system/library/video/movies/genres.xml create mode 100644 system/library/video/movies/index.xml create mode 100644 system/library/video/movies/recentlyaddedmovies.xml create mode 100644 system/library/video/movies/sets.xml create mode 100644 system/library/video/movies/studios.xml create mode 100644 system/library/video/movies/tags.xml create mode 100644 system/library/video/movies/titles.xml create mode 100644 system/library/video/movies/years.xml create mode 100644 system/library/video/musicvideos/albums.xml create mode 100644 system/library/video/musicvideos/artists.xml create mode 100644 system/library/video/musicvideos/directors.xml create mode 100644 system/library/video/musicvideos/genres.xml create mode 100644 system/library/video/musicvideos/index.xml create mode 100644 system/library/video/musicvideos/recentlyaddedmusicvideos.xml create mode 100644 system/library/video/musicvideos/studios.xml create mode 100644 system/library/video/musicvideos/tags.xml create mode 100644 system/library/video/musicvideos/titles.xml create mode 100644 system/library/video/musicvideos/years.xml create mode 100644 system/library/video/playlists.xml create mode 100644 system/library/video/tvshows/actors.xml create mode 100644 system/library/video/tvshows/genres.xml create mode 100644 system/library/video/tvshows/index.xml create mode 100644 system/library/video/tvshows/inprogressshows.xml create mode 100644 system/library/video/tvshows/recentlyaddedepisodes.xml create mode 100644 system/library/video/tvshows/studios.xml create mode 100644 system/library/video/tvshows/tags.xml create mode 100644 system/library/video/tvshows/titles.xml create mode 100644 system/library/video/tvshows/years.xml create mode 100644 system/library/video_flat/addons.xml create mode 100644 system/library/video_flat/files.xml create mode 100644 system/library/video_flat/inprogressshows.xml create mode 100644 system/library/video_flat/movies.xml create mode 100644 system/library/video_flat/musicvideos.xml create mode 100644 system/library/video_flat/playlists.xml create mode 100644 system/library/video_flat/recentlyaddedepisodes.xml create mode 100644 system/library/video_flat/recentlyaddedmovies.xml create mode 100644 system/library/video_flat/recentlyaddedmusicvideos.xml create mode 100644 system/library/video_flat/tvshows.xml create mode 100644 system/peripherals.xml create mode 100644 system/playercorefactory.xml create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/10-autohint.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/10-no-sub-pixel.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-bgr.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-rgb.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vbgr.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vrgb.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/10-unhinted.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/20-fix-globaladvance.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/20-lohit-gujarati.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/20-unhint-small-vera.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/30-amt-aliases.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/30-urw-aliases.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/40-generic.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/49-sansserif.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/50-user.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/51-local.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/60-latin.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/65-fonts-persian.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/65-nonlatin.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/69-unifont.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/70-no-bitmaps.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/70-yes-bitmaps.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/80-delicious.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/90-synthetic.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.avail/README create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/20-fix-globaladvance.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/20-lohit-gujarati.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/20-unhint-small-vera.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/30-amt-aliases.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/30-urw-aliases.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/40-generic.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/49-sansserif.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/50-user.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/51-local.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/60-latin.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/65-fonts-persian.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/65-nonlatin.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/69-unifont.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/80-delicious.conf create mode 100644 system/players/VideoPlayer/etc/fonts/conf.d/90-synthetic.conf create mode 100644 system/players/VideoPlayer/etc/fonts/fonts.conf create mode 100644 system/players/VideoPlayer/etc/fonts/fonts.dtd create mode 100644 system/settings/android.xml create mode 100644 system/settings/darwin.xml create mode 100644 system/settings/darwin_ios.xml create mode 100644 system/settings/darwin_osx.xml create mode 100644 system/settings/darwin_tvos.xml create mode 120000 system/settings/freebsd.xml create mode 100644 system/settings/linux.xml create mode 100755 system/settings/settings.xml create mode 100644 system/settings/win10.xml create mode 100644 system/settings/win32.xml create mode 100644 system/settings/windows.xml create mode 100644 system/shaders/GL/1.2/gl_convolution-4x4.glsl create mode 100644 system/shaders/GL/1.2/gl_convolution-6x6.glsl create mode 100644 system/shaders/GL/1.2/gl_output.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_frag_default.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_frag_fonts.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_frag_multi.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_frag_multi_blendcolor.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_frag_texture.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_frag_texture_noblend.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_vert.glsl create mode 100644 system/shaders/GL/1.2/gl_shader_vert_default.glsl create mode 100644 system/shaders/GL/1.2/gl_stretch.glsl create mode 100644 system/shaders/GL/1.2/gl_videofilter_frag.glsl create mode 100644 system/shaders/GL/1.2/gl_videofilter_vertex.glsl create mode 100644 system/shaders/GL/1.2/gl_yuv2rgb_basic.glsl create mode 100644 system/shaders/GL/1.2/gl_yuv2rgb_vertex.glsl create mode 100644 system/shaders/GL/1.5/gl_convolution-4x4.glsl create mode 100644 system/shaders/GL/1.5/gl_convolution-6x6.glsl create mode 100644 system/shaders/GL/1.5/gl_output.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_frag_default.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_frag_fonts.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_frag_multi.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_frag_multi_blendcolor.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_frag_texture.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_frag_texture_lim.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_frag_texture_noblend.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_vert.glsl create mode 100644 system/shaders/GL/1.5/gl_shader_vert_default.glsl create mode 100644 system/shaders/GL/1.5/gl_stretch.glsl create mode 100644 system/shaders/GL/1.5/gl_tonemap.glsl create mode 100644 system/shaders/GL/1.5/gl_videofilter_frag.glsl create mode 100644 system/shaders/GL/1.5/gl_videofilter_vertex.glsl create mode 100644 system/shaders/GL/1.5/gl_yuv2rgb_basic.glsl create mode 100644 system/shaders/GL/1.5/gl_yuv2rgb_vertex.glsl create mode 100644 system/shaders/GL/4.0/gl_yuv2rgb_filter4.glsl create mode 100644 system/shaders/GLES/2.0/gles_convolution-4x4.frag create mode 100644 system/shaders/GLES/2.0/gles_convolution-6x6.frag create mode 100644 system/shaders/GLES/2.0/gles_shader.vert create mode 100644 system/shaders/GLES/2.0/gles_shader_default.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_fonts.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_multi.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_multi_blendcolor.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_rgba.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_rgba_blendcolor.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_rgba_bob.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_rgba_bob_oes.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_rgba_oes.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_texture.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_texture_noalpha.frag create mode 100644 system/shaders/GLES/2.0/gles_shader_texture_noblend.frag create mode 100644 system/shaders/GLES/2.0/gles_tonemap.frag create mode 100644 system/shaders/GLES/2.0/gles_videofilter.frag create mode 100644 system/shaders/GLES/2.0/gles_videofilter.vert create mode 100644 system/shaders/GLES/2.0/gles_yuv2rgb.vert create mode 100644 system/shaders/GLES/2.0/gles_yuv2rgb_basic.frag create mode 100644 system/shaders/GLES/2.0/gles_yuv2rgb_bob.frag create mode 100644 system/shaders/convolution-4x4_d3d.fx create mode 100644 system/shaders/convolution-6x6_d3d.fx create mode 100644 system/shaders/convolution_d3d.fx create mode 100644 system/shaders/convolutionsep-4x4_d3d.fx create mode 100644 system/shaders/convolutionsep-6x6_d3d.fx create mode 100644 system/shaders/guishader_checkerboard_left.hlsl create mode 100644 system/shaders/guishader_checkerboard_right.hlsl create mode 100644 system/shaders/guishader_common.hlsl create mode 100644 system/shaders/guishader_default.hlsl create mode 100644 system/shaders/guishader_fonts.hlsl create mode 100644 system/shaders/guishader_interlaced_left.hlsl create mode 100644 system/shaders/guishader_interlaced_right.hlsl create mode 100644 system/shaders/guishader_multi_texture_blend.hlsl create mode 100644 system/shaders/guishader_texture.hlsl create mode 100644 system/shaders/guishader_texture_noblend.hlsl create mode 100644 system/shaders/guishader_vert.hlsl create mode 100644 system/shaders/output_d3d.fx create mode 100644 system/shaders/rp_output_d3d.fx create mode 100644 system/shaders/yuv2rgb_d3d.fx (limited to 'system') diff --git a/system/IRSSmap.xml b/system/IRSSmap.xml new file mode 100644 index 0000000..31c9bda --- /dev/null +++ b/system/IRSSmap.xml @@ -0,0 +1,91 @@ + + + + + + 31719 + 31718 + 31721 + 31723 + 31722 + 31711 + 31710 + 31713 + 31712 + + 31725 + 31724 + 31708 + 31707 + 31671 + 31728 + 31717 + 31716 + 31705 + 31730 + 31720 + 31727 + 31726 + 31729 + 31642 + 31706 + 31742 + 31741 + 31740 + 31739 + 31738 + 31737 + 31736 + 31735 + 31734 + 31743 + 31652 + 31651 + 31650 + 31649 + + + + + Pause + Stop + Play + FastForward + Rewind + Left + Right + Up + Down + + ChannelUp + ChannelDown + Back + DVD + RecordedTV + Info + NextChapter + PreviousChapter + Guide + Start + Record + VolumeUp + VolumeDown + Mute + Power + LiveTV + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + Number0 + Red + Green + Yellow + Blue + + diff --git a/system/Lircmap.xml b/system/Lircmap.xml new file mode 100644 index 0000000..ec7c6e0 --- /dev/null +++ b/system/Lircmap.xml @@ -0,0 +1,724 @@ + + + + + + + + + + + + + + Play + Pause + Stop + Forward + Rewind + Left + Right + Up + Down + + ChanUp + ChanDown + Back + DVD + Guide + More + Skip + Replay + Aspect + Home + Record + VolUp + VolDown + Mute + Power + Videos + Music + Pictures + TV + One + Two + Three + Four + Five + Six + Seven + Eight + Nine + Zero + Star + Hash + Clear + Enter + Red + Green + Yellow + Blue + Teletext + Print + + + KEY_EJECTCD + KEY_LEFT + KEY_RIGHT + KEY_UP + KEY_DOWN + + KEY_HOME + KEY_BACK + KEY_RECORD + KEY_PLAY + KEY_PAUSE + KEY_STOP + KEY_FORWARD + KEY_REWIND + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_CHANNELUP + KEY_CHANNELDOWN + KEY_NEXT + KEY_AGAIN + KEY_MUTE + KEY_POWER + KEY_VIDEO + KEY_AUDIO + LiveTV + KEY_TV + KEY_EPG + KEY_1 + KEY_2 + KEY_3 + KEY_4 + KEY_5 + KEY_6 + KEY_7 + KEY_8 + KEY_9 + KEY_0 + KEY_RED + KEY_GREEN + KEY_YELLOW + KEY_BLUE + KEY_DVD + KEY_CLEAR + KEY_ENTER + KEY_NUMERIC_STAR + KEY_NUMERIC_POUND + KEY_INFO + + + + PLAY + PAUSE + STOP + FORWARD + REVERSE + LEFT + RIGHT + UP + DOWN + + BACK + MENU + TITLE + INFO + SKIP+ + SKIP- + DISPLAY + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + + + + PLAY + PAUSE + STOP + FORWARD + REVERSE + LEFT + RIGHT + UP + DOWN + + BACK + MENU + TITLE + INFO + SKIP+ + SKIP- + DISPLAY + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + + + + KEY_PLAY + KEY_PAUSE + KEY_STOP + KEY_FASTFORWARD + KEY_REWIND + Vol-Rew + Vol+FF + Chan+Play + Chan-Stop + KEY_CHANNELUP + KEY_CHANNELDOWN + + KEY_UNDO + KEY_MENU + KEY_L + KEY_INFO + KEY_NEXT + Fullscreen + KEY_RECORD + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_MUTE + KEY_POWER + KEY_1 + KEY_2 + KEY_3 + KEY_4 + KEY_5 + KEY_6 + KEY_7 + KEY_8 + KEY_9 + KEY_0 + + + + pause + stop + f1 + f2 + left + right + chan-up + chan-down + + exit + menu + play + info + jump-fwd + jump-back + size + star + rec + + + mute + power + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + red + green + yellow + blue + subtitle + audio + + + Power + Record + Play + Rewind + Pause + Stop + FastForward + Left + Right + Up + Down + + Ch+ + Ch- + Esc + Backspace + Multimon + MouseMenu + SelectSpace + NextChapter + PrevChapter + FullScreen + MultiMon + Vol+ + Vol- + Mute + MyMovie + MyMusic + MyPhoto + MyTV + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + Language + + + KEY_STOP + KEY_PAUSE + KEY_FASTFORWARD + KEY_REWIND + KEY_LEFT + KEY_RIGHT + KEY_UP + KEY_DOWN + + KEY_CHANNELUP + KEY_CHANNELDOWN + KEY_BACKSPACE + KEY_MENU + KEY_PLAY + Go + next + prev + FullScreen + applauncher + KEY_RECORD + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_MUTE + KEY_POWER + KEY_VIDEO + KEY_AUDIO + KEY_PHOTO + KEY_TV + KEY_1 + KEY_2 + KEY_3 + KEY_4 + KEY_5 + KEY_6 + KEY_7 + KEY_8 + KEY_9 + KEY_0 + Star + Hash + KEY_BOOKMARKS + Thumbnail + TaskSwitcher + + + KEY_PLAY + KEY_PAUSE + KEY_STOP + KEY_FASTFORWARD + KEY_REWIND + KEY_LEFT + KEY_RIGHT + KEY_UP + KEY_DOWN + + KEY_CHANNELUP + KEY_CHANNELDOWN + KEY_BACKSPACE + PreviousMenu + Guide + KEY_INFO + KEY_SKIP + KEY_REPLAY + Teletext + WindowsMCE + KEY_RECORD + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_MUTE + KEY_POWER + KEY_VIDEO + KEY_AUDIO + KEY_PHOTO + KEY_TV + KEY_ONE + KEY_TWO + KEY_THREE + KEY_FOUR + KEY_FIVE + KEY_SIX + KEY_SEVEN + KEY_EIGHT + KEY_NINE + KEY_ZERO + Star + Hash + KEY_DELETE + KEY_ENTER + Red + Green + Yellow + Blue + + + fullscreen + power + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + rec + 0 + favorite + rewind + forward + ch+ + vol- + + vol+ + ch- + recall + stop + pause + mute + epg + recordlist + teletext + + + + cx23885_remote + KEY_LEFT + KEY_RIGHT + KEY_UP + KEY_DOWN + + + KEY_ENTER + KEY_DELETE + KEY_SELECT + KEY_PROG1 + KEY_HOME + KEY_ESC + KEY_EXIT + KEY_BACK + KEY_CLOSE + KEY_RECORD + KEY_PLAY + KEY_PLAYPAUSE + KEY_PAUSE + KEY_STOP + KEY_STOPCD + KEY_FASTFORWARD + KEY_REWIND + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_CHANNELUP + KEY_CHANNELDOWN + KEY_NEXTSONG + KEY_NEXT + KEY_PREVIOUSSONG + KEY_PREVIOUS + KEY_TITLE + KEY_EPG + KEY_SUBTITLE + KEY_LANGUAGE + KEY_MUTE + KEY_POWER + KEY_VIDEO + KEY_AUDIO + KEY_MHP + KEY_CAMERA + KEY_TV + KEY_RADIO + KEY_TUNER + KEY_1 + KEY_2 + KEY_3 + KEY_4 + KEY_5 + KEY_6 + KEY_7 + KEY_8 + KEY_9 + KEY_0 + KEY_NUMERIC_1 + KEY_NUMERIC_2 + KEY_NUMERIC_3 + KEY_NUMERIC_4 + KEY_NUMERIC_5 + KEY_NUMERIC_6 + KEY_NUMERIC_7 + KEY_NUMERIC_8 + KEY_NUMERIC_9 + KEY_NUMERIC_0 + KEY_NUMERIC_STAR + KEY_NUMERIC_POUND + KEY_RED + KEY_GREEN + KEY_YELLOW + KEY_BLUE + KEY_DVD + KEY_MENU + KEY_INFO + KEY_PROPS + KEY_ANGLE + KEY_ZOOM + KEY_PVR + KEY_TEXT + KEY_DELETE + + + pause + stop + fwd + rew + left + right + up + down + + ch+ + ch- + back + clear + play + info + next + prev + teletext + ehome + rec + vol+ + vol- + mute + power + video + music + pictures + tv + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + red + green + yellow + blue + + + + KEY_LEFT + KEY_RIGHT + KEY_UP + KEY_DOWN + + KEY_ENTER + KEY_DELETE + KEY_MEDIA + KEY_EXIT + KEY_RECORD + KEY_PLAY + KEY_PAUSE + KEY_STOP + KEY_FASTFORWARD + KEY_REWIND + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_CHANNELUP + KEY_CHANNELDOWN + KEY_NEXT + KEY_PREVIOUS + KEY_EPG + KEY_TITLE + KEY_SUBTITLE + KEY_LANGUAGE + KEY_INFO + KEY_ZOOM + KEY_MUTE + KEY_POWER + KEY_EJECTCD + KEY_EJECTCLOSECD + KEY_DVD + KEY_MENU + KEY_VIDEO + KEY_AUDIO + KEY_CAMERA + KEY_TUNER + KEY_TV + KEY_TEXT + KEY_NUMERIC_1 + KEY_NUMERIC_2 + KEY_NUMERIC_3 + KEY_NUMERIC_4 + KEY_NUMERIC_5 + KEY_NUMERIC_6 + KEY_NUMERIC_7 + KEY_NUMERIC_8 + KEY_NUMERIC_9 + KEY_NUMERIC_0 + KEY_NUMERIC_STAR + KEY_NUMERIC_POUND + KEY_RED + KEY_GREEN + KEY_YELLOW + KEY_BLUE + KEY_PVR + KEY_RADIO + + + + KEY_LEFT + KEY_RIGHT + KEY_UP + KEY_DOWN + + KEY_ENTER + KEY_DELETE + KEY_MEDIA + KEY_EXIT + KEY_RECORD + KEY_PLAY + KEY_PAUSE + KEY_STOP + KEY_FASTFORWARD + KEY_REWIND + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_CHANNELUP + KEY_CHANNELDOWN + KEY_NEXT + KEY_PREVIOUS + KEY_EPG + KEY_TITLE + KEY_SUBTITLE + KEY_LANGUAGE + KEY_INFO + KEY_ZOOM + KEY_MUTE + KEY_POWER + KEY_EJECTCD + KEY_EJECTCLOSECD + KEY_DVD + KEY_MENU + KEY_VIDEO + KEY_AUDIO + KEY_CAMERA + KEY_TUNER + KEY_TV + KEY_TEXT + KEY_NUMERIC_1 + KEY_NUMERIC_2 + KEY_NUMERIC_3 + KEY_NUMERIC_4 + KEY_NUMERIC_5 + KEY_NUMERIC_6 + KEY_NUMERIC_7 + KEY_NUMERIC_8 + KEY_NUMERIC_9 + KEY_NUMERIC_0 + KEY_NUMERIC_STAR + KEY_NUMERIC_POUND + KEY_RED + KEY_GREEN + KEY_YELLOW + KEY_BLUE + KEY_PVR + KEY_RADIO + + + + KEY_LEFT + KEY_RIGHT + KEY_UP + KEY_DOWN + + KEY_ENTER + KEY_DELETE + KEY_MEDIA + KEY_EXIT + KEY_RECORD + KEY_PLAY + KEY_PAUSE + KEY_STOP + KEY_FASTFORWARD + KEY_REWIND + KEY_VOLUMEUP + KEY_VOLUMEDOWN + KEY_CHANNELUP + KEY_CHANNELDOWN + KEY_NEXT + KEY_PREVIOUS + KEY_EPG + KEY_TITLE + KEY_SUBTITLE + KEY_LANGUAGE + KEY_INFO + KEY_ZOOM + KEY_MUTE + KEY_POWER + KEY_EJECTCD + KEY_EJECTCLOSECD + KEY_DVD + KEY_MENU + KEY_VIDEO + KEY_AUDIO + KEY_CAMERA + KEY_TUNER + KEY_TV + KEY_TEXT + KEY_NUMERIC_1 + KEY_NUMERIC_2 + KEY_NUMERIC_3 + KEY_NUMERIC_4 + KEY_NUMERIC_5 + KEY_NUMERIC_6 + KEY_NUMERIC_7 + KEY_NUMERIC_8 + KEY_NUMERIC_9 + KEY_NUMERIC_0 + KEY_NUMERIC_STAR + KEY_NUMERIC_POUND + KEY_RED + KEY_GREEN + KEY_YELLOW + KEY_BLUE + KEY_PVR + KEY_RADIO + + diff --git a/system/X10-Lola-IRSSmap.xml b/system/X10-Lola-IRSSmap.xml new file mode 100644 index 0000000..e0a47d7 --- /dev/null +++ b/system/X10-Lola-IRSSmap.xml @@ -0,0 +1,96 @@ + + + + + X10CMD_NONE + X10CMD_STOP + X10CMD_PLAY + X10CMD_FF + X10CMD_REWIND + X10CMD_LEFT + X10CMD_RIGHT + X10CMD_UP + X10CMD_DN + + X10CMD_BOOKMARK + X10CMD_RESIZE + X10CMD_MTAB + X10CMD_MTRADIO + X10CMD_MTPC + X10CMD_HANDSYMBOL + X10CMD_INPUT + X10CMD_ZOOM + X10CMD_MTVCR + X10CMD_MTCHANNELLIST + X10CMD_RECORD + X10CMD_MUTE + X10CMD_POWER + X10CMD_1 + X10CMD_2 + X10CMD_3 + X10CMD_4 + X10CMD_5 + X10CMD_6 + X10CMD_7 + X10CMD_8 + X10CMD_9 + X10CMD_0 + X10CMD_CH_UP + X10CMD_CH_DN + X10CMD_VOL_DN + X10CMD_VOL_UP + X10CMD_BUTTON_B + + + X10CMD_MTADDDELETE + + + + + + diff --git a/system/addon-manifest.xml b/system/addon-manifest.xml new file mode 100644 index 0000000..7df13a6 --- /dev/null +++ b/system/addon-manifest.xml @@ -0,0 +1,59 @@ + + audioencoder.kodi.builtin.aac + audioencoder.kodi.builtin.wma + game.controller.default + game.controller.keyboard + game.controller.mouse + game.controller.snes + kodi.binary.global.audioengine + kodi.binary.global.filesystem + kodi.binary.global.general + kodi.binary.global.gui + kodi.binary.global.main + kodi.binary.global.network + kodi.binary.global.tools + kodi.binary.instance.audiodecoder + kodi.binary.instance.audioencoder + kodi.binary.instance.game + kodi.binary.instance.imagedecoder + kodi.binary.instance.inputstream + kodi.binary.instance.peripheral + kodi.binary.instance.pvr + kodi.binary.instance.screensaver + kodi.binary.instance.vfs + kodi.binary.instance.videocodec + kodi.binary.instance.visualization + kodi.resource + metadata.album.universal + metadata.artists.universal + metadata.common.allmusic.com + metadata.common.fanart.tv + metadata.common.musicbrainz.org + metadata.common.theaudiodb.com + metadata.generic.albums + metadata.generic.artists + metadata.local + metadata.themoviedb.org.python + metadata.tvshows.themoviedb.org.python + repository.xbmc.org + resource.images.weathericons.default + resource.language.en_gb + resource.uisounds.kodi + screensaver.xbmc.builtin.black + screensaver.xbmc.builtin.dim + script.module.pil + script.module.pycryptodome + skin.estouchy + skin.estuary + webinterface.default + xbmc.addon + xbmc.core + xbmc.gui + xbmc.json + xbmc.metadata + xbmc.python + xbmc.webinterface + inputstream.adaptive + peripheral.joystick + service.xbmc.versioncheck + diff --git a/system/colors.xml b/system/colors.xml new file mode 100644 index 0000000..12903e5 --- /dev/null +++ b/system/colors.xml @@ -0,0 +1,153 @@ + + + + fff0f8ff + fffaebd7 + ff00ffff + ff7fffd4 + fff0ffff + fff5f5dc + ffffe4c4 + ff000000 + ffffebcd + ff0000ff + ff8a2be2 + ffa52a2a + ffdeb887 + ff5f9ea0 + ff7fff00 + ffd2691e + ffff7f50 + ff6495ed + fffff8dc + ffdc143c + ff00ffff + ff00008b + ff008b8b + ffb8860b + ffa9a9a9 + ff006400 + ffa9a9a9 + ffbdb76b + ff8b008b + ff556b2f + ffff8c00 + ff9932cc + ff8b0000 + ffe9967a + ff8fbc8f + ff483d8b + ff2f4f4f + ff2f4f4f + ff00ced1 + ff9400d3 + ffff1493 + ff00bfff + ff696969 + ff696969 + ff1e90ff + ffb22222 + fffffaf0 + ff228b22 + ffff00ff + ffdcdcdc + fff8f8ff + ffffd700 + ffdaa520 + ff808080 + ff008000 + ffadff2f + ff808080 + fff0fff0 + ffff69b4 + ffcd5c5c + ff4b0082 + fffffff0 + fff0e68c + ffe6e6fa + fffff0f5 + ff7cfc00 + fffffacd + ffadd8e6 + fff08080 + ffe0ffff + fffafad2 + ffd3d3d3 + ff90ee90 + ffd3d3d3 + ffffb6c1 + ffffa07a + ff20b2aa + ff87cefa + ff778899 + ff778899 + ffb0c4de + ffffffe0 + ff00ff00 + ff32cd32 + fffaf0e6 + ffff00ff + ff800000 + ff66cdaa + ff0000cd + ffba55d3 + ff9370db + ff3cb371 + ff7b68ee + ff00fa9a + ff48d1cc + ffc71585 + ff191970 + fff5fffa + ffffe4e1 + ffffe4b5 + ffffdead + ff000080 + 00000000 + fffdf5e6 + ff808000 + ff6b8e23 + ffffa500 + ffff4500 + ffda70d6 + ffeee8aa + ff98fb98 + ffafeeee + ffdb7093 + ffffefd5 + ffffdab9 + ffcd853f + ffffc0cb + ffdda0dd + ffb0e0e6 + ff800080 + ffff0000 + ffbc8f8f + ff4169e1 + ff8b4513 + fffa8072 + fff4a460 + ff2e8b57 + fffff5ee + ffa0522d + ffc0c0c0 + ff87ceeb + ff6a5acd + ff708090 + ff708090 + fffffafa + ff00ff7f + ff4682b4 + ffd2b48c + ff008080 + ffd8bfd8 + ffff6347 + 00000000 + ff40e0d0 + ffee82ee + fff5deb3 + ffffffff + fff5f5f5 + ffffff00 + ff9acd32 + diff --git a/system/dialogcolors.xml b/system/dialogcolors.xml new file mode 100644 index 0000000..12af216 --- /dev/null +++ b/system/dialogcolors.xml @@ -0,0 +1,166 @@ + + + + FFEFDECD + FFCD9575 + FFBF3F3F + FFFDD9B5 + FF78DBE2 + FF87A96B + FFFFA474 + FFFAE7B5 + FF9F8170 + FFA43482 + FFFD7C6E + FF000000 + FFACE5EE + FFA2A2D0 + FF6699CC + FF0D98BA + FF7366BD + FF1F75FE + FFDE5D83 + FFCB4154 + ffeeeeee + FFB4674D + FFDF9ACA + FFFF7F49 + FFEA7E5D + FFE74F00 + FFB0B7C6 + FFFFFF99 + FF1CD3A2 + FF67CD95 + FFFFAACC + FFDD4492 + FF1DACD6 + FFBC5D58 + ffe0e0e0 + FF548CD0 + FFDD9475 + FF9ACEEB + FFFFBCD9 + FFFDDB6D + FF2B6CC4 + FFEFCDB8 + FF6E5160 + FFCEFF1D + FF71BC78 + FF6DAE81 + FFC364C5 + FFCC6666 + FFE7C697 + FFFCD975 + ff616161 + FFA8E4A0 + ff424242 + fff5f5f5 + fffafafa + ffbdbdbd + FF1164B4 + FFF0E891 + FF1CAC78 + FF8F482F + FFFF1DCE + FFB2EC5D + FF5D76CB + FF3C32CD + FFCA3767 + FF3BB08F + FFFEFE22 + FF6B4D82 + FFFCB4D5 + FF94DDCB + FFFFF44F + FFFFD966 + FFFFBD88 + FFF664AF + FFAAF0D1 + FFCD4A4C + FFEDD19C + FF979AAA + FFFF6137 + FFFF8243 + FFC8385A + FFEF98AA + FFFDBCB4 + FF1A4876 + FF4F2CD0 + FF30BA8F + FFC54B8C + FF1974D2 + FFFFA343 + FF62C9D3 + FFBAB86C + FFFF8021 + FFFF2B2B + FFF8D568 + FFFF7538 + FFE6A8D7 + FF414A4C + FFFF6E4A + FF1CA9C9 + FFFFCFAB + FFC5D0E6 + FF5F7B4A + FFFDDDE6 + FF158078 + FFFC74FD + FFFFB2E7 + FFF78FA7 + FF8E4585 + FF7442C8 + FF9D81BA + FFFE4EDA + FFFF496C + ff212121 + FFD68A59 + FF714B23 + FFFF48D0 + FFE3256B + FFFF5349 + FF9F3434 + FFC0448F + FFEE204D + FF1FCECB + FF7851A9 + FFFF9BAA + FFFC2847 + FF76FF7A + FFC4EA7F + FF9FE2BF + FFA5694F + FF8A795D + FF45CEA2 + FFFB7EFD + FFFFFF65 + FF80DAEB + ff757575 + ff9e9e9e + FFECEABE + FFFFCF48 + FFFD5E53 + FFF79015 + FFFAA76C + FF18A7B5 + FFEBC7DF + FFFC89AC + FFDBD7D2 + FF17806D + FFDEAA88 + FF77DDE7 + FFFFFF66 + FF926EAE + FF324AB2 + FFF75394 + FFFFA089 + FF8F509D + FFFFFFFF + FFA2ADD0 + FFFF43A4 + FFFC6C85 + FFCDA4DE + FFC5E384 + FFFFAE42 + FFFCE883 + diff --git a/system/keyboardlayouts/arabic.xml b/system/keyboardlayouts/arabic.xml new file mode 100644 index 0000000..3b37ff0 --- /dev/null +++ b/system/keyboardlayouts/arabic.xml @@ -0,0 +1,27 @@ + + + + + + ١٢٣٤٥٦٧٨٩٠ + ضصثقفغعهخحج + شسيبلاتنمكة + ءظطذدزروی + + + 1234567890 + أإآؤ + ـئ‘،؛ + ًٌٍََُِّْ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~؟ + + + diff --git a/system/keyboardlayouts/bulgarian.xml b/system/keyboardlayouts/bulgarian.xml new file mode 100644 index 0000000..dee53f5 --- /dev/null +++ b/system/keyboardlayouts/bulgarian.xml @@ -0,0 +1,47 @@ + + + + + + ч1234567890 + явертъуиопшщ + асдфгхйклю + зьцжбнм + + + Ч1234567890 + ЯВЕРТЪУИОПШЩ + АСДФГХЙКЛЮ + ЗЬЦЖБНМ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + + + 0123456789 + абвгдежзий + клмнопрсту + фхцчшщъьюя + + + 0123456789 + АБВГДЕЖЗИЙ + КЛМНОПРСТУ + ФХЦЧШЩЪЬЮЯ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/chinese.xml b/system/keyboardlayouts/chinese.xml new file mode 100644 index 0000000..2bd6f12 --- /dev/null +++ b/system/keyboardlayouts/chinese.xml @@ -0,0 +1,27 @@ + + + + + + 0123456789 + qwertyuiop + asdfghjkl + zxcvbnm + + + 0123456789 + QWERTYUIOP + ASDFGHJKL + ZXCVBNM + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/croatian.xml b/system/keyboardlayouts/croatian.xml new file mode 100644 index 0000000..3f3fca7 --- /dev/null +++ b/system/keyboardlayouts/croatian.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890'+ + qwertzuiopšđ + asdfghjklčćž: + yxcvbnm,.- + + + !"#$%&/()=?* + QWERTZUIOPŠĐ + ASDFGHJKLČĆŽ + YXCVBNM;:_ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/czech.xml b/system/keyboardlayouts/czech.xml new file mode 100644 index 0000000..4c31abd --- /dev/null +++ b/system/keyboardlayouts/czech.xml @@ -0,0 +1,27 @@ + + + + + + ťěščřžýáíéó( + qwertzuiopú) + asdfghjklůď_ + /yxcvbnmň:.- + + + ŤĚŠČŘŽÝÁÍÉÓ( + QWERTZUIOPÚ) + ASDFGHJKLŮĎ_ + \YXCVBNMŇ:.- + + + 1234567890% + +@#$~^&*{}= + []()/"'`;! + \|<>,.?:-_ + + + diff --git a/system/keyboardlayouts/danish.xml b/system/keyboardlayouts/danish.xml new file mode 100644 index 0000000..2ceffec --- /dev/null +++ b/system/keyboardlayouts/danish.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890 + qwertyuiopå + asdfghjklæø + zxcvbnm + + + 1234567890 + QWERTYUIOPÅ + ASDFGHJKLÆØ + ZXCVBNM + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/english.xml b/system/keyboardlayouts/english.xml new file mode 100644 index 0000000..760ac81 --- /dev/null +++ b/system/keyboardlayouts/english.xml @@ -0,0 +1,85 @@ + + + + + + 1234567890-=` + qwertyuiop[]\ + asdfghjkl;' + zxcvbnm,./ + + + !@#$%^&*()_+~ + QWERTYUIOP{}| + ASDFGHJKL:" + ZXCVBNM<>? + + + £¥€§±µ¤«»· + áàâäãåæçéè + êëíìîïñóòô + öõøœßúùûü + + + ¼½¾¹²³°ªº¨ + ÁÀÂÄÃÅÆÇÉÈ + ÊËÍÌÎÏÑÓÒÔ + ÖÕØŒẞÚÙÛÜ + + + + + 1234567890-=` + azertyuiop[]\ + qsdfghjklm;' + wxcvbn,./ + + + !@#$%^&*()_+~ + AZERTYUIOP{}| + QSDFGHJKLM:" + WXCVBN<>? + + + £¥€§±µ¤«»· + áàâäãåæçéè + êëíìîïñóòô + öõøœßúùûü + + + ¼½¾¹²³°ªº¨ + ÁÀÂÄÃÅÆÇÉÈ + ÊËÍÌÎÏÑÓÒÔ + ÖÕØŒẞÚÙÛÜ + + + + + 1234567890-=` + abcdefghij[]\ + klmnopqrst;' + uvwxyz,./ + + + !@#$%^&*()_+~ + ABCDEFGHIJ{}| + KLMNOPQRST:" + UVWXYZ<>? + + + £¥€§±µ¤«»· + áàâäãåæçéè + êëíìîïñóòô + öõøœßúùûü + + + ¼½¾¹²³°ªº¨ + ÁÀÂÄÃÅÆÇÉÈ + ÊËÍÌÎÏÑÓÒÔ + ÖÕØŒẞÚÙÛÜ + + + diff --git a/system/keyboardlayouts/estonian.xml b/system/keyboardlayouts/estonian.xml new file mode 100644 index 0000000..96b94d3 --- /dev/null +++ b/system/keyboardlayouts/estonian.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890 + qwertyuiopüõ + asdfghjklöä + zxcvbnm + + + 1234567890 + QWERTYUIOPÜÕ + ASDFGHJKLÖÄ + ZXCVBNM + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/french.xml b/system/keyboardlayouts/french.xml new file mode 100644 index 0000000..630ec32 --- /dev/null +++ b/system/keyboardlayouts/french.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890°+ + azertyuiop^$ + qsdfghjklmù* + <wxcvbn,;:!& + + + 1234567890@= + AZERTYUIOP¨£ + QSDFGHJKLM%µ + >WXCVBN?./§² + + + ()[]{}~"'`-_ + #|\€¤ÆŒæœüÜÙ + àâçéèêëîïôöû + ÀÂÇÉÈÊËÎÏÔÖÛ + + + \ No newline at end of file diff --git a/system/keyboardlayouts/german.xml b/system/keyboardlayouts/german.xml new file mode 100644 index 0000000..8bde9cb --- /dev/null +++ b/system/keyboardlayouts/german.xml @@ -0,0 +1,59 @@ + + + + + + 1234567890ß' + qwertzuiopü+ + asdfghjklöä# + yxcvbnm,.-/@ + + + !"§$%&/()=?` + QWERTZUIOPÜ* + ASDFGHJKLÖÄ' + YXCVBNM;:_/@ + + + ^£€[]{}\|<>µ + áàâäãåæçéè + êëíìîïñóòô + õøœßúùû + + + °¹²³¼½¾±µ¤«»· + ÁÀÂÄÃÅÆÇÉÈ + ÊËÍÌÎÏÑÓÒÔ + ÕØŒẞÚÙÛ + + + + + 1234567890ß' + abcdefghijk+ + lmnopqrstuv# + wxyzäöü,.-@ + + + !"§$%&/()=?` + ABCDEFGHIJK* + LMNOPQRSTUV' + WXYZÄÖÜ;:_@ + + + ^£€[]{}\|<>µ + áàâäãåæçéè + êëíìîïñóòô + õøœßúùû + + + °¹²³¼½¾±µ¤«»· + ÁÀÂÄÃÅÆÇÉÈ + ÊËÍÌÎÏÑÓÒÔ + ÕØŒẞÚÙÛ + + + diff --git a/system/keyboardlayouts/greek.xml b/system/keyboardlayouts/greek.xml new file mode 100644 index 0000000..823133a --- /dev/null +++ b/system/keyboardlayouts/greek.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890 + ςερτυθιοπ + ασδφγηξκλ + ζχψωβνμ + + + 1234567890 + ΕΡΤΥΘΙΟΠ + ΑΣΔΦΓΗΞΚΛ + ΖΧΨΩΒΝΜ + + + )!@#€§$%^&*( + []{}-_=+;:~ + '",.<>/?\|` + έύίόάήώϋϊΰΐ + + + diff --git a/system/keyboardlayouts/hebrew.xml b/system/keyboardlayouts/hebrew.xml new file mode 100644 index 0000000..8cd23ab --- /dev/null +++ b/system/keyboardlayouts/hebrew.xml @@ -0,0 +1,47 @@ + + + + + + 1234567890 + קראטוןםפ + שדגכעיחלךף + זסבהנמצתץ + + + 1234567890 + QWERTYUIOP + ASDFGHJKL + ZXCVBNM + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + + + 0123456789 + יטחזוהדגבא + ףפעסןנםמלכ + תשרקץצ + + + 0123456789 + ABCDEFGHIJ + KLMNOPQRST + UVWXYZ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/hungarian.xml b/system/keyboardlayouts/hungarian.xml new file mode 100644 index 0000000..0d16ceb --- /dev/null +++ b/system/keyboardlayouts/hungarian.xml @@ -0,0 +1,27 @@ + + + + + + 0123456789öüó + qwertzuiopőú+ + asdfghjkléáű- + íyxcvbnm,.?!@ + + + 0123456789ÖÜÓ + QWERTZUIOPŐÚ+ + ASDFGHJKLÉÁŰ- + ÍYXCVBNM,.?!@ + + + §'"+!/=()~ + ^;\|Ä€Í÷×ä + đĐ[]íłŁ$ߤ + #@{}<>*?:_ + + + diff --git a/system/keyboardlayouts/icelandic.xml b/system/keyboardlayouts/icelandic.xml new file mode 100644 index 0000000..7b1887d --- /dev/null +++ b/system/keyboardlayouts/icelandic.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890ö- + qwertyuiopð' + asdfghjklæ+ + zxcvbnm,.þ + + + 1234567890Ö_ + QWERTYUIOPÐ? + ASDFGHJKLÆ* + ZXCVBNM;:Þ + + + )!@#$%^&*( + []{}-_=+;: + áéíóú<>/?\| + ÁÉÍÓÚ`~" + + + diff --git a/system/keyboardlayouts/italian.xml b/system/keyboardlayouts/italian.xml new file mode 100644 index 0000000..c92e225 --- /dev/null +++ b/system/keyboardlayouts/italian.xml @@ -0,0 +1,45 @@ + + + + + + 1234567890'ì + qwertyuiopè+ + asdfghjklòàù + zxcvbnm,.- + + + 1234567890?^ + QWERTYUIOPé* + ASDFGHJKLç°§ + ZXCVBNM;:_ + + + /\|@€#[]<>`~ + !"£$%&()='? + <>,.-+*_^§ç + + + + + 1234567890+- + abcdefghiàèì + jklmnopqròù' + stuvwxyz,. + + + 1234567890*_ + ABCDEFGHI°é^ + JKLMNOPQRç§? + STUVWXYZ;: + + + /\|@€#[]<>`~ + !"£$%&()='? + <>,.-+*_^§ç + + + diff --git a/system/keyboardlayouts/korean.xml b/system/keyboardlayouts/korean.xml new file mode 100644 index 0000000..31109e5 --- /dev/null +++ b/system/keyboardlayouts/korean.xml @@ -0,0 +1,27 @@ + + + + + + 0123456789 + ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋ + ㅌㅍㅎㄲㄸㅃㅆㅉㅏㅑㅓ + ㅕㅗㅛㅜㅠㅡㅣㅐㅔㅒㅖ + + + 0123456789 + ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋ + ㅌㅍㅎㄲㄸㅃㅆㅉㅏㅑㅓ + ㅕㅗㅛㅜㅠㅡㅣㅐㅔㅒㅖ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/lithuanian.xml b/system/keyboardlayouts/lithuanian.xml new file mode 100644 index 0000000..9f0c839 --- /dev/null +++ b/system/keyboardlayouts/lithuanian.xml @@ -0,0 +1,47 @@ + + + + + + 1234567890x + ąžertyuiopįw + asdšghjklųėq + zūcvbnmčfę + + + 1234567890X + ĄŽERTYUIOPĮW + ASDŠGHJKLŲĖQ + ZŪCVBNMČFĘ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + + + 1234567890 + qwertyuiopąč + asdfghjklęėį + zxcvbnmšųūž + + + 1234567890 + QWERTYUIOPĄČ + ASDFGHJKLĘĖĮ + ZXCVBNMŠŲŪŽ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/norwegian.xml b/system/keyboardlayouts/norwegian.xml new file mode 100644 index 0000000..8db7f78 --- /dev/null +++ b/system/keyboardlayouts/norwegian.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890 + qwertyuiopå + asdfghjkløæ + zxcvbnm + + + 1234567890 + QWERTYUIOPÅ + ASDFGHJKLØÆ + ZXCVBNM + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/persian.xml b/system/keyboardlayouts/persian.xml new file mode 100644 index 0000000..e92f587 --- /dev/null +++ b/system/keyboardlayouts/persian.xml @@ -0,0 +1,27 @@ + + + + + + ۱۲۳۴۵۶۷۸۹۰ + جحخهعغفقثصض + گکمنتالبیسش + وپدذرزطظژچ. + + + 1234567890 + \|{}ّ[] + ؛:«»ةآأإيئؤ + /<>؟ٰك + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~؟ + + + diff --git a/system/keyboardlayouts/polish.xml b/system/keyboardlayouts/polish.xml new file mode 100644 index 0000000..91e631e --- /dev/null +++ b/system/keyboardlayouts/polish.xml @@ -0,0 +1,27 @@ + + + + + + `1234567890- + qwertyuiopąć + asdfghjklęłń + zxcvbnmóśżź + + + ~1234567890_ + QWERTYUIOPĄĆ + ASDFGHJKLĘŁŃ + ZXCVBNMÓŚŻŹ + + + !@#$%^&*()=+ + \|€£§[]{};', + ./:"<>? + + + + diff --git a/system/keyboardlayouts/portuguese.xml b/system/keyboardlayouts/portuguese.xml new file mode 100644 index 0000000..88c9dce --- /dev/null +++ b/system/keyboardlayouts/portuguese.xml @@ -0,0 +1,47 @@ + + + + + + /\0123456789 + qwertyuiopôê + asdfghjklç.: + zxcvbnmáéíóú + + + /\0123456789 + QWERTYUIOPÔÊ + ASDFGHJKLÇ.: + ZXCVBNMÁÉÍÓÚ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ÁÉÍÓÚÊà + + + + + \1234567890' + qwertyuiop+´ + asdfghjklçº~ + <zxcvbnm,.- + + + |1234567890? + QWERTYUIOP*` + ASDFGHJKLǪ^ + >ZXCVBNM;:_ + + + |!"#$%&/()=? + @£§{[]}€áãâà + éêíóõôúÁÃÂÀÉ + ÊÍÓÕÔÚ«»¨ + + + diff --git a/system/keyboardlayouts/romanian.xml b/system/keyboardlayouts/romanian.xml new file mode 100644 index 0000000..83defed --- /dev/null +++ b/system/keyboardlayouts/romanian.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890 + qwertyuiopăî + asdfghjklșțâ + zxcvbnm + + + 1234567890 + QWERTYUIOPĂÎ + ASDFGHJKLȘȚ + ZXCVBNM + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~„” + + + diff --git a/system/keyboardlayouts/russian.xml b/system/keyboardlayouts/russian.xml new file mode 100644 index 0000000..d0c9102 --- /dev/null +++ b/system/keyboardlayouts/russian.xml @@ -0,0 +1,47 @@ + + + + + + ё1234567890 + йцукенгшщзхъ + фывапролджэ + ячсмитьбю + + + Ё1234567890 + ЙЦУКЕНГШЩЗХЪ + ФЫВАПРОЛДЖЭ + ЯЧСМИТЬБЮ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + + + 0123456789 + абвгдеёжзий + клмнопрстуф + хцчшщъыьэюя + + + 0123456789 + АБВГДЕЁЖЗИЙ + КЛМНОПРСТУФ + ХЦЧШЩЪЫЬЭЮЯ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/silesian.xml b/system/keyboardlayouts/silesian.xml new file mode 100644 index 0000000..a35aab9 --- /dev/null +++ b/system/keyboardlayouts/silesian.xml @@ -0,0 +1,27 @@ + + + + + + ôōŏśćńłżź( + qwertzuiopã) + asdfghjklõ_ + /yxcvbnm:.- + + + ÔŌŎŚĆŃŁŻŹ( + QWERTZUIOPÃ) + ASDFGHJKLÕ_ + \YXCVBNM:.- + + + 1234567890% + +@#$~^&*{}= + []()/"'`;! + \|<>,.?:-_ + + + diff --git a/system/keyboardlayouts/slovak.xml b/system/keyboardlayouts/slovak.xml new file mode 100644 index 0000000..5737079 --- /dev/null +++ b/system/keyboardlayouts/slovak.xml @@ -0,0 +1,67 @@ + + + + + + ĺľščťžýáíéó_ + qwertzuiopúä + asdfghjklôďň + /yxcvbnmŕ:.- + + + ĹĽŠČŤŽÝÁÍÉÓ_ + QWERTZUIOPÚÄ + ASDFGHJKLÔĎŇ + \YXCVBNMŔ:.- + + + 1234567890% + +@#$~^&*{}= + []()/"'`;! + \|<>,.?:-_ + + + + + ĺľščťžýáíéó_ + qwertyuiopúä + asdfghjklôďň + /zxcvbnmŕ:.- + + + ĹĽŠČŤŽÝÁÍÉÓ_ + QWERTYUIOPÚÄ + ASDFGHJKLÔĎŇ + \ZXCVBNMŔ:.- + + + 1234567890% + +@#$~^&*{}= + []()/"'`;! + \|<>,.?:-_ + + + + + aáäbcčdďeéfg + hiíjklĺľmnňo + óôpqrŕsštťuú + vwxyýzž:./\@ + + + AÁÄBCČDĎEÉFG + HIÍJKLĹĽMNŇO + ÓÔPQRŔSŠTŤUÚ + VWXYÝZŽ:./\@ + + + 1234567890% + +@#$~^&*{}= + []()/"'`;! + \|<>,.?:-_ + + + diff --git a/system/keyboardlayouts/slovenian.xml b/system/keyboardlayouts/slovenian.xml new file mode 100644 index 0000000..a09b007 --- /dev/null +++ b/system/keyboardlayouts/slovenian.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890'+ + qwertzuiopšđ + asdfghjklčćž: + yxcvbnm,.- + + + !"#$%&/()=?* + QWERTZUIOPŠĐ + ASDFGHJKLČĆŽ + YXCVBNM;:_ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/spanish.xml b/system/keyboardlayouts/spanish.xml new file mode 100644 index 0000000..866e9b0 --- /dev/null +++ b/system/keyboardlayouts/spanish.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890'¡ + qwertyuiop`+ + asdfghjklñ´ç + <zxcvbnm,.- + + + 1234567890?¿ + QWERTYUIOP^* + ASDFGHJKLÑ¨Ç + >ZXCVBNM;:_ + + + !"·$%&/()=?¿ + \|@#€£¥[]{}~ + áéíóúü¹²³ªº± + ÁÉÍÓÚܼ½¾«»§ + + + diff --git a/system/keyboardlayouts/swedish.xml b/system/keyboardlayouts/swedish.xml new file mode 100644 index 0000000..62f920c --- /dev/null +++ b/system/keyboardlayouts/swedish.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890 + qwertyuiopå + asdfghjklöä + zxcvbnm + + + 1234567890 + QWERTYUIOPÅ + ASDFGHJKLÖÄ + ZXCVBNM + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/thai.xml b/system/keyboardlayouts/thai.xml new file mode 100644 index 0000000..0a810c4 --- /dev/null +++ b/system/keyboardlayouts/thai.xml @@ -0,0 +1,27 @@ + + + + + + ๅ/-ภถุึคตจขช + ๆไำพะัีรนยบลฃ + ฟหกดเ้่าสวง + ผปแอิืทมใฝ + + + +๑๒๓๔ู฿๕๖๗๘๙ + ๐"ฎฑธํ๊ณฯญฐ,ฅ + ฤฆฏโฌ็๋ษศซ. + ()ฉฮฺ์?ฒฬฦ + + + )!@#€§$%^&*( + []{}-_=+;:μ + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/turkish.xml b/system/keyboardlayouts/turkish.xml new file mode 100644 index 0000000..3a123db --- /dev/null +++ b/system/keyboardlayouts/turkish.xml @@ -0,0 +1,27 @@ + + + + + + 1234567890 + qwertyuıopğü + asdfghjklşi + zxcvbnmöç + + + 1234567890 + QWERTYUIOPĞÜ + ASDFGHJKLŞİ + ZXCVBNMÖÇ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keyboardlayouts/ukrainian.xml b/system/keyboardlayouts/ukrainian.xml new file mode 100644 index 0000000..3303a1b --- /dev/null +++ b/system/keyboardlayouts/ukrainian.xml @@ -0,0 +1,47 @@ + + + + + + '1234567890 + йцукенгшщзхї + фівапролджє + ґячсмитьбю + + + '1234567890 + ЙЦУКЕНГШЩЗХЇ + ФІВАПРОЛДЖЄ + ҐЯЧСМИТЬБЮ + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + + + 0123456789 + абвгґдеєжзиі + їйклмнопрст + уфхцчшщьюя' + + + 0123456789 + АБВГҐДЕЄЖЗИІ + ЇЙКЛМНОПРСТ + УФХЦЧШЩЬЮЯ' + + + )!@#$%^&*( + []{}-_=+;: + '",.<>/?\| + `~ + + + diff --git a/system/keymaps/appcommand.xml b/system/keymaps/appcommand.xml new file mode 100644 index 0000000..d8ac1d2 --- /dev/null +++ b/system/keymaps/appcommand.xml @@ -0,0 +1,31 @@ + + + + + Back + + + Stop + + ActivateWindow(FavouritesBrowser) + FirstPage + + + + SkipNext + SkipPrevious + Stop + PlayPause + + ActivateWindow(Music) + ActivateWindow(Programs) + ActivateWindow(Programs) + Play + Pause + FastForward + Rewind + PageUp + PageDown + + + diff --git a/system/keymaps/customcontroller.AppleRemote.xml b/system/keymaps/customcontroller.AppleRemote.xml new file mode 100644 index 0000000..a06cf59 --- /dev/null +++ b/system/keymaps/customcontroller.AppleRemote.xml @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/keymaps/customcontroller.Harmony.xml b/system/keymaps/customcontroller.Harmony.xml new file mode 100644 index 0000000..77f288d --- /dev/null +++ b/system/keymaps/customcontroller.Harmony.xml @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/keymaps/customcontroller.SiriRemote.xml b/system/keymaps/customcontroller.SiriRemote.xml new file mode 100644 index 0000000..1267c8d --- /dev/null +++ b/system/keymaps/customcontroller.SiriRemote.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/keymaps/gamepad.xml b/system/keymaps/gamepad.xml new file mode 100644 index 0000000..cc440c3 --- /dev/null +++ b/system/keymaps/gamepad.xml @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Select + Back + FullScreen + Queue + ContextMenu + + ActivateWindow(PlayerControls) + PreviousMenu + Left + Right + Up + Down + Screenshot + ActivateWindow(ShutdownMenu) + ScrollUp + ScrollDown + AnalogSeekBack + AnalogSeekForward + VolumeUp + VolumeDown + + + + + Highlight + + + + + Delete + Back + + + + + Queue + + + + + Queue + Playlist + + + + + Pause + Stop + AspectRatio + PlayerProcessInfo + Info + Seek(-7) + OSD + AnalogRewind + AnalogFastForward + StepBack + StepForward + ChapterOrBigStepForward + ChapterOrBigStepBack + + + + + Pause + Stop + AspectRatio + CodecInfo + Info + Seek(-7) + OSD + AnalogRewind + AnalogFastForward + StepBack + StepForward + + + + + StepBack + StepForward + ChannelUp + ChannelDown + + + + + StepBack + StepForward + ChannelUp + ChannelDown + + + + + OSD + PlayerProcessInfo + Back + AnalogRewind + AnalogFastForward + + + + + Back + + + + + Pause + Stop + ActivateWindow(VisualisationPresetList) + PlayerProcessInfo + Info + OSD + LockPreset + AnalogRewind + AnalogFastForward + StepBack + StepForward + SkipNext + SkipPrevious + + + + + Back + PlayerProcessInfo + Info + AnalogRewind + AnalogFastForward + + + + + Back + AnalogRewind + AnalogFastForward + + + + + Back + Back + AnalogRewind + AnalogFastForward + + + + + Pause + Stop + Rotate + ZoomNormal + Info + Info + NextPicture + PreviousPicture + PreviousPicture + NextPicture + ZoomIn + ZoomOut + AnalogMove + Stop + + + + + AnalogMove + NextCalibration + ResetCalibration + NextResolution + + + + + AnalogMove + NextCalibration + ResetCalibration + + + + + Back + PlayerProcessInfo + Info + AnalogRewind + AnalogFastForward + + + + + AspectRatio + Stop + OSD + Info + PlayerProcessInfo + AnalogRewind + AnalogFastForward + + + + + + AspectRatio + Back + PlayerProcessInfo + Info + AnalogRewind + AnalogFastForward + + + + + + AspectRatio + Back + PlayerProcessInfo + Info + AnalogRewind + AnalogFastForward + + + + + + Delete + Back + AnalogRewind + AnalogFastForward + + + + + Delete + + + + + Delete + Back + + + + + Enter + BackSpace + Shift + Symbols + CursorLeft + CursorRight + + + + + Back + + + + + info + + + + + BackSpace + Enter + SkipPrevious + SkipNext + + + + + Stop + + + + + Back + + + + + Back + + + + + PreviousPicture + NextPicture + + + + + PlayerProcessInfo + + + diff --git a/system/keymaps/joystick.xml b/system/keymaps/joystick.xml new file mode 100644 index 0000000..2db760b --- /dev/null +++ b/system/keymaps/joystick.xml @@ -0,0 +1,415 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Select + ContextMenu + Back + ContextMenu + FullScreen + ActivateWindow(PlayerControls) + ActivateWindow(Home) + ActivateWindow(Home) + Up + Down + Right + Left + Screenshot + ActivateWindow(ShutdownMenu) + ScrollUp + ScrollDown + ScrollUp + ScrollDown + Left + Right + Up + Down + VolumeDown + VolumeUp + VolumeUp + VolumeDown + + + + + Back + ActivateWindow(ShutdownMenu) + + + + + Highlight + + + + + Delete + + + + + + + Pause + Stop + FullScreen + OSD + FullScreen + Info + FullScreen + OSD + ChapterOrBigStepForward + ChapterOrBigStepBack + StepForward + StepBack + ShowSubtitles + AspectRatio + AnalogRewind + AnalogFastForward + AnalogRewind + AnalogFastForward + AnalogSeekBack + AnalogSeekForward + noop + noop + + + + + OSD + OSD + + VolumeDown + VolumeUp + VolumeUp + VolumeDown + + + + + + + + + + OSD + OSD + Stop + AnalogFastForward + AnalogRewind + AnalogFastForward + AnalogRewind + + + + + + Pause + Stop + FullScreen + OSD + OSD + OSD + Info + ChannelUp + ChannelDown + StepBack + StepForward + + + + + Menu + + + + + Pause + Stop + FullScreen + OSD + OSD + OSD + Info + ChannelUp + ChannelDown + StepBack + StepForward + + + + + Menu + + + + + Close + OSD + Close + AnalogRewind + AnalogFastForward + AnalogRewind + AnalogFastForward + + + + + Close + Close + Close + + + + + Pause + Stop + Addon.Default.OpenSettings(xbmc.player.musicviz) + ActivateWindow(VisualisationPresetList) + Info + ActivateWindow(MusicOSD) + SkipNext + SkipPrevious + StepBack + StepForward + AnalogRewind + AnalogFastForward + AnalogRewind + AnalogFastForward + PreviousPreset + NextPreset + noop + noop + + + + + Close + Info + + + + + Close + + + + + Pause + Stop + ZoomNormal + Rotate + Info + ZoomIn + ZoomOut + PreviousPicture + NextPicture + AnalogMoveXLeft + AnalogMoveXRight + AnalogMoveYUp + AnalogMoveYDown + ZoomOut + ZoomIn + + + + + ResetCalibration + NextResolution + NextCalibration + + + + + ResetCalibration + NextResolution + NextCalibration + + + + + Close + + + + + Stop + OSD + AspectRatio + Info + + + + + AspectRatio + Close + + + + + AspectRatio + Close + + + + + Delete + + + + + + + Delete + + + + + Select + Shift + BackSpace + Symbols + Shift + Enter + CursorLeft + CursorRight + VoiceRecognizer + VoiceRecognizer + + + + + Close + + + + + PreviousMenu + + + + + Close + + + + + Close + + + + + Close + + + + + PreviousMenu + PreviousMenu + + + + + PreviousMenu + + + + + Close + + + + + Close + + + + + BackSpace + Enter + + + + + Stop + + + + + PreviousMenu + Close + + + + + PreviousMenu + Close + + + diff --git a/system/keymaps/keyboard.xml b/system/keymaps/keyboard.xml new file mode 100644 index 0000000..49177c4 --- /dev/null +++ b/system/keymaps/keyboard.xml @@ -0,0 +1,849 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Play

+ Queue + FastForward + Rewind + SwitchPlayer + Left + Right + Up + Down + analogseekback + analogseekforward + PageUp + PageDown + Select + ContextMenu + Enter + Select + ContextMenu + Enter + Back + Back + ActivateWindow(Home) + Back + Menu + ActivateWindow(PlayerControls) + ActivateWindow(ShutdownMenu) + PreviousMenu + Back + Info + ContextMenu + Menu + ContextMenu + Menu + Pause + Stop + SkipNext + SkipPrevious + FullScreen + Screenshot + Screenshot + VolumeDown + VolumeUp + VolumeUp + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + VolumeDown + VolumeUp + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + ToggleFullScreen + FirstPage + LastPage + ActivateWindow(ShutdownMenu) + ActivateWindow(ShutdownMenu) + + ActivateWindow(TVGuide) + ActivateWindow(TVGuide) + ActivateWindow(TVChannels) + ActivateWindow(RadioChannels) + ActivateWindow(TVRecordings) + ActivateWindow(TVTimers) + + ActivateWindow(TVChannels) + ActivateWindow(Videos) + ActivateWindow(Music) + ActivateWindow(Pictures) + + Back + + + + + ActivateWindow(FavouritesBrowser) + ActivateWindow(FavouritesBrowser) + ActivateWindow(Settings) + ActivateWindow(Home) + ActivateWindow(Home) + Mute + VolumeDown + VolumeUp + SkipNext + SkipPrevious + Stop + PlayPause + Info + FastForward + Rewind + + + ActivateWindow(Music) + ActivateWindow(Programs) + ActivateWindow(Programs) + + + + + +

Play

+ Stop +

Pause

+ FastForward + Rewind + SkipNext + SkipPrevious + Info + Record + PreviousMenu + VolumeUp + VolumeDown + Mute + ActivateWindow(TVGuide) + ActivateWindow(music) + ActivateWindow(pictures) + ActivateWindow(videos) + PlayerControl(ShowVideoMenu) + ActivateWindow(TVRecordings) + ActivateWindow(TVChannels) + ActivateWindow(TVChannels) + ActivateWindow(RadioChannels) + + Notification(MCEKeypress, DVD subtitle, 3) + Notification(MCEKeypress, DVD audio, 3) + ReloadKeymaps + ToggleDebug + ToggleDirtyRegionVisualization + HDRToggle +
+
+ + + ShutDown() + + + + + info + ShutDown() + ActivateWindow(ShutdownMenu) + + + + + noop + Left + Right + Up + Down + Select + Select + Backspace + Backspace + PreviousMenu + Enter + VoiceRecognizer + VoiceRecognizer + VoiceRecognizer + VoiceRecognizer + VoiceRecognizer + + + + + Delete + Move + PreviousMenu + ChannelNumberSeparator + ChannelNumberSeparator + + + + + Delete + Rename + PreviousMenu + Red + Green + Yellow + Blue + + + + + Delete + Rename + PreviousMenu + Red + Green + Yellow + Blue + + + + + Delete + Rename + PreviousMenu + Red + Green + Yellow + Blue + + + + + PreviousMenu + ShowTimerRule + PreviousMenu + NextChannelGroup + ActivateWindow(PVRGuideControls) + Number0 + Number0 + ChannelNumberSeparator + ChannelNumberSeparator + + + + + Delete + Move + PreviousMenu + ChannelNumberSeparator + ChannelNumberSeparator + + + + + Delete + Rename + Red + Green + Yellow + Blue + + + + + Delete + Rename + Red + Green + Yellow + Blue + + + + + Delete + Rename + Red + Green + Yellow + Blue + + + + + PreviousMenu + ShowTimerRule + PreviousMenu + NextChannelGroup + ActivateWindow(PVRGuideControls) + Number0 + Number0 + ChannelNumberSeparator + ChannelNumberSeparator + + + + + Highlight + Delete + Move + Rename + Highlight + ActivateWindow(Home) + + + + + Back + Delete + MoveItemUp + MoveItemDown + ActivateWindow(Home) + + + + + MoveItemUp + MoveItemDown + Delete + ActivateWindow(Home) + + + + + Playlist + Queue + ActivateWindow(Home) + + + + + FastForward + Rewind + StepForward + StepBack + Fullscreen + Stop + Fullscreen + Stop + Seek(-7) + BigStepForward + BigStepBack + OSD + OSD + PlayPause + PlayPause + OSD + OSD + Info + PlayerProcessInfo + PlayerDebug + PlayerDebugVideo + AspectRatio + AspectRatio + ShowSubtitles + SubtitleAlign + NextSubtitle + StepBack + StepForward + ChapterOrBigStepForward + ChapterOrBigStepBack + AudioNextLanguage + NextSubtitle + PlayerControl(tempodown) + PlayerControl(tempoup) + AudioDelay + AudioNextLanguage + Fullscreen + Playlist + ActivateWindow(Teletext) + VideoNextStream + ActivateWindow(Teletext) + SubtitleShiftUp + SubtitleShiftDown + SkipNext + SkipPrevious + VolAmpUp + VolAmpUp + VolAmpDown + CreateBookmark + CreateEpisodeBookmark + CycleToneMapMethod + + + + + FastForward + Rewind + OSD + Stop + OSD + Stop + OSD + OSD + OSD + OSD + Info + CodecInfo + AspectRatio + AspectRatio + OSD + + + + + OSD + OSD + + + + + delete + + + + + delete + + + + + Select + Select + + + + + FastForward + Rewind + StepForward + PlayerProcessInfo + Back + Back + OSD + OSD + PlayPause + PlayPause + + + + + Back + + + + + FastForward + Rewind + SkipNext + SkipPrevious + IncreaseRating + DecreaseRating + Fullscreen + Stop + Fullscreen + Stop + OSD + PlayPause + OSD + PlayPause + OSD + OSD + Info +

ActivateWindow(VisualisationPresetList)

+ Addon.Default.OpenSettings(xbmc.player.musicviz) + Addon.Default.OpenSettings(xbmc.player.musicviz) + ActivateWindow(MusicPlaylist) + StepBack + StepForward + Rewind + FastForward + SkipNext + SkipPrevious + PlayerProcessInfo + LockPreset + FullScreen +
+
+ + + FastForward + Rewind + SkipNext + SkipPrevious + Back + Back + Info + PlayerProcessInfo +

ActivateWindow(VisualisationPresetList)

+ Addon.Default.OpenSettings(xbmc.player.musicviz) + Addon.Default.OpenSettings(xbmc.player.musicviz) + ActivateWindow(MusicPlaylist) +
+
+ + + FastForward + Rewind + SkipNext + SkipPrevious + Back + Info + PlayerProcessInfo +

Back

+ Back + Back + ActivateWindow(MusicPlaylist) +
+
+ + + ZoomNormal + ZoomLevel1 + ZoomLevel2 + ZoomLevel3 + ZoomLevel4 + ZoomLevel5 + ZoomLevel6 + ZoomLevel7 + ZoomLevel8 + ZoomLevel9 + Info + Info + NextPicture + PreviousPicture + ZoomIn + ZoomOut + Rotate + Rotate + Rotate + ActivateWindow(Home) + + + + + NextCalibration + NextCalibration + ResetCalibration + NextResolution + + + + + NextCalibration + NextCalibration + ResetCalibration + + + + + Back + Back + Back + Info + PlayerProcessInfo + + + + + BigStepForward + BigStepBack + OSD + OSD + Info + PlayerProcessInfo + AspectRatio + AspectRatio + ShowSubtitles + NextSubtitle + AudioDelay + Fullscreen + Select + Select + SkipNext + SkipPrevious + + + + + Info + PlayerProcessInfo + + + + + Info + PlayerProcessInfo + + + + + Delete + + + + + Delete + Playlist + ToggleWatched + ActivateWindow(Home) + + + + + Back + Delete + MoveItemUp + MoveItemDown + ActivateWindow(Home) + + + + + Delete + ActivateWindow(Home) + + + + + Back + Back + + + + + Back + Back + ActivateWindow(Home) + + + + + Back + ActivateWindow(Home) + + + + + NextPicture + PreviousPicture + Back + Back + Back + Pause + ActivateWindow(Home) + + + + + Back + Back + Red + Green + Yellow + Blue + + + + + Close + Close + MoveItemUp + MoveItemDown + ActivateWindow(Home) + + + + + MoveItemUp + MoveItemDown + Delete + ActivateWindow(Home) + + + + + Close + Close + + + + + StepBack + StepForward + Up + Down + OSD + OSD + ActivateWindow(PVRChannelGuide) + ActivateWindow(PVROSDChannels) + ActivateWindow(PVROSDChannels) + ActivateWindow(PVROSDChannels) + ChannelUp + ChannelDown + ChannelNumberSeparator + ChannelNumberSeparator + + + + + StepBack + StepForward + Up + Down + OSD + OSD + ActivateWindow(PVRChannelGuide) + ActivateWindow(PVROSDChannels) + ActivateWindow(PVROSDChannels) + ActivateWindow(PVROSDChannels) + ChannelUp + ChannelDown + ChannelNumberSeparator + ChannelNumberSeparator + + + + + Select + Select + + + + + Select + Select + + + + + Select + Select + ChannelNumberSeparator + ChannelNumberSeparator + + + + + Select + Select + ChannelNumberSeparator + ChannelNumberSeparator + + + + + ChannelNumberSeparator + ChannelNumberSeparator + Close + Close + Close + + + + + Close + Close + Close + + + + + PreviousMenu + PreviousMenu + + + + + Highlight + ActivateWindow(Home) + + + + + Back + + + + + Back + ActivateWindow(Home) + + + + + Delete + ActivateWindow(Home) + + + + + Red + Red + Green + Green + Yellow + Yellow + Blue + Blue + ActivateWindow(Home) + + + + + ActivateWindow(Home) + + + + + ActivateWindow(Home) + + + + + ActivateWindow(Home) + + + + + ActivateWindow(Home) + + + + + PlayerProcessInfo + + + + + ToggleFont + + +
diff --git a/system/keymaps/mouse.xml b/system/keymaps/mouse.xml new file mode 100644 index 0000000..3bb3f43 --- /dev/null +++ b/system/keymaps/mouse.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + leftclick + rightclick + middleclick + doubleclick + contextmenu + Menu + wheeldown + wheelup + mousedrag + mousedragend + mousemove + + + + + Pause + PreviousMenu + PreviousPicture + NextPicture + + + + + Info + + + + + Info + + + + + back + + + diff --git a/system/keymaps/nyxboard/keyboard.xml b/system/keymaps/nyxboard/keyboard.xml new file mode 100644 index 0000000..d868419 --- /dev/null +++ b/system/keymaps/nyxboard/keyboard.xml @@ -0,0 +1,15 @@ + + + + + + ActivateWindow(Home) + OSD + ActivateWindow(videos) + ActivateWindow(music) + ActivateWindow(pictures) + ActivateWindow(programs) + ContextMenu + + + diff --git a/system/keymaps/osmc/osmc_remote.xml b/system/keymaps/osmc/osmc_remote.xml new file mode 100644 index 0000000..79f392e --- /dev/null +++ b/system/keymaps/osmc/osmc_remote.xml @@ -0,0 +1,576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + PreviousMenu + PreviousMenu + fullscreen + fullscreen + Info + Info + noop + noop + Left + Right + Up + Down + Select + noop + Back + ContextMenu + ContextMenu + Menu + Menu + PlayPause +

PlayPause

+ noop +

noop

+ Stop + Stop + VolumeDown + VolumeUp + Notification(OSMC Remote Controller, Low Battery Please Replace,5000) +
+
+ + + CECActivateSource + CECActivateSource + CECStandby + CECStandby + info + info + ActivateWindow(ShutdownMenu) + ReloadSkin() + UpdateLibrary(video) +

UpdateLibrary(video)

+
+
+ + + noop + noop + Shift + Symbols + Enter + + + + + Highlight + Highlight + + + + + ActivateWindow(videobookmarks) + ActivateWindow(videobookmarks) + playerdebug + playerdebug + info + info + playerprocessinfo + playerprocessinfo + Playlist + SkipNext + SkipPrevious + AudioDelay + subtitledelay + ActivateWindow(osdvideosettings) + ActivateWindow(osdvideosettings) + ActivateWindow(osdaudiosettings) + ActivateWindow(osdaudiosettings) + showsubtitles +

showsubtitles

+ ActivateWindow(osdsubtitlesettings) + ActivateWindow(osdsubtitlesettings) +
+
+ + + info + info + playerprocessinfo + playerprocessinfo + OSD + OSD + + + + + Back + Back + playerprocessinfo + playerprocessinfo + Back + Back + + + + + info + info + playerprocessinfo + playerprocessinfo + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + ActivateWindow(MusicPlaylist) + Addon.Default.OpenSettings(xbmc.player.musicviz) + Addon.Default.OpenSettings(xbmc.player.musicviz) + ActivateWindow(VisualisationPresetList) + ActivateWindow(VisualisationPresetList) +

+ + + + + back + back + info + info + playerprocessinfo + playerprocessinfo + back + Addon.Default.OpenSettings(xbmc.player.musicviz) + Addon.Default.OpenSettings(xbmc.player.musicviz) + ActivateWindow(VisualisationPresetList) + ActivateWindow(VisualisationPresetList) +

+ + + + + info + info + playerprocessinfo + playerprocessinfo + back + back +

+ + + + + back + back + info + info + pause +

pause

+ ZoomIn + ZoomOut + ZoomNormal + +
+ + + + ActivateWindow(videobookmarks) + ActivateWindow(videobookmarks) + playerdebug + playerdebug + info + info + playerprocessinfo + playerprocessinfo + SkipNext + SkipPrevious + AudioDelay + subtitledelay + ActivateWindow(osdvideosettings) + back + ActivateWindow(osdvideosettings) + ActivateWindow(osdaudiosettings) + ActivateWindow(osdaudiosettings) + showsubtitles +

showsubtitles

+ ActivateWindow(osdsubtitlesettings) + ActivateWindow(osdsubtitlesettings) +
+
+ + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + info + info + playerprocessinfo + playerprocessinfo + + + + + + info + info + playerprocessinfo + playerprocessinfo + back + back + back + back + + + + + info + info + playerprocessinfo + playerprocessinfo + back + back + back + back + + + + + info + info + playerprocessinfo + playerprocessinfo + back + back + back + back + + + + + back + back + back + back + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + SendClick(14) + togglewatched +

togglewatched

+
+
+ + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + Back + + + + + Back + Back + + + + + back + back + Back + Back + noop + noop + Back + Back + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + back + + + + + back + back + Back + Back + noop + noop + Back + Back + + + + + back + back + Back + Back + noop + noop + Back + Back + + + + + back + back + Back + Back + noop + noop + Back + Back + + + + + ActivateWindow(PVROSDChannels) + ActivateWindow(PVROSDChannels) + info + info + playerprocessinfo + playerprocessinfo + AudioDelay + subtitledelay + Record + showsubtitles +

showsubtitles

+ ActivateWindow(Teletext) + ActivateWindow(Teletext) +
+
+ + + Record + + + + + ActivateWindow(PVROSDChannels) + ActivateWindow(PVROSDChannels) + + + + + back + back + Back + Back + noop + noop + Back + Back + + + + + back + back + ActivateWindow(osdvideosettings) + ActivateWindow(osdvideosettings) + noop + noop + ActivateWindow(osdsubtitlesettings) + ActivateWindow(osdsubtitlesettings) + + + + + CECActivateSource + CECActivateSource + CECStandby + CECStandby + + + + + back + back + + + + + back + back + + + + + back + back + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + + + + ActivateWindow(Home) + ActivateWindow(Home) + fullscreen + fullscreen + + +
diff --git a/system/keymaps/remote.xml b/system/keymaps/remote.xml new file mode 100644 index 0000000..c122b99 --- /dev/null +++ b/system/keymaps/remote.xml @@ -0,0 +1,720 @@ + + + + + + + + + + + + + + + + + + + + + + + + + PlayPause + Pause + Stop + FastForward + Rewind + Left + Right + Up + Down + + FullScreen + PageUp + PageDown + Back + ContextMenu + PreviousMenu + PreviousMenu + ContextMenu + Info + SkipNext + SkipPrevious + FullScreen + PreviousMenu + Record + EjectTray() + VolumeUp + VolumeDown + Mute + ShutDown() + ActivateWindow(Videos) + ActivateWindow(Music) + ActivateWindow(Pictures) + ActivateWindow(Videos,TvShows) + ActivateWindow(TVGuide) + ActivateWindow(TVChannels) + ActivateWindow(RadioChannels) + ActivateWindow(TVRecordings) + ActivateWindow(TVSearch) + ActivateWindow(TVChannels) + ActivateWindow(Videos) + ActivateWindow(Music) + ActivateWindow(Pictures) + Number0 + Number1 + JumpSMS2 + JumpSMS3 + JumpSMS4 + JumpSMS5 + JumpSMS6 + JumpSMS7 + JumpSMS8 + JumpSMS9 + Screenshot + + + + + ActivateWindow(Weather) + ActivateWindow(Settings) + + + + + Delete + Red + Green + Yellow + Blue + + + + + Delete + Red + Green + Yellow + Blue + + + + + Delete + Red + Green + Yellow + Blue + + + + + Delete + Red + Green + Yellow + Blue + + + + + Delete + Red + Green + Yellow + Blue + + + + + Delete + Red + Green + Yellow + Blue + + + + + Delete + Highlight + Move + Rename + + + + + Highlight + + + + + Delete + Delete + + + + + Queue + + + + + Queue + Queue + + + + + Delete + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + StepBack + StepForward + ChapterOrBigStepForward + ChapterOrBigStepBack + Back + OSD + OSD + OSD + OSD + + PlayerProcessInfo + Info + ActivateWindow(TVGuide) + ActivateWindow(Teletext) + NextSubtitle + NextSubtitle + AudioNextLanguage + Playlist + AudioNextLanguage + SkipNext + SkipPrevious + + + + + StepBack + StepForward + Back + OSD + OSD + OSD + OSD + + CodecInfo + Info + + + + + + Select + + + + + PlayerProcessInfo + Back + OSD + OSD + OSD + + + + + Back + Back + Back + + + + + StepBack + StepForward + SkipNext + SkipPrevious + IncreaseRating + DecreaseRating + Back + PlayerProcessInfo + + OSD + OSD + OSD + OSD + Info + ActivateWindow(TVGuide) + ActivateWindow(PVROSDChannels) + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + + + + + Back + Back + Back + Info + PlayerProcessInfo + + + + + Back + Back + Back + + + + + ZoomNormal + ZoomLevel1 + ZoomLevel2 + ZoomLevel3 + ZoomLevel4 + ZoomLevel5 + ZoomLevel6 + ZoomLevel7 + ZoomLevel8 + ZoomLevel9 + Info + NextPicture + PreviousPicture + Info + + + + + + + ResetCalibration + NextResolution + NextResolution + + + + + + ResetCalibration + + + + + Back + Back + Back + Back + + + + + OSD + OSD + OSD + Info + PlayerProcessInfo + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + Select + SkipNext + SkipPrevious + + + + + Back + Back + Back + Back + + + + + Back + Back + Back + Back + + + + + Back + Back + Back + Back + Delete + + + + + Queue + Delete + + + + + Delete + Delete + + + + + Back + Shift + Symbols + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + Enter + CursorLeft + CursorRight + + + + + Back + + + + + info + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + Enter + Back + + + + + PreviousMenu + + + + + PreviousMenu + + + + + + + + + Close + + + + + Close + + + + + Close + + + + + PreviousMenu + + + + + PreviousMenu + + + + + PreviousMenu + + + + + PreviousMenu + + + + + PreviousMenu + + + + + PreviousMenu + + + + + PreviousMenu + + + + + PreviousMenu + + + + + PreviousMenu + + + + + Back + + + + + Back + + + + + Back + Back + Back + + + + + Back + Back + Back + + + + + NextPicture + PreviousPicture + Back + + + + + number0 + number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 + number9 + Red + Green + Yellow + Blue + Info + Back + Back + Back + Back + Back + + + + + Close + + + + + StepBack + StepForward + Up + Down + ChannelUp + ChannelDown + + + + + StepBack + StepForward + Up + Down + ChannelUp + ChannelDown + + + + + + + + + + + + + + + + + + + + + + + + + Close + Close + Close + Number0 + Number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 + number9 + + + + + Close + Close + Close + Number0 + Number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 + number9 + + + + + Number0 + Number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 + number9 + + + + + Number0 + Number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 + number9 + + + + + Number0 + Number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 + number9 + + + + + Number0 + Number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 + number9 + + + + + PreviousMenu + + + + + Red + Green + Yellow + Blue + + + + + PlayerProcessInfo + + + diff --git a/system/keymaps/touchscreen.xml b/system/keymaps/touchscreen.xml new file mode 100644 index 0000000..56a42c8 --- /dev/null +++ b/system/keymaps/touchscreen.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + LeftClick + RightClick + RightClick + PanGesture + SwipeLeft + Back + SwipeRight + Menu + SwipeUp + SwipeDown + SwitchPlayer + ActivateWindow(PlayerControls) + + + + + Select + Highlight + Highlight + + + + + StepBack + StepForward + ChapterOrBigStepForward + ChapterOrBigStepBack + SkipNext + SkipPrevious + Playlist + PlayPause + + + + + StepBack + StepForward + Seek(-7) + PlayPause + + + + + Back + + + + + StepBack + StepForward + SkipNext + SkipPrevious + SkipNext + SkipPrevious + Playlist + PlayPause + + + + + ZoomGesture + RotateGesture + PreviousPicture + NextPicture + Pause + Info + Back + + + + + Up + Down + Right + Left + NextCalibration + + + + + SkipNext + SkipPrevious + + + + + Back + Back + + + + + Back + + + + + Up + Down + + + + + ChannelUp + ChannelDown + + + diff --git a/system/keymaps/wetek-play/keyboard.xml b/system/keymaps/wetek-play/keyboard.xml new file mode 100644 index 0000000..2a8edc5 --- /dev/null +++ b/system/keymaps/wetek-play/keyboard.xml @@ -0,0 +1,275 @@ + + + + + Playpause + Info + ActivateWindow(TVGuide) + ActivateWindow(Home) + ContextMenu + Menu + Info + Playpause + ContextMenu + Menu + ShowSubtitles + Back + ActivateWindow(Home) + Number0 + Number1 + JumpSMS2 + JumpSMS3 + JumpSMS4 + JumpSMS5 + JumpSMS6 + JumpSMS7 + JumpSMS8 + JumpSMS9 + + + + + ActivateWindow(FavouritesBrowser) + ActivateWindow(ShutdownMenu) + ActivateWindow(FavouritesBrowser) + ActivateWindow(ShutdownMenu) + ActivateWindow(FavouritesBrowser) + ActivateWindow(ShutdownMenu) + + + + + Playlist + Playlist + Stop + Fullscreen + Stop + Fullscreen + Stop + Fullscreen + PlayPause + OSD + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + FullScreen + FullScreen + FullScreen + SkipNext + SkipPrevious + Rewind + FastForward + + + + + Playlist + Playlist + PlayPause + OSD + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + Stop + Stop + Stop + + + + + Backspace + Shift + Enter + Enter + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + Backspace + PreviousMenu + PreviousMenu + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + OSD + OSD + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + + + + + Back + Back + + + + + Back + Back + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + Close + Close + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + + + + + Number0 + Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7 + Number8 + Number9 + + + + + OSD + OSD + + + + + OSD + OSD + + + + + ZoomIn + ZoomOut + PreviousPicture + NextPicture + Up + Down + Left + Right + Stop + Stop + Info + Info + + + + + Highlight + Highlight + + + diff --git a/system/library/music/addons.xml b/system/library/music/addons.xml new file mode 100644 index 0000000..2514d23 --- /dev/null +++ b/system/library/music/addons.xml @@ -0,0 +1,6 @@ + + + + DefaultAddonMusic.png + addons://sources/audio/ + diff --git a/system/library/music/albums.xml b/system/library/music/albums.xml new file mode 100644 index 0000000..4c0e8d6 --- /dev/null +++ b/system/library/music/albums.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicAlbums.png + albums + diff --git a/system/library/music/artists.xml b/system/library/music/artists.xml new file mode 100644 index 0000000..9372593 --- /dev/null +++ b/system/library/music/artists.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicArtists.png + artists + diff --git a/system/library/music/boxsets.xml b/system/library/music/boxsets.xml new file mode 100644 index 0000000..e7f36e2 --- /dev/null +++ b/system/library/music/boxsets.xml @@ -0,0 +1,6 @@ + + + + DefaultSets.png + musicdb://albums/?boxset=true + diff --git a/system/library/music/compilations.xml b/system/library/music/compilations.xml new file mode 100644 index 0000000..8e9879a --- /dev/null +++ b/system/library/music/compilations.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicCompilations.png + musicdb://albums/?compilation=true + diff --git a/system/library/music/files.xml b/system/library/music/files.xml new file mode 100644 index 0000000..cb8f799 --- /dev/null +++ b/system/library/music/files.xml @@ -0,0 +1,6 @@ + + + + DefaultFolder.png + sources://music/ + diff --git a/system/library/music/genres.xml b/system/library/music/genres.xml new file mode 100644 index 0000000..e5eb7e4 --- /dev/null +++ b/system/library/music/genres.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicGenres.png + artists + genres + diff --git a/system/library/music/musicroles/albumartists.xml b/system/library/music/musicroles/albumartists.xml new file mode 100644 index 0000000..3a3b076 --- /dev/null +++ b/system/library/music/musicroles/albumartists.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicArtists.png + musicdb://artists/?albumartistsonly=true + diff --git a/system/library/music/musicroles/allartists.xml b/system/library/music/musicroles/allartists.xml new file mode 100644 index 0000000..22beac1 --- /dev/null +++ b/system/library/music/musicroles/allartists.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicArtists.png + musicdb://artists/?albumartistsonly=false + diff --git a/system/library/music/musicroles/allcontributors.xml b/system/library/music/musicroles/allcontributors.xml new file mode 100644 index 0000000..7eaad39 --- /dev/null +++ b/system/library/music/musicroles/allcontributors.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicArtists.png + musicdb://artists/?roleid=-1000&albumartistsonly=false + diff --git a/system/library/music/musicroles/allroles.xml b/system/library/music/musicroles/allroles.xml new file mode 100644 index 0000000..19f5840 --- /dev/null +++ b/system/library/music/musicroles/allroles.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicRoles.png + musicdb://roles/?albumartistsonly=false + diff --git a/system/library/music/musicroles/arrangers.xml b/system/library/music/musicroles/arrangers.xml new file mode 100644 index 0000000..09d43e6 --- /dev/null +++ b/system/library/music/musicroles/arrangers.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicGenres.png + musicdb://artists/?role=Arranger&albumartistsonly=false + diff --git a/system/library/music/musicroles/composers.xml b/system/library/music/musicroles/composers.xml new file mode 100644 index 0000000..752be53 --- /dev/null +++ b/system/library/music/musicroles/composers.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicGenres.png + musicdb://artists/?role=Composer&albumartistsonly=false + diff --git a/system/library/music/musicroles/conductors.xml b/system/library/music/musicroles/conductors.xml new file mode 100644 index 0000000..67fac18 --- /dev/null +++ b/system/library/music/musicroles/conductors.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicGenres.png + musicdb://artists/?role=Conductor&albumartistsonly=false + diff --git a/system/library/music/musicroles/djmixers.xml b/system/library/music/musicroles/djmixers.xml new file mode 100644 index 0000000..b58d36d --- /dev/null +++ b/system/library/music/musicroles/djmixers.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicGenres.png + musicdb://artists/?role=DJMixer&albumartistsonly=false + diff --git a/system/library/music/musicroles/index.xml b/system/library/music/musicroles/index.xml new file mode 100644 index 0000000..e13b3df --- /dev/null +++ b/system/library/music/musicroles/index.xml @@ -0,0 +1,5 @@ + + + + DefaultMusicRoles.png + diff --git a/system/library/music/musicroles/lyricists.xml b/system/library/music/musicroles/lyricists.xml new file mode 100644 index 0000000..b821adc --- /dev/null +++ b/system/library/music/musicroles/lyricists.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicGenres.png + musicdb://artists/?role=Lyricist&albumartistsonly=false + diff --git a/system/library/music/musicroles/orchestras.xml b/system/library/music/musicroles/orchestras.xml new file mode 100644 index 0000000..a7fe0fa --- /dev/null +++ b/system/library/music/musicroles/orchestras.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicGenres.png + musicdb://artists/?role=Orchestra&albumartistsonly=false + diff --git a/system/library/music/musicroles/remixers.xml b/system/library/music/musicroles/remixers.xml new file mode 100644 index 0000000..b42003a --- /dev/null +++ b/system/library/music/musicroles/remixers.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicGenres.png + musicdb://artists/?role=Remixer&albumartistsonly=false + diff --git a/system/library/music/musicvideos/albums.xml b/system/library/music/musicvideos/albums.xml new file mode 100644 index 0000000..1a5800f --- /dev/null +++ b/system/library/music/musicvideos/albums.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicAlbums.png + musicvideos + albums + diff --git a/system/library/music/musicvideos/artists.xml b/system/library/music/musicvideos/artists.xml new file mode 100644 index 0000000..4a1697f --- /dev/null +++ b/system/library/music/musicvideos/artists.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicArtists.png + musicvideos + artists + diff --git a/system/library/music/musicvideos/directors.xml b/system/library/music/musicvideos/directors.xml new file mode 100644 index 0000000..2c8c005 --- /dev/null +++ b/system/library/music/musicvideos/directors.xml @@ -0,0 +1,7 @@ + + + + DefaultDirector.png + musicvideos + directors + diff --git a/system/library/music/musicvideos/genres.xml b/system/library/music/musicvideos/genres.xml new file mode 100644 index 0000000..597be8e --- /dev/null +++ b/system/library/music/musicvideos/genres.xml @@ -0,0 +1,7 @@ + + + + DefaultGenre.png + musicvideos + genres + diff --git a/system/library/music/musicvideos/index.xml b/system/library/music/musicvideos/index.xml new file mode 100644 index 0000000..bca6360 --- /dev/null +++ b/system/library/music/musicvideos/index.xml @@ -0,0 +1,5 @@ + + + + DefaultMusicVideos.png + diff --git a/system/library/music/musicvideos/studios.xml b/system/library/music/musicvideos/studios.xml new file mode 100644 index 0000000..83b9bb1 --- /dev/null +++ b/system/library/music/musicvideos/studios.xml @@ -0,0 +1,7 @@ + + + + DefaultStudios.png + musicvideos + studios + diff --git a/system/library/music/musicvideos/tags.xml b/system/library/music/musicvideos/tags.xml new file mode 100644 index 0000000..a53de4c --- /dev/null +++ b/system/library/music/musicvideos/tags.xml @@ -0,0 +1,7 @@ + + + + DefaultTags.png + musicvideos + tags + diff --git a/system/library/music/musicvideos/titles.xml b/system/library/music/musicvideos/titles.xml new file mode 100644 index 0000000..6d57aed --- /dev/null +++ b/system/library/music/musicvideos/titles.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicVideoTitle.png + musicvideos + title + diff --git a/system/library/music/musicvideos/years.xml b/system/library/music/musicvideos/years.xml new file mode 100644 index 0000000..61348da --- /dev/null +++ b/system/library/music/musicvideos/years.xml @@ -0,0 +1,7 @@ + + + + DefaultYear.png + musicvideos + years + diff --git a/system/library/music/playlists.xml b/system/library/music/playlists.xml new file mode 100644 index 0000000..751abc5 --- /dev/null +++ b/system/library/music/playlists.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicPlaylists.png + special://musicplaylists/ + diff --git a/system/library/music/recentlyaddedalbums.xml b/system/library/music/recentlyaddedalbums.xml new file mode 100644 index 0000000..c17bdda --- /dev/null +++ b/system/library/music/recentlyaddedalbums.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicRecentlyAdded.png + musicdb://recentlyaddedalbums/ + diff --git a/system/library/music/recentlyplayedalbums.xml b/system/library/music/recentlyplayedalbums.xml new file mode 100644 index 0000000..0359e2d --- /dev/null +++ b/system/library/music/recentlyplayedalbums.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicRecentlyPlayed.png + musicdb://recentlyplayedalbums/ + diff --git a/system/library/music/singles.xml b/system/library/music/singles.xml new file mode 100644 index 0000000..aa99bcc --- /dev/null +++ b/system/library/music/singles.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicSongs.png + musicdb://singles/ + diff --git a/system/library/music/songs.xml b/system/library/music/songs.xml new file mode 100644 index 0000000..2f3d23f --- /dev/null +++ b/system/library/music/songs.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicSongs.png + songs + diff --git a/system/library/music/sources.xml b/system/library/music/sources.xml new file mode 100644 index 0000000..49ff0d6 --- /dev/null +++ b/system/library/music/sources.xml @@ -0,0 +1,6 @@ + + + + DefaultMusicSources.png + musicdb://sources + diff --git a/system/library/music/top100/index.xml b/system/library/music/top100/index.xml new file mode 100644 index 0000000..b8737a2 --- /dev/null +++ b/system/library/music/top100/index.xml @@ -0,0 +1,5 @@ + + + + DefaultMusicTop100.png + diff --git a/system/library/music/top100/top100albums.xml b/system/library/music/top100/top100albums.xml new file mode 100644 index 0000000..36d69db --- /dev/null +++ b/system/library/music/top100/top100albums.xml @@ -0,0 +1,12 @@ + + + + DefaultMusicTop100Albums.png + albums + all + + 0 + + 100 + playcount + diff --git a/system/library/music/top100/top100songs.xml b/system/library/music/top100/top100songs.xml new file mode 100644 index 0000000..c5aba9a --- /dev/null +++ b/system/library/music/top100/top100songs.xml @@ -0,0 +1,12 @@ + + + + DefaultMusicTop100Songs.png + songs + all + + 0 + + 100 + playcount + diff --git a/system/library/music/years.xml b/system/library/music/years.xml new file mode 100644 index 0000000..55016ad --- /dev/null +++ b/system/library/music/years.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicYears.png + albums + years + diff --git a/system/library/video/addons.xml b/system/library/video/addons.xml new file mode 100644 index 0000000..5d3fb42 --- /dev/null +++ b/system/library/video/addons.xml @@ -0,0 +1,6 @@ + + + + DefaultAddonVideo.png + addons://sources/video/ + diff --git a/system/library/video/files.xml b/system/library/video/files.xml new file mode 100644 index 0000000..398fd53 --- /dev/null +++ b/system/library/video/files.xml @@ -0,0 +1,6 @@ + + + + DefaultFolder.png + sources://video/ + diff --git a/system/library/video/movies/actors.xml b/system/library/video/movies/actors.xml new file mode 100644 index 0000000..d07f08b --- /dev/null +++ b/system/library/video/movies/actors.xml @@ -0,0 +1,8 @@ + + + + DefaultActor.png + movies + actors + + diff --git a/system/library/video/movies/country.xml b/system/library/video/movies/country.xml new file mode 100644 index 0000000..55014fb --- /dev/null +++ b/system/library/video/movies/country.xml @@ -0,0 +1,7 @@ + + + + DefaultCountry.png + movies + countries + diff --git a/system/library/video/movies/directors.xml b/system/library/video/movies/directors.xml new file mode 100644 index 0000000..88c739a --- /dev/null +++ b/system/library/video/movies/directors.xml @@ -0,0 +1,7 @@ + + + + DefaultDirector.png + movies + directors + diff --git a/system/library/video/movies/genres.xml b/system/library/video/movies/genres.xml new file mode 100644 index 0000000..1baa40e --- /dev/null +++ b/system/library/video/movies/genres.xml @@ -0,0 +1,7 @@ + + + + DefaultGenre.png + movies + genres + diff --git a/system/library/video/movies/index.xml b/system/library/video/movies/index.xml new file mode 100644 index 0000000..d7083e7 --- /dev/null +++ b/system/library/video/movies/index.xml @@ -0,0 +1,5 @@ + + + + DefaultMovies.png + diff --git a/system/library/video/movies/recentlyaddedmovies.xml b/system/library/video/movies/recentlyaddedmovies.xml new file mode 100644 index 0000000..14aa8f0 --- /dev/null +++ b/system/library/video/movies/recentlyaddedmovies.xml @@ -0,0 +1,6 @@ + + + + DefaultRecentlyAddedMovies.png + videodb://recentlyaddedmovies/ + diff --git a/system/library/video/movies/sets.xml b/system/library/video/movies/sets.xml new file mode 100644 index 0000000..8e0a678 --- /dev/null +++ b/system/library/video/movies/sets.xml @@ -0,0 +1,7 @@ + + + + DefaultSets.png + movies + sets + diff --git a/system/library/video/movies/studios.xml b/system/library/video/movies/studios.xml new file mode 100644 index 0000000..da414a8 --- /dev/null +++ b/system/library/video/movies/studios.xml @@ -0,0 +1,7 @@ + + + + DefaultStudios.png + movies + studios + diff --git a/system/library/video/movies/tags.xml b/system/library/video/movies/tags.xml new file mode 100644 index 0000000..7ff906d --- /dev/null +++ b/system/library/video/movies/tags.xml @@ -0,0 +1,7 @@ + + + + DefaultTags.png + movies + tags + diff --git a/system/library/video/movies/titles.xml b/system/library/video/movies/titles.xml new file mode 100644 index 0000000..4f668eb --- /dev/null +++ b/system/library/video/movies/titles.xml @@ -0,0 +1,7 @@ + + + + DefaultMovieTitle.png + movies + sorttitle + diff --git a/system/library/video/movies/years.xml b/system/library/video/movies/years.xml new file mode 100644 index 0000000..1df7e69 --- /dev/null +++ b/system/library/video/movies/years.xml @@ -0,0 +1,7 @@ + + + + DefaultYear.png + movies + years + diff --git a/system/library/video/musicvideos/albums.xml b/system/library/video/musicvideos/albums.xml new file mode 100644 index 0000000..9432641 --- /dev/null +++ b/system/library/video/musicvideos/albums.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicAlbums.png + musicvideos + albums + diff --git a/system/library/video/musicvideos/artists.xml b/system/library/video/musicvideos/artists.xml new file mode 100644 index 0000000..24dbcb6 --- /dev/null +++ b/system/library/video/musicvideos/artists.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicArtists.png + musicvideos + artists + diff --git a/system/library/video/musicvideos/directors.xml b/system/library/video/musicvideos/directors.xml new file mode 100644 index 0000000..7a6f55c --- /dev/null +++ b/system/library/video/musicvideos/directors.xml @@ -0,0 +1,7 @@ + + + + DefaultDirector.png + musicvideos + directors + diff --git a/system/library/video/musicvideos/genres.xml b/system/library/video/musicvideos/genres.xml new file mode 100644 index 0000000..cf5b6b0 --- /dev/null +++ b/system/library/video/musicvideos/genres.xml @@ -0,0 +1,7 @@ + + + + DefaultGenre.png + musicvideos + genres + diff --git a/system/library/video/musicvideos/index.xml b/system/library/video/musicvideos/index.xml new file mode 100644 index 0000000..9526eea --- /dev/null +++ b/system/library/video/musicvideos/index.xml @@ -0,0 +1,5 @@ + + + + DefaultMusicVideos.png + diff --git a/system/library/video/musicvideos/recentlyaddedmusicvideos.xml b/system/library/video/musicvideos/recentlyaddedmusicvideos.xml new file mode 100644 index 0000000..39b5177 --- /dev/null +++ b/system/library/video/musicvideos/recentlyaddedmusicvideos.xml @@ -0,0 +1,6 @@ + + + + DefaultRecentlyAddedMusicVideos.png + videodb://recentlyaddedmusicvideos/ + diff --git a/system/library/video/musicvideos/studios.xml b/system/library/video/musicvideos/studios.xml new file mode 100644 index 0000000..3729dfe --- /dev/null +++ b/system/library/video/musicvideos/studios.xml @@ -0,0 +1,7 @@ + + + + DefaultStudios.png + musicvideos + studios + diff --git a/system/library/video/musicvideos/tags.xml b/system/library/video/musicvideos/tags.xml new file mode 100644 index 0000000..93b1b27 --- /dev/null +++ b/system/library/video/musicvideos/tags.xml @@ -0,0 +1,7 @@ + + + + DefaultTags.png + musicvideos + tags + diff --git a/system/library/video/musicvideos/titles.xml b/system/library/video/musicvideos/titles.xml new file mode 100644 index 0000000..1eee37d --- /dev/null +++ b/system/library/video/musicvideos/titles.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicVideoTitle.png + musicvideos + title + diff --git a/system/library/video/musicvideos/years.xml b/system/library/video/musicvideos/years.xml new file mode 100644 index 0000000..a39d3bc --- /dev/null +++ b/system/library/video/musicvideos/years.xml @@ -0,0 +1,7 @@ + + + + DefaultYear.png + musicvideos + years + diff --git a/system/library/video/playlists.xml b/system/library/video/playlists.xml new file mode 100644 index 0000000..a65012f --- /dev/null +++ b/system/library/video/playlists.xml @@ -0,0 +1,6 @@ + + + + DefaultVideoPlaylists.png + special://videoplaylists/ + diff --git a/system/library/video/tvshows/actors.xml b/system/library/video/tvshows/actors.xml new file mode 100644 index 0000000..c3f78cd --- /dev/null +++ b/system/library/video/tvshows/actors.xml @@ -0,0 +1,7 @@ + + + + DefaultActor.png + tvshows + actors + diff --git a/system/library/video/tvshows/genres.xml b/system/library/video/tvshows/genres.xml new file mode 100644 index 0000000..bb6eb5e --- /dev/null +++ b/system/library/video/tvshows/genres.xml @@ -0,0 +1,7 @@ + + + + DefaultGenre.png + tvshows + genres + diff --git a/system/library/video/tvshows/index.xml b/system/library/video/tvshows/index.xml new file mode 100644 index 0000000..e5848dc --- /dev/null +++ b/system/library/video/tvshows/index.xml @@ -0,0 +1,5 @@ + + + + DefaultTVShows.png + diff --git a/system/library/video/tvshows/inprogressshows.xml b/system/library/video/tvshows/inprogressshows.xml new file mode 100644 index 0000000..3c0797e --- /dev/null +++ b/system/library/video/tvshows/inprogressshows.xml @@ -0,0 +1,6 @@ + + + + DefaultInProgressShows.png + videodb://inprogresstvshows/ + diff --git a/system/library/video/tvshows/recentlyaddedepisodes.xml b/system/library/video/tvshows/recentlyaddedepisodes.xml new file mode 100644 index 0000000..6ea98f6 --- /dev/null +++ b/system/library/video/tvshows/recentlyaddedepisodes.xml @@ -0,0 +1,6 @@ + + + + DefaultRecentlyAddedEpisodes.png + videodb://recentlyaddedepisodes/ + diff --git a/system/library/video/tvshows/studios.xml b/system/library/video/tvshows/studios.xml new file mode 100644 index 0000000..1a99f69 --- /dev/null +++ b/system/library/video/tvshows/studios.xml @@ -0,0 +1,7 @@ + + + + DefaultStudios.png + tvshows + studios + diff --git a/system/library/video/tvshows/tags.xml b/system/library/video/tvshows/tags.xml new file mode 100644 index 0000000..9be3a70 --- /dev/null +++ b/system/library/video/tvshows/tags.xml @@ -0,0 +1,7 @@ + + + + DefaultTags.png + tvshows + tags + diff --git a/system/library/video/tvshows/titles.xml b/system/library/video/tvshows/titles.xml new file mode 100644 index 0000000..d5326fe --- /dev/null +++ b/system/library/video/tvshows/titles.xml @@ -0,0 +1,7 @@ + + + + DefaultTVShowTitle.png + tvshows + sorttitle + diff --git a/system/library/video/tvshows/years.xml b/system/library/video/tvshows/years.xml new file mode 100644 index 0000000..4e41685 --- /dev/null +++ b/system/library/video/tvshows/years.xml @@ -0,0 +1,7 @@ + + + + DefaultYear.png + tvshows + years + diff --git a/system/library/video_flat/addons.xml b/system/library/video_flat/addons.xml new file mode 100644 index 0000000..a34eb27 --- /dev/null +++ b/system/library/video_flat/addons.xml @@ -0,0 +1,6 @@ + + + + DefaultAddonVideo.png + addons://sources/video/ + diff --git a/system/library/video_flat/files.xml b/system/library/video_flat/files.xml new file mode 100644 index 0000000..4fd56c0 --- /dev/null +++ b/system/library/video_flat/files.xml @@ -0,0 +1,6 @@ + + + + DefaultFolder.png + sources://video/ + diff --git a/system/library/video_flat/inprogressshows.xml b/system/library/video_flat/inprogressshows.xml new file mode 100644 index 0000000..dface4d --- /dev/null +++ b/system/library/video_flat/inprogressshows.xml @@ -0,0 +1,6 @@ + + + + DefaultInProgressShows.png + videodb://inprogresstvshows/ + diff --git a/system/library/video_flat/movies.xml b/system/library/video_flat/movies.xml new file mode 100644 index 0000000..1e1720c --- /dev/null +++ b/system/library/video_flat/movies.xml @@ -0,0 +1,7 @@ + + + + DefaultMovies.png + movies + sorttitle + diff --git a/system/library/video_flat/musicvideos.xml b/system/library/video_flat/musicvideos.xml new file mode 100644 index 0000000..a63945f --- /dev/null +++ b/system/library/video_flat/musicvideos.xml @@ -0,0 +1,7 @@ + + + + DefaultMusicVideos.png + musicvideos + title + diff --git a/system/library/video_flat/playlists.xml b/system/library/video_flat/playlists.xml new file mode 100644 index 0000000..4cc2aec --- /dev/null +++ b/system/library/video_flat/playlists.xml @@ -0,0 +1,6 @@ + + + + DefaultVideoPlaylists.png + special://videoplaylists/ + diff --git a/system/library/video_flat/recentlyaddedepisodes.xml b/system/library/video_flat/recentlyaddedepisodes.xml new file mode 100644 index 0000000..44dcd0b --- /dev/null +++ b/system/library/video_flat/recentlyaddedepisodes.xml @@ -0,0 +1,6 @@ + + + + DefaultRecentlyAddedEpisodes.png + videodb://recentlyaddedepisodes/ + diff --git a/system/library/video_flat/recentlyaddedmovies.xml b/system/library/video_flat/recentlyaddedmovies.xml new file mode 100644 index 0000000..214c4dc --- /dev/null +++ b/system/library/video_flat/recentlyaddedmovies.xml @@ -0,0 +1,6 @@ + + + + DefaultRecentlyAddedMovies.png + videodb://recentlyaddedmovies/ + diff --git a/system/library/video_flat/recentlyaddedmusicvideos.xml b/system/library/video_flat/recentlyaddedmusicvideos.xml new file mode 100644 index 0000000..e03a9e4 --- /dev/null +++ b/system/library/video_flat/recentlyaddedmusicvideos.xml @@ -0,0 +1,6 @@ + + + + DefaultRecentlyAddedMusicVideos.png + videodb://recentlyaddedmusicvideos/ + diff --git a/system/library/video_flat/tvshows.xml b/system/library/video_flat/tvshows.xml new file mode 100644 index 0000000..6509bd8 --- /dev/null +++ b/system/library/video_flat/tvshows.xml @@ -0,0 +1,7 @@ + + + + DefaultTVShows.png + tvshows + sorttitle + diff --git a/system/peripherals.xml b/system/peripherals.xml new file mode 100644 index 0000000..a110c0d --- /dev/null +++ b/system/peripherals.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/playercorefactory.xml b/system/playercorefactory.xml new file mode 100644 index 0000000..f928311 --- /dev/null +++ b/system/playercorefactory.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/10-autohint.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/10-autohint.conf new file mode 100644 index 0000000..3a8b94e --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/10-autohint.conf @@ -0,0 +1,9 @@ + + + + + + + true + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/10-no-sub-pixel.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/10-no-sub-pixel.conf new file mode 100644 index 0000000..b3c3dac --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/10-no-sub-pixel.conf @@ -0,0 +1,9 @@ + + + + + + + none + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-bgr.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-bgr.conf new file mode 100644 index 0000000..8b05fcd --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-bgr.conf @@ -0,0 +1,9 @@ + + + + + + + bgr + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-rgb.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-rgb.conf new file mode 100644 index 0000000..dd1aa6d --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-rgb.conf @@ -0,0 +1,9 @@ + + + + + + + rgb + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vbgr.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vbgr.conf new file mode 100644 index 0000000..e1fb404 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vbgr.conf @@ -0,0 +1,9 @@ + + + + + + + vbgr + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vrgb.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vrgb.conf new file mode 100644 index 0000000..8c4fdfc --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vrgb.conf @@ -0,0 +1,9 @@ + + + + + + + vrgb + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/10-unhinted.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/10-unhinted.conf new file mode 100644 index 0000000..82c069c --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/10-unhinted.conf @@ -0,0 +1,9 @@ + + + + + + + false + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/20-fix-globaladvance.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/20-fix-globaladvance.conf new file mode 100644 index 0000000..a62162c --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/20-fix-globaladvance.conf @@ -0,0 +1,29 @@ + + + + + + + GulimChe + false + + + + DotumChe + false + + + + BatangChe + false + + + + GungsuhChe + false + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/20-lohit-gujarati.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/20-lohit-gujarati.conf new file mode 100644 index 0000000..1c29d0d --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/20-lohit-gujarati.conf @@ -0,0 +1,11 @@ + + + + + + + + Lohit Gujarati + false + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/20-unhint-small-vera.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/20-unhint-small-vera.conf new file mode 100644 index 0000000..51999c5 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/20-unhint-small-vera.conf @@ -0,0 +1,49 @@ + + + + + + + + + Bitstream Vera Sans + + + 7.5 + + + false + + + + + + Bitstream Vera Serif + + + 7.5 + + + false + + + + + + Bitstream Vera Sans Mono + + + 7.5 + + + false + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/30-amt-aliases.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/30-amt-aliases.conf new file mode 100644 index 0000000..d6df67e --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/30-amt-aliases.conf @@ -0,0 +1,21 @@ + + + + + + + Times New Roman + Thorndale AMT + + + Arial + Albany AMT + + + Courier New + Cumberland AMT + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/30-urw-aliases.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/30-urw-aliases.conf new file mode 100644 index 0000000..cf90dd5 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/30-urw-aliases.conf @@ -0,0 +1,52 @@ + + + + + + + Avant Garde + URW Gothic L + + + Bookman + URW Bookman L + + + Courier + Nimbus Mono L + + + Helvetica + Nimbus Sans L + + + New Century Schoolbook + Century Schoolbook L + + + Palatino + URW Palladio L + + + Times + Nimbus Roman No9 L + + + Zapf Chancery + URW Chancery L + + + Zapf Dingbats + Dingbats + + + + Symbol + + + Standard Symbols L + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/40-generic.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/40-generic.conf new file mode 100644 index 0000000..84e85e4 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/40-generic.conf @@ -0,0 +1,66 @@ + + + + + + + + Bitstream Vera Serif + DejaVu Serif + Times New Roman + Times + Nimbus Roman No9 L + Luxi Serif + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS 明朝 + Baekmuk Batang + FreeSerif + MgOpen Canonica + serif + + + + Bitstream Vera Sans + DejaVu Sans + Helvetica + Arial + Verdana + Albany AMT + Nimbus Sans L + Luxi Sans + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + MS ゴシック + Baekmuk Dotum + SimSun + FreeSans + MgOpen Modata + sans-serif + + + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Courier + Courier New + Andale Mono + Luxi Mono + Cumberland AMT + Nimbus Mono L + NSimSun + FreeMono + monospace + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/49-sansserif.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/49-sansserif.conf new file mode 100644 index 0000000..c6209a7 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/49-sansserif.conf @@ -0,0 +1,21 @@ + + + + + + + sans-serif + + + serif + + + monospace + + + sans-serif + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/50-user.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/50-user.conf new file mode 100644 index 0000000..9a38a40 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/50-user.conf @@ -0,0 +1,7 @@ + + + + + + ~/.fonts.conf + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/51-local.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/51-local.conf new file mode 100644 index 0000000..d35046e --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/51-local.conf @@ -0,0 +1,7 @@ + + + + + + local.conf + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/60-latin.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/60-latin.conf new file mode 100644 index 0000000..06cdd7e --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/60-latin.conf @@ -0,0 +1,42 @@ + + + + + serif + + Bitstream Vera Serif + DejaVu Serif + Times New Roman + Thorndale AMT + Luxi Serif + Nimbus Roman No9 L + Times + + + + sans-serif + + Bitstream Vera Sans + DejaVu Sans + Verdana + Arial + Albany AMT + Luxi Sans + Nimbus Sans L + Helvetica + + + + monospace + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Andale Mono + Courier New + Cumberland AMT + Luxi Mono + Nimbus Mono L + Courier + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/65-fonts-persian.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/65-fonts-persian.conf new file mode 100644 index 0000000..4c9f81c --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/65-fonts-persian.conf @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + Nesf + + + Nesf2 + + + + + Nesf2 + + + Persian_sansserif_default + + + + + + + + + + + + Nazanin + + + Nazli + + + + + Lotus + + + Lotoos + + + + + + + Yaqut + + + Yaghoot + + + + + Yagut + + + Yaghoot + + + + + Yaghut + + + Yaghoot + + + + + Traffic + + + Terafik + + + + + Ferdowsi + + + Ferdosi + + + + + Fantezy + + + Fantezi + + + + + + + + + + Jadid + + + Persian_title + + + + + Titr + + + Persian_title + + + + + + + Kamran + + + Homa + + + Persian_fantasy + + + + + Homa + + + Kamran + + + Persian_fantasy + + + + + Fantezi + + + Persian_fantasy + + + + + Tabassom + + + Persian_fantasy + + + + + + + Arshia + + + Persian_square + + + + + Nasim + + + Persian_square + + + + + Elham + + + Farnaz + + + Persian_square + + + + + Farnaz + + + Elham + + + Persian_square + + + + + Sina + + + Persian_square + + + + + + + + + Persian_title + + + Persian_serif + + + Jadid + + + Titr + + + + + + + Persian_fantasy + + + Persian_square + + + Tabassom + + + Fantezi + + + Kamran + + + Homa + + + + + + + Persian_square + + + Persian_serif + + + Sina + + + Nasim + + + Farnaz + + + Elham + + + Arshia + + + + + + + + Elham + + + farsiweb + + + + + + Homa + + + farsiweb + + + + + + Koodak + + + farsiweb + + + + + + Nazli + + + farsiweb + + + + + + Roya + + + farsiweb + + + + + + Terafik + + + farsiweb + + + + + + Titr + + + farsiweb + + + + + + + + + + TURNED-OFF + + + farsiweb + + + + roman + + + + roman + + + + + matrix + 1-0.2 + 01 + + + + + + oblique + + + + + + + + + farsiweb + + + false + + + false + + + false + + + + + + + + + serif + + Nazli + Lotoos + Mitra + Ferdosi + Badr + Zar + + + + + + sans-serif + + Roya + Koodak + Terafik + + + + + + monospace + + + Terafik + + + + + + + + + + serif + + + 200 + + + 24 + + + Titr + + + + + + + sans-serif + + + 200 + + + 24 + + + Titr + + + + + + + Persian_sansserif_default + + + 200 + + + 24 + + + Titr + + + + + + + + + Persian_sansserif_default + + + Roya + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/65-nonlatin.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/65-nonlatin.conf new file mode 100644 index 0000000..f8dbb64 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/65-nonlatin.conf @@ -0,0 +1,38 @@ + + + + + serif + + Frank Ruehl + MgOpen Canonica + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS 明朝 + Baekmuk Batang + + + + sans-serif + + Nachlieli + MgOpen Modata + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + MS ゴシック + Baekmuk Dotum + SimSun + + + + monospace + + Miriam Mono + Kochi Gothic + AR PL KaitiM GB + Baekmuk Dotum + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/69-unifont.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/69-unifont.conf new file mode 100644 index 0000000..a784af9 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/69-unifont.conf @@ -0,0 +1,24 @@ + + + + + serif + + FreeSerif + Code2000 + + + + sans-serif + + FreeSans + Arial Unicode MS + + + + monospace + + FreeMono + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/70-no-bitmaps.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/70-no-bitmaps.conf new file mode 100644 index 0000000..e8fb6a9 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/70-no-bitmaps.conf @@ -0,0 +1,13 @@ + + + + + + + + + false + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/70-yes-bitmaps.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/70-yes-bitmaps.conf new file mode 100644 index 0000000..c539c70 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/70-yes-bitmaps.conf @@ -0,0 +1,13 @@ + + + + + + + + + false + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/80-delicious.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/80-delicious.conf new file mode 100644 index 0000000..701429b --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/80-delicious.conf @@ -0,0 +1,20 @@ + + + + + + + + + + Delicious + + + Heavy + + + heavy + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/90-synthetic.conf b/system/players/VideoPlayer/etc/fonts/conf.avail/90-synthetic.conf new file mode 100644 index 0000000..9550c93 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/90-synthetic.conf @@ -0,0 +1,64 @@ + + + + + + + + + roman + + + + roman + + + + + matrix + 10.2 + 01 + + + + + + oblique + + + + false + + + + + + + + + medium + + + + medium + + + + true + + + + bold + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.avail/README b/system/players/VideoPlayer/etc/fonts/conf.avail/README new file mode 100644 index 0000000..79b0e96 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.avail/README @@ -0,0 +1,48 @@ +conf.d/README + +Each file in this directory is a fontconfig configuration file. Fontconfig +scans this directory, loading all files of the form [0-9][0-9]*. These files +are normally installed in ../conf.avail and then symlinked here, allowing +them to be easily installed and then enabled/disabled by adjusting the +symlinks. + +The files are loaded in numeric order, the structure of the configuration +has led to the following conventions in usage: + + Files beginning with: Contain: + + 00 through 09 Font directories + 10 through 19 system rendering defaults (AA, etc) + 10-autohint.conf + 10-no-sub-pixel.conf + 10-sub-pixel-bgr.conf + 10-sub-pixel-rgb.conf + 10-sub-pixel-vbgr.conf + 10-sub-pixel-vrgb.conf + 10-unhinted.conf + 20 through 29 font rendering options + 20-fix-globaladvance.conf + 20-lohit-gujarati.conf + 20-unhint-small-vera.conf + 30 through 39 family substitution + 30-urw-aliases.conf + 30-amt-aliases.conf + 40 through 49 generic identification, map family->generic + 40-generic-id.conf + 49-sansserif.conf + 50 through 59 alternate config file loading + 50-user.conf Load ~/.fonts.conf + 51-local.conf Load local.conf + 60 through 69 generic aliases + 60-latin.conf + 65-fonts-persian.conf + 65-nonlatin.conf + 69-unifont.conf + 70 through 79 select font (adjust which fonts are available) + 70-no-bitmaps.conf + 70-yes-bitmaps.conf + 80 through 89 match target="scan" (modify scanned patterns) + 80-delicious.conf + 90 through 98 font synthesis + 90-synthetic.conf + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/20-fix-globaladvance.conf b/system/players/VideoPlayer/etc/fonts/conf.d/20-fix-globaladvance.conf new file mode 100644 index 0000000..a62162c --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/20-fix-globaladvance.conf @@ -0,0 +1,29 @@ + + + + + + + GulimChe + false + + + + DotumChe + false + + + + BatangChe + false + + + + GungsuhChe + false + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/20-lohit-gujarati.conf b/system/players/VideoPlayer/etc/fonts/conf.d/20-lohit-gujarati.conf new file mode 100644 index 0000000..1c29d0d --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/20-lohit-gujarati.conf @@ -0,0 +1,11 @@ + + + + + + + + Lohit Gujarati + false + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/20-unhint-small-vera.conf b/system/players/VideoPlayer/etc/fonts/conf.d/20-unhint-small-vera.conf new file mode 100644 index 0000000..51999c5 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/20-unhint-small-vera.conf @@ -0,0 +1,49 @@ + + + + + + + + + Bitstream Vera Sans + + + 7.5 + + + false + + + + + + Bitstream Vera Serif + + + 7.5 + + + false + + + + + + Bitstream Vera Sans Mono + + + 7.5 + + + false + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/30-amt-aliases.conf b/system/players/VideoPlayer/etc/fonts/conf.d/30-amt-aliases.conf new file mode 100644 index 0000000..d6df67e --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/30-amt-aliases.conf @@ -0,0 +1,21 @@ + + + + + + + Times New Roman + Thorndale AMT + + + Arial + Albany AMT + + + Courier New + Cumberland AMT + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/30-urw-aliases.conf b/system/players/VideoPlayer/etc/fonts/conf.d/30-urw-aliases.conf new file mode 100644 index 0000000..cf90dd5 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/30-urw-aliases.conf @@ -0,0 +1,52 @@ + + + + + + + Avant Garde + URW Gothic L + + + Bookman + URW Bookman L + + + Courier + Nimbus Mono L + + + Helvetica + Nimbus Sans L + + + New Century Schoolbook + Century Schoolbook L + + + Palatino + URW Palladio L + + + Times + Nimbus Roman No9 L + + + Zapf Chancery + URW Chancery L + + + Zapf Dingbats + Dingbats + + + + Symbol + + + Standard Symbols L + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/40-generic.conf b/system/players/VideoPlayer/etc/fonts/conf.d/40-generic.conf new file mode 100644 index 0000000..84e85e4 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/40-generic.conf @@ -0,0 +1,66 @@ + + + + + + + + Bitstream Vera Serif + DejaVu Serif + Times New Roman + Times + Nimbus Roman No9 L + Luxi Serif + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS 明朝 + Baekmuk Batang + FreeSerif + MgOpen Canonica + serif + + + + Bitstream Vera Sans + DejaVu Sans + Helvetica + Arial + Verdana + Albany AMT + Nimbus Sans L + Luxi Sans + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + MS ゴシック + Baekmuk Dotum + SimSun + FreeSans + MgOpen Modata + sans-serif + + + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Courier + Courier New + Andale Mono + Luxi Mono + Cumberland AMT + Nimbus Mono L + NSimSun + FreeMono + monospace + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/49-sansserif.conf b/system/players/VideoPlayer/etc/fonts/conf.d/49-sansserif.conf new file mode 100644 index 0000000..c6209a7 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/49-sansserif.conf @@ -0,0 +1,21 @@ + + + + + + + sans-serif + + + serif + + + monospace + + + sans-serif + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/50-user.conf b/system/players/VideoPlayer/etc/fonts/conf.d/50-user.conf new file mode 100644 index 0000000..9a38a40 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/50-user.conf @@ -0,0 +1,7 @@ + + + + + + ~/.fonts.conf + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/51-local.conf b/system/players/VideoPlayer/etc/fonts/conf.d/51-local.conf new file mode 100644 index 0000000..d35046e --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/51-local.conf @@ -0,0 +1,7 @@ + + + + + + local.conf + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/60-latin.conf b/system/players/VideoPlayer/etc/fonts/conf.d/60-latin.conf new file mode 100644 index 0000000..06cdd7e --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/60-latin.conf @@ -0,0 +1,42 @@ + + + + + serif + + Bitstream Vera Serif + DejaVu Serif + Times New Roman + Thorndale AMT + Luxi Serif + Nimbus Roman No9 L + Times + + + + sans-serif + + Bitstream Vera Sans + DejaVu Sans + Verdana + Arial + Albany AMT + Luxi Sans + Nimbus Sans L + Helvetica + + + + monospace + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Andale Mono + Courier New + Cumberland AMT + Luxi Mono + Nimbus Mono L + Courier + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/65-fonts-persian.conf b/system/players/VideoPlayer/etc/fonts/conf.d/65-fonts-persian.conf new file mode 100644 index 0000000..4c9f81c --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/65-fonts-persian.conf @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + Nesf + + + Nesf2 + + + + + Nesf2 + + + Persian_sansserif_default + + + + + + + + + + + + Nazanin + + + Nazli + + + + + Lotus + + + Lotoos + + + + + + + Yaqut + + + Yaghoot + + + + + Yagut + + + Yaghoot + + + + + Yaghut + + + Yaghoot + + + + + Traffic + + + Terafik + + + + + Ferdowsi + + + Ferdosi + + + + + Fantezy + + + Fantezi + + + + + + + + + + Jadid + + + Persian_title + + + + + Titr + + + Persian_title + + + + + + + Kamran + + + Homa + + + Persian_fantasy + + + + + Homa + + + Kamran + + + Persian_fantasy + + + + + Fantezi + + + Persian_fantasy + + + + + Tabassom + + + Persian_fantasy + + + + + + + Arshia + + + Persian_square + + + + + Nasim + + + Persian_square + + + + + Elham + + + Farnaz + + + Persian_square + + + + + Farnaz + + + Elham + + + Persian_square + + + + + Sina + + + Persian_square + + + + + + + + + Persian_title + + + Persian_serif + + + Jadid + + + Titr + + + + + + + Persian_fantasy + + + Persian_square + + + Tabassom + + + Fantezi + + + Kamran + + + Homa + + + + + + + Persian_square + + + Persian_serif + + + Sina + + + Nasim + + + Farnaz + + + Elham + + + Arshia + + + + + + + + Elham + + + farsiweb + + + + + + Homa + + + farsiweb + + + + + + Koodak + + + farsiweb + + + + + + Nazli + + + farsiweb + + + + + + Roya + + + farsiweb + + + + + + Terafik + + + farsiweb + + + + + + Titr + + + farsiweb + + + + + + + + + + TURNED-OFF + + + farsiweb + + + + roman + + + + roman + + + + + matrix + 1-0.2 + 01 + + + + + + oblique + + + + + + + + + farsiweb + + + false + + + false + + + false + + + + + + + + + serif + + Nazli + Lotoos + Mitra + Ferdosi + Badr + Zar + + + + + + sans-serif + + Roya + Koodak + Terafik + + + + + + monospace + + + Terafik + + + + + + + + + + serif + + + 200 + + + 24 + + + Titr + + + + + + + sans-serif + + + 200 + + + 24 + + + Titr + + + + + + + Persian_sansserif_default + + + 200 + + + 24 + + + Titr + + + + + + + + + Persian_sansserif_default + + + Roya + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/65-nonlatin.conf b/system/players/VideoPlayer/etc/fonts/conf.d/65-nonlatin.conf new file mode 100644 index 0000000..f8dbb64 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/65-nonlatin.conf @@ -0,0 +1,38 @@ + + + + + serif + + Frank Ruehl + MgOpen Canonica + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS 明朝 + Baekmuk Batang + + + + sans-serif + + Nachlieli + MgOpen Modata + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + MS ゴシック + Baekmuk Dotum + SimSun + + + + monospace + + Miriam Mono + Kochi Gothic + AR PL KaitiM GB + Baekmuk Dotum + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/69-unifont.conf b/system/players/VideoPlayer/etc/fonts/conf.d/69-unifont.conf new file mode 100644 index 0000000..a784af9 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/69-unifont.conf @@ -0,0 +1,24 @@ + + + + + serif + + FreeSerif + Code2000 + + + + sans-serif + + FreeSans + Arial Unicode MS + + + + monospace + + FreeMono + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/80-delicious.conf b/system/players/VideoPlayer/etc/fonts/conf.d/80-delicious.conf new file mode 100644 index 0000000..701429b --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/80-delicious.conf @@ -0,0 +1,20 @@ + + + + + + + + + + Delicious + + + Heavy + + + heavy + + + + diff --git a/system/players/VideoPlayer/etc/fonts/conf.d/90-synthetic.conf b/system/players/VideoPlayer/etc/fonts/conf.d/90-synthetic.conf new file mode 100644 index 0000000..9550c93 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/conf.d/90-synthetic.conf @@ -0,0 +1,64 @@ + + + + + + + + + roman + + + + roman + + + + + matrix + 10.2 + 01 + + + + + + oblique + + + + false + + + + + + + + + medium + + + + medium + + + + true + + + + bold + + + diff --git a/system/players/VideoPlayer/etc/fonts/fonts.conf b/system/players/VideoPlayer/etc/fonts/fonts.conf new file mode 100644 index 0000000..9e2067c --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/fonts.conf @@ -0,0 +1,156 @@ + + + + + + + + + + + media/Fonts + ../../media/Fonts + ~/.fonts + + + + WINDOWSTEMPDIR_FONTCONFIG_CACHE + ~/.fontconfig + + + + + mono + + + monospace + + + + + + + sans serif + + + sans-serif + + + + + + + sans + + + sans-serif + + + + + conf.d + + + + + 0x0020 + 0x00A0 + 0x00AD + 0x034F + 0x0600 + 0x0601 + 0x0602 + 0x0603 + 0x06DD + 0x070F + 0x115F + 0x1160 + 0x1680 + 0x17B4 + 0x17B5 + 0x180E + 0x2000 + 0x2001 + 0x2002 + 0x2003 + 0x2004 + 0x2005 + 0x2006 + 0x2007 + 0x2008 + 0x2009 + 0x200A + 0x200B + 0x200C + 0x200D + 0x200E + 0x200F + 0x2028 + 0x2029 + 0x202A + 0x202B + 0x202C + 0x202D + 0x202E + 0x202F + 0x205F + 0x2060 + 0x2061 + 0x2062 + 0x2063 + 0x206A + 0x206B + 0x206C + 0x206D + 0x206E + 0x206F + 0x3000 + 0x3164 + 0xFEFF + 0xFFA0 + 0xFFF9 + 0xFFFA + 0xFFFB + + + + 30 + + + + diff --git a/system/players/VideoPlayer/etc/fonts/fonts.dtd b/system/players/VideoPlayer/etc/fonts/fonts.dtd new file mode 100644 index 0000000..d323a38 --- /dev/null +++ b/system/players/VideoPlayer/etc/fonts/fonts.dtd @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/settings/android.xml b/system/settings/android.xml new file mode 100644 index 0000000..661a978 --- /dev/null +++ b/system/settings/android.xml @@ -0,0 +1,44 @@ + + +
+ + + + false + + + false + + + false + + + 2 + 0 + + + + + + + + + + + + + +
+
+ + + + false + + + false + + + +
+
diff --git a/system/settings/darwin.xml b/system/settings/darwin.xml new file mode 100644 index 0000000..55c98ad --- /dev/null +++ b/system/settings/darwin.xml @@ -0,0 +1,69 @@ + + +
+ + + + + false + + + + + + + + + + false + + + false + + + false + + + + + + + 1 + 1 + + + + + + + + + + + + 4 + false + + 0 + + + + + 1 + 500 + + 50 + 50 + 1000 + + + 2 + + + 14046 + + + + +
+
diff --git a/system/settings/darwin_ios.xml b/system/settings/darwin_ios.xml new file mode 100644 index 0000000..b94522a --- /dev/null +++ b/system/settings/darwin_ios.xml @@ -0,0 +1,90 @@ + + +
+ + + + false + + + + + false + + + + + + false + + +
+
+ + + + 17 + + + false + + + false + + + false + + + + + + + Default + false + + + + + Default + false + + + + + + + false + + + + + false + + + + + false + + + false + + + + + + + + + + +
+
+ + + + skin.estouchy + + + +
+
diff --git a/system/settings/darwin_osx.xml b/system/settings/darwin_osx.xml new file mode 100644 index 0000000..5d73f3b --- /dev/null +++ b/system/settings/darwin_osx.xml @@ -0,0 +1,12 @@ + + +
+ + + + 1 + + + +
+
diff --git a/system/settings/darwin_tvos.xml b/system/settings/darwin_tvos.xml new file mode 100644 index 0000000..05bc49f --- /dev/null +++ b/system/settings/darwin_tvos.xml @@ -0,0 +1,161 @@ + + +
+ + false + + + + + + false + + + false + + + + + false + +
+
+ + + + false + + + + + false + false + + + false + + + + + + false + + + false + + + + + + + 1 + true + + + + 1 + 60 + + + + + + + + + + + true + + + + + 2 + 500 + + 50 + 50 + 1450 + + + + + 2 + 650 + + 50 + 50 + 1450 + + + + + 1 + false + + + + +
+
+ + + + false + + + + + + false + + +
+
+ + false + +
+
+ + + + false + + + false + + + false + + + 2 + false + + + + + + + Default + false + + + + + Default + false + + + false + false + + + + + + false + + +
+
diff --git a/system/settings/freebsd.xml b/system/settings/freebsd.xml new file mode 120000 index 0000000..fde0ce7 --- /dev/null +++ b/system/settings/freebsd.xml @@ -0,0 +1 @@ +linux.xml \ No newline at end of file diff --git a/system/settings/linux.xml b/system/settings/linux.xml new file mode 100644 index 0000000..531974f --- /dev/null +++ b/system/settings/linux.xml @@ -0,0 +1,249 @@ + + +
+ + + + HAVE_LIBVDPAU + false + 2 + true + + + + HAVE_LIBVDPAU + false + 2 + true + + + true + + + + + + HAVE_LIBVDPAU + false + 3 + false + + + true + + + + + + HAVE_LIBVDPAU + false + 3 + false + + + true + + + + + + HAVE_LIBVDPAU + false + 3 + true + + + true + + + + + + HAVE_LIBVA + false + 2 + true + + + + HAVE_LIBVA + false + + + true + + + 3 + false + + + + HAVE_LIBVA + false + + + true + + + 3 + true + + + + HAVE_LIBVA + false + + + true + + + 3 + true + + + + HAVE_LIBVA + false + + + true + + + 3 + true + + + + HAVE_LIBVA + false + + + true + + + 3 + true + + + + HAVE_LIBVA + false + + + true + + + 3 + true + + + + HAVE_LIBVA + false + + + true + + + 3 + true + + + + HAVE_LIBVA + false + + + true + + + 3 + true + + + + HAS_GLES + false + 2 + false + + + + HAS_GLES + false + + + true + + + 3 + true + + + + HAS_GLES + false + 2 + 1 + + + + + + + + + + +
+
+ + + + false + + + false + 3 + true + + + + false + 3 + 0 + + + + + + + + + + + + + 3 + false + + + + + + + + 0 + us + false + + libinputkeyboardlayout + + + false + + + + +
+
diff --git a/system/settings/settings.xml b/system/settings/settings.xml new file mode 100755 index 0000000..0898ee7 --- /dev/null +++ b/system/settings/settings.xml @@ -0,0 +1,4059 @@ + + +
+ + + + + + + + + + + + , + + 0 + + + true + false + + + + 1 + -600,-300,-180,-60,-30,-10,10,30,60,180,300,600 + + videoseeksteps + , + 2 + + + true + + + + 1 + 750 + + 0 + 250 + 3000 + + + 14046 + + + + + + 1 + 0 + + + + + + + + + + + + 1 + false + + + + 2 + 0 + + 0 + 1 + 20 + + + 14047 + + + + 2 + 0 + + + + + + + + + + + + + + + 2 + 0 + + rendermethods + + + + + 2 + 20 + + 0 + 10 + 100 + + + 14047 + + + + HAS_MEDIACODEC + 2 + true + + + + + + + HAS_MEDIACODEC + 2 + true + + + + + + + HasDXVA2 + 2 + true + + + + HasVTB + 2 + true + + + + + + + + + 2 + true + + + + + + 2 + 0 + + + + + + + + + + + + 2 + true + + + + + + 3 + true + + + + 3 + true + + true + + + + + + + + + 0 + true + + + + 0 + false + + + + 1 + -60,-30,-10,10,30,60 + + videoseeksteps + , + 2 + + + true + + + + 1 + 750 + + 0 + 250 + 3000 + + + 14046 + + + + + + 1 + 0 + + 0 + 1 + 15 + + + 14045 + + + + 1 + true + + 0 + + + + + 0 + + + xbmc.player.musicviz + true + + + installed + + + + 3 + 1 + + + + + + + + + + + 3 + 89 + + 77 + 1 + 101 + + + 14050 + + + 0 + + + + 3 + 89 + + 77 + 1 + 101 + + + 14050 + + + 0 + + + + 3 + false + + + 0 + + + + + + + + HAS_DVD_DRIVE + 0 + false + + + + 1 + 0 + + 0 + 1 + 8 + + + + + 2 + false + + + + + HAVE_LIBBLURAY + + 1 + 1 + + + + + + + + + + + 1 + 0 + + + + + + + + + + + + + HAS_DVD_DRIVE + 1 + 0 + + audiocdactions + + + + + HAS_DVD_DRIVE + 1 + true + + + + HAS_CDDA_RIPPER + 3 + + + true + + + 657 + + + + HAS_CDDA_RIPPER + 3 + %A/%A - %B/[%N. ][%A - ]%T + + 16016 + + + + HAS_CDDA_RIPPER + 3 + audioencoder.kodi.builtin.aac + + kodi.audioencoder + + + installed + + + + HAS_CDDA_RIPPER + 3 + + + + + + + + + HAS_CDDA_RIPPER + 3 + true + + + + + + + + 0 + 5 + + 1 + 1 + 100 + + + 14045 + + + + 1 + true + + + + 0 + false + + + + 1 + false + + + + + + + + 0 + mediadefault + + audiostreamlanguages + + + + + 1 + true + + + + + + 0 + original + + subtitlestreamlanguages + + + + + + + 0 + false + + + + 0 + false + + + + 0 + false + + + + + + + + 2 + 2 + + + + + + + + + + + + + 1 + DEFAULT + + subtitlesfonts + + + + + 3 + 42 + + 12 + 2 + 74 + + + + + + + + 3 + 0 + + + + + + + + + + + + 3 + FFFFFFFF + + + + 3 + 100 + + + + 3 + 25 + + 2 + + + + + 3 + FF000000 + + 2 + + + + + 3 + 0 + + + + 3 + 0 + + + + + + + + + + + + 3 + FF000000 + + + + 2 + 3 + + + + + + + 3 + 80 + + + + 2 + 3 + + + + + + + 3 + FF000000 + + + + 1 + 2 + + + + + + + 3 + 100 + + + + 1 + 2 + + + + + + + 3 + 15 + + + + 1 + 2 + + + + + + + 3 + 4.95 + + 0 + 0.05 + 50 + + + + + + {:.2f} % + + + + 3 + false + + + + + + + 3 + 0 + + + + + + + + + + + + + + + 2 + 0 + + 0 + 1 + 10 + + + + + 1 + DEFAULT + + charsets + + + + + + + 1 + false + + + + 2 + 0 + + + + + + + + + true + + + + + + + 1 + English + + subtitledownloadlanguages + , + 1 + + + true + + + + 2 + 0 + + + + + + + + + + 2 + + + true + false + + videos + + + + 657 + + + + 2 + true + + + + 2 + false + + + + 1 + + + true + xbmc.subtitle.module + + + installed + + + + 1 + + + true + xbmc.subtitle.module + + + installed + + + + +
+
+ + + + 1 + + + + 1 + + + + 1 + + + + + + 1 + false + + + + 1 + false + + + + 2 + + + + 2 + + + + 2 + + + + + + 1 + false + + + + 1 + false + + + + 2 + + + + 2 + + + + + 4 + 0 + + + 4 + + + true + + + + 4 + 48 + + + 4 + false + + + 4 + false + + + 4 + false + + + 4 + false + + + 2 + + + + + + + + 1 + true + + + + 1 + true + + + + + + 1 + true + + + + 1 + true + + + + + + + + + + + + 2 + false + + + + 2 + false + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + 2 + false + + + + 2 + true + + + + 2 + true + + + + + + 1 + false + + + + 1 + true + + + + + + 2 + true + + + + 0 + 0,1,2 + + + + + + + , + + + true + false + + + + 1 + false + + + + 1 + false + + + + 2 + false + + + + 2 + 1 + + + + + + + + + + + 2 + true + + + + 2 + 0 + + + + + + + + + + + 2 + 0 + + + + + + + + + + 0 + + + + + 1 + + + true + + files + pictures + videos + + false + + + 657 + + + + 1 + true + + + + + + + 4 + false + + + + 1 + 0 + + + + + + + + + + + + 2 + + + + + + + + + + + , + true + + + 2 + + + true + 13516 + + + + 2 + + + + + + + + + + + , + true + + + 2 + + + true + 13516 + + + + 2 + + + + + + , + true + + + 2 + + + true + 13516 + + + + 2 + + + + + + + + + + , + true + + + 2 + + + true + 13516 + + + + 2 + true + + 3 + + + + + 1 + true + + 3 + + + + + + + + + 2 + true + + + + 0 + true + + + + 0 + true + + + + 1 + false + + + + 2 + false + + + + + + 2 + false + + + + 1 + + + true + + + 657 + + + + 1 + metadata.generic.albums + + xbmc.metadata.scraper.albums + + + installed + + + + 1 + metadata.generic.artists + + xbmc.metadata.scraper.artists + + + installed + + + + 1 + false + + + + + + + 4 + false + + + + 1 + 0 + + + + + + + + + + + + 1 + false + + + 2 + + + + 1 + false + + + 2 + + + + 1 + + + + + + + + + + , + true + + + 2 + + + false + false + + + + + true + 13516 + + + + 1 + + + + + + + + + + + , + true + + + 2 + + + false + false + + + + + true + 13516 + + + + 3 + folder.jpg, cover.jpg, cover.jpeg, thumb.jpg + + + + + + + + , + true + true + + + 3 + + + true + + + + 1 + false + + + 3 + + + + + + 0 + false + + + + 3 + [%N. ]%A - %T + + 16016 + + + + 4 + + + true + + + 16016 + + + + 4 + + + true + + + 16016 + + + + 2 + true + + + + 1 + true + + + + + + + + 4 + false + + + 4 + + + true + + + + + + + + 1 + true + + + + 0 + true + + + + 0 + true + + + + false + 0 + 14 + + resolutions + + + + + + + false + + + 4 + metadata.themoviedb.org.python + + xbmc.metadata.scraper.movies + + + + 4 + metadata.tvshows.themoviedb.org.python + + xbmc.metadata.scraper.tvshows + + + + 4 + metadata.local + + xbmc.metadata.scraper.musicvideos + + + + + + + +
+
+ + + + 1 + + + + 1 + + + + 2 + + true + + + + + + + 1 + + + + + + + + 1 + true + + + + 2 + true + + + + 3 + + true + + false + + + + 2 + + + + true + true + + + + false + + + + 2 + + true + false + + false + + + + 1 + + + + 1 + + + + 1 + + + + + + 2 + + + true + false + + + 657 + + + + 2 + + + + + + + + + + + + + + + 2 + 1 + + 0 + 1 + 31 + + + 17999 + + + + 2 + 3 + + 1 + 1 + 31 + + + 17999 + + + + 1 + 2 + + + + + + + + + + + + + 2 + true + + + + + + 2 + 120 + + 15 + 15 + 2880 + + + 14044 + + + + 2 + false + + + + 1 + + + + + + + + 1 + 3 + + + + + + + + + + + + 1 + false + + + + 2 + 5 + + 0 + 1 + 15 + + + 14045 + + + + 2 + true + + + + 1 + true + + + + 2 + 0 + + 0 + 250 + 10000 + + + 14046 + + + + 3 + 0 + + 0 + 30 + 600 + + + 14045 + + + + 2 + true + + + + 0 + 0 + + + + + + + + + + + + + 1 + true + + + + 1 + false + + + true + + + + 2 + 10 + + 0 + 1 + 20 + + + 14050 + + + true + true + + + + + + + + 1 + 0 + + + + + + + + + + + 1 + 120 + + 1 + 1 + 720 + + + 14044 + + + + 2 + 0 + + pvrrecordmargins + + + + + 2 + 0 + + pvrrecordmargins + + + + + 2 + true + + + + true + 4 + + + + + + + 1 + 10 + + 1 + 1 + 60 + + + 14045 + + + + 1 + true + + + + 1 + false + + + + + + + + 2 + false + + + + 2 + 15 + + 0 + 5 + 360 + + + true + + + 14044 + + + + 2 + + + true + + + true + + + + + 2 + 15 + + 0 + 1 + 60 + + + true + + + 14044 + + + + 2 + false + + + true + + + + 2 + 00:00:00 + + + true + + + + + + CheckPVRParentalPin + + + 2 + false + + + + 2 + + + true + + + true + + + true + true + + + + 2 + 300 + + 5 + 5 + 1200 + + + true + + + 14045 + + + + + + + + + + false + 4 + + + +
+
+ + + + 0 + Kodi + + + + + HAS_ZEROCONF + + 1 + true + + + + + HAS_ZEROCONF + + false + 1 + + + true + + + + + + + + HAS_WEB_SERVER + + 1 + false + + + + 1 + 8080 + + 1 + 1 + 65535 + + + + + + + + 1 + true + + + + 1 + kodi + + + + + + + 1 + + + true + + + true + + + + WEBSERVER_HAS_SSL + 1 + false + + true + + + + + 1 + webinterface.default + + xbmc.webinterface + + + installed + + + + + + 1 + true + + + + 4 + 9777 + + 1 + 1 + 65535 + + + true + + + + + 4 + 10 + + 1 + 1 + 100 + + + true + + + + + 4 + 20 + + 1 + 1 + 100 + + + true + + + + + 1 + false + + + true + + + + + + 4 + 750 + + 5 + 5 + 10000 + + + true + + + + + 4 + 25 + + 5 + 5 + 10000 + + + true + + + + + + + HAS_UPNP + + + 0 + false + + + + 0 + false + + true + + + + + 2 + true + + + + true + true + + + + + + + 2 + false + + + + true + true + + + + + + + 2 + false + + + + true + true + + + + + + + 1 + false + + true + + + + + + + HAS_AIRPLAY + + + 1 + false + + + + 2 + true + + true + + + + + 3 + false + + true + + + + + 1 + false + + true + true + + + + + 1 + + + true + + + true + + + true + + + + + + HAS_FILESYSTEM_SMB + + + 2 + WORKGROUP + + + + + + 2 + 0.0.0.0 + + + + 2 + 0 + + + + + + + + + + + + 2 + 3 + + + + + + + + + + + + 2 + false + + + + 1 + + + + + + + 2 + true + + + + + + HAS_FILESYSTEM_NFS + + + 2 + 3 + + 3 + 1 + 4 + + + + + + + + + 4 + 1 + + + + 0 + + + xbmc.python.weather + true + + + installed + + + + 0 + + + + + + + +
+
+ + + + false + 0 + true + + + + false + 0 + true + + + + 0 + true + + + + 0 + true + + + + 2 + 60 + + 10 + 10 + 600 + + + true + + + true + 14045 + + + + + + + + 0 + + + true + + + + + 0 + + + true + + + true + + + + false + + + true + + + + + true + 0 + false + + + + +
+
+ + + + + + HAVE_X11 + HAVE_WAYLAND + HAVE_OSX + HAS_DX + HAVE_IOS + HAVE_GBM + + + 0 + Default + + monitors + + + + + 0 + 0 + + screens + + + + + + + + 0 + 16 + + resolutions + + + -1 + + + + + + + + IsStandAlone + 0 + DESKTOP + + refreshrates + + + + + + -1 + + + + + + + 1 + true + + -1 + + + + + 1 + false + + -1 + + + + + 2 + 0 + + refreshchangedelays + + + + + HAS_DX + + + + + + 2 + 60 + + + + HAS_DX + 3 + 0 + + + + + + + + + + + + + HAS_GL + HAS_DX + + + 3 + false + + + + + + HAS_GL + HAS_DX + + + 3 + 8 + + 2 + 1 + 8 + + + true + + + + + + + HAS_GL + HAS_DX + + + 3 + false + + + + + + HAS_GL + HAS_DX + + + 3 + 0 + + cmsmodes + + + true + + + + + + + HAS_GL + HAS_DX + + + 3 + + + true + + + true + 0 + + + + + + + HAS_GL + HAS_DX + + + HAVE_LCMS2 + + + 3 + + + true + + + true + 1 + + + + + + + HAS_GL + HAS_DX + + + HAVE_LCMS2 + + + 3 + 0 + + cmswhitepoints + + + true + 1 + + + + + + + HAS_GL + HAS_DX + + + HAVE_LCMS2 + + + 3 + 0 + + cmsprimaries + + + true + 1 + + + + + + + HAS_GL + HAS_DX + + + HAVE_LCMS2 + + + 3 + 0 + + cmsgammamodes + + + true + 1 + + + + + + + HAS_GL + HAS_DX + + + HAVE_LCMS2 + + + 3 + 220 + + 160 + 005 + 280 + + + true + 1 + 0 + + + + + + + HAS_GL + HAS_DX + + + 3 + 6 + + 4 + 1 + 8 + + + true + 1 + + + + + + + 3 + + + modes + , + 0 + + + true + + + + 3 + false + + + + + + + 3 + false + + + + + + + + + 2 + 0 + + stereoscopicmodes + + + + + 2 + 100 + + preferedstereoscopicviewmodes + + + + + + + + + + 2 + 3 + + 2 + 1 + 3 + + + + + 3 + + + + + + + + 0 + Default + + audiodevices + + + + + + + + 0 + 1 + + audiooutput.channels + + + + + + + + + + + + + + + + + + + 2 + 2 + + + + + + + + + + + 1 + 90 + + 10 + 5 + 90 + + + + + 2 + true + + + + 2 + false + + audiooutput.stereoupmix + + + + + HAS_AE_QUALITY_LEVELS + 2 + 30 + + aequalitylevels + + + + + 3 + 2 + + 0 + 1 + 100 + + + + + 2 + 48000 + + + + audiooutput.samplerate + audiooutput.samplerate + + + + + + + + + + + + + + + + + + 2 + 1 + + audiostreamsilence + + + + + 2 + true + + + + + + 0 + 1 + + + + + + + + + + + 1 + 100 + + + + 0 + resource.uisounds.kodi + + 0 + + + kodi.resource.uisounds + true + + + + + + installed + + + + + + 1 + false + + + + audiooutput.passthrough + audiooutput.passthrough + + + + + + + 1 + Default + + + + audiooutput.passthrough + audiooutput.passthrough + + + true + + + audiodevicespassthrough + + + + + 2 + true + + audiooutput.passthrough + true + + + + + 2 + false + + + + true + true + + + + + audiooutput.ac3transcode + audiooutput.ac3transcode + + + + + + + 2 + false + + + + audiooutput.eac3passthrough + audiooutput.eac3passthrough + + + true + + + + + 2 + false + + + + audiooutput.dtspassthrough + audiooutput.dtspassthrough + + + true + + + + + 2 + false + + + + audiooutput.truehdpassthrough + audiooutput.truehdpassthrough + + + true + + + + + 2 + false + + + + audiooutput.dtshdpassthrough + audiooutput.dtshdpassthrough + + + true + + + + + 2 + true + + + + false + audiooutput.dtshdpassthrough + audiooutput.dtshdpassthrough + + + + + true + + + + + + + + + + + 1 + + + + + + + 1 + + + + + + + + + 2 + + true + + + 2 + + true + + + 0 + + true + false + + + 0 + + + + 1 + + + + + false + + + 2 + + + + + + + + 1 + + + + false + + + + + + + + + + 1 + false + + + + 1 + 0 + + + + + + + + + + + + true + + + + + 1 + + + true + + + true + + + + + 1 + 8080 + + 1 + 1 + 65535 + + + true + + + + + 1 + + + true + + + true + + + + + 1 + + + true + + + true + + + true + + + + 1 + 0 + + 0 + 512 + 102400 + + + 14048 + + + + + + + + 0 + 0 + + 0 + 5 + 120 + + + 14044 + + + + 2 + 0 + + 0 + 5 + 120 + + + 14044 + + + + 2 + 0 + + shutdownstates + + + + + 2 + 0 + + 0 + 1 + 30 + + + 14045 + + + + + + 1 + false + + + + + + + + 0 + 0 + + + + + + + + + + + 0 + false + + + 0 + + + + 2 + + + + 2 + + + + 2 + + + + 0 + false + + + + 1 + 0 + + + + + + + + true + + + + + + + + + 1 + false + + + + 1 + false + + + + 1 + + + loggingcomponents + , + + + true + + + true + true + + + + 1 + + + true + + + 657 + + + + + + 1 + true + + + + 1 + false + + true + + + + + 1 + + true + + + true + + + + + + false + + + 4 + 256 + + 0 + 256 + 4096 + + + 14049 + + + + + + 4 + 2048 + + 0 + 256 + 16384 + + + 14049 + + + + 4 + 2048 + + 0 + 256 + 16384 + + + 14049 + + + + 4 + 4096 + + 0 + 256 + 16384 + + + 14049 + + + + + + 4 + 256 + + 0 + 256 + 4096 + + + 14049 + + + + 4 + 256 + + 0 + 256 + 4096 + + + 14049 + + + + 4 + 256 + + 0 + 256 + 4096 + + + 14049 + + + + + + 4 + 2048 + + 0 + 256 + 16384 + + + 14049 + + + + 4 + 2048 + + 0 + 256 + 16384 + + + 14049 + + + + + + 4 + 4096 + + 0 + 256 + 16384 + + + 14049 + + + + + + + + 4 + + + true + + + + + + + + 4 + false + + + 4 + true + + + +
+
+ + + + 0 + skin.estuary + + xbmc.gui.skin + + + installed + + + + 0 + + + + + + + 1 + SKINDEFAULT + + skinthemes + + + + + + + + 1 + SKINDEFAULT + + skincolors + + + + + + + + 1 + Default + + skinfonts + + + + + + + + 1 + 0 + + -30 + 2 + 30 + + + + + + 14047 + + + + 2 + 5 + + 0 + 1 + 10 + + + + + + + + 0 + false + + + + 1 + + + true + + + true + + + true + + + + + + + + 0 + resource.language.en_gb + + kodi.resource.language + + + all + + + + 1 + DEFAULT + + charsets + + + + + + + + 0 + English QWERTY + + keyboardlayouts + | + 1 + 3 + + + true + + + + 4 + English QWERTY + + + + + 0 + USA (12h) + + regions + + + + + + + + 1 + default + + timezonecountries + + + + + 1 + default + + timezones + + + + + + + + 2 + regional + + shortdateformats + + + + + + + + 2 + regional + + longdateformats + + + + + + + + 2 + regional + + timeformats + + + + + + + + + 2 + regional + + 24hourclockformats + + + + + + + + 2 + regional + + temperatureunits + + + + + + + + 2 + regional + + speedunits + + + + + + + + + + + + 0 + default + + xbmc.ui.screensaver + true + + + + + + installed + + + + 1 + + + + + + + + + + + + 1 + + + + + + + 0 + 3 + + 1 + 1 + 60 + + + + + + 14044 + + + + 0 + true + + + + + + + 1 + true + + + + screensaver.xbmc.builtin.dim + + + + + + + + + + CheckMasterLock + + + 1 + + true + + + + 1 + false + + 0 + + + + + 4 + 3 + + 3 + 1 + 100 + + + + + + + + + 0 + 0 + + + + + + + + + + + 0 + 10000 + + startupwindows + + + + + + + + + + false + + + 4 + 720 + + + 4 + 480 + + + +
+
diff --git a/system/settings/win10.xml b/system/settings/win10.xml new file mode 100644 index 0000000..c735691 --- /dev/null +++ b/system/settings/win10.xml @@ -0,0 +1,51 @@ + + +
+ + + + true + false + + + false + false + + + false + + + + + + + 0 + XAUDIO:default + + + + + 1 + WASAPI:default + + + +
+
+ + + + false + + +
+
+ + + + false + + + +
+
diff --git a/system/settings/win32.xml b/system/settings/win32.xml new file mode 100644 index 0000000..bafa5ea --- /dev/null +++ b/system/settings/win32.xml @@ -0,0 +1,18 @@ + + +
+ + false + + + 4 + 0 + + + 4 + 0 + + + +
+
diff --git a/system/settings/windows.xml b/system/settings/windows.xml new file mode 100644 index 0000000..163cb5c --- /dev/null +++ b/system/settings/windows.xml @@ -0,0 +1,73 @@ + + +
+ + + + false + + + + + + false + + + false + + +
+
+ + + + 0 + DIRECTSOUND:default + + audiodevices + + + + + + + 1 + DIRECTSOUND:default + + audiodevicespassthrough + + + + + audiooutput.passthrough + audiooutput.passthrough + + + + + + + + + + + 3 + false + + + + +
+
+ + + + false + + + false + + + +
+
diff --git a/system/shaders/GL/1.2/gl_convolution-4x4.glsl b/system/shaders/GL/1.2/gl_convolution-4x4.glsl new file mode 100644 index 0000000..8c97423 --- /dev/null +++ b/system/shaders/GL/1.2/gl_convolution-4x4.glsl @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +uniform sampler2D img; +uniform vec2 stepxy; +uniform float m_stretch; +uniform float m_alpha; +varying vec2 m_cord; +uniform sampler1D kernelTex; + +vec4 weight(float pos) +{ +#if defined(HAS_FLOAT_TEXTURE) + return texture1D(kernelTex, pos); +#else + return texture1D(kernelTex, pos) * 2.0 - 1.0; +#endif +} + +vec2 stretch(vec2 pos) +{ +#if (XBMC_STRETCH) + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + float x = pos.x - 0.5; + return vec2(mix(x * abs(x) * 2.0, x, m_stretch) + 0.5, pos.y); +#else + return pos; +#endif +} + +vec3 pixel(float xpos, float ypos) +{ + return texture2D(img, vec2(xpos, ypos)).rgb; +} + +vec3 line (float ypos, vec4 xpos, vec4 linetaps) +{ + return + pixel(xpos.r, ypos) * linetaps.r + + pixel(xpos.g, ypos) * linetaps.g + + pixel(xpos.b, ypos) * linetaps.b + + pixel(xpos.a, ypos) * linetaps.a; +} + +vec4 process() +{ + vec4 rgb; + vec2 pos = stretch(m_cord) + stepxy * 0.5; + vec2 f = fract(pos / stepxy); + + vec4 linetaps = weight(1.0 - f.x); + vec4 columntaps = weight(1.0 - f.y); + + //make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur + linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a; + columntaps /= columntaps.r + columntaps.g + columntaps.b + columntaps.a; + + vec2 xystart = (-1.5 - f) * stepxy + pos; + vec4 xpos = vec4(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0, xystart.x + stepxy.x * 3.0); + + rgb.rgb = + line(xystart.y , xpos, linetaps) * columntaps.r + + line(xystart.y + stepxy.y , xpos, linetaps) * columntaps.g + + line(xystart.y + stepxy.y * 2.0, xpos, linetaps) * columntaps.b + + line(xystart.y + stepxy.y * 3.0, xpos, linetaps) * columntaps.a; + + rgb.a = m_alpha; + + return rgb; +} diff --git a/system/shaders/GL/1.2/gl_convolution-6x6.glsl b/system/shaders/GL/1.2/gl_convolution-6x6.glsl new file mode 100644 index 0000000..26c9f49 --- /dev/null +++ b/system/shaders/GL/1.2/gl_convolution-6x6.glsl @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +uniform sampler2D img; +uniform vec2 stepxy; +uniform float m_stretch; +uniform float m_alpha; +varying vec2 m_cord; +uniform sampler1D kernelTex; + +vec3 weight(float pos) +{ +#if defined(HAS_FLOAT_TEXTURE) + return texture1D(kernelTex, pos).rgb; +#else + return texture1D(kernelTex, pos).rgb * 2.0 - 1.0; +#endif +} + +vec2 stretch(vec2 pos) +{ +#if (XBMC_STRETCH) + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + float x = pos.x - 0.5; + return vec2(mix(x * abs(x) * 2.0, x, m_stretch) + 0.5, pos.y); +#else + return pos; +#endif +} + +vec3 pixel(float xpos, float ypos) +{ + return texture2D(img, vec2(xpos, ypos)).rgb; +} + +vec3 line (float ypos, vec3 xpos1, vec3 xpos2, vec3 linetaps1, vec3 linetaps2) +{ + return + pixel(xpos1.r, ypos) * linetaps1.r + + pixel(xpos1.g, ypos) * linetaps2.r + + pixel(xpos1.b, ypos) * linetaps1.g + + pixel(xpos2.r, ypos) * linetaps2.g + + pixel(xpos2.g, ypos) * linetaps1.b + + pixel(xpos2.b, ypos) * linetaps2.b; +} + +vec4 process() +{ + vec4 rgb; + vec2 pos = stretch(m_cord) + stepxy * 0.5; + vec2 f = fract(pos / stepxy); + + vec3 linetaps1 = weight((1.0 - f.x) / 2.0); + vec3 linetaps2 = weight((1.0 - f.x) / 2.0 + 0.5); + vec3 columntaps1 = weight((1.0 - f.y) / 2.0); + vec3 columntaps2 = weight((1.0 - f.y) / 2.0 + 0.5); + + //make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur + float sum = linetaps1.r + linetaps1.g + linetaps1.b + linetaps2.r + linetaps2.g + linetaps2.b; + linetaps1 /= sum; + linetaps2 /= sum; + sum = columntaps1.r + columntaps1.g + columntaps1.b + columntaps2.r + columntaps2.g + columntaps2.b; + columntaps1 /= sum; + columntaps2 /= sum; + + vec2 xystart = (-2.5 - f) * stepxy + pos; + vec3 xpos1 = vec3(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0); + vec3 xpos2 = vec3(xystart.x + stepxy.x * 3.0, xystart.x + stepxy.x * 4.0, xystart.x + stepxy.x * 5.0); + + rgb.rgb = + line(xystart.y , xpos1, xpos2, linetaps1, linetaps2) * columntaps1.r + + line(xystart.y + stepxy.y , xpos1, xpos2, linetaps1, linetaps2) * columntaps2.r + + line(xystart.y + stepxy.y * 2.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.g + + line(xystart.y + stepxy.y * 3.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.g + + line(xystart.y + stepxy.y * 4.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.b + + line(xystart.y + stepxy.y * 5.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.b; + + rgb.a = m_alpha; + + return rgb; +} diff --git a/system/shaders/GL/1.2/gl_output.glsl b/system/shaders/GL/1.2/gl_output.glsl new file mode 100644 index 0000000..d3294a8 --- /dev/null +++ b/system/shaders/GL/1.2/gl_output.glsl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2010-2017 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + + +#if defined(XBMC_DITHER) +uniform sampler2D m_dither; +uniform float m_ditherquant; +uniform vec2 m_dithersize; +#endif +#if defined(KODI_3DLUT) +uniform float m_CLUTsize; +uniform sampler3D m_CLUT; +#endif + +void main() +{ + vec4 rgb = process(); + +#if defined(KODI_3DLUT) + // FIXME: can this be optimized? + rgb = texture3D(m_CLUT, (rgb.rgb*(m_CLUTsize-1.0) + 0.5) / m_CLUTsize); +#endif + +#if defined(XBMC_FULLRANGE) +#if __VERSION__ <= 120 + rgb = (rgb-(16.0/255.0)) * 255.0/219.0; +#else + rgb = clamp((rgb-(16.0/255.0)) * 255.0/219.0, 0, 1); +#endif +#endif + +#if defined(XBMC_DITHER) + vec2 ditherpos = gl_FragCoord.xy / m_dithersize; + // ditherval is multiplied by 65536/(dither_size^2) to make it [0,1[ + // FIXME: scale dither values before uploading? + float ditherval = texture2D(m_dither, ditherpos).r * 16.0; + rgb = floor(rgb * m_ditherquant + ditherval) / m_ditherquant; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GL/1.2/gl_shader_frag_default.glsl b/system/shaders/GL/1.2/gl_shader_frag_default.glsl new file mode 100644 index 0000000..d9aba5f --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_frag_default.glsl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform vec4 m_unicol; + +// SM_DEFAULT shader +void main () +{ + gl_FragColor = m_unicol; +} diff --git a/system/shaders/GL/1.2/gl_shader_frag_fonts.glsl b/system/shaders/GL/1.2/gl_shader_frag_fonts.glsl new file mode 100644 index 0000000..eed605f --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_frag_fonts.glsl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform sampler2D m_samp0; +varying vec4 m_cord0; +varying vec4 m_colour; + +// SM_FONTS shader +void main () +{ + gl_FragColor.r = m_colour.r; + gl_FragColor.g = m_colour.g; + gl_FragColor.b = m_colour.b; + gl_FragColor.a = m_colour.a * texture2D(m_samp0, m_cord0.xy).r; +} diff --git a/system/shaders/GL/1.2/gl_shader_frag_multi.glsl b/system/shaders/GL/1.2/gl_shader_frag_multi.glsl new file mode 100644 index 0000000..804a716 --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_frag_multi.glsl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; + +// SM_MULTI shader +void main () +{ + gl_FragColor.rgba = (texture2D(m_samp0, m_cord0.xy) * texture2D(m_samp1, m_cord1.xy)).rgba; +} diff --git a/system/shaders/GL/1.2/gl_shader_frag_multi_blendcolor.glsl b/system/shaders/GL/1.2/gl_shader_frag_multi_blendcolor.glsl new file mode 100644 index 0000000..20622d2 --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_frag_multi_blendcolor.glsl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; +uniform vec4 m_unicol; + +// SM_MULTI shader +void main () +{ + gl_FragColor.rgba = m_unicol * texture2D(m_samp0, m_cord0.xy) * texture2D(m_samp1, m_cord1.xy); +} diff --git a/system/shaders/GL/1.2/gl_shader_frag_texture.glsl b/system/shaders/GL/1.2/gl_shader_frag_texture.glsl new file mode 100644 index 0000000..c15681f --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_frag_texture.glsl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform sampler2D m_samp0; +uniform vec4 m_unicol; +varying vec4 m_cord0; + +// SM_TEXTURE shader +void main () +{ + gl_FragColor.rgba = vec4(texture2D(m_samp0, m_cord0.xy).rgba * m_unicol); +} diff --git a/system/shaders/GL/1.2/gl_shader_frag_texture_noblend.glsl b/system/shaders/GL/1.2/gl_shader_frag_texture_noblend.glsl new file mode 100644 index 0000000..16a1f8b --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_frag_texture_noblend.glsl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform sampler2D m_samp0; +varying vec4 m_cord0; + +// SM_TEXTURE_NOBLEND shader +void main () +{ + gl_FragColor.rgba = vec4(texture2D(m_samp0, m_cord0.xy).rgba); +} diff --git a/system/shaders/GL/1.2/gl_shader_vert.glsl b/system/shaders/GL/1.2/gl_shader_vert.glsl new file mode 100644 index 0000000..7c10b5f --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_vert.glsl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +attribute vec4 m_attrpos; +attribute vec4 m_attrcol; +attribute vec4 m_attrcord0; +attribute vec4 m_attrcord1; +varying vec4 m_cord0; +varying vec4 m_cord1; +varying vec4 m_colour; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_colour = m_attrcol; + m_cord0 = m_attrcord0; + m_cord1 = m_attrcord1; +} diff --git a/system/shaders/GL/1.2/gl_shader_vert_default.glsl b/system/shaders/GL/1.2/gl_shader_vert_default.glsl new file mode 100644 index 0000000..554e15c --- /dev/null +++ b/system/shaders/GL/1.2/gl_shader_vert_default.glsl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +attribute vec4 m_attrpos; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; +} diff --git a/system/shaders/GL/1.2/gl_stretch.glsl b/system/shaders/GL/1.2/gl_stretch.glsl new file mode 100644 index 0000000..9cc3388 --- /dev/null +++ b/system/shaders/GL/1.2/gl_stretch.glsl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform sampler2D img; +uniform float m_stretch; +uniform float m_alpha; +varying vec2 m_cord; + +vec2 stretch(vec2 pos) +{ + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + float x = pos.x - 0.5; + return vec2(mix(x * abs(x) * 2.0, x, m_stretch) + 0.5, pos.y); +} + +void main() +{ + gl_FragColor.rgb = texture2D(img, stretch(m_cord)).rgb; + gl_FragColor.a = m_alpha; +} diff --git a/system/shaders/GL/1.2/gl_videofilter_frag.glsl b/system/shaders/GL/1.2/gl_videofilter_frag.glsl new file mode 100644 index 0000000..ff7af3b --- /dev/null +++ b/system/shaders/GL/1.2/gl_videofilter_frag.glsl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +uniform sampler2D img; +varying vec2 m_cord; + +void main() +{ + gl_FragColor.rgb = texture2D(img, m_cord).rgb; + gl_FragColor.a = gl_Color.a; +} diff --git a/system/shaders/GL/1.2/gl_videofilter_vertex.glsl b/system/shaders/GL/1.2/gl_videofilter_vertex.glsl new file mode 100644 index 0000000..aa124b5 --- /dev/null +++ b/system/shaders/GL/1.2/gl_videofilter_vertex.glsl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 120 + +attribute vec4 m_attrpos; +attribute vec2 m_attrcord; +varying vec2 m_cord; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_cord = m_attrcord; +} diff --git a/system/shaders/GL/1.2/gl_yuv2rgb_basic.glsl b/system/shaders/GL/1.2/gl_yuv2rgb_basic.glsl new file mode 100644 index 0000000..57c3a17 --- /dev/null +++ b/system/shaders/GL/1.2/gl_yuv2rgb_basic.glsl @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#if(XBMC_texture_rectangle) +# extension GL_ARB_texture_rectangle : enable +# define texture2D texture2DRect +# define sampler2D sampler2DRect +#endif + +uniform sampler2D m_sampY; +uniform sampler2D m_sampU; +uniform sampler2D m_sampV; +varying vec2 m_cordY; +varying vec2 m_cordU; +varying vec2 m_cordV; +uniform vec2 m_step; +uniform mat4 m_yuvmat; +uniform float m_stretch; +uniform mat3 m_primMat; +uniform float m_gammaDstInv; +uniform float m_gammaSrc; +uniform float m_alpha; + +vec2 stretch(vec2 pos) +{ +#if (XBMC_STRETCH) + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + #if(XBMC_texture_rectangle) + float x = (pos.x * m_step.x) - 0.5; + return vec2((mix(2.0 * x * abs(x), x, m_stretch) + 0.5) / m_step.x, pos.y); + #else + float x = pos.x - 0.5; + return vec2(mix(2.0 * x * abs(x), x, m_stretch) + 0.5, pos.y); + #endif +#else + return pos; +#endif +} + +vec4 process() +{ + vec4 rgb; +#if defined(XBMC_YV12) + + vec4 yuv; + yuv.rgba = vec4( texture2D(m_sampY, stretch(m_cordY)).r + , texture2D(m_sampU, stretch(m_cordU)).r + , texture2D(m_sampV, stretch(m_cordV)).r + , 1.0 ); + + rgb = m_yuvmat * yuv; + rgb.a = m_alpha; + +#elif defined(XBMC_NV12) + + vec4 yuv; + yuv.rgba = vec4( texture2D(m_sampY, stretch(m_cordY)).r + , texture2D(m_sampU, stretch(m_cordU)).rg + , 1.0 ); + + rgb = m_yuvmat * yuv; + rgb.a = m_alpha; + +#elif defined(XBMC_YUY2) || defined(XBMC_UYVY) + +#if(XBMC_texture_rectangle) + vec2 stepxy = vec2(1.0, 1.0); + vec2 pos = stretch(m_cordY); + pos = vec2(pos.x - 0.25, pos.y); + vec2 f = fract(pos); +#else + vec2 stepxy = m_step; + vec2 pos = stretch(m_cordY); + pos = vec2(pos.x - stepxy.x * 0.25, pos.y); + vec2 f = fract(pos / stepxy); +#endif + + //y axis will be correctly interpolated by opengl + //x axis will not, so we grab two pixels at the center of two columns and interpolate ourselves + vec4 c1 = texture2D(m_sampY, vec2(pos.x + (0.5 - f.x) * stepxy.x, pos.y)); + vec4 c2 = texture2D(m_sampY, vec2(pos.x + (1.5 - f.x) * stepxy.x, pos.y)); + + /* each pixel has two Y subpixels and one UV subpixel + YUV Y YUV + check if we're left or right of the middle Y subpixel and interpolate accordingly*/ +#ifdef XBMC_YUY2 //BGRA = YUYV + float leftY = mix(c1.b, c1.r, f.x * 2.0); + float rightY = mix(c1.r, c2.b, f.x * 2.0 - 1.0); + vec2 outUV = mix(c1.ga, c2.ga, f.x); +#else //BGRA = UYVY + float leftY = mix(c1.g, c1.a, f.x * 2.0); + float rightY = mix(c1.a, c2.g, f.x * 2.0 - 1.0); + vec2 outUV = mix(c1.br, c2.br, f.x); +#endif //XBMC_YUY2 + + float outY = mix(leftY, rightY, step(0.5, f.x)); + + vec4 yuv = vec4(outY, outUV, 1.0); + rgb = m_yuvmat * yuv; + + rgb.a = m_alpha; + +#endif + +#if defined(XBMC_COL_CONVERSION) + rgb.rgb = pow(max(vec3(0), rgb.rgb), vec3(m_gammaSrc)); + rgb.rgb = max(vec3(0), m_primMat * rgb.rgb); + rgb.rgb = pow(rgb.rgb, vec3(m_gammaDstInv)); +#endif + + return rgb; +} diff --git a/system/shaders/GL/1.2/gl_yuv2rgb_vertex.glsl b/system/shaders/GL/1.2/gl_yuv2rgb_vertex.glsl new file mode 100644 index 0000000..cdf3c56 --- /dev/null +++ b/system/shaders/GL/1.2/gl_yuv2rgb_vertex.glsl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +attribute vec4 m_attrpos; +attribute vec2 m_attrcordY; +attribute vec2 m_attrcordU; +attribute vec2 m_attrcordV; +varying vec2 m_cordY; +varying vec2 m_cordU; +varying vec2 m_cordV; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_cordY = m_attrcordY; + m_cordU = m_attrcordU; + m_cordV = m_attrcordV; +} diff --git a/system/shaders/GL/1.5/gl_convolution-4x4.glsl b/system/shaders/GL/1.5/gl_convolution-4x4.glsl new file mode 100644 index 0000000..2a6404e --- /dev/null +++ b/system/shaders/GL/1.5/gl_convolution-4x4.glsl @@ -0,0 +1,71 @@ +#version 150 + +uniform sampler2D img; +uniform vec2 stepxy; +uniform float m_stretch; +uniform float m_alpha; +in vec2 m_cord; +out vec4 fragColor; +uniform sampler1D kernelTex; + +vec4 weight(float pos) +{ +#if defined(HAS_FLOAT_TEXTURE) + return texture(kernelTex, pos); +#else + return texture(kernelTex, pos) * 2.0 - 1.0; +#endif +} + +vec2 stretch(vec2 pos) +{ +#if (XBMC_STRETCH) + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + float x = pos.x - 0.5; + return vec2(mix(x * abs(x) * 2.0, x, m_stretch) + 0.5, pos.y); +#else + return pos; +#endif +} + +vec3 pixel(float xpos, float ypos) +{ + return texture(img, vec2(xpos, ypos)).rgb; +} + +vec3 line (float ypos, vec4 xpos, vec4 linetaps) +{ + return + pixel(xpos.r, ypos) * linetaps.r + + pixel(xpos.g, ypos) * linetaps.g + + pixel(xpos.b, ypos) * linetaps.b + + pixel(xpos.a, ypos) * linetaps.a; +} + +vec4 process() +{ + vec4 rgb; + vec2 pos = stretch(m_cord) + stepxy * 0.5; + vec2 f = fract(pos / stepxy); + + vec4 linetaps = weight(1.0 - f.x); + vec4 columntaps = weight(1.0 - f.y); + + //make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur + linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a; + columntaps /= columntaps.r + columntaps.g + columntaps.b + columntaps.a; + + vec2 xystart = (-1.5 - f) * stepxy + pos; + vec4 xpos = vec4(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0, xystart.x + stepxy.x * 3.0); + + rgb.rgb = + line(xystart.y , xpos, linetaps) * columntaps.r + + line(xystart.y + stepxy.y , xpos, linetaps) * columntaps.g + + line(xystart.y + stepxy.y * 2.0, xpos, linetaps) * columntaps.b + + line(xystart.y + stepxy.y * 3.0, xpos, linetaps) * columntaps.a; + + rgb.a = m_alpha; + return rgb; +} diff --git a/system/shaders/GL/1.5/gl_convolution-6x6.glsl b/system/shaders/GL/1.5/gl_convolution-6x6.glsl new file mode 100644 index 0000000..b4410cc --- /dev/null +++ b/system/shaders/GL/1.5/gl_convolution-6x6.glsl @@ -0,0 +1,83 @@ +#version 150 + +uniform sampler2D img; +uniform vec2 stepxy; +uniform float m_stretch; +uniform float m_alpha; +in vec2 m_cord; +out vec4 fragColor; +uniform sampler1D kernelTex; + +vec3 weight(float pos) +{ +#if defined(HAS_FLOAT_TEXTURE) + return texture(kernelTex, pos).rgb; +#else + return texture(kernelTex, pos).rgb * 2.0 - 1.0; +#endif +} + +vec2 stretch(vec2 pos) +{ +#if (XBMC_STRETCH) + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + float x = pos.x - 0.5; + return vec2(mix(x * abs(x) * 2.0, x, m_stretch) + 0.5, pos.y); +#else + return pos; +#endif +} + +vec3 pixel(float xpos, float ypos) +{ + return texture(img, vec2(xpos, ypos)).rgb; +} + +vec3 line (float ypos, vec3 xpos1, vec3 xpos2, vec3 linetaps1, vec3 linetaps2) +{ + return + pixel(xpos1.r, ypos) * linetaps1.r + + pixel(xpos1.g, ypos) * linetaps2.r + + pixel(xpos1.b, ypos) * linetaps1.g + + pixel(xpos2.r, ypos) * linetaps2.g + + pixel(xpos2.g, ypos) * linetaps1.b + + pixel(xpos2.b, ypos) * linetaps2.b; +} + +vec4 process() +{ + vec4 rgb; + vec2 pos = stretch(m_cord) + stepxy * 0.5; + vec2 f = fract(pos / stepxy); + + vec3 linetaps1 = weight((1.0 - f.x) / 2.0); + vec3 linetaps2 = weight((1.0 - f.x) / 2.0 + 0.5); + vec3 columntaps1 = weight((1.0 - f.y) / 2.0); + vec3 columntaps2 = weight((1.0 - f.y) / 2.0 + 0.5); + + //make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur + float sum = linetaps1.r + linetaps1.g + linetaps1.b + linetaps2.r + linetaps2.g + linetaps2.b; + linetaps1 /= sum; + linetaps2 /= sum; + sum = columntaps1.r + columntaps1.g + columntaps1.b + columntaps2.r + columntaps2.g + columntaps2.b; + columntaps1 /= sum; + columntaps2 /= sum; + + vec2 xystart = (-2.5 - f) * stepxy + pos; + vec3 xpos1 = vec3(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0); + vec3 xpos2 = vec3(xystart.x + stepxy.x * 3.0, xystart.x + stepxy.x * 4.0, xystart.x + stepxy.x * 5.0); + + rgb.rgb = + line(xystart.y , xpos1, xpos2, linetaps1, linetaps2) * columntaps1.r + + line(xystart.y + stepxy.y , xpos1, xpos2, linetaps1, linetaps2) * columntaps2.r + + line(xystart.y + stepxy.y * 2.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.g + + line(xystart.y + stepxy.y * 3.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.g + + line(xystart.y + stepxy.y * 4.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.b + + line(xystart.y + stepxy.y * 5.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.b; + + rgb.a = m_alpha; + + return rgb; +} diff --git a/system/shaders/GL/1.5/gl_output.glsl b/system/shaders/GL/1.5/gl_output.glsl new file mode 100644 index 0000000..9823102 --- /dev/null +++ b/system/shaders/GL/1.5/gl_output.glsl @@ -0,0 +1,37 @@ +#if defined(XBMC_DITHER) +uniform sampler2D m_dither; +uniform float m_ditherquant; +uniform vec2 m_dithersize; +#endif +#if defined(KODI_3DLUT) +uniform float m_CLUTsize; +uniform sampler3D m_CLUT; +#endif + +void main() +{ + vec4 rgb = process(); + +#if defined(KODI_3DLUT) + // FIXME: can this be optimized? + rgb = texture(m_CLUT, (rgb.rgb*(m_CLUTsize-1.0) + 0.5) / m_CLUTsize); +#endif + +#if defined(XBMC_FULLRANGE) +#if __VERSION__ <= 120 + rgb = (rgb-(16.0/255.0)) * 255.0/219.0; +#else + rgb = clamp((rgb-(16.0/255.0)) * 255.0/219.0, 0, 1); +#endif +#endif + +#if defined(XBMC_DITHER) + vec2 ditherpos = gl_FragCoord.xy / m_dithersize; + // ditherval is multiplied by 65536/(dither_size^2) to make it [0,1[ + // FIXME: scale dither values before uploading? + float ditherval = texture(m_dither, ditherpos).r * 16.0; + rgb = floor(rgb * m_ditherquant + ditherval) / m_ditherquant; +#endif + + fragColor = rgb; +} diff --git a/system/shaders/GL/1.5/gl_shader_frag_default.glsl b/system/shaders/GL/1.5/gl_shader_frag_default.glsl new file mode 100644 index 0000000..d57f576 --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_frag_default.glsl @@ -0,0 +1,14 @@ +#version 150 + +uniform vec4 m_unicol; +out vec4 fragColor; + +// SM_DEFAULT shader +void main () +{ + fragColor = m_unicol; +#if defined(KODI_LIMITED_RANGE) + fragColor.rgb *= (235.0-16.0) / 255.0; + fragColor.rgb += 16.0 / 255.0; +#endif +} diff --git a/system/shaders/GL/1.5/gl_shader_frag_fonts.glsl b/system/shaders/GL/1.5/gl_shader_frag_fonts.glsl new file mode 100644 index 0000000..1de6ddc --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_frag_fonts.glsl @@ -0,0 +1,19 @@ +#version 150 + +uniform sampler2D m_samp0; +in vec4 m_cord0; +in vec4 m_colour; +out vec4 fragColor; + +// SM_FONTS shader +void main () +{ + fragColor.r = m_colour.r; + fragColor.g = m_colour.g; + fragColor.b = m_colour.b; + fragColor.a = m_colour.a * texture(m_samp0, m_cord0.xy).r; +#if defined(KODI_LIMITED_RANGE) + fragColor.rgb *= (235.0-16.0) / 255.0; + fragColor.rgb += 16.0 / 255.0; +#endif +} diff --git a/system/shaders/GL/1.5/gl_shader_frag_multi.glsl b/system/shaders/GL/1.5/gl_shader_frag_multi.glsl new file mode 100644 index 0000000..3e6412b --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_frag_multi.glsl @@ -0,0 +1,17 @@ +#version 150 + +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +in vec4 m_cord0; +in vec4 m_cord1; +out vec4 fragColor; + +// SM_MULTI shader +void main () +{ + fragColor.rgba = (texture(m_samp0, m_cord0.xy) * texture(m_samp1, m_cord1.xy)).rgba; +#if defined(KODI_LIMITED_RANGE) + fragColor.rgb *= (235.0-16.0) / 255.0; + fragColor.rgb += 16.0 / 255.0; +#endif +} diff --git a/system/shaders/GL/1.5/gl_shader_frag_multi_blendcolor.glsl b/system/shaders/GL/1.5/gl_shader_frag_multi_blendcolor.glsl new file mode 100644 index 0000000..96310ce --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_frag_multi_blendcolor.glsl @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +uniform vec4 m_unicol; +in vec4 m_cord0; +in vec4 m_cord1; +out vec4 fragColor; + +// SM_MULTI shader +void main () +{ + fragColor.rgba = m_unicol * texture(m_samp0, m_cord0.xy) * texture(m_samp1, m_cord1.xy); +#if defined(KODI_LIMITED_RANGE) + fragColor.rgb *= (235.0-16.0) / 255.0; + fragColor.rgb += 16.0 / 255.0; +#endif +} diff --git a/system/shaders/GL/1.5/gl_shader_frag_texture.glsl b/system/shaders/GL/1.5/gl_shader_frag_texture.glsl new file mode 100644 index 0000000..71b1d21 --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_frag_texture.glsl @@ -0,0 +1,16 @@ +#version 150 + +uniform sampler2D m_samp0; +uniform vec4 m_unicol; +in vec4 m_cord0; +out vec4 fragColor; + +// SM_TEXTURE shader +void main () +{ + fragColor.rgba = vec4(texture(m_samp0, m_cord0.xy).rgba * m_unicol); +#if defined(KODI_LIMITED_RANGE) + fragColor.rgb *= (235.0-16.0) / 255.0; + fragColor.rgb += 16.0 / 255.0; +#endif +} diff --git a/system/shaders/GL/1.5/gl_shader_frag_texture_lim.glsl b/system/shaders/GL/1.5/gl_shader_frag_texture_lim.glsl new file mode 100644 index 0000000..def4349 --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_frag_texture_lim.glsl @@ -0,0 +1,15 @@ +#version 150 + +uniform sampler2D m_samp0; +uniform vec4 m_unicol; +in vec4 m_cord0; +out vec4 fragColor; + +// SM_TEXTURE shader +void main () +{ + fragColor.rgba = vec4(texture(m_samp0, m_cord0.xy).rgba * m_unicol); +#if !defined(KODI_LIMITED_RANGE) + fragColor.rgb = clamp((fragColor.rgb-(16.0/255.0)) * 255.0/219.0, 0, 1); +#endif +} diff --git a/system/shaders/GL/1.5/gl_shader_frag_texture_noblend.glsl b/system/shaders/GL/1.5/gl_shader_frag_texture_noblend.glsl new file mode 100644 index 0000000..e5d627e --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_frag_texture_noblend.glsl @@ -0,0 +1,15 @@ +#version 150 + +uniform sampler2D m_samp0; +in vec4 m_cord0; +out vec4 fragColor; + +// SM_TEXTURE_NOBLEND shader +void main () +{ + fragColor.rgba = vec4(texture(m_samp0, m_cord0.xy).rgba); +#if defined(KODI_LIMITED_RANGE) + fragColor.rgb *= (235.0-16.0) / 255.0; + fragColor.rgb += 16.0 / 255.0; +#endif +} diff --git a/system/shaders/GL/1.5/gl_shader_vert.glsl b/system/shaders/GL/1.5/gl_shader_vert.glsl new file mode 100644 index 0000000..a856831 --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_vert.glsl @@ -0,0 +1,20 @@ +#version 150 + +in vec4 m_attrpos; +in vec4 m_attrcol; +in vec4 m_attrcord0; +in vec4 m_attrcord1; +out vec4 m_cord0; +out vec4 m_cord1; +out vec4 m_colour; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_colour = m_attrcol; + m_cord0 = m_attrcord0; + m_cord1 = m_attrcord1; +} diff --git a/system/shaders/GL/1.5/gl_shader_vert_default.glsl b/system/shaders/GL/1.5/gl_shader_vert_default.glsl new file mode 100644 index 0000000..e4f2d7c --- /dev/null +++ b/system/shaders/GL/1.5/gl_shader_vert_default.glsl @@ -0,0 +1,11 @@ +#version 150 + +in vec4 m_attrpos; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; +} diff --git a/system/shaders/GL/1.5/gl_stretch.glsl b/system/shaders/GL/1.5/gl_stretch.glsl new file mode 100644 index 0000000..9a31e54 --- /dev/null +++ b/system/shaders/GL/1.5/gl_stretch.glsl @@ -0,0 +1,22 @@ +#version 150 + +uniform sampler2D img; +uniform float m_stretch; +uniform float m_alpha; +in vec2 m_cord; +out vec4 fragColor; + +vec2 stretch(vec2 pos) +{ + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + float x = pos.x - 0.5; + return vec2(mix(x * abs(x) * 2.0, x, m_stretch) + 0.5, pos.y); +} + +void main() +{ + fragColor.rgb = texture(img, stretch(m_cord)).rgb; + fragColor.a = m_alpha; +} diff --git a/system/shaders/GL/1.5/gl_tonemap.glsl b/system/shaders/GL/1.5/gl_tonemap.glsl new file mode 100644 index 0000000..a70dca2 --- /dev/null +++ b/system/shaders/GL/1.5/gl_tonemap.glsl @@ -0,0 +1,50 @@ +#if (defined(KODI_TONE_MAPPING_REINHARD) || defined(KODI_TONE_MAPPING_ACES) || defined(KODI_TONE_MAPPING_HABLE)) +const float ST2084_m1 = 2610.0 / (4096.0 * 4.0); +const float ST2084_m2 = (2523.0 / 4096.0) * 128.0; +const float ST2084_c1 = 3424.0 / 4096.0; +const float ST2084_c2 = (2413.0 / 4096.0) * 32.0; +const float ST2084_c3 = (2392.0 / 4096.0) * 32.0; +#endif + +#if defined(KODI_TONE_MAPPING_REINHARD) +float reinhard(float x) +{ + return x * (1.0 + x / (m_toneP1 * m_toneP1)) / (1.0 + x); +} +#endif + +#if defined(KODI_TONE_MAPPING_ACES) +vec3 aces(vec3 x) +{ + float A = 2.51; + float B = 0.03; + float C = 2.43; + float D = 0.59; + float E = 0.14; + return (x * (A * x + B)) / (x * (C * x + D) + E); +} +#endif + +#if defined(KODI_TONE_MAPPING_HABLE) +vec3 hable(vec3 x) +{ + float A = 0.15; + float B = 0.5; + float C = 0.1; + float D = 0.2; + float E = 0.02; + float F = 0.3; + return ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F; +} +#endif + +#if (defined(KODI_TONE_MAPPING_ACES) || defined(KODI_TONE_MAPPING_HABLE)) +vec3 inversePQ(vec3 x) +{ + x = pow(max(x, 0.0), vec3(1.0 / ST2084_m2)); + x = max(x - ST2084_c1, 0.0) / (ST2084_c2 - ST2084_c3 * x); + x = pow(x, vec3(1.0 / ST2084_m1)); + return x; +} +#endif + diff --git a/system/shaders/GL/1.5/gl_videofilter_frag.glsl b/system/shaders/GL/1.5/gl_videofilter_frag.glsl new file mode 100644 index 0000000..2eb4155 --- /dev/null +++ b/system/shaders/GL/1.5/gl_videofilter_frag.glsl @@ -0,0 +1,12 @@ +#version 150 + +uniform sampler2D img; +uniform float m_alpha; +in vec2 m_cord; +out vec4 fragColor; + +void main() +{ + fragColor = texture(img, m_cord); + fragColor.a = m_alpha; +} diff --git a/system/shaders/GL/1.5/gl_videofilter_vertex.glsl b/system/shaders/GL/1.5/gl_videofilter_vertex.glsl new file mode 100644 index 0000000..edb8847 --- /dev/null +++ b/system/shaders/GL/1.5/gl_videofilter_vertex.glsl @@ -0,0 +1,14 @@ +#version 150 + +in vec4 m_attrpos; +in vec2 m_attrcord; +out vec2 m_cord; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_cord = m_attrcord; +} diff --git a/system/shaders/GL/1.5/gl_yuv2rgb_basic.glsl b/system/shaders/GL/1.5/gl_yuv2rgb_basic.glsl new file mode 100644 index 0000000..7d5605c --- /dev/null +++ b/system/shaders/GL/1.5/gl_yuv2rgb_basic.glsl @@ -0,0 +1,123 @@ +#version 150 + +#if(XBMC_texture_rectangle) +# define texture2D texture2DRect +# define sampler2D sampler2DRect +#endif + +uniform sampler2D m_sampY; +uniform sampler2D m_sampU; +uniform sampler2D m_sampV; +uniform vec2 m_step; +uniform mat4 m_yuvmat; +uniform float m_stretch; +uniform float m_alpha; +uniform mat3 m_primMat; +uniform float m_gammaDstInv; +uniform float m_gammaSrc; +uniform float m_toneP1; +uniform float m_luminance; +uniform vec3 m_coefsDst; +in vec2 m_cordY; +in vec2 m_cordU; +in vec2 m_cordV; +out vec4 fragColor; + +vec2 stretch(vec2 pos) +{ +#if (XBMC_STRETCH) + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + #if(XBMC_texture_rectangle) + float x = (pos.x * m_step.x) - 0.5; + return vec2((mix(2.0 * x * abs(x), x, m_stretch) + 0.5) / m_step.x, pos.y); + #else + float x = pos.x - 0.5; + return vec2(mix(2.0 * x * abs(x), x, m_stretch) + 0.5, pos.y); + #endif +#else + return pos; +#endif +} + +vec4 process() +{ + vec4 rgb; + vec4 yuv; + +#if defined(XBMC_YV12) + + yuv.rgba = vec4( texture(m_sampY, stretch(m_cordY)).r + , texture(m_sampU, stretch(m_cordU)).r + , texture(m_sampV, stretch(m_cordV)).r + , 1.0 ); + +#elif defined(XBMC_NV12) + + yuv.rgba = vec4( texture(m_sampY, stretch(m_cordY)).r + , texture(m_sampU, stretch(m_cordU)).rg + , 1.0 ); + +#elif defined(XBMC_YUY2) || defined(XBMC_UYVY) + + vec2 stepxy = m_step; + vec2 pos = stretch(m_cordY); + pos = vec2(pos.x - stepxy.x * 0.25, pos.y); + vec2 f = fract(pos / stepxy); + + //y axis will be correctly interpolated by opengl + //x axis will not, so we grab two pixels at the center of two columns and interpolate ourselves + vec4 c1 = texture(m_sampY, vec2(pos.x + (0.5 - f.x) * stepxy.x, pos.y)); + vec4 c2 = texture(m_sampY, vec2(pos.x + (1.5 - f.x) * stepxy.x, pos.y)); + + /* each pixel has two Y subpixels and one UV subpixel + YUV Y YUV + check if we're left or right of the middle Y subpixel and interpolate accordingly*/ +#ifdef XBMC_YUY2 //BGRA = YUYV + float leftY = mix(c1.b, c1.r, f.x * 2.0); + float rightY = mix(c1.r, c2.b, f.x * 2.0 - 1.0); + vec2 outUV = mix(c1.ga, c2.ga, f.x); +#else //BGRA = UYVY + float leftY = mix(c1.g, c1.a, f.x * 2.0); + float rightY = mix(c1.a, c2.g, f.x * 2.0 - 1.0); + vec2 outUV = mix(c1.br, c2.br, f.x); +#endif //XBMC_YUY2 + + float outY = mix(leftY, rightY, step(0.5, f.x)); + + yuv = vec4(outY, outUV, 1.0); + +#endif + + rgb = m_yuvmat * yuv; + rgb.a = m_alpha; + +#if defined(XBMC_COL_CONVERSION) + rgb.rgb = pow(max(vec3(0), rgb.rgb), vec3(m_gammaSrc)); + rgb.rgb = max(vec3(0), m_primMat * rgb.rgb); + rgb.rgb = pow(rgb.rgb, vec3(m_gammaDstInv)); + +#if defined(KODI_TONE_MAPPING_REINHARD) + float luma = dot(rgb.rgb, m_coefsDst); + rgb.rgb *= reinhard(luma) / luma; + +#elif defined(KODI_TONE_MAPPING_ACES) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= (10000.0 / m_luminance) * (2.0 / m_toneP1); + rgb.rgb = aces(rgb.rgb); + rgb.rgb *= (1.24 / m_toneP1); + rgb.rgb = pow(rgb.rgb, vec3(0.27)); + +#elif defined(KODI_TONE_MAPPING_HABLE) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= m_toneP1; + float wp = m_luminance / 100.0; + rgb.rgb = hable(rgb.rgb * wp) / hable(vec3(wp)); + rgb.rgb = pow(rgb.rgb, vec3(1.0 / 2.2)); +#endif + +#endif + + return rgb; +} diff --git a/system/shaders/GL/1.5/gl_yuv2rgb_vertex.glsl b/system/shaders/GL/1.5/gl_yuv2rgb_vertex.glsl new file mode 100644 index 0000000..4772bd4 --- /dev/null +++ b/system/shaders/GL/1.5/gl_yuv2rgb_vertex.glsl @@ -0,0 +1,20 @@ +#version 150 + +uniform mat4 m_proj; +uniform mat4 m_model; +in vec4 m_attrpos; +in vec2 m_attrcordY; +in vec2 m_attrcordU; +in vec2 m_attrcordV; +out vec2 m_cordY; +out vec2 m_cordU; +out vec2 m_cordV; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_cordY = m_attrcordY; + m_cordU = m_attrcordU; + m_cordV = m_attrcordV; +} diff --git a/system/shaders/GL/4.0/gl_yuv2rgb_filter4.glsl b/system/shaders/GL/4.0/gl_yuv2rgb_filter4.glsl new file mode 100644 index 0000000..8a4658c --- /dev/null +++ b/system/shaders/GL/4.0/gl_yuv2rgb_filter4.glsl @@ -0,0 +1,141 @@ +#version 400 + +#if(XBMC_texture_rectangle) +# define texture2D texture2DRect +# define sampler2D sampler2DRect +#endif + +uniform sampler2D m_sampY; +uniform sampler2D m_sampU; +uniform sampler2D m_sampV; +uniform vec2 m_step; +uniform mat4 m_yuvmat; +uniform float m_stretch; +uniform float m_alpha; +uniform sampler1D m_kernelTex; +uniform mat3 m_primMat; +uniform float m_gammaDstInv; +uniform float m_gammaSrc; +uniform float m_toneP1; +uniform float m_luminance; +uniform vec3 m_coefsDst; +in vec2 m_cordY; +in vec2 m_cordU; +in vec2 m_cordV; +out vec4 fragColor; + +vec2 stretch(vec2 pos) +{ +#if (XBMC_STRETCH) + // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. + // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 + // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) + #if(XBMC_texture_rectangle) + float x = (pos.x * m_step.x) - 0.5; + return vec2((mix(2.0 * x * abs(x), x, m_stretch) + 0.5) / m_step.x, pos.y); + #else + float x = pos.x - 0.5; + return vec2(mix(2.0 * x * abs(x), x, m_stretch) + 0.5, pos.y); + #endif +#else + return pos; +#endif +} + +vec4[4] load4x4_0(sampler2D sampler, vec2 pos) +{ + vec4[4] tex4x4; + vec4 tex2x2 = textureGather(sampler, pos, 0); + tex4x4[0].xy = tex2x2.wz; + tex4x4[1].xy = tex2x2.xy; + tex2x2 = textureGatherOffset(sampler, pos, ivec2(2,0), 0); + tex4x4[0].zw = tex2x2.wz; + tex4x4[1].zw = tex2x2.xy; + tex2x2 = textureGatherOffset(sampler, pos, ivec2(0,2), 0); + tex4x4[2].xy = tex2x2.wz; + tex4x4[3].xy = tex2x2.xy; + tex2x2 = textureGatherOffset(sampler, pos, ivec2(2,2), 0); + tex4x4[2].zw = tex2x2.wz; + tex4x4[3].zw = tex2x2.xy; + return tex4x4; +} + +float filter_0(sampler2D sampler, vec2 coord) +{ + vec2 pos = coord + m_step * 0.5; + vec2 f = fract(pos / m_step); + + vec4 linetaps = texture(m_kernelTex, 1.0 - f.x); + vec4 coltaps = texture(m_kernelTex, 1.0 - f.y); + linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a; + coltaps /= coltaps.r + coltaps.g + coltaps.b + coltaps.a; + mat4 conv; + conv[0] = linetaps * coltaps.x; + conv[1] = linetaps * coltaps.y; + conv[2] = linetaps * coltaps.z; + conv[3] = linetaps * coltaps.w; + + vec2 startPos = (-1.0 - f) * m_step + pos; + vec4[4] tex4x4 = load4x4_0(sampler, startPos); + vec4 imageLine0 = tex4x4[0]; + vec4 imageLine1 = tex4x4[1]; + vec4 imageLine2 = tex4x4[2]; + vec4 imageLine3 = tex4x4[3]; + + return dot(imageLine0, conv[0]) + + dot(imageLine1, conv[1]) + + dot(imageLine2, conv[2]) + + dot(imageLine3, conv[3]); +} + +vec4 process() +{ + vec4 rgb; + vec4 yuv; + +#if defined(XBMC_YV12) + + yuv = vec4(filter_0(m_sampY, stretch(m_cordY)), + texture(m_sampU, stretch(m_cordU)).r, + texture(m_sampV, stretch(m_cordV)).r, + 1.0); + +#elif defined(XBMC_NV12) + + yuv = vec4(filter_0(m_sampY, stretch(m_cordY)), + texture(m_sampU, stretch(m_cordU)).rg, + 1.0); + +#endif + + rgb = m_yuvmat * yuv; + rgb.a = m_alpha; + +#if defined(XBMC_COL_CONVERSION) + rgb.rgb = pow(max(vec3(0), rgb.rgb), vec3(m_gammaSrc)); + rgb.rgb = max(vec3(0), m_primMat * rgb.rgb); + rgb.rgb = pow(rgb.rgb, vec3(m_gammaDstInv)); + +#if defined(KODI_TONE_MAPPING_REINHARD) + float luma = dot(rgb.rgb, m_coefsDst); + rgb.rgb *= reinhard(luma) / luma; + +#elif defined(KODI_TONE_MAPPING_ACES) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= (10000.0 / m_luminance) * (2.0 / m_toneP1); + rgb.rgb = aces(rgb.rgb); + rgb.rgb *= (1.24 / m_toneP1); + rgb.rgb = pow(rgb.rgb, vec3(0.27)); + +#elif defined(KODI_TONE_MAPPING_HABLE) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= m_toneP1; + float wp = m_luminance / 100.0; + rgb.rgb = hable(rgb.rgb * wp) / hable(vec3(wp)); + rgb.rgb = pow(rgb.rgb, vec3(1.0 / 2.2)); +#endif + +#endif + + return rgb; +} diff --git a/system/shaders/GLES/2.0/gles_convolution-4x4.frag b/system/shaders/GLES/2.0/gles_convolution-4x4.frag new file mode 100644 index 0000000..3043b10 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_convolution-4x4.frag @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision highp float; + +uniform sampler2D img; +uniform vec2 stepxy; +varying vec2 cord; +uniform float m_alpha; +uniform sampler2D kernelTex; + +vec4 weight(float pos) +{ +#if defined(HAS_FLOAT_TEXTURE) + return texture2D(kernelTex, vec2(pos, 0.5)); +#else + return texture2D(kernelTex, vec2(pos - 0.5)) * 2.0 - 1.0; +#endif +} + +vec3 pixel(float xpos, float ypos) +{ + return texture2D(img, vec2(xpos, ypos)).rgb; +} + +vec3 line (float ypos, vec4 xpos, vec4 linetaps) +{ + return pixel(xpos.r, ypos) * linetaps.r + + pixel(xpos.g, ypos) * linetaps.g + + pixel(xpos.b, ypos) * linetaps.b + + pixel(xpos.a, ypos) * linetaps.a; +} + +void main() +{ + vec4 rgb; + vec2 pos = cord + stepxy * 0.5; + vec2 f = fract(pos / stepxy); + + vec4 linetaps = weight(1.0 - f.x); + vec4 columntaps = weight(1.0 - f.y); + + // make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur + linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a; + columntaps /= columntaps.r + columntaps.g + columntaps.b + columntaps.a; + + vec2 xystart = (-1.5 - f) * stepxy + pos; + vec4 xpos = vec4(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0, xystart.x + stepxy.x * 3.0); + + rgb.rgb = line(xystart.y, xpos, linetaps) * columntaps.r + + line(xystart.y + stepxy.y, xpos, linetaps) * columntaps.g + + line(xystart.y + stepxy.y * 2.0, xpos, linetaps) * columntaps.b + + line(xystart.y + stepxy.y * 3.0, xpos, linetaps) * columntaps.a; + + rgb.a = m_alpha; + + gl_FragColor = rgb; +} + diff --git a/system/shaders/GLES/2.0/gles_convolution-6x6.frag b/system/shaders/GLES/2.0/gles_convolution-6x6.frag new file mode 100644 index 0000000..d043c75 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_convolution-6x6.frag @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision highp float; + +uniform sampler2D img; +uniform vec2 stepxy; +varying vec2 cord; +uniform float m_alpha; +uniform sampler2D kernelTex; + +vec3 weight(float pos) +{ +#if defined(HAS_FLOAT_TEXTURE) + return texture2D(kernelTex, vec2(pos, 0.5)).rgb; +#else + return texture2D(kernelTex, vec2(pos - 0.5)).rgb * 2.0 - 1.0; +#endif +} + +vec3 pixel(float xpos, float ypos) +{ + return texture2D(img, vec2(xpos, ypos)).rgb; +} + +vec3 line (float ypos, vec3 xpos1, vec3 xpos2, vec3 linetaps1, vec3 linetaps2) +{ + return pixel(xpos1.r, ypos) * linetaps1.r + + pixel(xpos1.g, ypos) * linetaps2.r + + pixel(xpos1.b, ypos) * linetaps1.g + + pixel(xpos2.r, ypos) * linetaps2.g + + pixel(xpos2.g, ypos) * linetaps1.b + + pixel(xpos2.b, ypos) * linetaps2.b; +} + +void main() +{ + vec4 rgb; + vec2 pos = cord + stepxy * 0.5; + vec2 f = fract(pos / stepxy); + + vec3 linetaps1 = weight((1.0 - f.x) / 2.0); + vec3 linetaps2 = weight((1.0 - f.x) / 2.0 + 0.5); + vec3 columntaps1 = weight((1.0 - f.y) / 2.0); + vec3 columntaps2 = weight((1.0 - f.y) / 2.0 + 0.5); + + // make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur + float sum = linetaps1.r + linetaps1.g + linetaps1.b + linetaps2.r + linetaps2.g + linetaps2.b; + linetaps1 /= sum; + linetaps2 /= sum; + sum = columntaps1.r + columntaps1.g + columntaps1.b + columntaps2.r + columntaps2.g + columntaps2.b; + columntaps1 /= sum; + columntaps2 /= sum; + + vec2 xystart = (-2.5 - f) * stepxy + pos; + vec3 xpos1 = vec3(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0); + vec3 xpos2 = vec3(xystart.x + stepxy.x * 3.0, xystart.x + stepxy.x * 4.0, xystart.x + stepxy.x * 5.0); + + rgb.rgb = line(xystart.y, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.r + + line(xystart.y + stepxy.y, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.r + + line(xystart.y + stepxy.y * 2.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.g + + line(xystart.y + stepxy.y * 3.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.g + + line(xystart.y + stepxy.y * 4.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.b + + line(xystart.y + stepxy.y * 5.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.b; + + rgb.a = m_alpha; + + gl_FragColor = rgb; +} + diff --git a/system/shaders/GLES/2.0/gles_shader.vert b/system/shaders/GLES/2.0/gles_shader.vert new file mode 100644 index 0000000..890acbb --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader.vert @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +attribute vec4 m_attrpos; +attribute vec4 m_attrcol; +attribute vec4 m_attrcord0; +attribute vec4 m_attrcord1; +varying vec4 m_cord0; +varying vec4 m_cord1; +varying lowp vec4 m_colour; +uniform mat4 m_proj; +uniform mat4 m_model; +uniform mat4 m_coord0Matrix; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_colour = m_attrcol; + m_cord0 = m_coord0Matrix * m_attrcord0; + m_cord1 = m_attrcord1; +} diff --git a/system/shaders/GLES/2.0/gles_shader_default.frag b/system/shaders/GLES/2.0/gles_shader_default.frag new file mode 100644 index 0000000..f213360 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_default.frag @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform lowp vec4 m_unicol; + +void main () +{ + vec4 rgb; + + rgb = m_unicol; + +#if defined(KODI_LIMITED_RANGE) + rgb.rgb *= (235.0 - 16.0) / 255.0; + rgb.rgb += 16.0 / 255.0; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_fonts.frag b/system/shaders/GLES/2.0/gles_shader_fonts.frag new file mode 100644 index 0000000..075d26f --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_fonts.frag @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +varying vec4 m_cord0; +varying lowp vec4 m_colour; + +void main () +{ + vec4 rgb; + + rgb.rgb = m_colour.rgb; + rgb.a = m_colour.a * texture2D(m_samp0, m_cord0.xy).a; + +#if defined(KODI_LIMITED_RANGE) + rgb.rgb *= (235.0 - 16.0) / 255.0; + rgb.rgb += 16.0 / 255.0; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_multi.frag b/system/shaders/GLES/2.0/gles_shader_multi.frag new file mode 100644 index 0000000..9f28898 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_multi.frag @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; + +void main () +{ + vec4 rgb; + + rgb = texture2D(m_samp0, m_cord0.xy) * texture2D(m_samp1, m_cord1.xy); + +#if defined(KODI_LIMITED_RANGE) + rgb.rgb *= (235.0 - 16.0) / 255.0; + rgb.rgb += 16.0 / 255.0; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_multi_blendcolor.frag b/system/shaders/GLES/2.0/gles_shader_multi_blendcolor.frag new file mode 100644 index 0000000..35153da --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_multi_blendcolor.frag @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; +uniform lowp vec4 m_unicol; + +void main () +{ + vec4 rgb; + + rgb = m_unicol * texture2D(m_samp0, m_cord0.xy) * texture2D(m_samp1, m_cord1.xy); + +#if defined(KODI_LIMITED_RANGE) + rgb.rgb *= (235.0 - 16.0) / 255.0; + rgb.rgb += 16.0 / 255.0; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_rgba.frag b/system/shaders/GLES/2.0/gles_shader_rgba.frag new file mode 100644 index 0000000..cdbb076 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_rgba.frag @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; +varying lowp vec4 m_colour; +uniform int m_method; + +uniform float m_brightness; +uniform float m_contrast; + +void main () +{ + vec4 rgb; + + rgb = texture2D(m_samp0, m_cord0.xy); + rgb *= m_contrast; + rgb += m_brightness; + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_rgba_blendcolor.frag b/system/shaders/GLES/2.0/gles_shader_rgba_blendcolor.frag new file mode 100644 index 0000000..3f08da0 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_rgba_blendcolor.frag @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; +varying lowp vec4 m_colour; +uniform int m_method; + +void main () +{ + vec4 rgb; + + rgb = texture2D(m_samp0, m_cord0.xy).rgba * m_colour; + +#if defined(KODI_LIMITED_RANGE) + rgb.rgb *= (235.0 - 16.0) / 255.0; + rgb.rgb += 16.0 / 255.0; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_rgba_bob.frag b/system/shaders/GLES/2.0/gles_shader_rgba_bob.frag new file mode 100644 index 0000000..fd4a83b --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_rgba_bob.frag @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision highp float; +uniform sampler2D m_samp0; +uniform sampler2D m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; +varying lowp vec4 m_colour; +uniform int m_method; +uniform int m_field; +uniform float m_step; + +uniform float m_brightness; +uniform float m_contrast; + +void main () +{ + vec2 source; + source = m_cord0.xy; + + float temp1 = mod(source.y, 2.0 * m_step); + float temp2 = source.y - temp1; + source.y = temp2 + m_step / 2.0 - float(m_field) * m_step; + + // Blend missing line + vec2 below; + float bstep = step(m_step, temp1); + below.x = source.x; + below.y = source.y + (2.0 * m_step * bstep); + + vec4 color = mix(texture2D(m_samp0, source), texture2D(m_samp0, below), 0.5); + color *= m_contrast; + color += m_brightness; + + gl_FragColor = color; +} diff --git a/system/shaders/GLES/2.0/gles_shader_rgba_bob_oes.frag b/system/shaders/GLES/2.0/gles_shader_rgba_bob_oes.frag new file mode 100644 index 0000000..16894af --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_rgba_bob_oes.frag @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +#extension GL_OES_EGL_image_external : require + +precision highp float; +uniform samplerExternalOES m_samp0; +uniform samplerExternalOES m_samp1; +varying vec4 m_cord0; +varying vec4 m_cord1; +varying lowp vec4 m_colour; +uniform int m_method; +uniform int m_field; +uniform float m_step; + +uniform float m_brightness; +uniform float m_contrast; + +void main () +{ + vec2 source; + source = m_cord0.xy; + + float temp1 = mod(source.y, 2.0 * m_step); + float temp2 = source.y - temp1; + source.y = temp2 + m_step / 2.0 - float(m_field) * m_step; + + // Blend missing line + vec2 below; + float bstep = step(m_step, temp1); + below.x = source.x; + below.y = source.y + (2.0*m_step * bstep); + + vec4 color = mix(texture2D(m_samp0, source), texture2D(m_samp0, below), 0.5); + color *= m_contrast; + color += m_brightness; + + gl_FragColor = color; +} diff --git a/system/shaders/GLES/2.0/gles_shader_rgba_oes.frag b/system/shaders/GLES/2.0/gles_shader_rgba_oes.frag new file mode 100644 index 0000000..2936954 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_rgba_oes.frag @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +#extension GL_OES_EGL_image_external : require + +precision mediump float; +uniform samplerExternalOES m_samp0; +varying vec4 m_cord0; + +uniform float m_brightness; +uniform float m_contrast; + +void main () +{ + vec4 rgb; + + rgb = texture2D(m_samp0, m_cord0.xy); + rgb *= m_contrast; + rgb += m_brightness; + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_texture.frag b/system/shaders/GLES/2.0/gles_shader_texture.frag new file mode 100644 index 0000000..a2ac2de --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_texture.frag @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +uniform lowp vec4 m_unicol; +varying vec4 m_cord0; + +void main () +{ + vec4 rgb; + + rgb = texture2D(m_samp0, m_cord0.xy).rgba * m_unicol; + +#if defined(KODI_LIMITED_RANGE) + rgb.rgb *= (235.0 - 16.0) / 255.0; + rgb.rgb += 16.0 / 255.0; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_shader_texture_noalpha.frag b/system/shaders/GLES/2.0/gles_shader_texture_noalpha.frag new file mode 100644 index 0000000..9f478ed --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_texture_noalpha.frag @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2019 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +varying vec4 m_cord0; + +void main () +{ + vec3 rgb = texture2D(m_samp0, m_cord0.xy).rgb; + +#if defined(KODI_LIMITED_RANGE) + rgb *= (235.0 - 16.0) / 255.0; + rgb += 16.0 / 255.0; +#endif + + gl_FragColor = vec4(rgb, 1.0); +} diff --git a/system/shaders/GLES/2.0/gles_shader_texture_noblend.frag b/system/shaders/GLES/2.0/gles_shader_texture_noblend.frag new file mode 100644 index 0000000..8cc66c9 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_shader_texture_noblend.frag @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; +uniform sampler2D m_samp0; +varying vec4 m_cord0; + +void main () +{ + vec4 rgb; + + rgb = texture2D(m_samp0, m_cord0.xy); + +#if defined(KODI_LIMITED_RANGE) + rgb.rgb *= (235.0 - 16.0) / 255.0; + rgb.rgb += 16.0 / 255.0; +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/GLES/2.0/gles_tonemap.frag b/system/shaders/GLES/2.0/gles_tonemap.frag new file mode 100644 index 0000000..28b2402 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_tonemap.frag @@ -0,0 +1,50 @@ +#if (defined(KODI_TONE_MAPPING_ACES) || defined(KODI_TONE_MAPPING_HABLE)) +const float ST2084_m1 = 2610.0 / (4096.0 * 4.0); +const float ST2084_m2 = (2523.0 / 4096.0) * 128.0; +const float ST2084_c1 = 3424.0 / 4096.0; +const float ST2084_c2 = (2413.0 / 4096.0) * 32.0; +const float ST2084_c3 = (2392.0 / 4096.0) * 32.0; +#endif + +#if defined(KODI_TONE_MAPPING_REINHARD) +float reinhard(float x) +{ + return x * (1.0 + x / (m_toneP1 * m_toneP1)) / (1.0 + x); +} +#endif + +#if defined(KODI_TONE_MAPPING_ACES) +vec3 aces(vec3 x) +{ + float A = 2.51; + float B = 0.03; + float C = 2.43; + float D = 0.59; + float E = 0.14; + return (x * (A * x + B)) / (x * (C * x + D) + E); +} +#endif + +#if defined(KODI_TONE_MAPPING_HABLE) +vec3 hable(vec3 x) +{ + float A = 0.15; + float B = 0.5; + float C = 0.1; + float D = 0.2; + float E = 0.02; + float F = 0.3; + return ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F; +} +#endif + +#if (defined(KODI_TONE_MAPPING_ACES) || defined(KODI_TONE_MAPPING_HABLE)) +vec3 inversePQ(vec3 x) +{ + x = pow(max(x, 0.0), vec3(1.0 / ST2084_m2)); + x = max(x - ST2084_c1, 0.0) / (ST2084_c2 - ST2084_c3 * x); + x = pow(x, vec3(1.0 / ST2084_m1)); + return x; +} +#endif + diff --git a/system/shaders/GLES/2.0/gles_videofilter.frag b/system/shaders/GLES/2.0/gles_videofilter.frag new file mode 100644 index 0000000..d4c15ee --- /dev/null +++ b/system/shaders/GLES/2.0/gles_videofilter.frag @@ -0,0 +1,11 @@ +#version 100 + +precision mediump float; + +uniform sampler2D img; +varying vec2 cord; + +void main() +{ + gl_FragColor = texture2D(img, cord); +} \ No newline at end of file diff --git a/system/shaders/GLES/2.0/gles_videofilter.vert b/system/shaders/GLES/2.0/gles_videofilter.vert new file mode 100644 index 0000000..2d5a0f9 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_videofilter.vert @@ -0,0 +1,14 @@ +#version 100 + +attribute vec4 m_attrpos; +attribute vec2 m_attrcord; +varying vec2 cord; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + cord = m_attrcord.xy; +} diff --git a/system/shaders/GLES/2.0/gles_yuv2rgb.vert b/system/shaders/GLES/2.0/gles_yuv2rgb.vert new file mode 100644 index 0000000..bc437af --- /dev/null +++ b/system/shaders/GLES/2.0/gles_yuv2rgb.vert @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +attribute vec4 m_attrpos; +attribute vec2 m_attrcordY; +attribute vec2 m_attrcordU; +attribute vec2 m_attrcordV; +varying vec2 m_cordY; +varying vec2 m_cordU; +varying vec2 m_cordV; +uniform mat4 m_proj; +uniform mat4 m_model; + +void main () +{ + mat4 mvp = m_proj * m_model; + gl_Position = mvp * m_attrpos; + m_cordY = m_attrcordY; + m_cordU = m_attrcordU; + m_cordV = m_attrcordV; +} diff --git a/system/shaders/GLES/2.0/gles_yuv2rgb_basic.frag b/system/shaders/GLES/2.0/gles_yuv2rgb_basic.frag new file mode 100644 index 0000000..d76a3b8 --- /dev/null +++ b/system/shaders/GLES/2.0/gles_yuv2rgb_basic.frag @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision mediump float; + +uniform sampler2D m_sampY; +uniform sampler2D m_sampU; +uniform sampler2D m_sampV; +varying vec2 m_cordY; +varying vec2 m_cordU; +varying vec2 m_cordV; +uniform vec2 m_step; +uniform mat4 m_yuvmat; +uniform mat3 m_primMat; +uniform float m_gammaDstInv; +uniform float m_gammaSrc; +uniform float m_toneP1; +uniform float m_luminance; +uniform vec3 m_coefsDst; +uniform float m_alpha; + +void main() +{ + vec4 rgb; + vec4 yuv; + +#if defined(XBMC_YV12) || defined(XBMC_NV12) + + yuv = vec4(texture2D(m_sampY, m_cordY).r, + texture2D(m_sampU, m_cordU).g, + texture2D(m_sampV, m_cordV).a, + 1.0); + +#elif defined(XBMC_NV12_RRG) + + yuv = vec4(texture2D(m_sampY, m_cordY).r, + texture2D(m_sampU, m_cordU).r, + texture2D(m_sampV, m_cordV).g, + 1.0); + +#endif + + rgb = m_yuvmat * yuv; + rgb.a = m_alpha; + +#if defined(XBMC_COL_CONVERSION) + rgb.rgb = pow(max(vec3(0), rgb.rgb), vec3(m_gammaSrc)); + rgb.rgb = max(vec3(0), m_primMat * rgb.rgb); + rgb.rgb = pow(rgb.rgb, vec3(m_gammaDstInv)); + +#if defined(KODI_TONE_MAPPING_REINHARD) + float luma = dot(rgb.rgb, m_coefsDst); + rgb.rgb *= reinhard(luma) / luma; + +#elif defined(KODI_TONE_MAPPING_ACES) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= (10000.0 / m_luminance) * (2.0 / m_toneP1); + rgb.rgb = aces(rgb.rgb); + rgb.rgb *= (1.24 / m_toneP1); + rgb.rgb = pow(rgb.rgb, vec3(0.27)); + +#elif defined(KODI_TONE_MAPPING_HABLE) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= m_toneP1; + float wp = m_luminance / 100.0; + rgb.rgb = hable(rgb.rgb * wp) / hable(vec3(wp)); + rgb.rgb = pow(rgb.rgb, vec3(1.0 / 2.2)); +#endif + +#endif + + gl_FragColor = rgb; +} + diff --git a/system/shaders/GLES/2.0/gles_yuv2rgb_bob.frag b/system/shaders/GLES/2.0/gles_yuv2rgb_bob.frag new file mode 100644 index 0000000..a82de9d --- /dev/null +++ b/system/shaders/GLES/2.0/gles_yuv2rgb_bob.frag @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2010-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#version 100 + +precision highp float; +uniform sampler2D m_sampY; +uniform sampler2D m_sampU; +uniform sampler2D m_sampV; +varying vec2 m_cordY; +varying vec2 m_cordU; +varying vec2 m_cordV; +uniform float m_alpha; +uniform mat4 m_yuvmat; +uniform float m_stepX; +uniform float m_stepY; +uniform int m_field; +uniform mat3 m_primMat; +uniform float m_gammaDstInv; +uniform float m_gammaSrc; +uniform float m_toneP1; +uniform float m_luminance; +uniform vec3 m_coefsDst; + +void main() +{ + vec4 rgb; + + vec2 offsetY; + vec2 offsetU; + vec2 offsetV; + float temp1 = mod(m_cordY.y, 2.0 * m_stepY); + + offsetY = m_cordY; + offsetU = m_cordU; + offsetV = m_cordV; + + offsetY.y -= (temp1 - m_stepY / 2.0 + float(m_field) * m_stepY); + offsetU.y -= (temp1 - m_stepY / 2.0 + float(m_field) * m_stepY) / 2.0; + offsetV.y -= (temp1 - m_stepY / 2.0 + float(m_field) * m_stepY) / 2.0; + + float bstep = step(m_stepY, temp1); + + // Blend missing line + vec2 belowY, belowU, belowV; + + belowY.x = offsetY.x; + belowY.y = offsetY.y + (2.0 * m_stepY * bstep); + belowU.x = offsetU.x; + belowU.y = offsetU.y + (m_stepY * bstep); + belowV.x = offsetV.x; + belowV.y = offsetV.y + (m_stepY * bstep); + + vec4 rgbAbove; + vec4 rgbBelow; + vec4 yuvAbove; + vec4 yuvBelow; + + yuvAbove = vec4(texture2D(m_sampY, offsetY).r, texture2D(m_sampU, offsetU).g, texture2D(m_sampV, offsetV).a, 1.0); + rgbAbove = m_yuvmat * yuvAbove; + rgbAbove.a = m_alpha; + + yuvBelow = vec4(texture2D(m_sampY, belowY).r, texture2D(m_sampU, belowU).g, texture2D(m_sampV, belowV).a, 1.0); + rgbBelow = m_yuvmat * yuvBelow; + rgbBelow.a = m_alpha; + + rgb = mix(rgb, rgbBelow, 0.5); + +#if defined(XBMC_COL_CONVERSION) + rgb.rgb = pow(max(vec3(0), rgb.rgb), vec3(m_gammaSrc)); + rgb.rgb = max(vec3(0), m_primMat * rgb.rgb); + rgb.rgb = pow(rgb.rgb, vec3(m_gammaDstInv)); + +#if defined(KODI_TONE_MAPPING_REINHARD) + float luma = dot(rgb.rgb, m_coefsDst); + rgb.rgb *= reinhard(luma) / luma; + +#elif defined(KODI_TONE_MAPPING_ACES) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= (10000.0 / m_luminance) * (2.0 / m_toneP1); + rgb.rgb = aces(rgb.rgb); + rgb.rgb *= (1.24 / m_toneP1); + rgb.rgb = pow(rgb.rgb, vec3(0.27)); + +#elif defined(KODI_TONE_MAPPING_HABLE) + rgb.rgb = inversePQ(rgb.rgb); + rgb.rgb *= m_toneP1; + float wp = m_luminance / 100.0; + rgb.rgb = hable(rgb.rgb * wp) / hable(vec3(wp)); + rgb.rgb = pow(rgb.rgb, vec3(1.0 / 2.2)); +#endif + +#endif + + gl_FragColor = rgb; +} diff --git a/system/shaders/convolution-4x4_d3d.fx b/system/shaders/convolution-4x4_d3d.fx new file mode 100644 index 0000000..cf9408b --- /dev/null +++ b/system/shaders/convolution-4x4_d3d.fx @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2005-2015 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "convolution_d3d.fx" +#include "output_d3d.fx" + +SamplerState RGBSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; + Filter = MIN_MAG_MIP_POINT; +}; + +inline half4 weight(float pos) +{ +#ifdef HAS_RGBA + half4 w = g_KernelTexture.Sample(KernelSampler, pos); +#else + half4 w = g_KernelTexture.Sample(KernelSampler, pos).bgra; +#endif + +#ifndef HAS_FLOAT_TEXTURE + w = w * 2.0 - 1.0; +#endif + return w; +} + +inline half3 pixel(float xpos, float ypos) +{ + return g_Texture.Sample(RGBSampler, float2(xpos, ypos)).rgb; +} + +inline half3 getLine(float ypos, float4 xpos, half4 linetaps) +{ + return + pixel(xpos.r, ypos) * linetaps.r + + pixel(xpos.g, ypos) * linetaps.g + + pixel(xpos.b, ypos) * linetaps.b + + pixel(xpos.a, ypos) * linetaps.a; +} + +float4 CONVOLUTION4x4(float2 TextureUV : TEXCOORD0) : SV_TARGET +{ + float2 f = frac(TextureUV / g_StepXY + float2(0.5, 0.5)); + + half4 linetaps = weight(1.0 - f.x); + half4 columntaps = weight(1.0 - f.y); + + // kernel generation code made sure taps add up to 1, no need to adjust here. + + float2 xystart = (-1.0 - f) * g_StepXY + TextureUV; + float4 xpos = xystart.x + g_StepXY.x * float4(0.0, 1.0, 2.0, 3.0); + float4 ypos = xystart.y + g_StepXY.y * float4(0.0, 1.0, 2.0, 3.0); + + float3 rgb = + getLine(ypos.x, xpos, linetaps) * columntaps.r + + getLine(ypos.y, xpos, linetaps) * columntaps.g + + getLine(ypos.z, xpos, linetaps) * columntaps.b + + getLine(ypos.w, xpos, linetaps) * columntaps.a; + + return output(g_colorRange.x + g_colorRange.y * saturate(rgb), TextureUV); +} + +technique11 SCALER_T +{ + pass P0 + { + SetVertexShader( VS_SHADER ); + SetPixelShader( CompileShader( ps_4_0_level_9_3, CONVOLUTION4x4() ) ); + } +}; diff --git a/system/shaders/convolution-6x6_d3d.fx b/system/shaders/convolution-6x6_d3d.fx new file mode 100644 index 0000000..253c225 --- /dev/null +++ b/system/shaders/convolution-6x6_d3d.fx @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2005-2015 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "convolution_d3d.fx" +#include "output_d3d.fx" + +SamplerState RGBSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; + Filter = MIN_MAG_MIP_POINT; +}; + +half3 weight(float pos) +{ +#ifdef HAS_RGBA + half3 w = g_KernelTexture.Sample(KernelSampler, pos).rgb; +#else + half3 w = g_KernelTexture.Sample(KernelSampler, pos).bgr; +#endif + +#ifndef HAS_FLOAT_TEXTURE + w = w * 2.0 - 1.0; +#endif + return w; +} + +inline half3 pixel(float xpos, float ypos) +{ + return g_Texture.Sample(RGBSampler, float2(xpos, ypos)).rgb; +} + +inline half3 getLine(float ypos, float3 xpos1, float3 xpos2, half3 linetaps1, half3 linetaps2) +{ + return + pixel(xpos1.r, ypos) * linetaps1.r + + pixel(xpos1.g, ypos) * linetaps2.r + + pixel(xpos1.b, ypos) * linetaps1.g + + pixel(xpos2.r, ypos) * linetaps2.g + + pixel(xpos2.g, ypos) * linetaps1.b + + pixel(xpos2.b, ypos) * linetaps2.b; +} + +float4 CONVOLUTION6x6(in float2 TextureUV : TEXCOORD0) : SV_TARGET +{ + float2 f = frac(TextureUV / g_StepXY + 0.5); + + half3 linetaps1 = weight((1.0 - f.x) / 2.0); + half3 linetaps2 = weight((1.0 - f.x) / 2.0 + 0.5); + half3 columntaps1 = weight((1.0 - f.y) / 2.0); + half3 columntaps2 = weight((1.0 - f.y) / 2.0 + 0.5); + + // kernel generation code made sure taps add up to 1, no need to adjust here. + + float2 xystart = (-2.0 - f) * g_StepXY + TextureUV; + float3 xpos1 = xystart.x + g_StepXY.x * float3(0.0, 1.0, 2.0); + float3 xpos2 = xystart.x + g_StepXY.x * float3(3.0, 4.0, 5.0); + float3 ypos1 = xystart.y + g_StepXY.y * float3(0.0, 1.0, 2.0); + float3 ypos2 = xystart.y + g_StepXY.y * float3(3.0, 4.0, 5.0); + + float3 rgb = + getLine(ypos1.x, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.r + + getLine(ypos1.y, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.r + + getLine(ypos1.z, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.g + + getLine(ypos2.x, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.g + + getLine(ypos2.y, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.b + + getLine(ypos2.z, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.b; + + return output(g_colorRange.x + g_colorRange.y * saturate(rgb), TextureUV); +} + +technique11 SCALER_T +{ + pass P0 + { + SetVertexShader( VS_SHADER ); + SetPixelShader( CompileShader( ps_4_0_level_9_3, CONVOLUTION6x6() ) ); + } +}; diff --git a/system/shaders/convolution_d3d.fx b/system/shaders/convolution_d3d.fx new file mode 100644 index 0000000..6ff6150 --- /dev/null +++ b/system/shaders/convolution_d3d.fx @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2005-2015 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +texture2D g_Texture; +texture2D g_KernelTexture; +float4 g_StepXY; +float2 g_viewPort; +float2 g_colorRange; + +SamplerState KernelSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; + Filter = MIN_MAG_MIP_LINEAR; +}; + +struct VS_INPUT +{ + float4 Position : POSITION; + float2 TextureUV : TEXCOORD0; +}; + +struct VS_OUTPUT +{ + float2 TextureUV : TEXCOORD0; + float4 Position : SV_POSITION; +}; + +// +// VS for rendering in screen space +// +VS_OUTPUT VS(VS_INPUT In) +{ + VS_OUTPUT output = (VS_OUTPUT)0; + output.Position.x = (In.Position.x / (g_viewPort.x / 2.0)) - 1; + output.Position.y = -(In.Position.y / (g_viewPort.y / 2.0)) + 1; + output.Position.z = output.Position.z; + output.Position.w = 1.0; + output.TextureUV = In.TextureUV; + + return output; +} + +#define VS_SHADER CompileShader( vs_4_0_level_9_1, VS() ) diff --git a/system/shaders/convolutionsep-4x4_d3d.fx b/system/shaders/convolutionsep-4x4_d3d.fx new file mode 100644 index 0000000..af68b3b --- /dev/null +++ b/system/shaders/convolutionsep-4x4_d3d.fx @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2005-2015 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "convolution_d3d.fx" +#include "output_d3d.fx" + +SamplerState RGBSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; + Filter = MIN_MAG_POINT_MIP_LINEAR; +}; + +inline half4 weight(float pos) +{ +#ifdef HAS_RGBA + half4 w = g_KernelTexture.Sample(KernelSampler, pos); +#else + half4 w = g_KernelTexture.Sample(KernelSampler, pos).bgra; +#endif + +#ifndef HAS_FLOAT_TEXTURE + w = w * 2.0 - 1.0; +#endif + return w; +} + +inline half3 pixel(float xpos, float ypos) +{ + return g_Texture.Sample(RGBSampler, float2(xpos, ypos)).rgb; +} + +// Code for first pass - horizontal + +inline half3 getLine(float ypos, float4 xpos, half4 linetaps) +{ + return + pixel(xpos.r, ypos) * linetaps.r + + pixel(xpos.g, ypos) * linetaps.g + + pixel(xpos.b, ypos) * linetaps.b + + pixel(xpos.a, ypos) * linetaps.a; +} + +float4 CONVOLUTION4x4Horiz(in float2 TextureUV : TEXCOORD0) : SV_TARGET +{ + float2 f = frac(TextureUV / g_StepXY.xy + 0.5); + half4 linetaps = weight(1.0 - f.x); + + // kernel generation code made sure taps add up to 1, no need to adjust here. + float xystart = (-1.0 - f.x) * g_StepXY.x + TextureUV.x; + + float4 xpos = xystart + g_StepXY.x * float4(0.0, 1.0, 2.0, 3.0); + return float4(getLine(TextureUV.y, xpos, linetaps), 1.0f); +} + +// Code for second pass - vertical + +inline half3 getRow(float xpos, float4 ypos, half4 columntaps) +{ + return + pixel(xpos, ypos.r) * columntaps.r + + pixel(xpos, ypos.g) * columntaps.g + + pixel(xpos, ypos.b) * columntaps.b + + pixel(xpos, ypos.a) * columntaps.a; +} + +float4 CONVOLUTION4x4Vert(in float2 TextureUV : TEXCOORD0) : SV_TARGET +{ + float2 f = frac(TextureUV / g_StepXY.zw + 0.5); + half4 columntaps = weight(1.0 - f.y); + + // kernel generation code made sure taps add up to 1, no need to adjust here. + float xystart = (-1.0 - f.y) * g_StepXY.w + TextureUV.y; + + float4 ypos = xystart + g_StepXY.w * float4(0.0, 1.0, 2.0, 3.0); + return output(g_colorRange.x + g_colorRange.y * saturate(getRow(TextureUV.x, ypos, columntaps)), TextureUV); +} + +technique11 SCALER_T +{ + pass P0 + { + SetVertexShader( VS_SHADER ); + SetPixelShader( CompileShader( ps_4_0_level_9_3, CONVOLUTION4x4Horiz() ) ); + } + pass P1 + { + SetVertexShader( VS_SHADER ); + SetPixelShader( CompileShader( ps_4_0_level_9_3, CONVOLUTION4x4Vert() ) ); + } + +}; diff --git a/system/shaders/convolutionsep-6x6_d3d.fx b/system/shaders/convolutionsep-6x6_d3d.fx new file mode 100644 index 0000000..9db0d6b --- /dev/null +++ b/system/shaders/convolutionsep-6x6_d3d.fx @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2005-2015 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "convolution_d3d.fx" +#include "output_d3d.fx" + +SamplerState RGBSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; + Filter = MIN_MAG_POINT_MIP_LINEAR; +}; + +inline half3 weight(float pos) +{ +#ifdef HAS_RGBA + half3 w = g_KernelTexture.Sample(KernelSampler, pos).rgb; +#else + half3 w = g_KernelTexture.Sample(KernelSampler, pos).bgr; +#endif + +#ifndef HAS_FLOAT_TEXTURE + w = w * 2.0 - 1.0; +#endif + return w; +} + +inline half3 pixel(float xpos, float ypos) +{ + return g_Texture.Sample(RGBSampler, float2(xpos, ypos)).rgb; +} + +half3 getLine(float ypos, float3 xpos1, float3 xpos2, half3 linetaps1, half3 linetaps2) +{ + return + pixel(xpos1.r, ypos) * linetaps1.r + + pixel(xpos1.g, ypos) * linetaps2.r + + pixel(xpos1.b, ypos) * linetaps1.g + + pixel(xpos2.r, ypos) * linetaps2.g + + pixel(xpos2.g, ypos) * linetaps1.b + + pixel(xpos2.b, ypos) * linetaps2.b; +} + +// Code for first pass - horizontal +float4 CONVOLUTION6x6Horiz(in float2 TextureUV : TEXCOORD0) : SV_TARGET +{ + float2 f = frac(TextureUV / g_StepXY.xy + 0.5); + + half3 linetaps1 = weight((1.0 - f.x) / 2.0); + half3 linetaps2 = weight((1.0 - f.x) / 2.0 + 0.5); + + // kernel generation code made sure taps add up to 1, no need to adjust here. + + float xstart = (-2.0 - f.x) * g_StepXY.x + TextureUV.x; + + float3 xpos1 = xstart + g_StepXY.x * float3(0.0, 1.0, 2.0); + float3 xpos2 = xstart + g_StepXY.x * float3(3.0, 4.0, 5.0); + + return float4(getLine(TextureUV.y, xpos1, xpos2, linetaps1, linetaps2), 1.0); +} + +// Code for second pass - vertical + +half3 getRow(float xpos, float3 ypos1, float3 ypos2, half3 columntaps1, half3 columntaps2) +{ + return + pixel(xpos, ypos1.r) * columntaps1.r + + pixel(xpos, ypos1.g) * columntaps2.r + + pixel(xpos, ypos1.b) * columntaps1.g + + pixel(xpos, ypos2.r) * columntaps2.g + + pixel(xpos, ypos2.g) * columntaps1.b + + pixel(xpos, ypos2.b) * columntaps2.b; +} + +float4 CONVOLUTION6x6Vert(in float2 TextureUV : TEXCOORD0) : SV_TARGET +{ + float2 f = frac(TextureUV / g_StepXY.zw + 0.5); + + half3 columntaps1 = weight((1.0 - f.y) / 2.0); + half3 columntaps2 = weight((1.0 - f.y) / 2.0 + 0.5); + + // kernel generation code made sure taps add up to 1, no need to adjust here. + + float ystart = (-2.0 - f.y) * g_StepXY.w + TextureUV.y; + + float3 ypos1 = ystart + g_StepXY.w * float3(0.0, 1.0, 2.0); + float3 ypos2 = ystart + g_StepXY.w * float3(3.0, 4.0, 5.0); + + return output(g_colorRange.x + g_colorRange.y * saturate(getRow(TextureUV.x, ypos1, ypos2, columntaps1, columntaps2)), TextureUV); +} + +technique11 SCALER_T +{ + pass P0 + { + SetVertexShader( VS_SHADER ); + SetPixelShader( CompileShader( ps_4_0_level_9_3, CONVOLUTION6x6Horiz() ) ); + } + pass P1 + { + SetVertexShader( VS_SHADER ); + SetPixelShader( CompileShader( ps_4_0_level_9_3, CONVOLUTION6x6Vert() ) ); + } +}; diff --git a/system/shaders/guishader_checkerboard_left.hlsl b/system/shaders/guishader_checkerboard_left.hlsl new file mode 100644 index 0000000..7639a8c --- /dev/null +++ b/system/shaders/guishader_checkerboard_left.hlsl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#define STEREO_MODE_SHADER + +Texture2D texView : register(t0); + +cbuffer cbViewPort : register(b1) +{ + float g_viewPortX; + float g_viewPortY; + float g_viewPortWidth; + float g_viewPortHeigh; +}; + +#include "guishader_common.hlsl" + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return StereoCheckerboard(input, STEREO_LEFT_EYE_INDEX); +} + + diff --git a/system/shaders/guishader_checkerboard_right.hlsl b/system/shaders/guishader_checkerboard_right.hlsl new file mode 100644 index 0000000..eb02a21 --- /dev/null +++ b/system/shaders/guishader_checkerboard_right.hlsl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#define STEREO_MODE_SHADER + +Texture2D texView : register(t0); + +cbuffer cbViewPort : register(b1) +{ + float g_viewPortX; + float g_viewPortY; + float g_viewPortWidth; + float g_viewPortHeigh; +}; + +#include "guishader_common.hlsl" + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return StereoCheckerboard(input, STEREO_RIGHT_EYE_INDEX); +} + + diff --git a/system/shaders/guishader_common.hlsl b/system/shaders/guishader_common.hlsl new file mode 100644 index 0000000..0dd01c5 --- /dev/null +++ b/system/shaders/guishader_common.hlsl @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +struct VS_INPUT +{ + float4 pos : POSITION; + float4 color: COLOR0; + float2 tex : TEXCOORD0; + float2 tex2 : TEXCOORD1; +}; + +struct PS_INPUT +{ + float4 pos : SV_POSITION; + float4 color: COLOR0; + float2 tex : TEXCOORD0; + float2 tex2 : TEXCOORD1; +}; + +SamplerState LinearSampler : register(s0) +{ + Filter = MIN_MAG_MIP_LINEAR; + AddressU = CLAMP; + AddressV = CLAMP; + Comparison = NEVER; +}; + +cbuffer cbWorld : register(b0) +{ + float4x4 worldViewProj; + float blackLevel; + float colorRange; + float sdrPeakLum; + int PQ; +}; + +inline float3 transferPQ(float3 x) +{ + static const float ST2084_m1 = 2610.0f / (4096.0f * 4.0f); + static const float ST2084_m2 = (2523.0f / 4096.0f) * 128.0f; + static const float ST2084_c1 = 3424.0f / 4096.0f; + static const float ST2084_c2 = (2413.0f / 4096.0f) * 32.0f; + static const float ST2084_c3 = (2392.0f / 4096.0f) * 32.0f; + static const float3x3 matx = + { + 0.627402, 0.329292, 0.043306, + 0.069095, 0.919544, 0.011360, + 0.016394, 0.088028, 0.895578 + }; + // REC.709 to linear + x = pow(x, 1.0f / 0.45f); + // REC.709 to BT.2020 + x = mul(matx, x); + // linear to PQ + x = pow(x / sdrPeakLum, ST2084_m1); + x = (ST2084_c1 + ST2084_c2 * x) / (1.0f + ST2084_c3 * x); + x = pow(x, ST2084_m2); + return x; +} + +inline float4 tonemapHDR(float4 color) +{ + return (PQ) ? float4(transferPQ(color.rgb), color.a) : color; +} + +inline float4 adjustColorRange(float4 color) +{ + return float4(blackLevel + colorRange * color.rgb, color.a); +} + +#define STEREO_LEFT_EYE_INDEX 0 +#define STEREO_RIGHT_EYE_INDEX 1 + +#ifdef STEREO_MODE_SHADER + +inline float4 StereoInterlaced(PS_INPUT input, int eye) +{ + uint pixelY = abs(trunc(input.tex.y * g_viewPortHeigh)); + uint odd = pixelY % 2; + + if ((odd == 0 && !eye) || (odd != 0 && eye)) + return float4(texView.Sample(LinearSampler, input.tex).rgb, 1.0); + else + return float4(0.0, 0.0, 0.0, 0.0); +} + +inline float4 StereoCheckerboard(PS_INPUT input, int eye) +{ + uint pixelX = abs(trunc(input.tex.x * g_viewPortWidth)); + uint pixelY = abs(trunc(input.tex.y * g_viewPortHeigh)); + uint odd = (pixelX + pixelY) % 2; + + if ((odd == 0 && !eye) || (odd != 0 && eye)) + return float4(texView.Sample(LinearSampler, input.tex).rgb, 1.0); + else + return float4(0.0, 0.0, 0.0, 0.0); +} + +#endif \ No newline at end of file diff --git a/system/shaders/guishader_default.hlsl b/system/shaders/guishader_default.hlsl new file mode 100644 index 0000000..82b6510 --- /dev/null +++ b/system/shaders/guishader_default.hlsl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "guishader_common.hlsl" + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return tonemapHDR(adjustColorRange(input.color)); +} + + diff --git a/system/shaders/guishader_fonts.hlsl b/system/shaders/guishader_fonts.hlsl new file mode 100644 index 0000000..59c2ffe --- /dev/null +++ b/system/shaders/guishader_fonts.hlsl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "guishader_common.hlsl" + +Texture2D texFont : register(t0); + +float4 PS(PS_INPUT input) : SV_TARGET +{ + input.color.a *= texFont.Sample(LinearSampler, input.tex).r; + return tonemapHDR(adjustColorRange(input.color)); +} + + diff --git a/system/shaders/guishader_interlaced_left.hlsl b/system/shaders/guishader_interlaced_left.hlsl new file mode 100644 index 0000000..41a7b92 --- /dev/null +++ b/system/shaders/guishader_interlaced_left.hlsl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#define STEREO_MODE_SHADER + +Texture2D texView : register(t0); + +cbuffer cbViewPort : register(b1) +{ + float g_viewPortX; + float g_viewPortY; + float g_viewPortWidth; + float g_viewPortHeigh; +}; + +#include "guishader_common.hlsl" + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return StereoInterlaced(input, STEREO_LEFT_EYE_INDEX); +} + + diff --git a/system/shaders/guishader_interlaced_right.hlsl b/system/shaders/guishader_interlaced_right.hlsl new file mode 100644 index 0000000..394d5b9 --- /dev/null +++ b/system/shaders/guishader_interlaced_right.hlsl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#define STEREO_MODE_SHADER + +Texture2D texView : register(t0); + +cbuffer cbViewPort : register(b1) +{ + float g_viewPortX; + float g_viewPortY; + float g_viewPortWidth; + float g_viewPortHeigh; +}; + +#include "guishader_common.hlsl" + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return StereoInterlaced(input, STEREO_RIGHT_EYE_INDEX); +} + + diff --git a/system/shaders/guishader_multi_texture_blend.hlsl b/system/shaders/guishader_multi_texture_blend.hlsl new file mode 100644 index 0000000..77c2e79 --- /dev/null +++ b/system/shaders/guishader_multi_texture_blend.hlsl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "guishader_common.hlsl" + +Texture2D txDiffuse[2] : register(t0); + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return tonemapHDR(adjustColorRange(input.color * txDiffuse[0].Sample(LinearSampler, input.tex) * + txDiffuse[1].Sample(LinearSampler, input.tex2))); +} + + diff --git a/system/shaders/guishader_texture.hlsl b/system/shaders/guishader_texture.hlsl new file mode 100644 index 0000000..665aff0 --- /dev/null +++ b/system/shaders/guishader_texture.hlsl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "guishader_common.hlsl" + +Texture2D texMain : register(t0); + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return tonemapHDR(adjustColorRange(input.color * texMain.Sample(LinearSampler, input.tex))); +} + + diff --git a/system/shaders/guishader_texture_noblend.hlsl b/system/shaders/guishader_texture_noblend.hlsl new file mode 100644 index 0000000..1daaa20 --- /dev/null +++ b/system/shaders/guishader_texture_noblend.hlsl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "guishader_common.hlsl" + +Texture2D texMain : register(t0); + +float4 PS(PS_INPUT input) : SV_TARGET +{ + return texMain.Sample(LinearSampler, input.tex); +} + + diff --git a/system/shaders/guishader_vert.hlsl b/system/shaders/guishader_vert.hlsl new file mode 100644 index 0000000..508cbb7 --- /dev/null +++ b/system/shaders/guishader_vert.hlsl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2005-2015 Team Kodi + * http://kodi.tv + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "guishader_common.hlsl" + +PS_INPUT VS(VS_INPUT input) +{ + PS_INPUT output = (PS_INPUT)0; + output.pos = mul(input.pos, worldViewProj); + output.color = input.color; + output.tex = input.tex; + output.tex2 = input.tex2; + + return output; +} diff --git a/system/shaders/output_d3d.fx b/system/shaders/output_d3d.fx new file mode 100644 index 0000000..eebc200 --- /dev/null +++ b/system/shaders/output_d3d.fx @@ -0,0 +1,197 @@ +/* + * Copyright (C) 2005-2015 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#if defined(KODI_3DLUT) +float2 m_LUTParams; // x- scale, y- offset +texture3D m_LUT; + +SamplerState LutSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; + AddressW = CLAMP; + Filter = MIN_MAG_MIP_LINEAR; +}; +#endif +#if defined(KODI_DITHER) +float3 m_ditherParams; +texture2D m_ditherMatrix; + +SamplerState DitherSampler : IMMUTABLE +{ + AddressU = WRAP; + AddressV = WRAP; + Filter = MIN_MAG_MIP_POINT; +}; +#endif +#if (defined(KODI_TONE_MAPPING_ACES) || defined(KODI_TONE_MAPPING_HABLE) || defined(KODI_HLG_TO_PQ)) +static const float ST2084_m1 = 2610.0f / (4096.0f * 4.0f); +static const float ST2084_m2 = (2523.0f / 4096.0f) * 128.0f; +static const float ST2084_c1 = 3424.0f / 4096.0f; +static const float ST2084_c2 = (2413.0f / 4096.0f) * 32.0f; +static const float ST2084_c3 = (2392.0f / 4096.0f) * 32.0f; +#endif +#if defined(KODI_TONE_MAPPING_REINHARD) +float g_toneP1; +float3 g_coefsDst; + +float reinhard(float x) +{ + return x * (1.0f + x / (g_toneP1 * g_toneP1)) / (1.0f + x); +} +#endif +#if defined(KODI_TONE_MAPPING_ACES) +float g_luminance; +float g_toneP1; + +float3 aces(float3 x) +{ + const float A = 2.51f; + const float B = 0.03f; + const float C = 2.43f; + const float D = 0.59f; + const float E = 0.14f; + return (x * (A * x + B)) / (x * (C * x + D) + E); +} +#endif +#if defined(KODI_TONE_MAPPING_HABLE) +float g_toneP1; +float g_toneP2; + +float3 hable(float3 x) +{ + const float A = 0.15f; + const float B = 0.5f; + const float C = 0.1f; + const float D = 0.2f; + const float E = 0.02f; + const float F = 0.3f; + return ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F; +} +#endif +#if (defined(KODI_TONE_MAPPING_ACES) || defined(KODI_TONE_MAPPING_HABLE)) +float3 inversePQ(float3 x) +{ + x = pow(max(x, 0.0f), 1.0f / ST2084_m2); + x = max(x - ST2084_c1, 0.0f) / (ST2084_c2 - ST2084_c3 * x); + x = pow(x, 1.0f / ST2084_m1); + return x; +} +#endif +#if defined(KODI_HLG_TO_PQ) +float3 inverseHLG(float3 x) +{ + const float B67_a = 0.17883277f; + const float B67_b = 0.28466892f; + const float B67_c = 0.55991073f; + const float B67_inv_r2 = 4.0f; + x = (x <= 0.5f) ? x * x * B67_inv_r2 : exp((x - B67_c) / B67_a) + B67_b; + return x; +} + +float3 tranferPQ(float3 x) +{ + x = pow(x / 1000.0f, ST2084_m1); + x = (ST2084_c1 + ST2084_c2 * x) / (1.0f + ST2084_c3 * x); + x = pow(x, ST2084_m2); + return x; +} +#endif + + +float4 output4(float4 color, float2 uv) +{ +#if defined(KODI_TONE_MAPPING_REINHARD) + float luma = dot(color.rgb, g_coefsDst); + color.rgb *= reinhard(luma) / luma; +#endif +#if defined(KODI_TONE_MAPPING_ACES) + color.rgb = inversePQ(color.rgb); + color.rgb *= (10000.0f / g_luminance) * (2.0f / g_toneP1); + color.rgb = aces(color.rgb); + color.rgb *= (1.24f / g_toneP1); + color.rgb = pow(color.rgb, 0.27f); +#endif +#if defined(KODI_TONE_MAPPING_HABLE) + color.rgb = inversePQ(color.rgb); + color.rgb *= g_toneP1; + color.rgb = hable(color.rgb * g_toneP2) / hable(g_toneP2); + color.rgb = pow(color.rgb, 1.0f / 2.2f); +#endif +#if defined(KODI_HLG_TO_PQ) + color.rgb = inverseHLG(color.rgb); + float3 ootf_2020 = float3(0.2627f, 0.6780f, 0.0593f); + float ootf_ys = 2000.0f * dot(ootf_2020, color.rgb); + color.rgb *= pow(ootf_ys, 0.2f); + color.rgb = tranferPQ(color.rgb); +#endif +#if defined(KODI_3DLUT) + half3 scale = m_LUTParams.x; + half3 offset = m_LUTParams.y; + float3 lutRGB = m_LUT.Sample(LutSampler, color.rgb*scale + offset).rgb; + color.rgb = scale.x ? lutRGB : color.rgb; +#endif +#if defined(KODI_DITHER) + half2 ditherpos = uv * m_ditherParams.xy; + // scale ditherval to [0,1) + float ditherval = m_ditherMatrix.Sample(DitherSampler, ditherpos).r * 16.0f; + color.rgb = floor(color.rgb * m_ditherParams.z + ditherval) / m_ditherParams.z; +#endif + return color; +} + +float4 output(float3 color, float2 uv) +{ + return output4(float4(color, 1.0), uv); +} + +#if defined(KODI_OUTPUT_T) +#include "convolution_d3d.fx" + +#if (defined(KODI_TONE_MAPPING_ACES) || defined(KODI_TONE_MAPPING_HABLE) || defined(KODI_HLG_TO_PQ)) +#define PS_PROFILE ps_4_0_level_9_3 +#else +#define PS_PROFILE ps_4_0_level_9_1 +#endif + +float3 m_params; // 0 - range (0 - full, 1 - limited), 1 - contrast, 2 - brightness + +float4 OUTPUT_PS(VS_OUTPUT In) : SV_TARGET +{ + float4 color = g_Texture.Sample(KernelSampler, In.TextureUV); + [flatten] if (m_params.x) + color = saturate(0.0625 + color * 219.0 / 255.0); + + color *= m_params.y * 2.0; + color += m_params.z - 0.5; + color.a = 1.0; + + return output4(color, In.TextureUV); +} + +technique11 OUTPUT_T +{ + pass P0 + { + SetVertexShader( VS_SHADER ); + SetPixelShader( CompileShader( PS_PROFILE, OUTPUT_PS() ) ); + } +}; +#endif \ No newline at end of file diff --git a/system/shaders/rp_output_d3d.fx b/system/shaders/rp_output_d3d.fx new file mode 100644 index 0000000..69ca56d --- /dev/null +++ b/system/shaders/rp_output_d3d.fx @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2017 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +texture2D g_Texture; +float2 g_viewPort; +float m_params[1]; // 0 - range (0 - full, 1 - limited) + +SamplerState TextureSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; +#ifdef SAMP_NEAREST + Filter = MIN_MAG_MIP_POINT; +#else + Filter = MIN_MAG_MIP_LINEAR; +#endif +}; + +struct VS_INPUT +{ + float4 Position : POSITION; + float2 TextureUV : TEXCOORD0; +}; + +struct VS_OUTPUT +{ + float2 TextureUV : TEXCOORD0; + float4 Position : SV_POSITION; +}; + +// +// VS for rendering in screen space +// +VS_OUTPUT OUTPUT_VS(VS_INPUT In) +{ + VS_OUTPUT output = (VS_OUTPUT)0; + output.Position.x = (In.Position.x / (g_viewPort.x / 2.0)) - 1; + output.Position.y = -(In.Position.y / (g_viewPort.y / 2.0)) + 1; + output.Position.z = output.Position.z; + output.Position.w = 1.0; + output.TextureUV = In.TextureUV; + + return output; +} + +float4 OUTPUT_PS(VS_OUTPUT In) : SV_TARGET +{ + float4 color = g_Texture.Sample(TextureSampler, In.TextureUV); + [flatten] if (m_params[0]) + color = saturate(0.0625 + color * 219.0 / 255.0); + + color.a = 1.0; + + return color; +} + +technique11 OUTPUT_T +{ + pass P0 + { + SetVertexShader( CompileShader( vs_4_0_level_9_1, OUTPUT_VS()) ); + SetPixelShader( CompileShader( ps_4_0_level_9_1, OUTPUT_PS() ) ); + } +}; diff --git a/system/shaders/yuv2rgb_d3d.fx b/system/shaders/yuv2rgb_d3d.fx new file mode 100644 index 0000000..0500526 --- /dev/null +++ b/system/shaders/yuv2rgb_d3d.fx @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2005-2013 Team XBMC + * http://xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#include "output_d3d.fx" + +texture2D g_Texture[3]; +float4x4 g_ColorMatrix; +float2 g_StepXY; +float2 g_viewPort; +float4x4 g_primMat; +float g_gammaDstInv; +float g_gammaSrc; + +SamplerState YUVSampler : IMMUTABLE +{ + AddressU = CLAMP; + AddressV = CLAMP; + Filter = MIN_MAG_MIP_POINT; +}; + +struct VS_INPUT +{ + float4 Position : POSITION; + float2 TextureY : TEXCOORD0; + float2 TextureUV : TEXCOORD1; +}; + +struct VS_OUTPUT +{ + float2 TextureY : TEXCOORD0; + float2 TextureUV : TEXCOORD1; + float4 Position : SV_POSITION; +}; + +VS_OUTPUT VS(VS_INPUT In) +{ + VS_OUTPUT output = (VS_OUTPUT)0; + output.Position.x = (In.Position.x / (g_viewPort.x / 2.0)) - 1; + output.Position.y = -(In.Position.y / (g_viewPort.y / 2.0)) + 1; + output.Position.z = output.Position.z; + output.Position.w = 1.0; + output.TextureY = In.TextureY; + output.TextureUV = In.TextureUV; + + return output; +} + +#ifdef NV12_SNORM_UV +inline float unormU(float c) +{ + c *= 0.5; + if (c < 0.0) c += 1.0; + return saturate(c); +} +inline float2 unormUV(float2 rg) +{ + return float2(unormU(rg.x), unormU(rg.y)); +} +#endif + +float4 YUV2RGB(VS_OUTPUT In) : SV_TARGET +{ +#if defined(XBMC_YV12) //|| defined(XBMC_NV12) + float4 YUV = float4(g_Texture[0].Sample(YUVSampler, In.TextureY ).r + , g_Texture[1].Sample(YUVSampler, In.TextureUV).r + , g_Texture[2].Sample(YUVSampler, In.TextureUV).r + , 1.0); +#elif defined(XBMC_NV12) + float4 YUV = float4(g_Texture[0].Sample(YUVSampler, In.TextureY).r + #if defined(NV12_SNORM_UV) + , unormUV(g_Texture[1].Sample(YUVSampler, In.TextureUV).rg) + #else + , g_Texture[1].Sample(YUVSampler, In.TextureUV).rg + #endif + , 1.0); +#elif defined(XBMC_YUY2) || defined(XBMC_UYVY) + // The HLSL compiler is smart enough to optimize away these redundant assignments. + // That way the code is almost identical to the OGL shader. + float2 stepxy = g_StepXY; + float2 pos = In.TextureY; + pos = float2(pos.x - (stepxy.x * 0.25), pos.y); + float2 f = frac(pos / stepxy); + + //y axis will be correctly interpolated by opengl + //x axis will not, so we grab two pixels at the center of two columns and interpolate ourselves + float4 c1 = g_Texture[0].Sample(YUVSampler, float2(pos.x + ((0.5 - f.x) * stepxy.x), pos.y)); + float4 c2 = g_Texture[0].Sample(YUVSampler, float2(pos.x + ((1.5 - f.x) * stepxy.x), pos.y)); + + /* each pixel has two Y subpixels and one UV subpixel + YUV Y YUV + check if we're left or right of the middle Y subpixel and interpolate accordingly*/ + #if defined(XBMC_YUY2) // BGRA = YUYV + float leftY = lerp(c1.b, c1.r, f.x * 2.0); + float rightY = lerp(c1.r, c2.b, f.x * 2.0 - 1.0); + float2 outUV = lerp(c1.ga, c2.ga, f.x); + #elif defined(XBMC_UYVY) // BGRA = UYVY + float leftY = lerp(c1.g, c1.a, f.x * 2.0); + float rightY = lerp(c1.a, c2.g, f.x * 2.0 - 1.0); + float2 outUV = lerp(c1.br, c2.br, f.x); + #endif + float outY = lerp(leftY, rightY, step(0.5, f.x)); + float4 YUV = float4(outY, outUV, 1.0); +#endif + + float4 rgb = mul(YUV, g_ColorMatrix); +#if defined(XBMC_COL_CONVERSION) + rgb.rgb = pow(max(0.0, rgb.rgb), g_gammaSrc); + rgb.rgb = max(0.0, mul(rgb, g_primMat).rgb); + rgb.rgb = pow(rgb.rgb, g_gammaDstInv); +#endif + return output4(rgb, In.TextureY); +} + +technique11 YUV2RGB_T +{ + pass P0 + { + SetVertexShader( CompileShader( vs_4_0_level_9_1, VS() ) ); + SetPixelShader( CompileShader( ps_4_0_level_9_1, YUV2RGB() ) ); + } +}; -- cgit v1.2.3