How can I help?
#16
Hmm. Something's not right. I copied my new joystick.xml file into Kodi/system/keymaps, and now my XBox 360 controller isn't controlling anything at all. It responds to requests for button presses in the configuration utility, so Kodi is seeing the controller, but no response at all to button presses in any interface, so I'm guessing there is a mistake in the XML somewhere that's preventing it from being parsed, but I can't see it.

Switching back to the old joystick.xml and the controller works just fine.
Reply
#17
Alright, found it. I missed a tag, it was still formatted like the old map. Here's one that actually seems to work...

Code:
<?xml version="1.0" encoding="UTF-8"?>
<keymap>
  <global>
    <joystick>
      <a>Select</a>
      <b>Back</b>
      <x>ContextMenu</x>
      <y>FullScreen</y>
      <start>ActivateWindow(PlayerControls)</start>
      <back>Back</back>
      <guide>ActivateWindow(Home)</guide>
      <up>Up</up>
      <down>Down</down>
      <right>Right</right>
      <left>Left</left>
      <leftthumb>Screenshot</leftthumbbutton>
      <rightthumb>ActivateWindow(ShutdownMenu)</rightthumbbutton>
      <lefttrigger>ScrollUp</lefttrigger>
      <righttrigger>ScrollDown</righttrigger>
      <leftbumper>ScrollUp</leftbumper>
      <rightbumper>ScrollDown</rightbumper>
      <leftstickleft>Left</leftstickleft>
      <leftstickright>Right</leftstickright>
      <leftstickup>Up</leftstickup>
      <leftstickdown>Down</leftstickdown>
      <rightstickleft>VolumeDown</rightstickleft>
      <rightstickright>VolumeUp</rightstickright>
      <rightstickup>VolumeUp</rightstickup>
      <rightstickdown>VolumeDown</rightstickdown>
    </joystick>
  </global>
  <Home>
    <joystick>
      <start>Skin.ToggleSetting(HomeViewToggle)</start>
    </joystick>
  </Home>
  <MyFiles>
    <joystick>
      <rightbumper>Highlight</rightbumper>
    </joystick>
  </MyFiles>
  <MyMusicPlaylist>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </MyMusicPlaylist>
  <MyMusicFiles>
  </MyMusicFiles>
  <MyMusicLibrary>
  </MyMusicLibrary>
  <FullscreenGame>
    <joystick>
      <a>noop</a>
      <b>noop</b>
      <x>noop</x>
      <y>noop</y>
      <start>noop</start>
      <back>noop</back>
      <!--<guide>noop</guide>-->
      <up>noop</up>
      <down>noop</down>
      <right>noop</right>
      <left>noop</left>
      <leftthumb>noop</leftthumbbutton>
      <rightthumb>noop</rightthumbbutton>
      <lefttrigger>noop</lefttrigger>
      <righttrigger>noop</righttrigger>
      <leftbumper>noop</leftbumper>
      <rightbumper>noop</rightbumper>
      <leftstickleft>noop</leftstickleft>
      <leftstickright>noop</leftstickright>
      <leftstickup>noop</leftstickup>
      <leftstickdown>noop</leftstickdown>
      <rightstickleft>noop</rightstickleft>
      <rightstickright>noop</rightstickright>
      <rightstickup>noop</rightstickup>
      <rightstickdown>noop</rightstickdown>
    </joystick>
  </FullscreenGame>
  <FullscreenVideo>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <x>OSD</x>
      <y>FullScreen</y>
      <start>Info</start>
      <back>Seek(-7)</back>
      <guide>ActivateWindow(Home)</guide>
      <up>ChapterOrBigStepForward</up>
      <down>ChapterOrBigStepBack</down>
      <right>StepForward</right>
      <left>StepBack</left>
      <leftthumb>ShowSubtitles</leftthumbbutton>
      <rightthumb>AspectRatio</rightthumbbutton>
      <lefttrigger>AnalogRewind</lefttrigger>
      <righttrigger>AnalogFastForward</righttrigger>
      <leftbumper>AnalogRewind</leftbumper>
      <rightbumper>AnalogFastForward</rightbumper>
      <leftstickleft>AnalogSeekBack</leftstickleft>
      <leftstickright>AnalogSeekForward</leftstickright>
      <leftstickup>AnalogSeekForward</leftstickup>
      <leftstickdown>AnalogSeekBack</leftstickdown>
      <rightstickleft>VolumeDown</rightstickleft>
      <rightstickright>VolumeUp</rightstickright>
      <rightstickup>VolumeUp</rightstickup>
      <rightstickdown>VolumeDown</rightstickdown>
    </joystick>
  </FullscreenVideo>
  <FullscreenLiveTV>
    <joystick>
      <up>ChannelUp</up>
      <down>ChannelDown</down>
      <left>StepBack</left>
      <right>StepForward</right>
    </joystick>
  </FullscreenLiveTV>
  <FullscreenRadio>
    <joystick>
      <up>ChannelUp</up>
      <down>ChannelDown</down>
      <left>StepBack</left>
      <right>StepForward</right>
    </joystick>
  </FullscreenRadio>
  <FullscreenInfo>
    <joystick>
      <b>Close</b>
      <x>OSD</x>
      <start>Close</start>
      <lefttrigger>AnalogRewind</lefttrigger>
      <righttrigger>AnalogFastForward</righttrigger>
      <leftbumper>AnalogRewind</leftbumper>
      <rightbumper>AnalogFastForward</rightbumper>
    </joystick>
  </FullscreenInfo>
  <PlayerControls>
    <joystick>
      <x>Close</x>
      <leftthumb>Close</leftthumb>
      <rightthumb>Close</rightthumb>
    </joystick>
  </PlayerControls>
  <Visualisation>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <x>ActivateWindow(VisualisationSettings)</x>
      <y>ActivateWindow(VisualisationPresetList)</y>
      <start>Info</start>
      <rightthumb>ActivateWindow(MusicOSD)</rightthumb>
      <up>SkipNext</up>
      <down>SkipPrevious</down>
      <left>StepBack</left>
      <right>StepForward</right>
      <lefttrigger>AnalogRewind</lefttrigger>
      <righttrigger>AnalogFastForward</righttrigger>
      <leftbumper>AnalogRewind</leftbumper>
      <rightbumper>AnalogFastForward</rightbumper>
      <leftstickleft>PreviousPreset</leftstickleft>
      <leftstickright>NextPreset</leftstickright>
    </joystick>
  </Visualisation>
  <MusicOSD>
    <joystick>
      <b>Close</b>
      <start>Info</start>
    </joystick>
  </MusicOSD>
  <VisualisationSettings>
    <joystick>
      <b>Close</b>
    </joystick>
  </VisualisationSettings>
  <VisualisationPresetList>
    <joystick>
      <b>Close</b>
    </joystick>
  </VisualisationPresetList>
  <SlideShow>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <y>ZoomNormal</y>
      <leftbumper>Rotate</leftbumper>
      <rightbumper>CodecInfo</rightbumper>
      <up>ZoomIn</up>
      <down>ZoomOut</down>
      <left>PreviousPicture</left>
      <right>NextPicture</right>
      <leftstickleft>AnalogMoveX</leftstickleft>
      <leftstickright>AnalogMoveX</leftstickright>
      <leftstickup>AnalogMoveY</leftstickup>
      <leftstickdown>AnalogMoveY</leftstickdown>
      <lefttrigger>ZoomOut</lefttrigger>
      <righttrigger>ZoomIn</righttrigger>
    </joystick>
  </SlideShow>
  <ScreenCalibration>
    <joystick>
      <x>ResetCalibration</x>
      <leftbumper>NextResolution</leftbumper>
      <rightbumper>NextCalibration</rightbumper>
    </joystick>
  </ScreenCalibration>
  <GUICalibration>
    <joystick>
      <x>ResetCalibration</x>
      <leftbumper>NextResolution</leftbumper>
      <rightbumper>NextCalibration</rightbumper>
    </joystick>
  </GUICalibration>
  <VideoOSD>
    <joystick>
      <b>Close</b>
    </joystick>
  </VideoOSD>
  <VideoMenu>
    <joystick>
      <b>Stop</b>
      <x>OSD</x>
      <leftbumper>AspectRatio</leftbumper>
      <start>Info</start>
    </joystick>
  </VideoMenu>
  <OSDVideoSettings>
    <joystick>
      <leftbumper>AspectRatio</leftbumper>
      <x>Close</x>
    </joystick>
  </OSDVideoSettings>
  <OSDAudioSettings>
    <joystick>
      <leftbumper>AspectRatio</leftbumper>
      <x>Close</x>
    </joystick>
  </OSDAudioSettings>
  <VideoBookmarks>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </VideoBookmarks>
  <MyVideoLibrary>
  </MyVideoLibrary>
  <MyVideoFiles>
  </MyVideoFiles>
  <MyVideoPlaylist>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </MyVideoPlaylist>
  <VirtualKeyboard>
    <joystick>
      <b>BackSpace</b>
      <y>Symbols</y>
      <leftbumper>Shift</leftbumper>
      <leftthumb>Enter</leftthumb>
      <lefttrigger>CursorLeft</lefttrigger>
      <righttrigger>CursorRight</righttrigger>
    </joystick>
  </VirtualKeyboard>
  <ContextMenu>
    <joystick>
      <b>Close</b>
    </joystick>
  </ContextMenu>
  <Scripts>
    <joystick>
      <x>ContextMenu</x>
    </joystick>
  </Scripts>
  <Settings>
    <joystick>
      <b>PreviousMenu</b>
    </joystick>
  </Settings>
  <AddonInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </AddonInformation>
  <AddonSettings>
    <joystick>
      <b>Close</b>
    </joystick>
  </AddonSettings>
  <TextViewer>
    <joystick>
      <b>Close</b>
    </joystick>
  </TextViewer>
  <shutdownmenu>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>PreviousMenu</leftthumb>
    </joystick>
  </shutdownmenu>
  <submenu>
    <joystick>
      <b>PreviousMenu</b>
    </joystick>
  </submenu>
  <MusicInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </MusicInformation>
  <MovieInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </MovieInformation>
  <NumericInput>
    <joystick>
      <b>BackSpace</b>
      <leftthumb>Enter</leftthumb>
    </joystick>
  </NumericInput>
  <GamepadInput>
    <joystick>
      <leftthumb>Stop</leftthumb>
    </joystick>
  </GamepadInput>
  <LockSettings>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>Close</leftthumb>
    </joystick>
  </LockSettings>
  <ProfileSettings>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>Close</leftthumb>
    </joystick>
  </ProfileSettings>
