📄 app_dol2function.c
字号:
/*++
Copyright (c) 2001 Sunplus Technology Co., Ltd.
Module Name:
L1_DoFunction.c
Abstract:
Select the corresponding L1 L2 Function for USB vendor command
Environment:
Keil C51 Compiler
Revision History:
11/12/2001 YPWang created
--*/
//=============================================================================
//Header file
//=============================================================================
#include "general.h"
#include "main.h"
#include "App.h"
#include "initio.h"
//=============================================================================
//Symbol
//=============================================================================
//-----------------------------------------------------------------------------
//Constant
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//Variable
//-----------------------------------------------------------------------------
//=============================================================================
//Program
//=============================================================================
//-----------------------------------------------------------------------------
//App_DoL2Function_Audio
//-----------------------------------------------------------------------------
/*
routine description:
Do specified Audio L2 Function
arguments:
L2_FuncID - L2 Function ID
ArgBuf - Pointer to the argument buffer
return value:
0x00 - success
*/
UCHAR App_DoL2Function_Audio(UCHAR L2_FuncID, ULONG *ArgBuf)
{
USHORT* pAC97RegValue = 0; // WWWW
switch (L2_FuncID)
{
case 0x81:
L2_InitAC97();;
break;
case 0x82:
L2_RdAC97Reg((UCHAR)ArgBuf[0], pAC97RegValue);
break;
case 0x83:
L2_WrAC97Reg((UCHAR)ArgBuf[0], (USHORT)ArgBuf[1]);
break;
case 0x85:
L2_SetEmbAudCodecVol((UCHAR)ArgBuf[0]);
break;
case 0x86:
L2_EnableAudStream((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
case 0x87:
L2_PlayAud((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2], (UCHAR)ArgBuf[3]);
break;
case 0x88:
L2_RecordAudToDRAM((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2]);
break;
case 0x89:
L2_PlayAudFromDRAM((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2], (UCHAR)ArgBuf[3] );
break;
case 0x8b:
// L2_TestAud((ULONG)ArgBuf[0]);
break;
case 0x90:
L2_RecordAudDMAMode((UCHAR) ArgBuf[0]);
break;
case 0x91:
L2_PlayAudDMAMode(ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2]);
break;
default:
break;
}
return L2K_SUCCESS;
}
//-----------------------------------------------------------------------------
//App_DoL2Function_Global
//-----------------------------------------------------------------------------
/*
routine description:
Do specified Global L2 Function
arguments:
L2_FuncID - L2 Function ID
ArgBuf - Pointer to the argument buffer
return value:
0x00 - success
*/
UCHAR App_DoL2Function_Global(UCHAR L2_FuncID, ULONG *ArgBuf)
{
UCHAR tmp0;
ULONG ltmp0;
struct DATESTC RTC;
RTC.Second = 30;
RTC.Minute = 46;
RTC.Hour = 17;
RTC.Day = 6;
RTC.Month = 12;
RTC.Year = 1;
switch (L2_FuncID)
{
//segament 0
case 0x00:
L2_Suspend((UCHAR)ArgBuf[0]);
break;
case 0x01:
L2_Resume();
break;
case 0x02:
L2_PowerDown();
break;
case 0x03:
L2_SetModuPowerDown((USHORT)ArgBuf[0]);
break;
case 0x04:
L2_SetCPUClock((UCHAR)ArgBuf[0]);
break;
case 0x05:
{
L2_PowerDown();
L2_PowerUp();
}
break;
case 0x06:
L2_SetModuPowerUp((USHORT)ArgBuf[0]);
break;
//segament 1
case 0x10:
L2_ConfigGTimer((UCHAR)ArgBuf[0]);
break;
case 0x11:
L2_StartGTimer();
break;
case 0x12:
L2_StopGTimer();
break;
case 0x13:
L2_WriteGTimer((ULONG)ArgBuf[0]);
break;
case 0x14:
L2_ReadGTimer(<mp0);
break;
case 0x15:
L2_Wait((ULONG)ArgBuf[0]);
break;
//segament 2
case 0x20:
L2_WriteRTC(&RTC);
break;
case 0x21:
L2_ReadRTC(&RTC);
break;
case 0x22:
L2_WriteAlarm(&RTC);
break;
case 0x23:
L2_ReadAlarm(&RTC);
break;
//segament 3
case 0x30:
L2_ConfigPG((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2],
(USHORT)ArgBuf[3], (USHORT)ArgBuf[4], (UCHAR)ArgBuf[5],
(UCHAR)ArgBuf[6], (UCHAR)ArgBuf[7], (UCHAR)ArgBuf[8],
(UCHAR)ArgBuf[9], (UCHAR)ArgBuf[10]);
break;
case 0x31:
L2_StartPG();
break;
case 0x32:
L2_StopPG();
break;
//segament 4
case 0x40:
L2_ConfigUI((UCHAR)ArgBuf[0]);
break;
case 0x41:
L2_WakeUI();
break;
case 0x42:
L2_WriteUI((USHORT)ArgBuf[0]);
break;
case 0x43:
L2_ReadUI(&tmp0);
break;
//segament 5
case 0x50:
L2_ConfigGPIOBit((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
case 0x51:
L2_ConfigGPIOByte((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
case 0x52:
L2_SetGPIOBit((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
case 0x53:
L2_SetGPIOByte((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
case 0x54:
L2_GetGPIOBit((UCHAR)ArgBuf[0], &tmp0);
break;
case 0x55:
L2_GetGPIOByte((UCHAR)ArgBuf[0], &tmp0);
break;
//segament A
case 0xA0:
L2_InitGlobal((UCHAR)ArgBuf[0]);
break;
case 0xA1:
L2_SetTGPll((UCHAR)ArgBuf[0]);
break;
case 0xA2:
L2_ReadRevID(&tmp0);
break;
case 0xA3:
L2_SetCamMode((UCHAR)ArgBuf[0]);
break;
case 0xA4:
L2_GetCamMode(&tmp0);
break;
case 0xA5:
L2_WaitVD((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
case 0xA6:
L2_ReadIOTrap(&tmp0);
break;
#ifdef TestModeEn
case 0xA7:
L2_TestGlobal((UCHAR)ArgBuf[0]);
break;
#endif
default:
break;
}
return L2K_SUCCESS;
}
//-----------------------------------------------------------------------------
//App_DoL2Function_CDSP
//-----------------------------------------------------------------------------
/*
routine description:
Do specified CDSP L2 Function
arguments:
L2_FuncID - L2 Function ID
ArgBuf - Pointer to the argument buffer
return value:
0x00 - success
*/
UCHAR App_DoL2Function_CDSP(UCHAR L2_FuncID, ULONG *ArgBuf)
{
UCHAR tmp0, tmp1, tmp2, i;
USHORT stmp0, stmp1;
SHORT sstmp0;
ULONG ltmp0, ltmp1;
LONG sltmp0, sltmp1;
CHAR tmpfac[25];
switch (L2_FuncID)
{
//segament 0
case 0x00:
L2_SetCDSPBadPixelMode((UCHAR)ArgBuf[0]);
break;
case 0x01:
L2_WriteCDSPBadPixel((UCHAR)ArgBuf[0], (USHORT)ArgBuf[1], (USHORT)ArgBuf[2]);
break;
case 0x02:
L2_ReadCDSPBadPixel((UCHAR)ArgBuf[0], &stmp0, &stmp1);
break;
//segament 1
case 0x10:
L2_SetCDSPScale((USHORT)ArgBuf[0], (USHORT)ArgBuf[1]);
break;
//segament 2
case 0x20:
L2_SetWB((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2],
(UCHAR)ArgBuf[3], (USHORT)ArgBuf[4], (USHORT)ArgBuf[5],
(USHORT)ArgBuf[6], (USHORT)ArgBuf[7]);
break;
case 0x21:
L2_SetColorC((USHORT)ArgBuf[0], (USHORT)ArgBuf[1], (USHORT)ArgBuf[2],
(USHORT)ArgBuf[3], (USHORT)ArgBuf[4], (USHORT)ArgBuf[5],
(USHORT)ArgBuf[6], (USHORT)ArgBuf[7], (USHORT)ArgBuf[8]);
break;
case 0x22:
L2_SetLutGamma((UCHAR)ArgBuf[0]);
break;
case 0x23:
L2_SetYEdge((UCHAR)ArgBuf[0]);
break;
case 0x24:
L2_SetYUVAvg((UCHAR)ArgBuf[0]);
break;
case 0x25:
L2_SetBriCont((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
case 0x26:
L2_SetHueSat((USHORT)ArgBuf[0], (UCHAR)ArgBuf[1]);
break;
//segament 3
case 0x30:
L2_ConfigWindow((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2],
(USHORT)ArgBuf[3]);
break;
case 0x31:
L2_ReadAEWindow((UCHAR)ArgBuf[0], &tmp0);
break;
case 0x32:
L2_ReadRYWindow((UCHAR)ArgBuf[0], &sstmp0);
break;
case 0x33:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -