I then copied /Applications/Plex.app/Contents/Resources/Plex/keymaps to ~/Library/Application Support/Plex and I was back in business.
**Note 1:** My feeling is that these files should be automatically copied to ~/Library/Application Support/Plex without the user being required to do it, as is convention with other similar config files
The reason I did all this was because I wanted to map [ and ] to SmallStepBack and SmallStepForward respectively.
**Note 2:** SmallStepForward isn't a function that exists (SmallStepBack is).
I checked some XBMC doco and it doesn't look like it is in there either... which struck me as really strange omission - surely coding it in is trivial given that SmallStepBack is already there?
Now.. I'm not a C programmer, but, looking in GUIWindowFullScreen.cpp I think all that needs to be added after:
case ACTION_SMALL_STEP_BACK:<br />
{<br />
int orgpos = (int)g_application.GetTime();<br />
int triesleft = g_advancedSettings.m_videoSmallStepBackTries;<br />
int jumpsize = g_advancedSettings.m_videoSmallStepBackSeconds; // secs<br />
int setpos = (orgpos > jumpsize) ? orgpos - jumpsize : 0; // First jump = 2*jumpsize<br />
int newpos;<br />
do<br />
{<br />
setpos = (setpos > jumpsize) ? setpos - jumpsize : 0;<br />
g_application.SeekTime((double)setpos);<br />
Sleep(g_advancedSettings.m_videoSmallStepBackDelay); // delay to let mplayer finish its seek (in ms)<br />
newpos = (int)g_application.GetTime();<br />
}<br />
while ( (newpos > orgpos - jumpsize) && (setpos > 0) && (--triesleft > 0));<br />
<br />
//Make sure gui items are visible<br />
g_infoManager.SetDisplayAfterSeek();<br />
}<br />
return true;<br />
break;
is
case ACTION_SMALL_STEP_FORWARD:<br />
{<br />
int orgpos = (int)g_application.GetTime();<br />
int triesleft = g_advancedSettings.m_videoSmallStepFowardTries;<br />
int jumpsize = g_advancedSettings.m_videoSmallStepForwardSeconds; // secs<br />
int setpos = (orgpos > jumpsize) ? orgpos - jumpsize : 0; // First jump = 2*jumpsize<br />
int newpos;<br />
do<br />
{<br />
setpos = (setpos > jumpsize) ? setpos + jumpsize : 0;<br />
g_application.SeekTime((double)setpos);<br />
Sleep(g_advancedSettings.m_videoSmallStepForwardDelay); // delay to let mplayer finish its seek (in ms)<br />
newpos = (int)g_application.GetTime();<br />
}<br />
while ( (newpos > orgpos - jumpsize) && (setpos > 0) && (--triesleft > 0));<br />
<br />
//Make sure gui items are visible<br />
g_infoManager.SetDisplayAfterSeek();<br />
}<br />
return true;<br />
break;
int setpos needs to be modified to make sure we don't jump past the end of the file
As well as counterparts for these 3 in settings.h
int m_videoSmallStepBackSeconds;<br />
int m_videoSmallStepBackTries;<br />
int m_videoSmallStepBackDelay;
And some odds and sods in advancedsettings.xml
Or does anyone have some other way to do this without changing the code?
