SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Customizations

Notices

SageTV Customizations This forums is for discussing and sharing user-created modifications for the SageTV application created by using the SageTV Studio or through the use of external plugins. Use this forum to discuss customizations for SageTV version 6 and earlier, or for the SageTV3 UI.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 08-16-2006, 09:38 PM
BobPhoenix BobPhoenix is offline
SageTVaholic
 
Join Date: Oct 2004
Posts: 3,131
Arrow STV Import: Menu Shortcut Bars

This plugin will allow you to select any SageTV menu with only 2 remote button presses. The first press would be one of the Custom1..5 buttons and the second would be one of the numbers on your remote. This will give you the ability to assign upto 50 SageTV menus to your remote to quickly goto the SageTV menu of your choice - 5 Custom buttons and 10 menus each. The plugin is located in the Download section of the forum.

If you press a custom button twice or just once and wait until the timeout occurs the default action for the particular custom button is taken. For instance if you have the ComSkip import loaded and you also have assigned menus to the Custom4 numbers than you can press Custom4 twice and skip back in the media player or just do nothing in other menus. However if you press a number key before the timeout occurs and it is assigned to a menu you will go to that menu. NOTE: to just cancel the Custom1...5 command and do nothing you just need to press the button assigned to "Back" or "Options".

The configuration menu of this plugin was written to match the style of SageTV 5.0.4 but uses no code from the existing STV internally so this should make it more compatible with other STV's. It has been tested with SageMC for instance. But I have not tested any others. The only points of contact between the existing STV and this plugin after being imported are Detailed Setup>Customize and Detailed Setup>Import. As long as the other STV is laid out similar to the Default STV or SageMC in those locations it will probably be importable. The code to generate the list of SageTV menus in the configuration screen was taken from NIELM's dynamic menus. So any menu you can get to with NIELM's dynamic menus you should be able to use with this plugin as well.

The documentation for this plugin is contained within this post. It should be fairly self explainitory but if you need additional documentation let me know and I will put together something.

To access the configuration menu for this plugin (the first time anyway) you need to go to "Detailed Setup>Customize>Popup Menus". You will be greeted with the following menu:

From this screen you can choose the custom button, number and menu to assign. As you select the options a green circle will be displayed on the left side of the button and will look something like this:

When you have all three selected you must use the Save Choice menu option to save this to your SageTV properties file. The Clear Choice only clears the screen display it does not remove your selection from the properties file. To clear it from the properties file just change to the "***Default***" menu selection and that effectively clears it from the properties file. The "Clear All" menu choice however will completely remove all entries from the property file so be careful with it or you will have to start all over again. Back will take you to the previous menu you were on which will be Detailed Setup the first time anyway. If you have a Custom1...5 command selected and select "Test Popups" menu above you will then display the "Menu Name" popup menu type to allow you to see your menu choices and test them out while still on this configuration screen. The Options menu for this configuration screen can be displayed either by selecting "Options" or pressing the button assigned to Options.

The Options menu looks like this:
  1. From this options menu you can change the visible or "Normal Menu Timeout" - default is 5 seconds. This timeout controls how long you have to press one of the number buttons on your remote or select one of the menus in the display before the default action for the Custom command is taken. This controls both the "Menu Num" menu and the "Menu Name" menu.
  2. Also you can change the "Invisible Menu Timeout" - default is 1000 milliseconds (1 Second). This timeout controls the same action but is for the invisible menu.
  3. You can change the "Menu Search String Timeout" - default is 50 milliseconds. This timeout is the time allowed to press another key on your keyboard after the first press. By making this value longer you will be able to type more characters of a menu name to make the list scroll to that menu. 50 milliseconds will limit you to just the first character of the menu name - unless you are really quick.
  4. You can change the "Menu Search Numeric Timeout" - default is 1000 milliseconds. This timeout is the time allowed to press the menu number on your remote that you want to scroll the menu list too.
  5. You can change the "Horizontal Position" - default is Left. This controls the horizontal position of the visible popup menu selection menus. Values are Left, Center and Right. NOTE this has no effect on the "Invisible" Popup Menu Type.
  6. You can change the "Vertical Position" - default is Bottom. This controls the vertical position of the "Menu Num" Popup Menu Type. Values are Top, Center and Bottom. NOTE this has no effect on the "Invisible" and "Menu Name" Popup Menu Types.
  7. And last you can change the "Menu Type" - default is Invisible. The posible choices are "Invisible", "Menu Num" and "Menu Name".
The "Invisible" menu ShortcutBar is just that. You will see no indication that it is on your screen but you can still type one of the number buttons on your remote to go to the menu assigned to that number.

The "Menu Name" popup menu displays the full height of the screen and shows the remote number button and the first part of the menu assigned to it. It will look something like:

