MLBeyondTV Plugin
From Tallus LLC Wiki
About
MLBeyondTV plugin is an interface for BeyondTV Personal Video Recorder application. It brings full PVR functionality into MainLobby. It also can be used to update guide data in TVLobby3.
To find out more about the power of BeyondTV application: Click HERE
Plugin written by Fonceur with UI contributions by Empyrean and DavidL
Purchase link: [MLBeyondTV Purchase Link]
Download Link
The plugin installs in a 30 day trial mode. Once you have decided to purchase it from [Tallus's shopping cart], just apply the software license you will receive from Tallus via email on purchase of the plugin. After the plugin is installed, the license is then applied to MLServer3's Software Registration Menu (in MLServer: Help/Manage License Keys) which you must then Activate to that PC by sending your purchased license, your MLServer's Hardware ID (found at bottom of the Registration Menu window) to: info(at)talluscorp.com. You will soon receive an Activation code via email that is applied to the Registration Menu which makes that plugin permenant to that PC.
You should perform the above within the 30 day trial period to enjoy uninterrupted usage of the plugin with no rework needed between trial and licensed useage. Please allow up to two days for Tallus processing time for your requests. Most requests are processed within a few hours.
Connection Example
Example of how BeyondTV and MainLobby Server interconnect.
Hardware / Software Requirements
BeyondTV 4.8.1 (or newer) software and license.
BeyondTV supported PC hardware (PC / tuner card / etc.)
MLServer3 v 3.0.389 or newer
MainLobby3 Client v 3.0.107 or newer
MLBeyondTV Plugin v 3.0.4 or newer
Optional: TVLobby3 v 3.0.38 or newer
Installation
- Download and run the MLBeyondTV_Setup.exe file.
- Install the Plugin to the PC running the primary MLServer3 software.
- Install the Client examples on all PCs running MainLobby client.
The BeyondTV server can be on same PC as the MLServer3 software, but optimally on a dedicated BeyondTV / Tuner server. This is especially important if you are using software based TV tuner cards that consume signficant PC CPU while recording. This usage of CPU can interfere with MLServer operations and should be avoided.
The installer copies the MLBeyondTV.dll and MLBeyondTV.tlb files to the MLServer\Plugins folder. The sample .MLS files are placed in Cinemar\Content\0019\1024x768\MLBTV (and 800x480), while the .swf and .jpg go in Cinemar\Content\0019\Common\MLBTV\Images. The BTVMenus.xml file goes in the MLServer folder. As the MLBeyondTV is developed in C#.NET, the dll and tlb files can't simply be registered like other VB based MLServer plugins. Use the installer that does the proper registration for you :)
Restart MLServer3 and Activate the MLBeyondTV plugin.
Go into the MLBeyondTV plugins settings window and configure the IP address (you can use "localhost" if BTV server and MLServer are same PC), User (administrator for full access) and password of the BeyondTV (BTV) server (if you are not using password protection on the BTV server, just leave that field blank). The default communications port is 8129 and should be left alone, unless you understand how to change this on both the BTV server and within the MLBTV plugin.
Once Beyond TV is installed and has finished downloading your lineup(s), you can recreate a new TVLobby database (you should keep a copy of your database). In the MainLobby Server menu, go to View --> Plugins, select MLBeyondTV and right click to select Settings. Make sure the BTV Server name/password/port are ok (or change them and press "Save settings"). Then press "Update the TVLobby database now" to start filling your TVLobby database (located in MLServer\Data\TV.mdb). You can monitor the progress and should wait until completion before launching TVLobby. You should now see your TV guide data in the TVLobby user interface.
A progress status for the TVLobby database update was added. It is based on the following assumption for the timeline:
Creating/writing the Table of Channels = 10%
Collecting + analyzing data = 15%
Writing the Table of Programs = 25%
Writing the Table of Actors = 50%
If you are using MLServer's Watchdog, keep in mind that the downloading and processing of the TV info is CPU intensive and may trigger a Watchdog restart.
That is all of the critical settings if you installed everything to default locations (recommended).
On the Scenes Tab, you can change the Scenes folder location (relative to your MainLobby client "Content" folder, MLBTV should work fine, as long as your content folder is defined as Content\0019\800x480 for widescreen clients and Content\0019\1024x768 for 4:3 clients), your MLBTV images file location, and which BTVMenus.xml file to load (you could have a different one for different customer systems for example). You also can choose which Overlay level the MLBTV Popups use. If you use the standard 0019_ scenes, you should choose Overlay 2 (as 0019_ navigation scenes use Overlay 1 by default). Click Save Settings when you are done with your configuration choices.
Restart MLServer3 to load your new configuration settings.
Hardware Considerations
As mentioned earlier, a software tuner card is not recommended. With a hardware tuner, you can expect 5-15% CPU usage per recordings, so even with 6 simultaneous recordings, that should not be a problem with a modern PC.
The real performance hit comes from the playback on the BTV-Server of HD programming, if the video card is not recent/powerful enough (using link machine should be fine) or showsqueezing right away (1 job on a single core system, or more than one job simultaneously on a dual core). As long as the showsqueezing is done off-peak, or limited to one job on a dual core system, all should be smooth.
While generating the smartchapters right away does consume CPU, it still plays nicely with the rest of the operations. Guide updates can also be CPU intensive, but as long as MLBeyondTV performs them off-peak, that wouldn't be an issue.
If you want to run the BeyondTV server software on the same PC as MLServer, respect these settings for good performance:
- No software tuner.
- Off peak showsqueezing (or single job on dual cores)..
- Automatic Guide updates disabled (managed manually or by MLBeyondTV)..
- Recent video card if the BTV-server is also used for playback of HD material..
Configuring the Plugin
1) From the MLServer3, going to View -> Plugins -> MLBeyondTV -> Settings, you can configure how it works.
Settings Tab
Configure the PC name where the BeyondTV server is located. If you have set a password in BTV, then also configure the Password field. If no password is set, leave the plugins password field blank. Configure the port that BTV server is on. Default is 8129 (keep this unless you know what you are doing).
Click Show episode number if you would like that choice.
Select a Plugin update frequency. This selects when the MLBeyondTV plugin gets updates from the BeyondTV server.
When you select the "Upcoming recordings" scene, for improved performance, you are not sending a query to the BTV server to get that list, but instead to the MLBeyondTV plugin, which is keeping a local copy (cache) of that list. Same thing for most of the other scenes, the exception being the various searches which do require to communicate with the BTV Server. If you modify something through the plugin (i.e. you block a recording), this will force an update of the appropriate list(s), but if you were to delete a file within BTV itself or through Windows explorer, the plugin would not become aware of that change until the next plugin update.
You can select the Updates TVLobby Database now button to have the BeyondTV plugin update guide data on TV.mdb (that supports TVLobby guide data application). Configure the number of days of data. Using MLBTV, you can select up to 14 days of guide data that will show up as you scroll to the right in the TVLobby user interface.
Scenes Tab
The "Scenes (.mls)" field determines which directory your scenes are located on the MainLobby Client. The default is the MLBTV folder, which should work fine as long as your content folder includes the resolution (i.e. C:\Program File\Cinemar\Content\0019\1024x768).
The Images field does the same for images. Default is ..\Common\MLBTV\Images.
The Popups field does the same for popups. Default is ..\Common\MLBTV\Popups.
The Menus field allows for selection of the xml file that describes the User Interface's actions on button pushes. Default is BTVMenus.xml. The BTVMenus.xml file controls the items displayed on each scene as well as the operations to perform when an item is selected. So if you want to change some text, some order and so on, you would do it from there.
The location of MLServer is read from the Windows registry so should be correct.
Fast selection of items configures the plugin to execute right away the command associated with the item clicked or touched, i.e. display the detailed informations scene from the Recorded shows scene. By contrast, disabling this option would result in the description field of the Recorded shows scene to be filled when an item is touched or clicked, while a second touch or click would go to the detailed informations scene. Default is selected for fast menu changes.
Overlay section tells the plugin whether Popups occur in Overlay 1 or Overlay 2. Proper selection of this depends on how you have built your scenes. Default is Overlay 2 (FX2) to work with the sample scenes that MLBeyondTV plugin installer installs. You can disable the navigation overlay or replace the default one by your own.
Offset in X and Y will position the popup menus, once combined with the fx_locx(y) of the BTVMenus.xml file. The recommended settings are X = 525 and Y = 220 on a 16:9 display, while X = 375 and Y = 220 will produce a better result on a 4:3 display.
In order to allow the use of various UI based on the display type, a different Template can be associated to each client. The default Template corresponds to a 4:3 display. You can modify the values and press "Save template" to update it. Once you select a Client, it will display the corresponding Template. You could then modify some settings and use the "New template" to create a new Template using this Client's name. After that you could select a different Client, select a different Template and use the "Associate the template to this client".
Remember to save the Template after you have made changes to it and to have each Client using the proper Template.
Guide Updates Tab
You can click the "Update BTV's Guide now" to tell the BTV Server software to get its Internet sourced guide data.
Click the Auto-update TV.mdb for the MLBeyondTV plugin to automatically update TV.mdb after the BeyondTV server gets its guide data refreshed from the plugin.
Make sure that you don't have another guide lineup where you have not hidden the extra channels (you can delete extra lineups)... What you will be getting is a combination of all the visible channels from all your existing lineups.
Click Override BTV's updates to have the plugin handle all of BTV's guide updates. This way you can select a more convenient time for the updates (BTV can perform its automatic Guide updates while you are watching LiveTV or recording, which can lead to stuttering on slower systems).
Log Tab
You can view the event log here, to see what the plugin is doing. A log file called MLBeyondTV.log is also created.
2) You should load BTVGenericMenu.mls as a starting scene. This will load the Home scene, which is similar to BTV's. From there, the navigation should work through touchscreen/keyboard/remote control. (It should be possible to start at a different scene by pre-filling some variables...)
3) If something goes wrong, using the Home image at the top should reset the various variables and bring you back to the default Home scene.
4) Within the Template configuration, the Sys.{{PVRWatchLocation}}|Send~BeyondTVLive~Run command sets the MLClientSvc Plugin Alias that gets used when clicking the "Live TV" button. Create a SetVariable|PVRWatch~PVR1 as example and create a "PVR1" alias in MLClientSvc plugin. This alias will then map to a PC that is running MLClientSvc.exe. Within that PCs MLClientSvc.exe application, configure a "BeyondTVLive" command to launch either BeyondTV Server's LiveTV path (if the Alias is the BeyondTV Server PC) or a BeyondTV Live path (if the Alias is for a non BeyondTV Server PC that DOES have BeyondTV Live software installed on it). This allows you to change where the TV watching is launched.
Usage
For those familiar with BeyondTV application, you should feel right at home! Snapstream has provided their approval to reuse their graphics and user navigation so that you would have a quick usage learning curve.
To make a selection, click once on the choice. This will bring up details of that choice. If this choice is correct for your need, click it again to execute that choice.
There is a "Home" and "Back" button at the top of the MLBTV scenes. These are with respect to MLBTV scenes (and not with respect to your overall MainLobby scene navigation).
Updating of TVLobby database
There are 3 ways to deal with that issue. They all involve using MLServer --> View --> Plugins --> MLBeyondTV --> Settings. The first 2 are manual methods, the third one is totally automated.
1) On the MLBeyondTV "Settings" tab, press the Update the TVLobby database now. Next to it, you can select to have up to 14 days of data (7 for a BTV trial mode).
2) On the MLBeyondTV "Guide updates" tab, check the "Auto-update TV.mdb" and press the Update BTV's Guide now. Do that when the BTV server is not in use (i.e. recording, Live TV, etc.), as those Guide updates are aborted if the system is busy, to prevent stuttering during playback/recording.
3) On the MLBeyondTV "Guide updates" tab, check the "Auto-update TV.mdb". Enable the "Override BTV's updates" and select the "Update frequency". (this will disable the automatic Guide updates in BTV)
Number 3 is the preferred method, as you can select some off-peak time to perform those updates (i.e. 3 am) and you will not experience stuttering during playback/recording. It is also the only method not requiring human intervention.
Supported MLServeCmds
MLBeyondTV|<cmd>~<params>
where the supported commands (<cmd>~<params>) are:
Back: Go back to the previous Location.
ChangeView~{All|By Folder|By Series}: Change the Library view accordingly.
Search~<<Text>>: Search for this Text, according to the Location.
Scroll~FirstPage: Show the first page.
Scroll~LastPage: Show the last page.
Scroll~NextPage: Show the next page of data, if any.
Scroll~PrevPage: Show the previous page of data, if any.
Scroll~SetPage~<Page number>: Set the page of data to display.
Scroll~Left: Change between the view ALL -> By Folder -> by Series.
Scroll~Right: Change between the view ALL -> By Folder -> by Series.
SelectedRow~<Row number>: Show the detailed information about an item or the appropriate menu.
SelectedRow~{Up|Down}: Select the previous/next item.
SetLocation~<<Location>>: Set the location for the next scene update and load the appropriate scene. SetMaxItems~<Max items per pages>: Maximum number of items to be displayed per page, default is 8. Update: Update the current scene, should be part of most Startup scene...
Record~<Frequency>~<AutoID>: Setup a recording job for the TV.mdb database item matching the <<AutoID>> value. The possible <<Frequency>> values are: Once, FirstRun or Always.
TypeWriter~<Variable>~<text>: Add the <text> at the end of <Variable>. Special commands are "clear" (to reset the variable), "space" (to add a space) and "backspace" (to delete the last character".
Supported MainLobby Server Variables
The naming convention is PVR_{{clientname}}_{{Category}}_{{Variable}}, where the categories are Details/Item/Menu/Search and the Variables can be:
CurrentView: All, By Folder, By Series. imgLocation: The proper image to display in the top-right corner for the current location. LocationName: Location of the current scene. (i.e. Library, Upcoming, etc.)
Variables used to display content (where {{Number}} represents the row with that information):
item{{Number}}: Information of each row, i.e. Title + Episode, Folder/Series name or the item's text.
ch{{Number}}: Channel of the record.
desc{{Number}}: Description of the item.
icon{{Number}}: Icon of the item.
time{{Number}}: Date/time of the record.
Detailed information about one specific record: Actors, AirTime, Channel, Desc, 1stAired, Fixed, Format, Size, Title.
Configuration files
MLServer\BTVMenus.xml is the file at the heart of the UI navigation. Should you decide to translate the UI, this single file and the images referenced in it should get you more than 90% through.
<title> = To be used in the top-right corner if the <img_name> is not available. <loc_name> = The location is used to select a specific scene. <img_name> = To be used in the top-right corner. <mls_name> = Scene to be used for this Location.
<item_count> = Number of items of the menu. <item_name> = Text of the item. <item_desc> = Description of the item. <item_icon> = Icon before the Text. <item_fx> = Overlay to load when this item is selected. <item_loc> = Location to go when this item is selected. <item_cmd> = ML command to execute when this item is selected. <item_mls> = Scene to launch when this item is selected. <item_exec> = Special command, for example to play a video file.
item_fx, item_loc, item_cmd and item_mls are mutually exclusives, only one should be defined per item.
<fx_name> = Scene to be used for this overlay. <fx_locx> = X location for this overlay. <fx_locy> = Y location for this overlay. <menu_prompt> = Prompt to be used for this overlay.
<airtime> = Text used to display the air time of a recording. <duration> = Text used to display the duration of a recording.
Keyboard shortcuts
This is the list of shortcuts to use with a keyboard (or to map on a remote control):
Arrow Up/Down: Change the selected row. Arrow Left/Right: Change the view of the Recorded shows scene. ESC: Go back to the previous scene. (Disable the "Exit key" in MainLobby if you want to use it) Enter: Select an item. Home: Go to the BTVHome scene. PgUp/PgDown: Scroll Up/Down by one page. ,: Go to the first page. .: Go to the last page.
Recent changes
- Bug fixes.
- Fixed the 25/55 min. update frequency.
- Updated for Beyond TV 4.9.
- Changed the log file handling.












