270 lines
6.5 KiB
C
270 lines
6.5 KiB
C
#include "AudioConsoleLedMgr.h"
|
|
#include "timer.h"
|
|
//BtnLedDimmer_t mLinkZ2LEDDimmer;
|
|
//int DimmerSlope = 5;
|
|
|
|
BtnLedDimmer_t mLedDimmerList[AUDIO_CONSOLE_NB_LED];
|
|
BtnLedDimmer_t mLinkZ2LEDDimmer;
|
|
int DimmerSlope = 5;
|
|
|
|
void AudioConsoleLedMgrInit()
|
|
{
|
|
mLinkZ2LEDDimmer.IsON = false;
|
|
mLinkZ2LEDDimmer.TotalPeriod = 200;
|
|
mLinkZ2LEDDimmer.ONPeriod = 200;
|
|
mLinkZ2LEDDimmer.Counter = 0;
|
|
mLinkZ2LEDDimmer.BreathEffect = true;
|
|
|
|
int i;
|
|
for(i = 0; i < AUDIO_CONSOLE_NB_LED; i++)
|
|
{
|
|
mLedDimmerList[i].IsON = false;
|
|
mLedDimmerList[i].TotalPeriod = 200;
|
|
mLedDimmerList[i].ONPeriod = 200;
|
|
mLedDimmerList[i].Counter = 0;
|
|
mLedDimmerList[i].BreathEffect = false;
|
|
mLedDimmerList[i].DimmerSlope = 5;
|
|
}
|
|
|
|
TimerStart(LED_EFFECT_TIMER,LED_EFFECT_TIMEOUT);
|
|
}
|
|
|
|
void AudioConsoleLedMgrTick()
|
|
{
|
|
if(IsTimerExpired(LED_EFFECT_TIMER) == true) //Reuse pushbutton timer :)
|
|
{
|
|
int i;
|
|
for(i = 0; i < AUDIO_CONSOLE_NB_LED; i++)
|
|
{
|
|
if(mLedDimmerList[i].BreathEffect == true && mLedDimmerList[i].IsON == true)
|
|
{
|
|
mLedDimmerList[i].ONPeriod += mLedDimmerList[i].DimmerSlope;
|
|
if(mLedDimmerList[i].ONPeriod >= mLedDimmerList[i].TotalPeriod)
|
|
{
|
|
mLedDimmerList[i].DimmerSlope = -5;
|
|
mLedDimmerList[i].ONPeriod = mLedDimmerList[i].TotalPeriod - 5;
|
|
}
|
|
else if(mLedDimmerList[i].ONPeriod <= 5)
|
|
{
|
|
mLedDimmerList[i].DimmerSlope = 5;
|
|
}
|
|
}
|
|
}
|
|
TimerStart(LED_EFFECT_TIMER,LED_EFFECT_TIMEOUT);
|
|
}
|
|
|
|
int i;
|
|
for(i = 0; i < AUDIO_CONSOLE_NB_LED; i++)
|
|
{
|
|
if(mLedDimmerList[i].IsON)
|
|
{
|
|
if(mLedDimmerList[i].Counter++ >= mLedDimmerList[i].ONPeriod)
|
|
{
|
|
TurnOFF(i);
|
|
if(mLedDimmerList[i].Counter >= mLedDimmerList[i].TotalPeriod)
|
|
{
|
|
TurnON(i);
|
|
mLedDimmerList[i].Counter = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
int UpdatePushButtonLEDs(AVReceiverStatus_t *MainZoneStatus, AVReceiverStatus_t* Z2Status)
|
|
{
|
|
if(MainZoneStatus->MainPwrStatus == true)
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_MAIN_PWR_LED,true,100,false);
|
|
}
|
|
else
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_MAIN_PWR_LED,false,100,false);
|
|
}
|
|
|
|
if(Z2Status->MainPwrStatus == true)
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_Z2_PWR_LED,true,100,false);
|
|
}
|
|
else
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_Z2_PWR_LED,false,100,false);
|
|
}
|
|
|
|
if(MainZoneStatus->SyncZones == true)
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_SYNC_Z2_LED,true,100,false);
|
|
}
|
|
else
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_SYNC_Z2_LED,false,100,false);
|
|
}
|
|
|
|
if(MainZoneStatus->IsMute == true)
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_MAIN_MUTE_LED,true,100,true);
|
|
}
|
|
else
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_MAIN_MUTE_LED,false,100,false);
|
|
}
|
|
if(Z2Status->IsMute == true)
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_Z2_MUTE_LED,true,100,true);
|
|
}
|
|
else
|
|
{
|
|
LedMgrSetLED(AUDIO_CONSOLE_Z2_MUTE_LED,false,100,false);
|
|
}
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
int LedMgrSetLED(int LedID, bool ON, int Percent, bool breathe)
|
|
{
|
|
if(LedID >= AUDIO_CONSOLE_NB_LED)
|
|
return RET_ERROR;
|
|
if(Percent > 100)
|
|
return RET_ERROR;
|
|
|
|
if(ON == true)
|
|
{
|
|
TurnON(LedID);
|
|
}
|
|
else
|
|
{
|
|
TurnOFF(LedID);
|
|
}
|
|
|
|
|
|
if(ON != mLedDimmerList[LedID].IsON || breathe == false)
|
|
{
|
|
mLedDimmerList[LedID].ONPeriod = (((float)Percent/100)*mLedDimmerList[LedID].TotalPeriod);
|
|
mLedDimmerList[LedID].Counter = 0;
|
|
}
|
|
mLedDimmerList[LedID].IsON = ON;
|
|
mLedDimmerList[LedID].BreathEffect = breathe;
|
|
|
|
|
|
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
int TurnON(int LedID)
|
|
{
|
|
switch(LedID)
|
|
{
|
|
case AUDIO_CONSOLE_SYNC_Z2_LED:
|
|
{
|
|
AUDIO_CONSOLE_LINK_Z2_STATUS_LED = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_MAIN_PWR_LED:
|
|
{
|
|
AUDIO_CONSOLE_MAIN_PWR_STATUS_LED = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_Z2_PWR_LED:
|
|
{
|
|
AUDIO_CONSOLE_ZONE2_PWR_STATUS_LED = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_MAIN_MUTE_LED:
|
|
{
|
|
AUDIO_CONSOLE_MAIN_MUTE_STATUS_LED = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_Z2_MUTE_LED:
|
|
{
|
|
AUDIO_CONSOLE_Z2_MUTE_STATUS_LED = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_4_LED:
|
|
{
|
|
PUSH_BUTTON_LED4_PIN = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_5_LED:
|
|
{
|
|
PUSH_BUTTON_LED5_PIN = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_6_LED:
|
|
{
|
|
PUSH_BUTTON_LED6_PIN = LED_ON;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_7_LED:
|
|
{
|
|
PUSH_BUTTON_LED7_PIN = LED_ON;
|
|
break;
|
|
}
|
|
}
|
|
return RET_OK;
|
|
}
|
|
int TurnOFF(int LedID)
|
|
{
|
|
switch(LedID)
|
|
{
|
|
case AUDIO_CONSOLE_SYNC_Z2_LED:
|
|
{
|
|
AUDIO_CONSOLE_LINK_Z2_STATUS_LED = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_MAIN_PWR_LED:
|
|
{
|
|
AUDIO_CONSOLE_MAIN_PWR_STATUS_LED = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_Z2_PWR_LED:
|
|
{
|
|
AUDIO_CONSOLE_ZONE2_PWR_STATUS_LED = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_MAIN_MUTE_LED:
|
|
{
|
|
AUDIO_CONSOLE_MAIN_MUTE_STATUS_LED = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_Z2_MUTE_LED:
|
|
{
|
|
AUDIO_CONSOLE_Z2_MUTE_STATUS_LED = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_4_LED:
|
|
{
|
|
PUSH_BUTTON_LED4_PIN = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_5_LED:
|
|
{
|
|
PUSH_BUTTON_LED5_PIN = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_6_LED:
|
|
{
|
|
PUSH_BUTTON_LED6_PIN = LED_OFF;
|
|
break;
|
|
}
|
|
case AUDIO_CONSOLE_PUSHBTN_7_LED:
|
|
{
|
|
PUSH_BUTTON_LED7_PIN = LED_OFF;
|
|
break;
|
|
}
|
|
}
|
|
return RET_OK;
|
|
}
|
|
|
|
int LedMgrShowOfflineMode(bool Offline)
|
|
{
|
|
int i = 0;
|
|
|
|
for(i = 0; i < AUDIO_CONSOLE_NB_LED; i++)
|
|
{
|
|
LedMgrSetLED(i,Offline,100,true);
|
|
}
|
|
|
|
} |