⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alarmsetup.cpp

📁 c语言源玛,扫描的游戏代码,攻大家看.多体意见
💻 CPP
字号:

#include "ClockApp.h"
#include "AlarmSetup.h"
#include "Ring.h"

CAlarmSetup::CAlarmSetup() : CXSetup(13)
{
#ifdef WIN32
    m_alarm_index = 0;
#endif
    memset(&m_alarmBuff, 0, sizeof(m_alarmBuff));
}

CAlarmSetup::~CAlarmSetup()
{

}

//切换到当前显示
void CAlarmSetup::OnSetFocus()
{
    CXSetup::OnSetFocus();
    m_alarm_index = 0;
    LoadOldValue();

    display();
}

void CAlarmSetup::SetFlash()
{
    UCHAR speed = 1;
    memset(&led, 0, sizeof(led));
    switch(m_current_setup){
    case 1:
        led.alarmIndex = 0x7f;
        break;
    case 2:// ON/OFF
        led.mon1 = 0x7f; //O
        led.mon2 = 0x7f; //F
        led.day1 = 0x7f; //F
        break;
    case 3:// 小时
        led.hour1 = 0x7f;
        led.hour2 = 0x7f;
        break;
    case 4://分十位
        led.min1 = 0x7f;
        break;
    case 5://分个位
        led.min2 = 0x7f;
        break;
    case 6://铃声
        led.sec2 = 0x7f;
        break;
    default://星期
        led.weeksel = 1 << (m_current_setup-7);
        //已经设置了的星期则快闪
        speed = (m_alarmBuff.week & led.weeksel) ? 2 : 1;
        break;
    }
    CClockApp::clockApp->Flash(&led, speed);

    if(m_current_setup >= 7) display();
}

void CAlarmSetup::LoadOldValue()
{
    CClockApp::clockApp->m_clock.GetAlarm(m_alarmBuff, m_alarm_index);
}

UCHAR CAlarmSetup::OnSet(UCHAR add)
{
    UCHAR res = 1;
    UCHAR temp;
    switch(m_current_setup){
    case 1://index
        if(m_updated){
            SaveSetup();
        }
        if(add){
            if(m_alarm_index >= ALARM_MAX-1) m_alarm_index = 0;
            else m_alarm_index++;
        }else{
            if(!m_alarm_index) m_alarm_index = ALARM_MAX-1;
            else m_alarm_index--;
        }
        LoadOldValue();
        res = 0;
        break;
    case 2:// ON/OFF
        m_alarmBuff.enable = !m_alarmBuff.enable;
        break;
    case 3://小时
        if(add){
            if(m_alarmBuff.hour >= 23) m_alarmBuff.hour = 0;
            else m_alarmBuff.hour++;
        }else{
            if(!m_alarmBuff.hour) m_alarmBuff.hour = 23;
            else m_alarmBuff.hour--;
        }
        break;
    case 4://分钟的十位
        temp = m_alarmBuff.min / 10;
        m_alarmBuff.min %= 10;
        if(add){
            if(temp >= 5) temp = 0;
            else temp++;
        }else{
            if(!temp) temp = 5;
            else temp--;
        }
        m_alarmBuff.min += temp * 10;
        break;
    case 5://分钟的个位
        temp = m_alarmBuff.min % 10;
        m_alarmBuff.min -= temp;
        if(add){
            if(temp >= 9) temp = 0;
            else temp++;
        }else{
            if(!temp) temp = 9;
            else temp--;
        }
        m_alarmBuff.min += temp;
        break;
    case 6://铃声
        if(add){
            if(m_alarmBuff.ring >= CRing::GetCount()-1){
                m_alarmBuff.ring = 0;
            }else{
                m_alarmBuff.ring++;
            }
        }else{
            if(!m_alarmBuff.ring){
                m_alarmBuff.ring = CRing::GetCount()-1;
            }else{
                m_alarmBuff.ring--;
            }
        }
        break;
    default://星期
        m_alarmBuff.week ^= 1<<(m_current_setup-7);
        break;
    }
    display();
    return res;
}

void CAlarmSetup::SaveSetup()
{
    CClockApp::clockApp->m_clock.SetAlarm(m_alarmBuff, m_alarm_index);
}

void CAlarmSetup::display()
{
    memset(&led, 0, sizeof(led));
    CClock::AlarmbuffToLedbuff(led, m_alarmBuff, m_alarm_index);
    if(m_current_setup >= 7) led.weeksel |= 1 << (m_current_setup-7);
    led.f_alarm = 1;
    led.dot =1;
    CClockApp::clockApp->Display(led);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -