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

📄 touchreg.c

📁 此压缩包为杰得开发得z228的BSP的源代码,可以实现很多功能,尤其是视频解码有很好的效果.
💻 C
字号:
#include "TouchReg.h"


#define REG_STR_LEN_MAX 0x40    // can be enlarge


int
TouchPanelRegSave(void)
{
    HANDLE  hevActivity = NULL;
    DWORD   dwStatus;
    HKEY    hk;
    
    dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"HARDWARE\\DEVICEMAP\\TOUCH", 0, 0, &hk);
    if(dwStatus == ERROR_SUCCESS) 
    {
        unsigned char buf[0x20 + 2*REG_STR_LEN_MAX];
        WCHAR szRegHead[0xE];
        WCHAR szCalibPoint[REG_STR_LEN_MAX];
        DWORD dwSize = sizeof(szCalibPoint);
        DWORD dwType;

        dwStatus = RegQueryValueEx(hk, L"CalibrationData", NULL, &dwType, (LPBYTE) szCalibPoint, &dwSize);
        szCalibPoint[REG_STR_LEN_MAX - 1] = 0;      // enforce null termination
        RETAILMSG(1, (_T("####0x%x, 0x%x\r\n"), dwType, dwSize));
        
        wcscpy(szRegHead, L"TouchRegSaved.");
        
        memcpy(buf, (unsigned char *)szRegHead, 2*0xE);
        memcpy(buf+2*0xE, (unsigned char *)(&dwSize), 2);
        memcpy(buf+2*0xF, (unsigned char *)(&dwType), 2);
        memcpy(buf+2*0x10, (unsigned char *)szCalibPoint, 2*REG_STR_LEN_MAX);
        
        FLA_Write(0, buf, sizeof(buf));
        RegCloseKey(hk);
        return 1;
    }
    else
    	return 0;
}


int
TouchPanelRegLoad(void)
{
    HANDLE  hevActivity = NULL;
    DWORD   dwStatus;
    HKEY    hk;
    
    dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"HARDWARE\\DEVICEMAP\\TOUCH", 0, 0, &hk);
    if(dwStatus == ERROR_SUCCESS) 
    {
        unsigned char buf[0x20 + 2*REG_STR_LEN_MAX];
        WCHAR szRegHead[0xE];
        WCHAR szCalibPoint[REG_STR_LEN_MAX];
        DWORD dwSize = 0;
        DWORD dwType = 0;
        
        FLA_Read(0, buf, sizeof(buf));
        memcpy((unsigned char *)szRegHead, buf, 2*0xE);
        memcpy((unsigned char *)(&dwSize), buf+2*0xE, 2);
        memcpy((unsigned char *)(&dwType), buf+2*0xF, 2);
        memcpy((unsigned char *)szCalibPoint, buf+2*0x10, 2*REG_STR_LEN_MAX);
        
        szRegHead[0xE-1] = 0;
        if (wcscmp(szRegHead, L"TouchRegSaved") == 0)
        {
	        dwStatus = RegSetValueEx(hk, L"CalibrationData", 0, dwType, (LPBYTE) szCalibPoint, dwSize);
        }
        else
        {
        	RETAILMSG(1, (_T("Warning: Cant find reg data from storage device!\r\n")));
        	return 0;
        }
        RegCloseKey(hk);
        return 1;
    }
    else
    	return 0;
}


int
TouchPanelRegShow(void)
{
//    DWORD i;
    WCHAR testbuf[0x10+REG_STR_LEN_MAX];
    FLA_Read(0, (unsigned char *)testbuf, sizeof(testbuf));
    RETAILMSG(1, (_T("Show: %s\r\n"), testbuf));
//    for (i=0; i<0x10+REG_STR_LEN_MAX; i++)
//        RETAILMSG(1, (_T("@@ 0x%x\r\n"), testbuf[i]));    
    return 1;
}

int
TouchPanelRegSet(void)
{
//    DWORD i;
    WCHAR testbuf[0x10+REG_STR_LEN_MAX];
    wcscpy(testbuf, L"TouchRegSaved.");
    *((unsigned short *)testbuf + 0xE) = 0x48;
    *((unsigned short *)testbuf + 0xF) = 0x01;
    wcscpy((testbuf+0x10), L"65,60 20,20 20,100 110,100 110,20");
    RETAILMSG(1, (_T("Set : %s\r\n"), testbuf));
    FLA_Write(0, (unsigned char *)testbuf, sizeof(testbuf));
    return 1;
}

int
TouchPanelRegInit(void)
{
	FLA_Init();
	return 1;
}

int
TouchPanelRegDeinit(void)
{
	FLA_Deinit();
	return 1;
}

⌨️ 快捷键说明

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