6.9 KiB
Interface Design
Purpose:
This document will outline all of the interface design of this project.
The Front Display Interface Module is a small VFD display that has some information text at the top, and a clock. And two rows of text available. All display decisions must be made with that in mind. More details on specific charactersets and line lengths will be provided later.
Available Features:
List of all controls on the FCIM:
- LOAD
- EJECT
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 0
- DIRECT
- CLOCK
- VOLUME LEFT/RIGHT
- POWER (Push button attached to VOLUME knob)
- PHONE
- SCAN
- CAT/FOLD
- SEEK UP/DOWN/LEFT/RIGHT
- SOUND
- MENU
- TEXT
- TUNE LEFT/RIGHT
- OK/PLAY/PAUSE (Push button attached to TUNE knob)
- AM/FM
- CD
- AUX
- SIRIUS
All of these are sent as single pulses through the system, there is no hold tracking.
Basic Overview
VOLUME LEFT/RIGHT:
Adjusts master volume by one interval and displays a temporary volume overlay for 5 seconds. Additional volume adjustments reset the timer.
The overlay does not change the current page, it acts like a pop-up. Global buttons continue to work normally while it is visible:
- CLOCK: Opens the clock menu
- SOUND: Opens Menu -> Sound
- MENU: Performs the normal MENU action for the underlying page
- OK: Performs the normal OK action for the underlying page
The overlay is dismissed immediately when CLOCK, SOUND, MENU, OK, or POWER are pressed. It also disappears automatically after 5 seconds of no volume input.
The volume slider range is 0-100% in 5% increments.
Note:
The formula for gain adjustment is db=20log10(p). So 50% => p=0.5 => 20log10(0.5)=-6.02db.
At 0%, the formula is replaced for a hard output shut off.
CLOCK:
Allows for time editing. Displays current time in the format HH:MM AM/PM. Prefilled with the current system time. The active editor will blink over HH MM or AM/PM to display what phase you are on. The page will have a 60 second timeout overall which is reset every time an input is given.
Pressing CLOCK from within this menu will reset the editor to the hour editor and refill the menu with the current system time.
Hour edit
- The TUNE knob will adjust the hour up/down 1 hour, wrapping from 12 to 1.
- Allows entering time via the number padm 0-9 is allowed
- If 1X is entered, the prefilled value for X is 3-9, it will change to 0 in the editor. i.e, A valid number shall always be displayed.
- If 1X is entered, only 0, 1, or 2 are allowed for X
- If 0X is entered, 0-9 is allowed for the second digit
- If 00 is entered, it will be converted to 12 when saving
- If 2-9 are entered for the first digit, it is treated as if you entered a 0 and then the number. e.g. 7 gets converted to 07, and continues to the minute stage
Minute edit
- The TUNE knob will adjust the minute up/down 1 hour, wrapping from 59 to 0.
- 0-5 is allowed for the first number
- 0-9 is allowed for the second numer
For both, when a valid second number is entered, or if OK is pressed, it will advance to the next editing stage
For both, using the TUNE knob will reset the editing number to the first digit
AM/PM edit
- The TUNE knob will flip between AM and PM
- The OK button will save the entered time into the system and exit the clock menu.
Pressing MENU will close the menu with no changes.
Validation:
- The hour field accepts 00 through 12
- 00:MM AM/PM is converted to 12:MM AM/PM when saved
- Two digit hours must be 0[0-9] or 1[0-2]
- Minute field may be [0-5][0-9]
LOAD, EJECT, DIRECT:
Unused.
NUMBERS:
Context specific, does nothing on unused pages.
PHONE:
Once a bluetooth module is connected, the PHONE button can be used to answer and hang up using the BT features.
SCAN:
Unused.
CAT/FOLD:
Unused.
Note: Traditionally used for filesystem based media stores, it switches between a category or folder navigation scheme. Probably based on metadata and the OK and TUNE L/R buttons to select after that.
SOUND:
Opens Menu->Sound from Now Playing or any standard menu page. This retains the top-level menu as part of the history, so MENU will return to the top-level if you hit them in sequence.
MENU:
- From Now Playing, opens the top-level menu.
- Inside a submenu, moves back one level
- At top-level menu, returns to Now Playing
TEXT:
Unused.
Traditionally used for scanning through metadata: Title, Artist, Album, Station info, file name, etc.
AM/FM CD AUX SIRIUS:
Unused.
Note: Maybe these could be used as shorthand for input control. They would have to be a "secret feature" because I can't change the button icons so they wouldn't be obvious.
OK/PLAY/PAUSE:
In menus, OK confirms or advances. On Now Playing, media will play/pause if available.
TUNE LEFT/RIGHT
Nothing unless context specific.
SEEK UP/DOWN/LEFT/RIGHT:
If available, LEFT/RIGHT sends back/next track signals.
UP/DOWN unused.
POWER:
Switches the system between Active and Standby mode from any page.
Menu Design
The home page will be called Now Playing, or the Now Playing Page. It is the standard screen that shows the current song / media state, clock, or anything else available.
10 seconds of inactivity on any menu page returns to Now Playing.
Exceptions:
- Clock edit has a 60 second timeout and cancels without saving.
- Bluetooth pairing and other eternal interactions define their own timeout.
- Volume temporary overlay does not affect the current page timeout.
- Now Playing has no timeout.
OK goes into a submenu or confirms the action selected.
Whenever an action is confirmed the screen may stay open for 5 seconds to display a confirmation to the user. e.g. Select Source -> Aux, a confirmation message that says Source: Aux may display. MENU will not back out from a confirmation. OK will skip the confirmation timer and return to Now Playing.
Menu Tree
Sound
Balance
Slider L/R
Fade
Slider F/R
Bass Control
Slider increment in dB. Range and increment to be determined
Select Source
Aux
S/PDIF
Bluetooth
Bluetooth
Unknown control scheme at the moment, include features like disconnect, connect, pair new device, etc
Advanced
Any necessary advanced features like system reboot (requires extra confirmation)
Standby Mode
- Audio output is muted.
- Playback is paused if relevant.
- Display only shows the clock, which can be adjusted.
- POWER puts the system back into active mode.
- No buttons except those relevant to clock menu and power do anything. Numbers, TUNE, OK, MENU, CLOCK, all work within the clock menu.
- If power is pressed while in the clock menu, it will be discarded and the system will move to active mode.
Sleep mechanics:
- If mode has media control, pause playback
- Volume is ramped down to 0 quickly
- DAC output is fully disabled
- Enter clock only display mode
Wake mechanics:
- Enable DAC output
- If mode has media control, restore playback to previous state (do not start if it was paused before)
- Ramp volume back to saved state
- Display Now Playing page