NOTE: when you press a button number that has ***Default*** assigned to it no menu will be brought up. It will just execute the default action for the Custom1...5 command. I almost removed this menu since the smaller one now includes the menu name when you highlight one of the numbers but I decided to leave it in since you can see all of the menu names at once.

The "Menu Num" popup menu displays just the remote button numbers in a menu and the menu name of the highlighted number and looks like this when displayed:

or in SageMC:

The current version 0.4.0 is fairly stable. It should install on top of itself if you need to reinstall it for some reason. But it will not install on top of version 0.3.0 because the name has changed It should be considered to still be beta as it has only been tested on my MVP and Development system.


Now for those that want to know a little bit about how this was coded:
When installed and whenever another plugin is installed it goes out and looks for Custom1 thru Custom5 Listeners and copies the code beneath them to the Global theme defined in this plugin. It puts a code value in each Custom Listener to let my code know where it came from and thereby execute the moved code that is appropriate. This lets me jump to a menu from any screen and still maintain the existing code for the Listeners. This code also looks for other Global Themes upon it's import and other imports and copies the non- Custom1...5 code to the Global Theme in this menu. It then renames the other Global Theme to GlobalSave so that it won't be used instead of the one in My plugin. Since I also hide my Global Theme and restore the Custom command code before an import it will add extra processing time to other code to be imported.


Please post suggestions and problems to this thread and if you have problems revert back to the code prior to this import if I can't solve your problem in a timely manor please.

Thanks.
BobP.

08/19/2006 ChangeLog:
  1. The name has been changed to Menu Shortcut Bars.
  2. Pressing the Custom1...5 button more than once now executes the default code for the button right away without waiting for the timeout.
  3. The "Menu Num" Shortcut Bar now has an additional line that displays the menu name of the selected number
  4. The timeouts for the invisible and visible menus have been separated. The invisible menu has a default timeout of 1 second (1000 milliseconds) and the visible menus "Menu Name" and "Menu Num" have a default timeout of 5 seconds - the reason I gave it this much is so that you will have time to scroll to all 10 choices to display the menu name in the Menu Num Shortcut Bar.
  5. I also added some code that will allow you to go to menus that normally expect something passed in a "AddStaticContext" variable. However that is only for variables with names of "Airing", "MediaFile" and "FirstElement" from the Default STV. They should work in any STV that uses them for the same purpose however.
  6. Version is now 0.4.0

09/05/2006 ChangeLog:
Second try at adding double press does default action had a logic error that prevented the above change from working that has been fixed now at version 0.4.1. This was the only change from version 0.4.0 above.

Last edited by BobPhoenix; 09-05-2006 at 04:44 PM.
Reply With Quote
  #2  
Old 08-17-2006, 09:33 AM
dflachbart dflachbart is offline
SageTVaholic
 
Join Date: Jan 2006
Location: Brookfield, CT
Posts: 2,743
Hi Bob,

this looks like an awesome addition
Haven't had the chance to try it out yet, but may I make a suggestion:

why not, in addition to letting it time out, also call the original custom1-custom5 listener if the same custom button is pressed again within the timeout period ? The thumb is already on that button, so it would make calling the original mapping a little faster than waiting for the timeout . Of course, only if technically possible...

And yeah, I also think that "PopupMenus" feels a little awkward. What about 'Custom Mapper' ? Well, I'm sure there will be some other different suggestions ...

Dirk
Reply With Quote
  #3  
Old 08-17-2006, 10:58 AM
MeInMaui's Avatar
MeInMaui MeInMaui is offline
SageTVaholic
 
Join Date: Feb 2005
Location: Maui. HI
Posts: 4,203
BobPhoenix,

This looks really cool. I have two little suggestions. In the 'menu num' popup, it looks like you have to remember what screen/command was mapped to each number. That's up to 50 numbers to remember. If possible, it would be nice if the screen/command name for the highlighted number was listed next to the 'Custom Command Name' maybe separated by a dash or something. That would make use much easier without taking up the screen real estate of the 'menu name' popup. The second suggestion is for the name. It seems to me that this great feature could be best described as a 'ShortcutBar', or something like that. Thanks for the hard work!

Aloha,
Mike
__________________
"Everything doesn't exist. I'm thirsty." ...later... "No, it's real!!! I'm full."
- Nikolaus (4yrs old)
Reply With Quote
  #4  
Old 08-17-2006, 11:01 AM
BobPhoenix BobPhoenix is offline
SageTVaholic
 
Join Date: Oct 2004
Posts: 3,131
Quote:
Originally Posted by flachbar
Hi Bob,

this looks like an awesome addition
Haven't had the chance to try it out yet, but may I make a suggestion:

