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

📄 recordmain.c

📁 Actions ucOS-II mp3方案源码,可以做参考
💻 C
📖 第 1 页 / 共 2 页
字号:
        MYOSQPost(Recorder_Out,&msg); 
        return; */   
    case 2:
        msg.type = MSG_KEY;
        msg.msg.data[0] = ((WM_KEY_INFO*)(pMsg->Data.p))->Key | GUI_Key_Long; 
        MYOSQPost(Recorder_Out,&msg); 
        return;    
    case 3:
        msg.type = MSG_KEY;
        msg.msg.data[0] = ((WM_KEY_INFO*)(pMsg->Data.p))->Key | GUI_Key_Hold; 
        MYOSQPost(Recorder_Out,&msg); 
        return; 
    case 4:
        System_DealMessage(pMsg);
        return;
    }
}
void cbCallBack_FunctionWindow(WM_MESSAGE* pMsg)
{
    switch (pMsg->MsgId) 
    {
    case WM_KEY:
        _cbCallBack_DeakKeyMsg(pMsg);
        return;
    }
}
void cbCallBack_FunctionSubWindow(WM_MESSAGE* pMsg)
{
    switch (pMsg->MsgId) 
    {
    case WM_KEY:
        _cbCallBack_DeakKeyMsg(pMsg);
        return;
    }
}
bitrate_t _ConvertStringToBT(char *BTString)
{
    int BTIndex = 0;
    while(*BTString != 'K')
    {
        BTIndex = BTIndex + BTIndex + (BTIndex << 3);//BTIndex *= 10;
        BTIndex += *(BTString++) - '0';
    }
    switch(BTIndex)
    {
    case 8:
        return _BT_8K;
    case 16:
        return _BT_16K;
    case 24:
        return _BT_24K;
    case 32:
        return _BT_32K;
    case 40:
        return _BT_40K;
    case 48:
        return _BT_48K;
    case 56:
        return _BT_56K;
    case 64:
        return _BT_64K;
    case 80:
        return _BT_80K;
    case 96:
        return _BT_96K;
    case 112:
        return _BT_112K;
    case 128:
        return _BT_128K;
    case 144:
        return _BT_144K;
    case 160:
        return _BT_160K;
    case 192:
        return _BT_192K;
    case 224:
        return _BT_224K;
    case 256:
        return _BT_256K;
    case 320:
        return _BT_320K;
    default :
        return _BT_32K;
    }
}
char *_ConvertBTToString(bitrate_t BTIndex,char *string)
{
    int i = 0;
    int BT;
    switch(BTIndex)
    {
    case _BT_8K:
        BT = 8;
    case _BT_16K:
        BT = 16;
    case _BT_24K:
        BT = 24;
    case _BT_32K:
        BT = 32;
    case _BT_40K:
        BT = 40;
    case _BT_48K:
        BT = 48;
    case _BT_56K:
        BT = 56;
    case _BT_64K:
        BT = 64;
    case _BT_80K:
        BT = 80;
    case _BT_96K:
        BT = 96;
    case _BT_112K:
        BT = 112;
    case _BT_128K:
        BT = 128;
    case _BT_144K:
        BT = 144;
    case _BT_160K:
        BT = 160;
    case _BT_192K:
        BT = 192;
    case _BT_224K:
        BT = 224;
    case _BT_256K:
        BT = 256;
    case _BT_320K:
        BT = 320;
    default :
        BT = 32;
    }
    string[i] = BT / 100 + '0';
    if(string[i] != '0')
        i++;
    string[i] = BT % 100 / 10 + '0';
    if(string[i] != '0')
        i++;
    string[i++] = BT % 10 +'0';
    string[i++] = 'K';
    string[i] = 0;
    return string;
}
char *_ConvertRectypeToString(RecType_t type,char *string)
{
    switch(type)
    {
    case REC_AG8:// 录音类型ACT
        string[0] = 'A';
        string[1] = 'C';
        string[2] = 'T';
        break;
    case REC_ADPCM:// 语音WAV
    case REC_WAV:// 音乐WAV
        string[0] = 'W';
        string[1] = 'A';
        string[2] = 'V';
        break;
    case REC_MP3:
        string[0] = 'M';
        string[1] = 'p';
        string[2] = '3';
        break;
    default:
        return NULL;
    }
    string[3] = 0;
    return string;
}
char *_ConvertTimeToString(Full_time_t *time,char *string)
{
    string[0] = time->hour /10 +'0';
    string[1] = time->hour %10 +'0';
    string[2] = ':';
    string[3] = time->minute /10 + '0';
    string[4] = time->minute %10 + '0';
    string[5] = ':';
    string[6] = time->second /10 + '0';
    string[7] = time->second %10 + '0';
    string[8] = 0;
    return string;
}
char *_ConvertRestTimeToString(Rest_time_t *restTime,char *string)
{
    BYTE i = 0;
    string[i] = restTime->hour / 1000 + '0';
    if(string[i] != '0')
        i++;
    string[i++] = restTime->hour % 1000 / 100 + '0';
    string[i++] = restTime->hour % 10 + '0';
    string[i++] = ':';
    string[i++] = restTime->minute / 10 + '0';
    string[i++] = restTime->minute % 10 + '0';
    string[i++] = ':';
    string[i++]= restTime->second / 10 + '0';
    string[i++]= restTime->second % 10 + '0';
    string[i]= 0;
    return string;
}
void _BackToMainTask(record_vars *RecordTaskVars)
{
    WM_SetFocus(WM_HBKWIN);
    //_CloseFileSelector(RecordTaskVars);
    _DeleteAllWindow(RecordTaskVars);  
    MainTaskCreate();
    RecordTaskDelete();
}
void _DeleteAllWindow(record_vars *RecordTaskVars)
{
    __DeleteFunctionWindow(RecordTaskVars);
    if(RecordTaskVars->MainWin)
    {
        WM_DeleteWindow(RecordTaskVars->MainWin);
        RecordTaskVars->MainWin = 0;
    }    
}
void _ExitFunctionsWindow(record_vars *RecordTaskVars)
{
    __DeleteFunctionWindow(RecordTaskVars);
    RecordTaskVars->CurWin = 0;
    RecordTaskVars->RedrawFlag = TRUE;
    WM_SetFocus(RecordTaskVars->MainWin);
}
void __DeleteFunctionWindow(record_vars *RecordTaskVars)
{
    if(RecordTaskVars->FunctionWin)
    {
        WM_DeleteWindow(RecordTaskVars->FunctionWin);
        RecordTaskVars->FunctionWin = 0;
    }
    if(RecordTaskVars->FunctionSubWin)
    {
        WM_DeleteWindow(RecordTaskVars->FunctionSubWin);
        RecordTaskVars->FunctionSubWin = 0;
    }
}
unsigned long _GetDiskTotalSize1()
{
    //return FS_GetSpace( pDevInfo[RecordTaskVars->recorder_vars->device_no].devname, 0 );
    return (*pDevInfo).devvolume;//RecordTaskVars->recorder_vars->device_no                
    //return FS_GetSpace( pDevInfo[0].devname, 0 ); 
}

