AVWizard

From LinuxMCE
Revision as of 17:30, 4 May 2008 by Perspectoff (Talk | contribs) (Initially)

Jump to: navigation, search

Note: Due to a bug in the 0704 release, the numeric keys 0-9 on the Windows XP I/R remote may not set your output connector & resolution. If they do not, use the 0-9 keys on the keyboard or use another remote.


The AVWizard has two points of view:


Background

Consumer a/v gear, like DVD's, cable boxes and TV's, handle video differently than PC's and PC monitors. PC's and PC monitors exchange information about the resolution and capabilities of the monitors using EDID. Using EDID, the PC figures out automatically what type of monitor and what type of video connector (VGA, DVI) is used. However, consumer a/v gear generally does not work like this. Instead the output resolution is generally set by a switch. The same video signal is output to all connectors at the same time.

This often leads to frustration when using a home theater PC. When you connect the PC to a TV, the PC still expects EDID information from the TV. Since most consumer TV's do not report EDID correctly, the PC often does not correctly detect the active connector, or outputs the wrong resolution.

For most Linux users using a TV as a monitor, the solution has been to determine the correct settings for the TV using a modeline tool, and then manually editing the modeline of the Xfree86 module in Linux. This only has to be done once for each TV.

Starting A/V Wizard

LinuxMCE is intended to act like a normal consumer a/v device, even though it is PC based. Therefore it does not use EDID to communicate to the TV or monitor. Instead, it uses whichever connector and whatever resolution you specify. This is done in the A/V setup wizard.

Initially

This wizard is started automatically the first time the system boots, and does not routinely start after that.

Starting A/V Wizard from the LinuxMCE menu

The A/V wizard can be restarted at any time from the LinuxMCE menu by choosing Advanced--> Advanced--> A/V Wizard from the main LinuxMCE menu.

Restarting the AVWizard during bootup

During bootup, either hold down the shift key on the keyboard, or press the "a/v menu" button on the remote to make A/V wizard start. During bootup you will hear a series of escalating beeps to tell you when LinuxMCE is monitoring the Shift & A/V Menu keys.

When you hear the descending beeps that means it's too late; the bootup has already gone past the AV Wizard check and LinuxMCE has already started.

How A/V Wizard Starts

When A/V Wizard starts it always outputs 640x480 on the VGA connector. So, if you are not using the VGA connector, you will likely see a blank, black screen when A/V Wizard starts, even if you previously saw the Kubuntu boot splash. You will know that the A/V Wizard is running because you hear a series of beeps. When you hear those beeps, if you have video, proceed to complete the A/V Wizard.

What to do if A/V Wizard does not start

If you do not, press the number 1 through 5 on the keyboard or the remote control to switch to the connector that is active. Wait about 15 seconds, and you will hear that same sequence of beeps telling you that A/V Wizard has now restarted using the connector you specified. If you don't hear the beeps after 15 seconds, press the number for your connector again.

 Keys for choosing a connector:

1: DVI
2: VGA
3: Component
4: Composite
5: S-Video

If you do hear the beeps, but you still don't see a picture, it's possible that the display you're using cannot handle 640x480. If so, then press the number 6-9, and 0, as shown below, to select a resolution. Again, 15 seconds later, you'll hear the beeps when A/V Wizard is running. If you need to choose a connector besides the default VGA, press the 1-5 key and wait until you hear the beeps again before choosing another connector or resolution.

Keys for choosing a resolution:

6: 640x480
7: 1024x768
8: 720p
9: 1080i
0: 1080p

Once you have a picture you can proceed to complete the A/V Wizard and resize your user interface to fit your screen, choose your audio outputs and so on. You can follow the instructions listed here:

A/V Wizard makes the process a bit more complicated for normal PC users that are using PC Monitors and used to having the video card automatically figure out the correct connector and resolution. But it's the only way to make it simple to use a home theater PC with a consumer TV and still HD video without needing to mess with complex utilities.

AVWizard steps

For a detailed look at the individual screens and the different methods of connecting your display see AVWizard Step by Step

AVWizard is a 10 steps easy wizard which covers everything of basic configuration of your system.

After that will launch an OrbiterGen which will create an Orbiter corresponding to that tool.

The pages are:

  • AV Welcome screen
  • AV Resolution and Refresh screen
  • AV Video Resolution counter
  • AV UI Switcher
  • AV Video Output
  • AV Audio Connector
  • AV Audio Volume
  • AV Dolby Test
  • AV DTS Test
  • AV Final Selections

Running A/V Wizard from Commandline

If you are having difficulty running the AVWizard normally (by selecting the option in the Orbiter) it can be run manually by typing in the command line.
/usr/pluto/bin/AVWizard_Run.sh

Note that you should kill X and any process trying to reload it before running the wizard. You should only do this if your attempt to run it normally fails for whatever reason.

Note: I had to use
sudo -s /usr/pluto/bin/AVWizard_Run.sh
to get my AVWizard to restart.

For developers

AVWizard is written in C++ using that libraries:

- SDL (SDL_image, SDL_rotozoom, etc.)
- libXML2
- network code

AVWizard has the next working steps:

- Generating screens of the AVWizard (in the /tmp folder as XML files)
- load one by one depending of the needs of running (Main AVWizard).

That two steps may be splitted in the future in two separately applications, that will make it more customisable and to not make it more "redundant code" like: defining object, save/load operations restore objects. The XML files keeps only the display representations of the data. The factory creates the coresponding objects in a WizardWidget class which contains a tree of WizardWidgets that has as much childs as we are used.