2025-02-23 18:02:35 -05:00

85 lines
1.8 KiB
C

/*
* File: AudioConsole.h
* Author: JF
*
* Created on February 20, 2025, 2:30 PM
*/
#ifndef AUDIOCONSOLE_H
#define AUDIOCONSOLE_H
#include "define.h"
#include "AudioConsoleInterface.h"
#include "WiFiCtrl.h"
#include "BoardCfg.h"
#define AUDIO_CONSOLE_WAIT_FOR_WIFI_TIMEOUT 1000
#define AUDIO_CONSOLE_WAIT_FOR_CONNECT_TIMEOUT 10000
#define AUDIO_CONSOLE_STATUS_REQUEST_TIMEOUT 1000
#define AUDIO_CONSOLE_MAX_STATUS_RETRY 5
#define AUDIO_CONSOLE_VOLUME_INCREMENT 1
enum eAudioConsoleZone
{
AUDIO_CONSOLE_SALON_ZONE,
AUDIO_CONSOLE_CUISINE_ZONE
};
typedef struct eAVReceiverStatus
{
bool MainPwrStatus;
bool MainSleepStatus;
bool IsMute;
bool DataValid;
bool ReceiverOnline;
bool SyncZones;
unsigned int MainVolume;
}AVReceiverStatus_t;
enum eAudioConsoleStates
{
AUDIO_CONSOLE_INIT_STATE,
AUDIO_CONSOLE_DISCONNECTED_STATE,
AUDIO_CONSOLE_CONNECTING_STATE,
AUDIO_CONSOLE_RUN_STATE,
AUDIO_CONSOLE_MAX_STATE
};
enum eAudioConsoleSMEvents
{
AUDIO_CONSOLE_SM_TICK_EVENT,
AUDIO_CONSOLE_SM_CONNECTED_EVENT,
AUDIO_CONSOLE_SM_DISCONNECTED_EVENT,
AUDIO_CONSOLE_MAX_EVENT
};
int AudioConsoleInit();
void AudioConsoleTick();
int AudioConsoleSetIFConnectionStatus(bool Connected);
int AudioConsoleSetReceiverStatus(AVReceiverStatus_t *MainZone, AVReceiverStatus_t *Zone2);
int AudioConsoleSM(int Event);
int AudioConsoleDisconnected();
int RequestStatus();
int SendMainVolumeToMaster();
int SendZone2VolumeToMaster();
int SendLinkZ2VolumeToMaster(bool link);
int SendMainZonePwrToMaster(bool ON);
int SendZone2PwrToMaster(bool ON);
int AudioConsoleVolumeUp(int Zone);
int AudioConsoleVolumeDown(int Zone);
int LinkZ2BtnPressed();
int MainZonePwrBtnPressed();
int Zone2PwrBtnPressed();
#endif /* AUDIOCONSOLE_H */