unsigned long _GetDiskFreeSize1()
{
    //return FS_GetSpace( pDevInfo[RecordTaskVars->recorder_vars->device_no].devname, 1 );
    return (*pDevInfo).devvolume - (*pDevInfo).devvolOffset;
    //return FS_GetSpace( pDevInfo[0].devname, 1 );
}
void _SetMemuItems(record_vars *RecordTaskVars)
{
//{W_RECFO,W_RECTY,W_DIR,W_EXIT,0}
    RecordTaskVars->FunctionMenu[0] = W_RECFO;
    RecordTaskVars->FunctionMenu[1] = W_RECTY;
    RecordTaskVars->FunctionMenu[2] = W_DIR;
    RecordTaskVars->FunctionMenu[3] = W_EXIT;
    RecordTaskVars->FunctionMenu[4] = 0;
//{W_WAV,W_MP3,W_VOICE,0}
    RecordTaskVars->FunctionSubMenu[0][0] = W_VOICE;
    RecordTaskVars->FunctionSubMenu[0][1] = W_WAV;
    RecordTaskVars->FunctionSubMenu[0][2] = W_MP3;
    RecordTaskVars->FunctionSubMenu[0][3] = 0;
//{W_32KW,W_8KACT,W_32KV,W_8KAV,0}
    RecordTaskVars->FunctionSubMenu[1][0] = W_32KW;
    RecordTaskVars->FunctionSubMenu[1][1] = W_8KACT;
    RecordTaskVars->FunctionSubMenu[1][2] = W_32KV;
    RecordTaskVars->FunctionSubMenu[1][3] = W_8KAV;
    RecordTaskVars->FunctionSubMenu[1][4] = 0;
//{W_32K,W_64K,W_192K,W_384K,0}
    RecordTaskVars->FunctionSubMenu[2][0] = W_32K;
    RecordTaskVars->FunctionSubMenu[2][1] = W_64K;
    RecordTaskVars->FunctionSubMenu[2][2] = W_192K;
    RecordTaskVars->FunctionSubMenu[2][3] = W_384K;
    RecordTaskVars->FunctionSubMenu[2][4] = 0;
//{W_32K,W_64K,W_128K,W_192K,0}
    RecordTaskVars->FunctionSubMenu[3][0] = W_32K;
    RecordTaskVars->FunctionSubMenu[3][1] = W_64K;
    RecordTaskVars->FunctionSubMenu[3][2] = W_128K;
    RecordTaskVars->FunctionSubMenu[3][3] = W_192K;
    RecordTaskVars->FunctionSubMenu[3][4] = 0;
}


void RecordTaskCreate()
{
    int result;
    msg_t msg_send;
    if(!RecordTaskDetect())
    {
        if((result = RecorderEngineDetect()) <= 0 )
        {
            if( result == -1 )
            {
                msg_send.type = MS_END;
                MYOSQPost(Engine_In, &msg_send);
                
                do
                {
                    OSTimeDly(5);
                }while(RecorderEngineDetect() != 0);
            }
            OSTaskCreate((void(*)(void *))(long)RecorderEngine, (void *)0x0000,  
                            (void *)RECORDER_ENGINE_SPACE, RECORDER_ENGINE_PRIO, RECORDER_ENGINE_ID);
            OSTimeDly(1);   
        }
        OSTaskCreate((void(*)(void *))(long)RecordTask,    (void *)0x0000,  
                        (void *)RECORDER_FACE_SPACE, RECORD_FACE_PRIO, RECORD_FACE_ID);
    }
}
    