</keymap>

Although FullscreenVideo controls aren't kicking in, it's just using the Global map instead. In fact it seems the only maps being recognised are Global and FullscreenGame, those interface controls work a treat, but none of the other interfaces have picked up the custom mapping.
Reply
#18
Fresh eyes this morning, and I found the problems. A couple of misnamed closing tags. This one seems to be working just fine.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<keymap>
  <global>
    <joystick>
      <a>Select</a>
      <b>Back</b>
      <x>ContextMenu</x>
      <y>FullScreen</y>
      <start>ActivateWindow(PlayerControls)</start>
      <back>Back</back>
      <guide>ActivateWindow(Home)</guide>
      <up>Up</up>
      <down>Down</down>
      <right>Right</right>
      <left>Left</left>
      <leftthumb>Screenshot</leftthumb>
      <rightthumb>ActivateWindow(ShutdownMenu)</rightthumb>
      <lefttrigger>ScrollUp</lefttrigger>
      <righttrigger>ScrollDown</righttrigger>
      <leftbumper>ScrollUp</leftbumper>
      <rightbumper>ScrollDown</rightbumper>
      <leftstickleft>Left</leftstickleft>
      <leftstickright>Right</leftstickright>
      <leftstickup>Up</leftstickup>
      <leftstickdown>Down</leftstickdown>
      <rightstickleft>VolumeDown</rightstickleft>
      <rightstickright>VolumeUp</rightstickright>
      <rightstickup>VolumeUp</rightstickup>
      <rightstickdown>VolumeDown</rightstickdown>
    </joystick>
  </global>
  <Home>
    <joystick>
      <start>Skin.ToggleSetting(HomeViewToggle)</start>
    </joystick>
  </Home>
  <MyFiles>
    <joystick>
      <rightbumper>Highlight</rightbumper>
    </joystick>
  </MyFiles>
  <MyMusicPlaylist>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </MyMusicPlaylist>
  <MyMusicFiles>
  </MyMusicFiles>
  <MyMusicLibrary>
  </MyMusicLibrary>
  <FullscreenGame>
    <joystick>
      <a>noop</a>
      <b>noop</b>
      <x>noop</x>
      <y>noop</y>
      <start>noop</start>
      <back>noop</back>
      <!--<guide>noop</guide>-->
      <up>noop</up>
      <down>noop</down>
      <right>noop</right>
      <left>noop</left>
      <leftthumb>noop</leftthumb>
      <rightthumb>noop</rightthumb>
      <lefttrigger>noop</lefttrigger>
      <righttrigger>noop</righttrigger>
      <leftbumper>noop</leftbumper>
      <rightbumper>noop</rightbumper>
      <leftstickleft>noop</leftstickleft>
      <leftstickright>noop</leftstickright>
      <leftstickup>noop</leftstickup>
      <leftstickdown>noop</leftstickdown>
      <rightstickleft>noop</rightstickleft>
      <rightstickright>noop</rightstickright>
      <rightstickup>noop</rightstickup>
      <rightstickdown>noop</rightstickdown>
    </joystick>
  </FullscreenGame>
  <FullscreenVideo>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <x>OSD</x>
      <y>FullScreen</y>
      <start>Info</start>
      <back>Seek(-7)</back>
      <guide>ActivateWindow(Home)</guide>
      <up>ChapterOrBigStepForward</up>
      <down>ChapterOrBigStepBack</down>
      <right>StepForward</right>
      <left>StepBack</left>
      <leftthumb>ShowSubtitles</leftthumb>
      <rightthumb>AspectRatio</rightthumb>
      <lefttrigger>AnalogRewind</lefttrigger>
      <righttrigger>AnalogFastForward</righttrigger>
      <leftbumper>AnalogRewind</leftbumper>
      <rightbumper>AnalogFastForward</rightbumper>
      <leftstickleft>AnalogSeekBack</leftstickleft>
      <leftstickright>AnalogSeekForward</leftstickright>
      <leftstickup>AnalogSeekForward</leftstickup>
      <leftstickdown>AnalogSeekBack</leftstickdown>
      <rightstickleft>VolumeDown</rightstickleft>
      <rightstickright>VolumeUp</rightstickright>
      <rightstickup>VolumeUp</rightstickup>
      <rightstickdown>VolumeDown</rightstickdown>
    </joystick>
  </FullscreenVideo>
  <FullscreenLiveTV>
    <joystick>
      <up>ChannelUp</up>
      <down>ChannelDown</down>
      <left>StepBack</left>
      <right>StepForward</right>
    </joystick>
  </FullscreenLiveTV>
  <FullscreenRadio>
    <joystick>
      <up>ChannelUp</up>
      <down>ChannelDown</down>
      <left>StepBack</left>
      <right>StepForward</right>
    </joystick>
  </FullscreenRadio>
  <FullscreenInfo>
    <joystick>
      <b>Close</b>
      <x>OSD</x>
      <start>Close</start>
      <lefttrigger>AnalogRewind</lefttrigger>
      <righttrigger>AnalogFastForward</righttrigger>
      <leftbumper>AnalogRewind</leftbumper>
      <rightbumper>AnalogFastForward</rightbumper>
    </joystick>
  </FullscreenInfo>
  <PlayerControls>
    <joystick>
      <x>Close</x>
      <leftthumb>Close</leftthumb>
      <rightthumb>Close</rightthumb>
    </joystick>
  </PlayerControls>
  <Visualisation>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <x>ActivateWindow(VisualisationSettings)</x>
      <y>ActivateWindow(VisualisationPresetList)</y>
      <start>Info</start>
      <rightthumb>ActivateWindow(MusicOSD)</rightthumb>
      <up>SkipNext</up>
      <down>SkipPrevious</down>
      <left>StepBack</left>
      <right>StepForward</right>
      <lefttrigger>AnalogRewind</lefttrigger>
      <righttrigger>AnalogFastForward</righttrigger>
      <leftbumper>AnalogRewind</leftbumper>
      <rightbumper>AnalogFastForward</rightbumper>
      <leftstickleft>PreviousPreset</leftstickleft>
      <leftstickright>NextPreset</leftstickright>
    </joystick>
  </Visualisation>
  <MusicOSD>
    <joystick>
      <b>Close</b>
      <start>Info</start>
    </joystick>
  </MusicOSD>
  <VisualisationSettings>
    <joystick>
      <b>Close</b>
    </joystick>
  </VisualisationSettings>
  <VisualisationPresetList>
    <joystick>
      <b>Close</b>
    </joystick>
  </VisualisationPresetList>
  <SlideShow>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <y>ZoomNormal</y>
      <leftbumper>Rotate</leftbumper>
      <rightbumper>CodecInfo</rightbumper>
      <up>ZoomIn</up>
      <down>ZoomOut</down>
      <left>PreviousPicture</left>
      <right>NextPicture</right>
      <leftstickleft>AnalogMoveX</leftstickleft>
      <leftstickright>AnalogMoveX</leftstickright>
      <leftstickup>AnalogMoveY</leftstickup>
      <leftstickdown>AnalogMoveY</leftstickdown>
      <lefttrigger>ZoomOut</lefttrigger>
      <righttrigger>ZoomIn</righttrigger>
    </joystick>
  </SlideShow>
  <ScreenCalibration>
    <joystick>
      <x>ResetCalibration</x>
      <leftbumper>NextResolution</leftbumper>
      <rightbumper>NextCalibration</rightbumper>
    </joystick>
  </ScreenCalibration>
  <GUICalibration>
    <joystick>
      <x>ResetCalibration</x>
      <leftbumper>NextResolution</leftbumper>
      <rightbumper>NextCalibration</rightbumper>
    </joystick>
  </GUICalibration>
  <VideoOSD>
    <joystick>
      <b>Close</b>
    </joystick>
  </VideoOSD>
  <VideoMenu>
    <joystick>
      <b>Stop</b>
      <x>OSD</x>
      <leftbumper>AspectRatio</leftbumper>
      <start>Info</start>
    </joystick>
  </VideoMenu>
  <OSDVideoSettings>
    <joystick>
      <leftbumper>AspectRatio</leftbumper>
      <x>Close</x>
    </joystick>
  </OSDVideoSettings>
  <OSDAudioSettings>
    <joystick>
      <leftbumper>AspectRatio</leftbumper>
      <x>Close</x>
    </joystick>
  </OSDAudioSettings>
  <VideoBookmarks>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </VideoBookmarks>
  <MyVideoLibrary>
  </MyVideoLibrary>
  <MyVideoFiles>
  </MyVideoFiles>
  <MyVideoPlaylist>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </MyVideoPlaylist>
  <VirtualKeyboard>
    <joystick>
      <b>BackSpace</b>
      <y>Symbols</y>
      <leftbumper>Shift</leftbumper>
      <leftthumb>Enter</leftthumb>
      <lefttrigger>CursorLeft</lefttrigger>
      <righttrigger>CursorRight</righttrigger>
    </joystick>
  </VirtualKeyboard>
  <ContextMenu>
    <joystick>
      <b>Close</b>
    </joystick>
  </ContextMenu>
  <Scripts>
    <joystick>
      <x>ContextMenu</x>
    </joystick>
  </Scripts>
  <Settings>
    <joystick>
      <b>PreviousMenu</b>
    </joystick>
  </Settings>
  <AddonInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </AddonInformation>
  <AddonSettings>
    <joystick>
      <b>Close</b>
    </joystick>
  </AddonSettings>
  <TextViewer>
    <joystick>
      <b>Close</b>
    </joystick>
  </TextViewer>
  <shutdownmenu>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>PreviousMenu</leftthumb>
    </joystick>
  </shutdownmenu>
  <submenu>
    <joystick>
      <b>PreviousMenu</b>
    </joystick>
  </submenu>
  <MusicInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </MusicInformation>
  <MovieInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </MovieInformation>
  <NumericInput>
    <joystick>
      <b>BackSpace</b>
      <leftthumb>Enter</leftthumb>
    </joystick>
  </NumericInput>
  <GamepadInput>
    <joystick>
      <leftthumb>Stop</leftthumb>
    </joystick>
  </GamepadInput>
  <LockSettings>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>Close</leftthumb>
    </joystick>
  </LockSettings>
  <ProfileSettings>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>Close</leftthumb>
    </joystick>
  </ProfileSettings>
