예제 #1
0
파일: Vip2.c 프로젝트: Audioniek/apps
static int pRead(Context_t *context)
{
	char vBuffer[128];
	char vData[10];
	const int cSize = 128;
	int vCurrentCode = -1;

	memset(vBuffer, 0, 128);
	// wait for new command
	read(context->fd, vBuffer, cSize);
	// parse and send key event
	vData[0] = vBuffer[14];
	vData[1] = vBuffer[15];
	vData[2] = '\0';
	printf("[evremote2 vip2] Key: %s -> %s\n", vData, &vBuffer[0]);
	vCurrentCode = getInternalCode(context->r->RemoteControl, vData);
	if (vCurrentCode != 0)
	{
		static int nextflag = 0;

		if (('0' == vBuffer[17]) && ('0' == vBuffer[18]))
		{
			nextflag++;
		}
		vCurrentCode += (nextflag << 16);
	}
	return vCurrentCode;
}
예제 #2
0
static int pRead(Context_t *context)
{

	char         vData[3];
	const int    cSize             = 3;
	int          vCurrentCode      = -1;

	//wait for new command
	read(vFd, vData, cSize);

	//parse and send key event
	vData[2] = '\0';

	vCurrentCode = getInternalCode((tButton *)((RemoteControl_t *)context->r)->RemoteControl, vData);

	if (vCurrentCode & 0x80 == 0) // new key
	{
		gNextKey++;
		gNextKey %= 20;
	}

	vCurrentCode += (gNextKey << 16);

	return vCurrentCode;
}
예제 #3
0
// Translates internal remote control hex value to known linux input key value
int getInternalCodeHex(tButton * cButtons, const unsigned char cCode) {
    char vCode[3];
    

    sprintf(vCode, "%.2hhx", cCode);
    vCode[2] = '\0';

    return getInternalCode(cButtons, vCode);
}
예제 #4
0
static int pRead(Context_t *context)
{
	char                vBuffer[128];
	char                vData[10];
	const int           cSize         = 128;
	int                 vCurrentCode  = -1;
	int                 rc;
	tButton             *cButtons = cButtonsEdisionSpark;

	memset(vBuffer, 0, 128);
	//wait for new command
	rc = read(context->fd, vBuffer, cSize);

	if (rc <= 0)return -1;

	//parse and send key event
	vData[0] = vBuffer[17];
	vData[1] = vBuffer[18];
	vData[2] = '\0';


	vData[0] = vBuffer[8];
	vData[1] = vBuffer[9];
	vData[2] = vBuffer[10];
	vData[3] = vBuffer[11];
	vData[4] = '\0';
	cButtons = pSparkGetButton(vData);

	vData[0] = vBuffer[14];
	vData[1] = vBuffer[15];
	vData[2] = '\0';

	printf("[RCU] key: %s -> %s\n", vData, &vBuffer[0]);
	vCurrentCode = getInternalCode(cButtons, vData);

	if (vCurrentCode != 0)
	{
		static int nextflag = 0;

		if (('0' == vBuffer[17]) && ('0' == vBuffer[18]))
		{
			nextflag++;
		}

		vCurrentCode += (nextflag << 16);
	}

	return vCurrentCode;
}
예제 #5
0
static int pRead(Context_t *context)
{

	char         vData[3];
	const int    cSize             = 3;
	int          vCurrentCode      = -1;

	//wait for new command
	read(vFd, vData, cSize);

	//parse and send key event
	vData[2] = '\0';

	vCurrentCode = getInternalCode((tButton *)((RemoteControl_t *)context->r)->RemoteControl, vData);

	return vCurrentCode;
}