DVD buttons

I made buttons on my DVD that set the subtitle language and the commentary audio track… but I wanted the menu to also show which track was active, independent of which button the cursor was selecting.

For example, suppose the Vietnamese subtitles are active-

  • when on the subtitles menu, the user can move the cursor over any of the items representing different languages’ subtitles.
  • But there will be a graphic conveying that the active subtitles are in Vietnamese. Possibly just a sign saying SUBTITLES: VIETNAMESE
  • When the user selects Vietnamese, nothing happens, because those subtitles are already active.
  • When the user selects Spanish, the graphic changes to SPANISH

Well, I did it. How?
Basically there are two tricks here:

  1. there is a different menu for every choice of data stream for a given single track. For Subtitles, there is:
    1. No subtitles
    2. English subtitles
    3. Spanish subtitles
    4. Japanese subtitles
    5. Vietnamese subtitles

    The state of the active subtitle is reflected in which version of the Subtitles menu being displayed;
    selecting one of the buttons for another language will link to that particular menu.

  2. there is a central Subtitles page which forwards to the appropriate Subtitles page. The page runs a script and queries a register to see the current subtitle setting. All other menus forward to this central page and not to the individual subtitle pages

The feature track should run a script at its termination to see which menu it should be returning to! I have renamed all my variables so I don’t get confused. Their values are occaisionally bitwise ANDed with the SPRM values:

  • SPRM 0 is the current menu language (e.g. “en”=0x656E for English)
  • SPRM 1 is the current audio stream number… starting with 0 (add one to get stream number)
  • SPRM 16 is the initial audio language code for this DVD player
  • SPRM 2 is the current subtitle stream number-

    • range is 0 through 31… (add one to get stream number)
    • “on” flag is decimal 64 = binary 01000000 = 0x40
  • SPRM 18 is the initial subtitle language code for this DVD player

Links: