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
Basically there are two tricks here:
- there is a different menu for every choice of data stream for a given single track. For Subtitles, there is:
- No subtitles
- English subtitles
- Spanish subtitles
- Japanese subtitles
- 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. - 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: