2020TPC-SW/2020TPCApp1.cydsn/Menu/HardwareSettings/VolumeMenuItem.c
2025-02-01 19:52:04 -06:00

72 lines
No EOL
2.2 KiB
C

/* Include Files */
#include "KTag.h"
#define MAX_VOLUME 30
#define MIN_VOLUME 5
static void OnFocus(bool IncludeDetails);
static MenuItem_T const * OnSelect();
static void OnIncrement();
static void OnDecrement();
const MenuItem_T VolumeMenuItem =
{
.OnFocus = OnFocus,
.OnSelect = OnSelect,
.OnIncrement = OnIncrement,
.OnDecrement = OnDecrement
};
static void OnFocus(bool IncludeDetails)
{
AudioAction_T audio_action = {.ID = AUDIO_PLAY_VOLUME_PROMPT, .Play_To_Completion = true, .Data = (void *)0x00};
xQueueSend(xQueueAudio, &audio_action, 0);
if (IncludeDetails == true)
{
AudioAction_T volume_action = {.ID = AUDIO_PRONOUNCE_NUMBER_0_TO_100, .Play_To_Completion = true, .Data = (void *)&NVM_VOLUME};
xQueueSend(xQueueAudio, &volume_action, 0);
}
}
static MenuItem_T const * OnSelect()
{
AudioAction_T audio_action = {.ID = AUDIO_PLAY_SELECTION_INDICATOR, .Data = (void *)0x00};
xQueueSend(xQueueAudio, &audio_action, 0);
return NULL;
}
static void OnIncrement()
{
if (NVM_VOLUME < MAX_VOLUME)
{
NVM_VOLUME++;
}
AudioAction_T set_volume_action = {.ID = AUDIO_SET_VOLUME, .Data = (void *)&NVM_VOLUME};
xQueueSend(xQueueAudio, &set_volume_action, 0);
AudioAction_T audio_action = {.ID = AUDIO_PLAY_VOLUME_PROMPT, .Play_To_Completion = true, .Data = (void *)0x00};
xQueueSend(xQueueAudio, &audio_action, 0);
AudioAction_T volume_action = {.ID = AUDIO_PRONOUNCE_NUMBER_0_TO_100, .Play_To_Completion = true, .Data = (void *)&NVM_VOLUME};
xQueueSend(xQueueAudio, &volume_action, 0);
}
static void OnDecrement()
{
if (NVM_VOLUME > MIN_VOLUME)
{
NVM_VOLUME--;
}
AudioAction_T set_volume_action = {.ID = AUDIO_SET_VOLUME, .Data = (void *)&NVM_VOLUME};
xQueueSend(xQueueAudio, &set_volume_action, 0);
AudioAction_T audio_action = {.ID = AUDIO_PLAY_VOLUME_PROMPT, .Play_To_Completion = true, .Data = (void *)0x00};
xQueueSend(xQueueAudio, &audio_action, 0);
AudioAction_T volume_action = {.ID = AUDIO_PRONOUNCE_NUMBER_0_TO_100, .Play_To_Completion = true, .Data = (void *)&NVM_VOLUME};
xQueueSend(xQueueAudio, &volume_action, 0);
}