Commit Graph

827 Commits

Author SHA1 Message Date
vk7js 5829df6dd3 Now read speed, altitude and direction changes on the GPS screen automatically with a forced minimum of 10 seconds between readings to avoid a bit of hysterisis .
Can still get full summary on long hold f1.
2022-10-28 08:30:47 +02:00
vk7js 3ba094f633 Minor cleanup of beep code. 2022-10-28 08:30:47 +02:00
vk7js 104f18d9e9 Added vp_beepSeries to play a melody.
Now play melody on power up if vp level set to Beep.
2022-10-28 08:30:47 +02:00
vk7js dc285ab023 Moved beep definitions into header beeps.h. 2022-10-28 08:30:47 +02:00
vk7js d8fa0465fb Fixed following bug:
1. hit enter to go to banks menu.
2. hit escape.
3. hit enter again and radio does not announce banks menu because it was the last menu active.
Now reset the menu tracking variables on Escape.
2022-10-28 08:30:47 +02:00
vk7js da7dfe63b2 Avoid calling beep if we know the voice will announce something since it will be
canceled and most likely generate an unwanted click.
2022-10-28 08:30:47 +02:00
vk7js 91d19e809e Fixed issue of menus not reading at vp level 1. 2022-10-28 08:30:47 +02:00
vk7js eb89f5a55a Now play generic beep on any key press as well as different tones when navigating the menu, when menu item wraps, and when function key latches and unlatches if voice prompt level is set to beep. 2022-10-28 08:30:47 +02:00
vk7js a1e302b19d Got beeps working so long as you don't have ctcss set.
Reduced durations to sensible values.
2022-10-28 08:30:47 +02:00
vk7js 3c20a5282e Fixed nasty popping between every voice prompt and after every silence.
When retrieving the codec2 data, ensure it is an exact multiple of codec2 frames and always discard the very last frame.
2022-10-28 08:30:47 +02:00
Silvano Seva 80f6fe2289 Stopping audio codec at the and of each voice prompt 2022-10-28 08:30:47 +02:00
vk7js 0298aa897b Implemented beeps on MD-UV3x0 platform driver. 2022-10-28 08:30:47 +02:00
vk7js 32fd910e64 Fixed warnings. 2022-10-28 08:30:47 +02:00
vk7js 70ba324ef3 Fixed menu announcements so that menu item names are always spoken. 2022-10-28 08:30:47 +02:00
vk7js b39ab4f0d5 Added "Used heap" to voice prompts for Info screen. 2022-10-28 08:30:47 +02:00
vk7js 6a56fe3d3a Fixed satellite count readout. 2022-10-28 08:30:47 +02:00
vk7js a71a06c57a 1. Renamed beepTick to beep_tick for consistency.
2. Made beep_tick static.
3. call beep_tick from top of vp_tick because in its prior location it might
not actually be called.
2022-10-28 08:30:47 +02:00
vk7js a081964ac8 Fixed Backup and Restore menus as follows:
1. Fixed issue of voice not reading backup or restore messages but instead
stuttering indefinitely.
2. Can now press cancel to exit the menu so long as you haven't pressed PTT to
start the process.
2022-10-28 08:30:47 +02:00
vk7js f8bfc7fb13 Added mechanism for specifying exactly what is read in the summary. 2022-10-28 08:30:47 +02:00
vk7js 495b721231 Fixed setting of CTCSS and tone so that one can rapidly change tone without hearing the word "tone", "receive tone," "transmit tone" etc prior to each tone value. 2022-10-28 08:30:47 +02:00
vk7js d622080cfe Do a better job of determining when to say Menu.
In info screen, avoid very rapid announcements of battery fluctuations.
For same menu name, only read value changes once per second for automatic reading.
2022-10-28 08:30:47 +02:00
vk7js c9ce41a999 Initial beep implementation.
Function latch will play high beep when latched and low beep when latch times out.
Menus will play a high beep when you arrow through them and a low beep when you reach the first item.
All keys should play a generic beep sound but this has not been implemented yet.
2022-10-28 08:30:46 +02:00
vk7js 95b7707d87 Implemented speech feedback for setting UTC timezone.
Added speaking of negative sign for vp_queueInteger (plus is assumed if not negative).
2022-10-28 08:30:46 +02:00
vk7js 9a250ec994 Added speech feedback to settings/display/timer menu. 2022-10-28 08:30:46 +02:00
vk7js 0138d843b1 Improved time/date entry:
1. Now give format as dd/mm/yy before date and hh:mm before time.
2. Say the slash immediately after the 2nd and 4th digits are entered in the date and the colon immediately after the 2nd digit of the time.
3. Removed speaking of the 2nd colon in the time since seconds input is disallowed.
2022-10-28 08:30:46 +02:00
Silvano Seva e5de5b96a3 Fixed announcement of power level both in settings menu and channel summary 2022-10-28 08:30:46 +02:00
vk7js 0452bd0f10 Added voice feedback for setting the time and date. 2022-10-28 08:30:46 +02:00
vk7js ac7a2b94a9 Adjusted vp_anounceBuffer to distinguish between a callsign buffer and a regular name buffer. 2022-10-28 08:30:46 +02:00
vk7js a1d782b16c Fixed backspacing text input so that it reads the char backspaced correctly. 2022-10-28 08:30:46 +02:00
vk7js 11132e4949 Speak original callsign if escape is pressed to cancel edit from m17settings edit mode. 2022-10-28 08:30:46 +02:00
vk7js c0eba3866e Added voice feedback for the M17 Settings Menu:
1. Added vp_announceBuffer to speak a prompt, edit mode and string buffer.
2. Added logic to the vp_announceScreen for m17Settings read-only mode.
3. Added logic for handling edit mode.
4. Removed vpCaps flag from several places because it is irrelevant when input only supports caps.
2022-10-28 08:30:46 +02:00
vk7js 579ce7baa5 Removed the word "banks" from channel summary since name of bank or "all channels" is sufficient by itself. 2022-10-28 08:30:46 +02:00
vk7js 5ed0121780 Fixed announcement of channel number/name in summary and when changing channel. 2022-10-28 08:30:46 +02:00
vk7js 30e8671044 If there is no GPS fix, do not announce lat, long, ... 2022-10-28 08:30:46 +02:00
vk7js 9f52c98c2f Removed unnecessary trailing zeros from lat/long announcement. 2022-10-28 08:30:46 +02:00
vk7js 2139f5e391 Refactored to add generic function for speaking int settings. Made brightness and contrast prompt use this. 2022-10-28 08:30:46 +02:00
vk7js 04e7f044ff Added announcement of Brightness when changing from the Settings/Display menu. 2022-10-28 08:30:46 +02:00
vk7js 1e87493183 When enter is pressed to change an item's value and edit mode is enabled, indicate this so that the user knows they can actually change the value.
Updated voiceprompts.vpc with edit prompt.
2022-10-28 08:30:46 +02:00
vk7js 52479d10b5 Minor cleanup
Added Accessibility menu name to string table for voice prompt announcement.
Removed unnecessary comment.
2022-10-28 08:30:46 +02:00
vk7js 9f5a45954d When GPS is disabled, and you choose the GPS menu item, announce GPS off rather than nothing. 2022-10-28 08:30:46 +02:00
vk7js 8cb9272881 Added vp_announceScreen to automatically announce informational screens such as VFO, channel, ... 2022-10-28 08:30:46 +02:00
Silvano Seva 158b38d113 Clearing buffer index and length of codec2 data when the reproduction of a voice prompt is completed 2022-10-28 08:30:46 +02:00
Silvano Seva cad026f902 Renamed vp_clearCurrPrompt() to vp_flush(), added a vp_stop() function allowing to stop an in-progress voice prompt but without flushing the data buffer 2022-10-28 08:30:46 +02:00
Silvano Seva d81a4220d1 Fixed voice prompt bugs
Fixed following voice prompt bugs:
1. Now say OpenRTX when powering on if vp enabled to let user know radio is on.
2. When switching back to VFO or channel mode from menus, now anounce VFO info or channel info.
3. When entering first digit of frequency in VFO input mode, say it.
4. Refixed issue of concatenating menus rather than clearing menu.
2022-10-28 08:30:46 +02:00
Silvano Seva 1383e3d61e Reset prompt buffer position to zero once VP had finished speaking so that another play would replay the buffer 2022-10-28 08:30:46 +02:00
Silvano Seva 99408a5455 Added function to announce generic on/off toggle settings. 2022-10-28 08:30:46 +02:00
Silvano Seva 33867ec009 Fixed speaking of voice prompt level when changing from the menu. 2022-10-28 08:30:46 +02:00
Silvano Seva 7a78ece920 Fixed announcement of ctcss tones, now the decimal point gets announced. 2022-10-28 08:30:46 +02:00
Silvano Seva a40cba2430 Added missing entry in VP table and fixed off-by-one for string table lookups. 2022-10-28 08:30:46 +02:00
Silvano Seva 10dcf04a92 Fixed concurrency issue inside audio codec module: after calling codec_stop() the codec resulted free before the effective shutdown of the internal thread, causing codec_decode() to lock inside the outputStream_start() in case of a fast sequence of decode - stop - decode 2022-10-28 08:30:46 +02:00
Silvano Seva d0d603901e Implemented storage of voice prompts data inside the binary executable image. Voice prompts data is placed in .rodata section at link time 2022-10-28 08:30:46 +02:00
Silvano Seva cf842306c2 Partially refactored UI code 2022-10-28 08:30:46 +02:00
Silvano Seva 42b262c437 Refactored voicePromptUtils.h and voicePromptUtils.c 2022-10-28 08:30:46 +02:00
Silvano Seva c5f109efa5 Refactored voicePrompts.c 2022-10-28 08:30:46 +02:00
Silvano Seva df5341e103 Refactored voicePrompts.h, aligned function names of voice prompt API to OpenRTX coding style 2022-10-28 08:30:46 +02:00
Silvano Seva 5840f459fa Renamed UIStrings.h/.c to ui_strings.h/.c and refactored their content 2022-10-28 08:30:46 +02:00
Niccolò Izzo 8eca684a7d Voice prompts bugfixes:
- added missing initialization of codec2 in voice prompts code
- discarding the voice prompt header as we only support 3200 bit rate
- fixed wrong offset in pick vpQueueStringTableEntry
- fixed bug in vpInit causing voiceprompts to hang
2022-10-28 08:30:46 +02:00
vk7js 5bb7fc96a8 Renamed a few variables for case consistency, reimplemented vpTick and call from same place as ui_updateFSM to continue playing voice prompts. 2022-10-28 08:30:46 +02:00
vk7js befc892068 When reading codec2 data, pad out to a multiple of 8 bytes with 0s so that when frames are pushed from the buffer, we don't get garbage at the ends of prompts which are not an exact multiple of 8 bytes. 2022-10-28 08:30:46 +02:00
vk7js 69b023dd4a First cut at implementation of vpPlay. 2022-10-28 08:30:46 +02:00
vk7js 6b83af622c Corrected vpDataOffset, now use ftell to obtain file offset after reading in header and toc. Added better verification that the TOC was actually read. 2022-10-28 08:30:46 +02:00
vk7js e09ce7e95a Added function implementation to read voiceprompts.vpc header, then read in the table of contents into ram, and then on request, read the codec2 data into the codec2 buffer given an offset and length into the data. 2022-10-28 08:30:46 +02:00
Niccolò Izzo 1f71789a9d Apply clang-format 2022-10-28 08:30:46 +02:00
vk7js 29de1d36d4 Added a couple of comments and added whitespace between a couple of functions. No code changes. 2022-10-28 08:30:46 +02:00
vk7js bec9ec0218 Added call to ReleaseFunctionLatchIfNeeded to status event branch of fsm so that the function latch will be released when needed without having to wait for a key press. 2022-10-28 08:30:46 +02:00
vk7js 9038745b6f extracted logic for testing if the function key is latched into its own function for readability. 2022-10-28 08:30:46 +02:00
vk7js bc7ce57f9b Reworked function latch. Now, the latch is silently released on the next key press event which is outside the timeout. 2022-10-28 08:30:46 +02:00
vk7js da935ff710 Added function menu latch.
1. If the moni key is long pressed by itself (no digit), function key latches.
2. It remains latched for 3 seconds.
3. If a subsequent key is pressed during this time, the timer is restarted at 3 seconds again, allowing the user to say increase the ctcss code while keeping the function latched.
4. If no key is pressed, the timer is allowed to lapse and the function unlatched.
2022-10-28 08:30:46 +02:00
vk7js 895a5ce780 Fixed error in AnnounceMenuIfNeeded, it was speaking the name twice rather than the name and value. 2022-10-28 08:30:46 +02:00
vk7js 611bd3d142 Fixed error in announceText(): wrong flags were passed to vpQueueString 2022-10-28 08:30:46 +02:00
vk7js d57700c607 removed old comment and unnecessary code. 2022-10-28 08:30:46 +02:00
vk7js 6e4af40346 hooked up warning messages. May need tweaking.
Msg may repeat on keyup.
2022-10-28 08:30:46 +02:00
vk7js 1f36e9b9d8 Added voice prompt to warn that during backup/restore no voice prompts will be available.
Note that this is stil not hooked up.
2022-10-28 08:30:46 +02:00
vk7js 7cd3f1d49a Added announceSettingsTimeDate and hooked up to f1 on that screen. 2022-10-28 08:30:46 +02:00
vk7js 29bde26f4f Added announceBackupScreen() and announceRestoreScreen() 2022-10-28 08:30:46 +02:00
vk7js b1c07e3d3f Added speech for About screen. 2022-10-28 08:30:46 +02:00
vk7js 8527b8a6ef Add GPS voiceprompts announcing
Removed flag parameters from summary and GPSInfo,
hooked up the GPS info so that if the GPS screen is active,
long hold f1 will read the GPS summary and f1 will repeat the last
voice prompt like on the VFO and channel screens.
2022-10-28 08:30:46 +02:00
vk7js c0371dad2a Added pauses between lots of info in summary for comprehensibility. 2022-10-28 08:30:46 +02:00
vk7js 46e3900462 corrected gps summary to use a stingized float for the compass bearing.
Also fixed another warning.
2022-10-28 08:30:46 +02:00
vk7js c24af62000 added more to GPS summary and fixed a couple of warnings. 2022-10-28 08:30:46 +02:00
vk7js 4b604e255f Added a few more voice prompts for the GPS screen: latitude, longitude, north, south, east,west, speed, altitude. 2022-10-28 08:30:46 +02:00
vk7js 0a4ed4009c Added announceGPSInfo so we can read something meaningful for the GPS screen (not yet hooked up). 2022-10-28 08:30:46 +02:00
vk7js c3667313ba Extracted announceM17Info logic to its own function. 2022-10-28 08:30:46 +02:00
vk7js 339131a5b7 Added M17 dst_addr to channel summary.
Added zone name to channel summary if called from memmory mode.
2022-10-28 08:30:46 +02:00
vk7js 74ab9cbbf6 Fixed voice menu, it will now display as: Voice off, Voice Beep, or Voice 1 through 3. 2022-10-28 08:30:46 +02:00
vk7js 206e827aeb Implement three levels of verbosity
Implemented the three levels of verbosity, besides none and beep:
1. Low: menus will speak but frequency and channel changes will just beep.
2. Medium: everything will speak but extra descriptions are eliminated except where ambiguity might occur.
3. High: Like medium except extra descriptions are spoken unles rapidly keying through menus in which case only the value will be spoken.
2022-10-28 08:30:46 +02:00
vk7js 16abf941d4 Added Voice menu to settings.
The Voice menu has two options:
Level: off, beep, level 1, level 2, level 3,
Phonetic: off, on.
2022-10-28 08:30:46 +02:00
vk7js 2102c15602 Hook up voice prompts in main startup routine
1. Call vpCacheInit() from the main startup routine.
2. If voice prompts are successfully loaded, and the hash key is held down, and the vp level is less than low, vp level is set to high.
3. If voice prompts are not loaded, and the level was set to something higher than beep, it is set to beep so that at a minimum, the user gets some beep feedback. If it was already set to off, nothing is changed.
2022-10-28 08:30:46 +02:00
vk7js 62ae110a19 Added more to the channel/vfo summary for M17 and DMR.
1. added contact name,
2. added timeslot and color code.
3. added new voice prompts.
2022-10-28 08:30:46 +02:00
vk7js 07d971ecfb Hooked up repeat last voice prompt and summary to f1 if vpLevel is higher than beep. 2022-10-28 08:30:46 +02:00
vk7js 8fab0b1e8c Added vpLevel and vpPhoneticSpell to settings.
These take up 4 bits with 4 bits reserved for on the fly voice rate.
Not yet hooked up to menus.
2022-10-28 08:30:46 +02:00
vk7js 50b29065ae Adjusted long comment to wrap. 2022-10-28 08:30:46 +02:00
vk7js a5985dd55d Added custom dictionary support for common words used in Channel names and contact names (ported from AccessibleGD77).
Added 9 custom word prompts. (One unused).
2022-10-28 08:30:46 +02:00
vk7js 537a20eef5 Add prompts for brightness and squelch
Added support for announcing macros for adjusting brightness and squelch.
Added voiceprompt for squelch.
2022-10-28 08:30:46 +02:00
vk7js e74eccfffd Added support for macro 6 announcing the cycling of radio mode. 2022-10-28 08:30:46 +02:00
vk7js d19e0d57ec Added bandwidth and power announcements
Added bandwidth and power announcement for both macro and summary.
Added new voice prompts for bandwidth and power.
2022-10-28 08:30:46 +02:00
vk7js 5a8044437c Added CTCSS tone announcement to channel/vfo summary. 2022-10-28 08:30:46 +02:00
vk7js 68926a72c4 Began work on the macros screen.
Toggling tone or enabling/disabling (macros 1 and 2) now supported.
Added new voice prompt for tone.
2022-10-28 08:30:46 +02:00
vk7js 4098baa5a8 When speaking a menu and its value, only speak the name if a prompt is not in progress. 2022-10-28 08:30:46 +02:00
vk7js 0ab179a701 use constant for string length for prior menu name and value.
Also reset prior value if name changes.
2022-10-28 08:30:46 +02:00