Difference between revisions of "Computing screen"

From LinuxMCE
Jump to: navigation, search
(For OnScreen Orbiters)
m
 
(10 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
   |}
 
   |}
 
[[Category: Programmer's Guide]]
 
[[Category: Programmer's Guide]]
[[Category: Tutorials]]
+
[[Category: Tutorials| Computing]]
 
== Introduction ==
 
== Introduction ==
  
The Computing screen allows you to use external applications, like Mozilla or MythTV Setup. There are two columns on the screen -- one for installed programs and one for web bookmarks.
+
The Computing screen allows you to use external applications, like Mozilla Firefox or MythTV Setup. There are two columns on the screen -- one for installed programs and one for web bookmarks.
  
== Specifications ==
+
== How to add "installed programs"==
 +
The "Computing" button on the Orbiter menu brings up a list of "installed programs" and "Web bookmarks."
 +
[[Adding new computing apps]]
 +
 
 +
== How to use ==
  
 
=== For OnScreen Orbiters ===
 
=== For OnScreen Orbiters ===
Line 21: Line 25:
 
Whenever you then click the home button, the main menu will reappear.
 
Whenever you then click the home button, the main menu will reappear.
  
=== For non-OSD Orbiters ===
+
=== For other Orbiters ===
Clicking on the cell from the data-grid will bring you to an "application desktop remote" screen, from where you will be able to control the external application running on the OSD Orbiter from the same room. Pressing "stop" button will close the external application.
+
For Orbiters that do not use the on-screen Orbiter menu (such as webpads, mobile phones, and PDAs), the procedure is similar.
  
Note: if xine or other player is also running, while playing with Computing features, xine window shouldn't be visible. Also, if an external application is running and you are going to media and you will play a movie, only xine should be visible and Orbiter.
+
*If xine or another media player is running while using the Computing features, the xine window won't be visible.
 +
*If an external application is running and you wish play a movie, xine will be visible instead of the Orbiter menu.
  
== Implementation details ==
+
== Programming details ==
  
To encapsulate the logic for Computing screen, a screen handler is being used, overridden in ScreenHandler the method SCREEN_Computing.  
+
To encapsulate the logic for the Computing screen, a Screen Handler is used. The ScreenHandler is overridden by the SCREEN_Computing method.  
  
 
=== SCREEN_Computing method ===
 
=== SCREEN_Computing method ===
  
In here:
 
  
- we are registering callbacks for cbObjectSelected and cbDataGridSelected events.
+
*Callbacks for cbObjectSelected and cbDataGridSelected events are registered.
  
- then will we decide if this orbiter is a OSD orbiter (in which case we know the status of any external application that might be started) or not (in which case will use 'Get Active Application' and get the info from the right OSD Orbiter);
+
*Decide if this Orbiter is an on-screen OSD orbiter (in which case we will know the status of any external application that might be started) or not (in which case we will use 'Get Active Application' to get the info from the Orbiter in use
  
- if there is an external application running, we'll show "Desktop" and "Exit" buttons and the associated label; if not, these objects will be hidden.
+
*If there is an external application running, show the "Desktop" and "Exit" buttons and the associated label; if not, these objects will be hidden.
  
 
=== Computing_ObjectSelected callback method ===
 
=== Computing_ObjectSelected callback method ===
  
If the user presses "Exit" button, orbiter will send a "kill application" command to App_Server and it goes to main menu. Also, any information related to an external application running is being reseted.
+
If the user presses "Exit" button, Orbiter will send a "kill application" command to App_Server and returns to the main menu display. Any information related to an external application running is reset.
  
If the user presses "Remote" button, the controlled Orbiter is sent to "Application Desktop" screen and an "Activate Window" with the window class of the external application as parameter is sent to controlled Orbiter. Orbiter already has all the information about external application.
+
If the user presses "Remote" button, the controlled Orbiter is sent to the "Application Desktop" screen and an "Activate Window" (using the window class of the external application as a parameter) is sent to controlled Orbiter. The Orbiter already should have the information about the external application.
  
 
=== Computing_DatagridSelected callback method ===
 
=== Computing_DatagridSelected callback method ===
  
Once a cell is clicked in Computing screen, this callback method is being called. The cell has embedded in its value variable a comma delimited list will parameters about the application to run (window class, description, etc.). Then, a "Spawn Application" command is sent to App_Server and the controlled Orbiter will be notified with a "Active Window" command about the external application being started.
+
Once a cell is clicked in the Computing screen menu, this callback method is invoked. The cell has embedded in its value variable a comma delimited list with parameters about the application to run (window class, description, etc.). A "Spawn Application" command is sent to App_Server and the controlled Orbiter will be notified so that a "Active Window" command about the external application is started.
  
 
=== Activate Window command ===
 
=== Activate Window command ===
  
This command is implemented in its overridden version for OrbiterLinux. In here, a small module called "Windows List Manager" is being notified about the application to activate. When Orbiter goes to "Application Desktop" screen, RenderDesktop is called and OrbiterLinux will know that it's time to find the external application's window and to activate it / set its position.
+
This command is implemented in the overridden version of OrbiterLinux. In here, a small module called "Windows List Manager" is notified about the application to activate. When Orbiter goes to the "Application Desktop" screen, RenderDesktop is called and OrbiterLinux will know that it's time to find the external application's window and to activate it and set its position.

Latest revision as of 00:03, 11 March 2017

Introduction

The Computing screen allows you to use external applications, like Mozilla Firefox or MythTV Setup. There are two columns on the screen -- one for installed programs and one for web bookmarks.

How to add "installed programs"

The "Computing" button on the Orbiter menu brings up a list of "installed programs" and "Web bookmarks." Adding new computing apps

How to use

For OnScreen Orbiters

The on-screen Orbiter menu is used by a Media Director.

On the on-screen Orbiter main menu, click the "Computing" button. This will bring up a screen displaying "Installed programs" and "Web bookmarks".

If you click on a web bookmark, Firefox be used to start the webpage in fullscreen mode (except the "Home" and "Stop" buttons, which will be displayed at the bottom of the screen). The keyboard and mouse will control Firefox; events and orbiter will ignore the keyboard until Firefox is closed.

If you click on an Installed Program, the "Application Desktop" will appear, running the installed program. Below the "Desktop" button will be a label that indicates the name of the external application running. To close the external application, press the "Exit" button. (If no external application is running, the label, "Desktop" and "Exit" buttons will be hidden.)

Whenever you then click the home button, the main menu will reappear.

For other Orbiters

For Orbiters that do not use the on-screen Orbiter menu (such as webpads, mobile phones, and PDAs), the procedure is similar.

  • If xine or another media player is running while using the Computing features, the xine window won't be visible.
  • If an external application is running and you wish play a movie, xine will be visible instead of the Orbiter menu.

Programming details

To encapsulate the logic for the Computing screen, a Screen Handler is used. The ScreenHandler is overridden by the SCREEN_Computing method.

SCREEN_Computing method

  • Callbacks for cbObjectSelected and cbDataGridSelected events are registered.
  • Decide if this Orbiter is an on-screen OSD orbiter (in which case we will know the status of any external application that might be started) or not (in which case we will use 'Get Active Application' to get the info from the Orbiter in use
  • If there is an external application running, show the "Desktop" and "Exit" buttons and the associated label; if not, these objects will be hidden.

Computing_ObjectSelected callback method

If the user presses "Exit" button, Orbiter will send a "kill application" command to App_Server and returns to the main menu display. Any information related to an external application running is reset.

If the user presses "Remote" button, the controlled Orbiter is sent to the "Application Desktop" screen and an "Activate Window" (using the window class of the external application as a parameter) is sent to controlled Orbiter. The Orbiter already should have the information about the external application.

Computing_DatagridSelected callback method

Once a cell is clicked in the Computing screen menu, this callback method is invoked. The cell has embedded in its value variable a comma delimited list with parameters about the application to run (window class, description, etc.). A "Spawn Application" command is sent to App_Server and the controlled Orbiter will be notified so that a "Active Window" command about the external application is started.

Activate Window command

This command is implemented in the overridden version of OrbiterLinux. In here, a small module called "Windows List Manager" is notified about the application to activate. When Orbiter goes to the "Application Desktop" screen, RenderDesktop is called and OrbiterLinux will know that it's time to find the external application's window and to activate it and set its position.