void cec_user_control_released_irq(void) { hdmitx_cec_dbg_print("CEC Key released \n"); //pcec_message->content.msg.flag = 0; // cec_key_flag = 0; //cec_send_event_irq(); }
void cec_user_control_pressed_irq(void) { hdmitx_cec_dbg_print("\nCEC Key pressed \n"); //pcec_message->content.msg.flag = 1; //cec_key_flag = 1; cec_send_event_irq(); }
void cec_send_event_irq(void) { int i; unsigned char operand_num_irq; unsigned char operands_irq[14]; //unsigned char opcode_irq; //unsigned char msg_length_irq; // msg_length_irq = cec_rx_msg_buf.cec_rx_message[cec_rx_msg_buf.rx_write_pos].msg_length; //opcode_irq = cec_rx_msg_buf.cec_rx_message[cec_rx_msg_buf.rx_write_pos].content.msg.opcode; operand_num_irq = cec_rx_msg_buf.cec_rx_message[cec_rx_msg_buf.rx_write_pos].operand_num; for (i = 0; i < operand_num_irq; i++ ) { operands_irq[i] = cec_rx_msg_buf.cec_rx_message[cec_rx_msg_buf.rx_write_pos].content.msg.operands[i]; hdmitx_cec_dbg_print("CEC:operands_irq[%d]:0x%x\n", i, operands_irq[i]); } switch(cec_rx_msg_buf.cec_rx_message[cec_rx_msg_buf.rx_write_pos].content.msg.operands[0]){ case 0x33: cec_system_audio_mode_request(); //cec_set_system_audio_mode(); break; case 0x35: break; default: break; } input_event(remote_cec_dev, EV_KEY, cec_key_map[operands_irq[0]], 1); input_sync(remote_cec_dev); input_event(remote_cec_dev, EV_KEY, cec_key_map[operands_irq[0]], 0); input_sync(remote_cec_dev); hdmitx_cec_dbg_print("CEC:cec_key_map[operands_irq[0]]:%d\n",cec_key_map[operands_irq[0]]); hdmitx_cec_dbg_print("CEC:cec_send_event_irq\n"); }
void cec_send_event(cec_rx_message_t* pcec_message) { int i; unsigned char brdcst, opcode; unsigned char initiator, follower; unsigned char operand_num; unsigned char msg_length; unsigned char operands[14]; /* parse message */ if ((!pcec_message) || (check_cec_msg_valid(pcec_message) == 0)) return; initiator = pcec_message->content.msg.header >> 4; follower = pcec_message->content.msg.header & 0x0f; opcode = pcec_message->content.msg.opcode; operand_num = pcec_message->operand_num; brdcst = (follower == 0x0f); msg_length = pcec_message->msg_length; for (i = 0; i < operand_num; i++ ) { operands[i] = pcec_message->content.msg.operands[i]; hdmitx_cec_dbg_print("CEC:operands[%d]:%u\n", i, operands[i]); } if(cec_key_flag) { input_event(remote_cec_dev, EV_KEY, cec_key_map[operands[0]], 1); input_sync(remote_cec_dev); hdmitx_cec_dbg_print("CEC:cec_key_map[operands[0]]:%d\n",cec_key_map[operands[0]]); } else{ input_event(remote_cec_dev, EV_KEY, cec_key_map[operands[0]], 0); input_sync(remote_cec_dev); hdmitx_cec_dbg_print("CEC:cec_key_map[operands[0]]:%d\n",cec_key_map[operands[0]]); } hdmitx_cec_dbg_print("CEC:cec_send_event\n"); }