AudioConsole/AudioConsole.X/Source/AudioConsoleInterface.c
2025-02-23 18:02:35 -05:00

174 lines
5.3 KiB
C

#include "define.h"
#include "AudioConsoleInterface.h"
#include "WiFiCtrl.h"
#include "NetworkProtocol.h"
#include "ProtocolDefs.h"
#include "timer.h"
#include "AudioConsole.h"
#include <stdio.h>
#include "BoardCfg.h"
void AudioConsoleIFExecuteMasterCommand(unsigned char SenderID, unsigned char Command, unsigned char *Data, int DataSize)
{
switch(Command)
{
case AV_RECEIVER_INTERFACE_ACK:
{
break;
}
case AV_RECEIVER_INTERFACE_GENERAL_STATUS_RESPONSE:
{
ONBOARD_LED2_PIN = ~ONBOARD_LED2_PIN;
AVReceiverStatus_t MainZone, Zone2;
// bool MainPwrStatus = false;
// bool MainSleepStatus = false;
// bool IsMute;
// bool DataValid = false;
// bool ReceiverOnline = false;
// bool SyncZones = false;
// float MainVolume = 0.0;
//
// bool Zone2PwrStatus = false;
// bool Zone2SleepStatus = false;
// bool Zone2IsMute;
// bool Zone2DataValid = false;
// bool Zone2ReceiverOnline = false;
// bool Zone2SyncZones = false;
// float Zone2MainVolume = 0.0;
int IntToFloat = 0;
//Main Zone status
MainZone.MainPwrStatus = Data[0];
MainZone.MainSleepStatus = Data[1];
MainZone.MainVolume = Data[2];
MainZone.IsMute = Data[3];
MainZone.DataValid = Data[4];
MainZone.ReceiverOnline = Data[5];
MainZone.SyncZones = Data[6];
//Zone 2 status
IntToFloat = 0;
Zone2.MainPwrStatus = Data[7];
Zone2.MainSleepStatus = Data[8];
Zone2.MainVolume = Data[9];
Zone2.IsMute = Data[10];
Zone2.DataValid = Data[11];
Zone2.ReceiverOnline = Data[12];
Zone2.SyncZones = Data[13];
AudioConsoleSetReceiverStatus(&MainZone, &Zone2);
break;
}
case AV_RECEIVER_INTERFACE_SET_MAIN_POWER_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SET_ZONE2_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SET_SPEAKERS_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SELECT_SCENE_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_RESPONSE:
{
break;
}
case ETH_NETWK_DEVICE_INFO_REQUEST:
{
char data[2];
data[0] = ID_AVRECEIVER_CONSOLE_INTERFACE;
data[1] = MY_DEVICE_ADDRESS;
int PayloadSize;
unsigned char *response = ProtocolGetFrame(ID_MASTER,MASTER_ADDRESS,ID_ETHERNET_VIRTUAL,ETH_NETWK_DEVICE_INFO_RESPONSE, data,2,0, &PayloadSize);
SendAudioInterfaceData((char*)response,PayloadSize);
break;
}
case ETH_NETWK_SET_DEVICE_INFO_ACK:
{
AudioConsoleSetIFConnectionStatus(true);
break;
}
case ETH_NETWK_CONNECTION_REFUSED:
{
break;
}
case AV_RECEIVER_INTERFACE_INCREMENT_MAIN_VOLUME_RESPONSE:
{
break;
}
AV_RECEIVER_INTERFACE_INCREMENT_Z2_VOLUME_RESPONSE:
{
break;
}
case AV_RECEIVER_INTERFACE_GENERAL_STATUS_REQUEST:
case AV_RECEIVER_INTERFACE_SET_MAIN_POWER_REQUEST:
case AV_RECEIVER_INTERFACE_SET_ZONE2_REQUEST:
case AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_REQUEST:
case AV_RECEIVER_INTERFACE_SET_SPEAKERS_REQUEST:
case AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_REQUEST:
case AV_RECEIVER_INTERFACE_SELECT_SCENE_REQUEST:
case AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_REQUEST:
case AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST:
case AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_REQUEST:
case AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_REQUEST:
case AV_RECEIVER_INTERFACE_INCREMENT_MAIN_VOLUME_REQUEST:
case AV_RECEIVER_INTERFACE_INCREMENT_Z2_VOLUME_REQUEST:
default:
{
}
}
}
void AudioConsoleSendCommand(int Command, unsigned char *Data, unsigned int DataSize)
{
unsigned char *Payload;
unsigned int PayloadSize;
Payload = ProtocolGetFrame(ID_MASTER,MASTER_ADDRESS,ID_AVRECEIVER_CONSOLE_INTERFACE,Command,Data,DataSize,0,&PayloadSize);
SendAudioInterfaceData((char*)Payload,PayloadSize);
}