EPG FF/RW navigation control customization?

Post Reply
plooger

Posts: 14
Joined: Tue Jan 13, 2015 1:33 am
Location:

HTPC Specs: Show details

EPG FF/RW navigation control customization?

#1

Post by plooger » Wed Jan 14, 2015 4:15 am

Does anyone know of a documented process for modifying the EPG/Guide horizontal scroll/jump associated with use of the Xbox 360 Remote's FastForward (>>) and Rewind (<<) buttons?

I ask because the default jump for the FF/RW buttons is 3 hours (180m), but the default window width is just 2 hours. I'd *like* to modify the FF/RW jump to match the 2-hour window width.

plooger

Posts: 14
Joined: Tue Jan 13, 2015 1:33 am
Location:

HTPC Specs: Show details

#2

Post by plooger » Wed Jan 14, 2015 4:40 am

What I've found so far...

Default EPG & Mini-EPG navigation using Xbox 360 Remote Control (tested on Xbox 360 Extender) ::
  • FastForward (>>)/Rewind (<<) buttons jump 3 hours forward/back
  • ChapterNext (>>|)/ChapterPrev (|<<) buttons jump 12 hours forward/back
Using Resource Hacker to inspect Microsoft.MediaCenter.Shell.dll, I was able to identify what appear to be the relevant "code" segments controlling the FF/RW EPG jumps:
  • EPG.MCML:

    Code: Select all

    <Changed Source="[FastForwardHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="180"/></Actions></Changed>
    <Changed Source="[RewindHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="-180"/></Actions></Changed>
  • EXPANDEPG.MCML:

    Code: Select all

    <Changed Source="[FastForwardHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="180"/></Actions></Changed>
    <Changed Source="[RewindHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="-180"/></Actions></Changed>
So, seeing what others have done in the past, it would seem there should be some way for me to simply modify the "180" values to "120" and then save(?) the changes as a new, modified Microsoft.MediaCenter.Shell.dll file. I just have no idea exactly how to do so in Resource Hacker, and was hoping someone could point me towards some helpful examples.

I also haven't searched any other DLLs to see whether these are the only occurrences of these controls. For now, lacking comprehensive knowledge of how this stuff works, I'm guessing these two locs should do it.

plooger

Posts: 14
Joined: Tue Jan 13, 2015 1:33 am
Location:

HTPC Specs: Show details

#3

Post by plooger » Wed Jan 14, 2015 6:09 am

Ok, all the above said, after reviewing the EPG.MCML resource, I'm exceedingly curious as to what the heck the "ColumnClickUpCommand" and "ColumnClickDownCommand" invocations are, seeing as they seemingly would do EXACTLY what I'd like to see, horizontally jumping the EPG by the number of visible columns. (i.e. one full page at-a-time!)
  • EPG.MCML:

    Code: Select all

    <Changed Source="[ColumnClickUpCommand.Invoked]"><Actions><Set Target="[Temp]" Value="[BodySource.ColumnScrollData.VisibleCount]" Transformer="[MakeNegative]"/><Invoke Target="[BodySource.ScrollBy]" row="0" column="[Temp]"/></Actions></Changed>
    <Changed Source="[ColumnClickDownCommand.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="[BodySource.ColumnScrollData.VisibleCount]"/></Actions></Changed>
If I can't figure out what remote control presses, if any, invoke these two actions, I would think I could substitute their associated logic for the straight "+180" and "-180" jumps for FF & RW. To be honest, I'm hard-pressed, ahem, to understand why this wasn't the default logic for FF & RW in the first place.

Thoughts?

plooger

Posts: 14
Joined: Tue Jan 13, 2015 1:33 am
Location:

HTPC Specs: Show details

#4

Post by plooger » Wed Jan 14, 2015 6:14 am

For reference*, here are the associated markup snippets I found associated with the ChapterNext (>>|)/ChapterPrev (|<<) 12-hour jump EPG navigation controls (*though I have no intention of modifying them)...
  • EPG.MCML:

    Code: Select all

    <Changed Source="[SkipForwardHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="720"/></Actions></Changed>
    <Changed Source="[SkipBackHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="-720"/></Actions></Changed>
  • EXPANDEPG.MCML:

    Code: Select all

    <Changed Source="[SkipForwardHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="720"/></Actions></Changed>
    <Changed Source="[SkipBackHandler.Invoked]"><Actions><Invoke Target="[BodySource.ScrollBy]" row="0" column="-720"/></Actions></Changed>

plooger

Posts: 14
Joined: Tue Jan 13, 2015 1:33 am
Location:

HTPC Specs: Show details

#5

Post by plooger » Thu Jan 15, 2015 3:27 am

Well, good news and ok news.

Both methods of altering the FF/RW EPG nav controls worked, both a "fixed +/- 120m" and using the "ColumnScrollData.VisibleCount" logic. That's the good news: I was able successfully able to modify Microsoft.MediaCenter.Shell.dll to match the FF/RW navigation jumps to the width of the EPG window. I can now jump one page at a time.

The ok news is that any modifications I make are wiped-out if I use MyChannelLogos XL to modify the guide (i.e. other than adding/removing logos). MCLXL is resetting the FastForwardHandler and RewindHandler invoked actions to their original, fixed 180m/3hr jumps. Urgh.

So, I can do what I want. I'll just have less flexibility in firing-up MCLXL to tweak the guide -- and will have to manually add my mods back every time I do, which makes the "dynamic jumps" logic pointless, since that was intended as a means to adjust the FF/RW navigation jumps automatically should I use MCLXL to tweak the visible width of the guide.

(I've submitted a feature request to MCLXL to address this capability, but I expect I'll need to handle it myself for some time to come.)

p.s. I'm still trying to figure out where the "ColumnClickUpCommand" and "ColumnClickDownCommand" triggers come into play, since they're setup, by default, to do page-at-a-time scrolling.

Post Reply