add hidbuttons.xc
This commit is contained in:
@@ -0,0 +1,153 @@
|
|||||||
|
#define DEBUG_PRINT_ENABLE 1
|
||||||
|
#include <xs1.h>
|
||||||
|
#include <platform.h>
|
||||||
|
#include "xua_conf.h"
|
||||||
|
|
||||||
|
#include "user_hid.h"
|
||||||
|
#include "xua_hid_report.h"
|
||||||
|
|
||||||
|
#include "xc_ptr.h"
|
||||||
|
|
||||||
|
#include "xud.h"
|
||||||
|
#include "hid.h"
|
||||||
|
#include "debug_print.h"
|
||||||
|
|
||||||
|
#if HID_CONTROLS > 0
|
||||||
|
|
||||||
|
#ifdef XSCOPE
|
||||||
|
#include "print.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DFU_CONTROL_USB_HID
|
||||||
|
#include <xccompat.h>
|
||||||
|
|
||||||
|
#define HID_DFU_REPORT_ID 0x41
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define P_GPI_BUTA_SHIFT 0x00
|
||||||
|
#define P_GPI_BUTA_MASK (1<<P_GPI_BUTA_SHIFT)
|
||||||
|
#define P_GPI_BUTB_SHIFT 0x01
|
||||||
|
#define P_GPI_BUTB_MASK (1<<P_GPI_BUTB_SHIFT)
|
||||||
|
#define P_GPI_BUTC_SHIFT 0x02
|
||||||
|
#define P_GPI_BUTC_MASK (1<<P_GPI_BUTC_SHIFT)
|
||||||
|
#define P_GPI_SW1_SHIFT 0x03
|
||||||
|
#define P_GPI_SW1_MASK (1<<P_GPI_SW1_SHIFT)
|
||||||
|
|
||||||
|
/* Write HID Report Data into hidData array
|
||||||
|
*
|
||||||
|
* Bits are as follows:
|
||||||
|
* 0: Play/Pause
|
||||||
|
* 1: Scan Next Track
|
||||||
|
* 2: Scan Prev Track
|
||||||
|
* 3: Volume Up
|
||||||
|
* 4: Volume Down
|
||||||
|
* 5: Mute
|
||||||
|
*/
|
||||||
|
|
||||||
|
unsigned multicontrol_count = 0;
|
||||||
|
unsigned wait_counter =0;
|
||||||
|
unsigned long get_reference_time();
|
||||||
|
|
||||||
|
#define THRESH 1
|
||||||
|
#define MULTIPRESS_WAIT 25
|
||||||
|
|
||||||
|
#define HID_CONTROL_NEXT 0x02
|
||||||
|
#define HID_CONTROL_PLAYPAUSE 0x01
|
||||||
|
#define HID_CONTROL_PREV 0x04
|
||||||
|
#define HID_CONTROL VOLUP 0x08
|
||||||
|
#define HID_CONTROL_VOLDN 0x10
|
||||||
|
#define HID_CONTROL_MUTE 0x20
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
STATE_IDLE = 0x00,
|
||||||
|
STATE_PLAY = 0x01,
|
||||||
|
STATE_NEXTPREV = 0x02,
|
||||||
|
}t_controlState;
|
||||||
|
|
||||||
|
t_controlState state;
|
||||||
|
|
||||||
|
unsigned lastA;
|
||||||
|
|
||||||
|
unsigned g_ButtonVal = 0;
|
||||||
|
unsigned char g_hid_pass_data0;
|
||||||
|
unsigned char g_hid_pass_data1;
|
||||||
|
unsigned char g_hid_pass_data2;
|
||||||
|
unsigned char g_hid_pass_data3;
|
||||||
|
unsigned char g_hid_pass_data4;
|
||||||
|
unsigned char g_hid_pass_data5;
|
||||||
|
unsigned char g_hid_pass_data6;
|
||||||
|
unsigned char g_hid_pass_data7;
|
||||||
|
|
||||||
|
void UserReadHIDButtons(unsigned char hidData[])
|
||||||
|
{
|
||||||
|
unsigned tmp;
|
||||||
|
GET_SHARED_GLOBAL(tmp, g_ButtonVal);
|
||||||
|
hidData[0] = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserReadHIDPass(unsigned char hidPassData[])
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data0);
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data1);
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data2);
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data3);
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data4);
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data5);
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data6);
|
||||||
|
GET_SHARED_GLOBAL(hidPassData[i++], g_hid_pass_data7);
|
||||||
|
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data0, 0);
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data1, 0);
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data2, 0);
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data3, 0);
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data4, 0);
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data5, 0);
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data6, 0);
|
||||||
|
SET_SHARED_GLOBAL(g_hid_pass_data7, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG_MEMORY_LOG_ENABLED
|
||||||
|
|
||||||
|
extern unsigned int debug_memory_log_buffer_index;
|
||||||
|
#define DEBUG_MEMORY_LOG_BUFFER_SIZE 4048
|
||||||
|
extern unsigned char debug_memory_log_buffer[DEBUG_MEMORY_LOG_BUFFER_SIZE];
|
||||||
|
unsigned int log_index = 0;
|
||||||
|
|
||||||
|
void UserReadHIDLog(unsigned char hidLogData[])
|
||||||
|
{
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
unsigned char * unsafe logPtr = debug_memory_log_buffer;
|
||||||
|
unsigned size = (debug_memory_log_buffer_index - log_index >= 64) ? 64 : (debug_memory_log_buffer_index - log_index);
|
||||||
|
if (size > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
hidLogData[i] = logPtr[log_index + i];
|
||||||
|
}
|
||||||
|
|
||||||
|
log_index += size;
|
||||||
|
|
||||||
|
if (log_index >= debug_memory_log_buffer_index)
|
||||||
|
{
|
||||||
|
log_index = 0;
|
||||||
|
SET_SHARED_GLOBAL(debug_memory_log_buffer_index, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 64; i++)
|
||||||
|
{
|
||||||
|
hidLogData[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
17
sw_usb_audio/app_usb_aud_phaten_golden/src/extensions/keys.h
Normal file
17
sw_usb_audio/app_usb_aud_phaten_golden/src/extensions/keys.h
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright 2011-2023 XMOS LIMITED.
|
||||||
|
// This Software is subject to the terms of the XMOS Public Licence: Version 1.
|
||||||
|
#ifndef __KEYS_H__
|
||||||
|
#define __KEYS_H__
|
||||||
|
|
||||||
|
|
||||||
|
#define KEY_MIC_VOL_DN 0x08
|
||||||
|
#define KEY_MUTE 0x10
|
||||||
|
#define KEY_MIC_VOL_UP 0x20
|
||||||
|
#define KEY_PLAY_VOL_DN 0x40
|
||||||
|
#define KEY_PLAY_VOL_UP 0x80
|
||||||
|
#define KEY_BITS (KEY_MIC_VOL_DN | KEY_MUTE | KEY_MIC_VOL_UP | KEY_PLAY_VOL_DN | KEY_PLAY_VOL_UP)
|
||||||
|
|
||||||
|
#define MUTED_MIC 0x5A
|
||||||
|
#define UNMUTED_MIC 0xA5
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user