why not, in addition to letting it time out, also call the original custom1-custom5 listener if the same custom button is pressed again within the timeout period ? The thumb is already on that button, so it would make calling the original mapping a little faster than waiting for the timeout . Of course, only if technically possible...
Sounds like a great idea it did that in one of the other variants I was testing.

Quote:
And yeah, I also think that "PopupMenus" feels a little awkward. What about 'Custom Mapper' ? Well, I'm sure there will be some other different suggestions ...

Dirk
My other name was Custom Menus but I didn't really like that either - Custom Mapper sounds pretty good unless someone else has a better suggestion.
Reply With Quote
  #5  
Old 08-17-2006, 01:04 PM
Opus4's Avatar
Opus4 Opus4 is offline
Administrator
 
Join Date: Sep 2003
Location: NJ
Posts: 19,596
You want name suggestions? ... Quickly Access Favorite Features? QUAFF, for short.

You can see why I didn't go into marketing...

- Andy
Reply With Quote
  #6  
Old 08-17-2006, 01:15 PM
BobPhoenix BobPhoenix is offline
SageTVaholic
 
Join Date: Oct 2004
Posts: 3,131
Quote:
Originally Posted by MeInMaui
BobPhoenix,

This looks really cool. I have two little suggestions. In the 'menu num' popup, it looks like you have to remember what screen/command was mapped to each number. That's up to 50 numbers to remember. If possible, it would be nice if the screen/command name for the highlighted number was listed next to the 'Custom Command Name' maybe separated by a dash or something. That would make use much easier without taking up the screen real estate of the 'menu name' popup. The second suggestion is for the name. It seems to me that this great feature could be best described as a 'ShortcutBar', or something like that. Thanks for the hard work!

Aloha,
Mike
More good ideas! The only problem I see is that all the menus use the same timeout currently and the Invisible option really needs to be as short as possible. So to implement something like this I will need a longer timeout for the 'Menu Num' menu but this is possible too. I like the name 'ShortcutBar' too. Decisions decisions!

BobP.
Reply With Quote
  #7  
Old 08-17-2006, 01:18 PM
BobPhoenix BobPhoenix is offline
SageTVaholic
 
Join Date: Oct 2004
Posts: 3,131
Quote:
Originally Posted by Opus4
You want name suggestions? ... Quickly Access Favorite Features? QUAFF, for short.

You can see why I didn't go into marketing...

- Andy
No not acronyms Don't think my 'Popup Menus' is much better tho.
Reply With Quote
  #8  
Old 08-19-2006, 09:55 PM
BobPhoenix BobPhoenix is offline
SageTVaholic
 
Join Date: Oct 2004
Posts: 3,131
OK I have updated the plugin and uploaded the new version. It implements the suggestions from flachbar and MeInMaui - thank you for the suggestions guys.

ChangeLog:
  1. The name has been changed to Menu Shortcut Bars.
  2. Pressing the Custom1...5 button more than once now executes the default code for the button right away without waiting for the timeout.
  3. The "Menu Num" Shortcut Bar now has an additional line that displays the menu name of the selected number
  4. The timeouts for the invisible and visible menus have been separated. The invisible menu has a default timeout of 1 second (1000 milliseconds) and the visible menus "Menu Name" and "Menu Num" have a default timeout of 5 seconds - the reason I gave it this much is so that you will have time to scroll to all 10 choices to display the menu name in the Menu Num Shortcut Bar.
  5. I also added some code that will allow you to go to menus that normally expect something passed in a "AddStaticContext" variable. However that is only for variables with names of "Airing", "MediaFile" and "FirstElement" from the Default STV. They should work in any STV that uses them for the same purpose however.
BobP.

Edit: Opps found out #2 isn't working correctly yet - try to get a double press to work correctly - logic error on my part and at the time I put the code in I had nothting to test - opps.

Last edited by BobPhoenix; 09-05-2006 at 03:59 PM.
Reply With Quote
  #9  
Old 08-20-2006, 02:11 AM
MeInMaui's Avatar
MeInMaui MeInMaui is offline
SageTVaholic
 
Join Date: Feb 2005
Location: Maui. HI
Posts: 4,203


Looks great! I'll try it out as soon as I can.
__________________
"Everything doesn't exist. I'm thirsty." ...later... "No, it's real!!! I'm full."
- Nikolaus (4yrs old)
Reply With Quote
  #10  
Old 09-05-2006, 04:46 PM
BobPhoenix BobPhoenix is offline
SageTVaholic
 
Join Date: Oct 2004
Posts: 3,131
OK posted a new version 0.4.1 that actually makes the double press of a custom button execute the default action like it was suppose to with the previous update - opps!

Problems or questions just let me know.

BobP.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -6. The time now is 01:01 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.