</keymap>
Reply
#19
small hint; you can use any web browser to validate xml. it will highlight exactly where errors are.
Reply
#20
I merged your joystick.xml keymap into retroplayer and my controller input PR: c305574. Thanks, this is exactly what I wanted. Cheers!

We had a request to enable rewind in fullscreen game, so I'll un-noop the shoulders and triggers. Any other buttons besides guide that should "fall through" when playing a game?
Reply
#21
(2016-02-09, 19:21)garbear Wrote: I merged your joystick.xml keymap into retroplayer and my controller input PR: c305574. Thanks, this is exactly what I wanted. Cheers!

We had a request to enable rewind in fullscreen game, so I'll un-noop the shoulders and triggers. Any other buttons besides guide that should "fall through" when playing a game?

No problem, happy to help. One issue with using bumpers/triggers for rewind is when you try to play a game that uses bumpers/triggers, such as Gameboy Advance or PSX games. And we'd need a bumper or trigger available for the 'Z' button on an N64.

Different mappings for rewind for different cores? Turn rewind off for certain cores? Lose rewind entirely? Not sure what the answer is here.

(2016-02-09, 14:04)ironic_monkey Wrote: small hint; you can use any web browser to validate xml. it will highlight exactly where errors are.

Cool, thanks for the tip. Next time Wink
Reply
#22
(2016-02-09, 21:46)longelf Wrote: One issue with using bumpers/triggers for rewind is when you try to play a game that uses bumpers/triggers, such as Gameboy Advance or PSX games. And we'd need a bumper or trigger available for the 'Z' button on an N64.