void RecordTaskDelete()
{
    for(;;)
    {
        output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
        OSTaskDel(OS_PRIO_SELF);
    }
}

  
bool RecordTaskDetect()
{   
    OS_ENTER_CRITICAL();
    if(OSTCBPrioTbl[RECORD_FACE_PRIO] != (OS_TCB *)0)
    {
        OS_EXIT_CRITICAL();
        return TRUE;
    }
    OS_EXIT_CRITICAL();
    return FALSE;
}  

int RecorderEngineDetect()
{   
    OS_ENTER_CRITICAL();
    if(OSTCBPrioTbl[RECORDER_ENGINE_PRIO] != (OS_TCB *)0)
    {
        if(OSGetIDFromPrio(RECORDER_ENGINE_PRIO) == RECORDER_ENGINE_ID)
        {
            OS_EXIT_CRITICAL();
            return 1;
        }
        OS_EXIT_CRITICAL();
        return -1;
    }
    OS_EXIT_CRITICAL();
    return 0;
}     

void _ReadDefaultVars(record_vars *RecordTaskVars)
{
/*    RecordTaskVars->TotalSizeStr[0] = 'T';
    RecordTaskVars->TotalSizeStr[1] = 'o';
    RecordTaskVars->TotalSizeStr[2] = 't';
    RecordTaskVars->TotalSizeStr[3] = 'a';
    RecordTaskVars->TotalSizeStr[4] = 'l';
    RecordTaskVars->TotalSizeStr[5] = ' ';
    RecordTaskVars->TotalSizeStr[6] = 'd';
    RecordTaskVars->TotalSizeStr[7] = 'i';
    RecordTaskVars->TotalSizeStr[8] = 's';
    RecordTaskVars->TotalSizeStr[9] = 'k';
    RecordTaskVars->TotalSizeStr[10] = ' ';
    RecordTaskVars->TotalSizeStr[11] = 's';
    RecordTaskVars->TotalSizeStr[12] = 'i';
    RecordTaskVars->TotalSizeStr[13] = 'z';
    RecordTaskVars->TotalSizeStr[14] = 'e';
    RecordTaskVars->TotalSizeStr[15] = '(';
    RecordTaskVars->TotalSizeStr[16] = 'K';
    RecordTaskVars->TotalSizeStr[17] = 'B';
    RecordTaskVars->TotalSizeStr[18] = ')';
    RecordTaskVars->TotalSizeStr[19] = ':';
    RecordTaskVars->TotalSizeStr[20] = 0;

    RecordTaskVars->RestSizeStr[0] = 'R';
    RecordTaskVars->RestSizeStr[1] = 'e';
    RecordTaskVars->RestSizeStr[2] = 's';
    RecordTaskVars->RestSizeStr[3] = 't';
    RecordTaskVars->RestSizeStr[4] = ' ';
    RecordTaskVars->RestSizeStr[5] = 's';
    RecordTaskVars->RestSizeStr[6] = 'i';
    RecordTaskVars->RestSizeStr[7] = 'z';
    RecordTaskVars->RestSizeStr[8] = 'e';
    RecordTaskVars->RestSizeStr[9] = '(';
    RecordTaskVars->RestSizeStr[10] = 'K';
    RecordTaskVars->RestSizeStr[11] = 'B';
    RecordTaskVars->RestSizeStr[12] = ')';
    RecordTaskVars->RestSizeStr[13] = ':';
    RecordTaskVars->RestSizeStr[14] = 0;

    RecordTaskVars->RestTimeStr[0] = 'R';
    RecordTaskVars->RestTimeStr[1] = 'e';
    RecordTaskVars->RestTimeStr[2] = 's';
    RecordTaskVars->RestTimeStr[3] = 't';
    RecordTaskVars->RestTimeStr[4] = ' ';
    RecordTaskVars->RestTimeStr[5] = 'R';
    RecordTaskVars->RestTimeStr[6] = 'e';
    RecordTaskVars->RestTimeStr[7] = 'c';
    RecordTaskVars->RestTimeStr[8] = 'o';
    RecordTaskVars->RestTimeStr[9] = 'r';
    RecordTaskVars->RestTimeStr[10] = 'd';
    RecordTaskVars->RestTimeStr[11] = ' ';
    RecordTaskVars->RestTimeStr[12] = 't';
    RecordTaskVars->RestTimeStr[13] = 'i';
    RecordTaskVars->RestTimeStr[14] = 'm';
    RecordTaskVars->RestTimeStr[15] = 'e';
    RecordTaskVars->RestTimeStr[16] = ':';
    RecordTaskVars->RestTimeStr[17] = 0;*/
}

//#endif /*__RECORD_*/ 

⌨️ 快捷键说明

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