Different mappings for rewind for different cores? Turn rewind off for certain cores? Lose rewind entirely? Not sure what the answer is here.

If we use bumpers AND triggers for ff/rewind, and a game only requires bumpers OR triggers, then there will always be a set open for ff/rewind.

For example, for NES i use bumpers, so the triggers are available. For dreamcast I use the triggers, so bumpers are available. N64 uses two bumpers and a trigger, so the user has a choice of losing ff or losing rewind.

EDIT: Many games, including N64, don't support rewind, but in theory all support FF.
Reply
#23
(2016-02-09, 19:21)garbear Wrote: I merged your joystick.xml keymap into retroplayer and my controller input PR: c305574. Thanks, this is exactly what I wanted. Cheers!

We had a request to enable rewind in fullscreen game, so I'll un-noop the shoulders and triggers. Any other buttons besides guide that should "fall through" when playing a game?

Actually I just wanted to point it out, rather then request it to be added again, sorry for the confusion.
If it's hard to implement we should skip it entitely.
Many users will use Retroplayer with low power devices where rewind won't work.
As you already said some cores don't support rewind and some use all available controller buttons, so if a user wants to rewind on the controller maybe it's OK if he/she needs to do some changes to config manually.
What do you think?
Reply
#24
Would it be helpful if I made an .xsd for the joystick.xml file? This would allow for easier error checking and auto-complete in most IDE's.

The xsd would look similar to this: http://trac.kodi.tv/attachment/ticket/6398/Keymap.xsd
Reply
#25
What editors support .xsd validation? I personally just load joystick.xml in Kodi and look for errors, but I could see this helping some people
Reply
#26
(2016-02-24, 22:15)garbear Wrote: What editors support .xsd validation? I personally just load joystick.xml in Kodi and look for errors, but I could see this helping some people
Notepad++ with the plugin "XML Tools"
Reply
#27
Awesome. Go for it then Smile and maybe link from the wiki
Reply

Logout Mark Read Team Forum Stats Members Help
How can I help?1