mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-03 23:02:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Copyright (C) 2012 Kristian Lauszus, TKJ Electronics. All rights reserved.
 | 
						|
 | 
						|
 This software may be distributed and modified under the terms of the GNU
 | 
						|
 General Public License version 2 (GPL2) as published by the Free Software
 | 
						|
 Foundation and appearing in the file GPL2.TXT included in the packaging of
 | 
						|
 this file. Please note that GPL2 Section 2[b] requires that all works based
 | 
						|
 on this software must also be made publicly available under the terms of
 | 
						|
 the GPL2 ("Copyleft").
 | 
						|
 | 
						|
 Contact information
 | 
						|
 -------------------
 | 
						|
 | 
						|
 Kristian Lauszus, TKJ Electronics
 | 
						|
 Web      :  http://www.tkjelectronics.com
 | 
						|
 e-mail   :  kristianl@tkjelectronics.com
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _ps3enums_h
 | 
						|
#define _ps3enums_h
 | 
						|
 | 
						|
#include "controllerEnums.h"
 | 
						|
 | 
						|
/** Size of the output report buffer for the Dualshock and Navigation controllers */
 | 
						|
#define PS3_REPORT_BUFFER_SIZE  48
 | 
						|
 | 
						|
/** Report buffer for all PS3 commands */
 | 
						|
const uint8_t PS3_REPORT_BUFFER[PS3_REPORT_BUFFER_SIZE] PROGMEM = {
 | 
						|
        0x00, 0x00, 0x00, 0x00, 0x00,
 | 
						|
        0x00, 0x00, 0x00, 0x00, 0x00,
 | 
						|
        0xff, 0x27, 0x10, 0x00, 0x32,
 | 
						|
        0xff, 0x27, 0x10, 0x00, 0x32,
 | 
						|
        0xff, 0x27, 0x10, 0x00, 0x32,
 | 
						|
        0xff, 0x27, 0x10, 0x00, 0x32,
 | 
						|
        0x00, 0x00, 0x00, 0x00, 0x00,
 | 
						|
        0x00, 0x00, 0x00, 0x00, 0x00,
 | 
						|
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
						|
};
 | 
						|
 | 
						|
/** Size of the output report buffer for the Move Controller */
 | 
						|
#define MOVE_REPORT_BUFFER_SIZE 7
 | 
						|
 | 
						|
/** Used to set the LEDs on the controllers */
 | 
						|
const uint8_t PS3_LEDS[] PROGMEM = {
 | 
						|
        0x00, // OFF
 | 
						|
        0x01, // LED1
 | 
						|
        0x02, // LED2
 | 
						|
        0x04, // LED3
 | 
						|
        0x08, // LED4
 | 
						|
 | 
						|
        0x09, // LED5
 | 
						|
        0x0A, // LED6
 | 
						|
        0x0C, // LED7
 | 
						|
        0x0D, // LED8
 | 
						|
        0x0E, // LED9
 | 
						|
        0x0F, // LED10
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * Buttons on the controllers.
 | 
						|
 * <B>Note:</B> that the location is shifted 9 when it's connected via USB.
 | 
						|
 */
 | 
						|
const uint32_t PS3_BUTTONS[] PROGMEM = {
 | 
						|
        0x10, // UP
 | 
						|
        0x20, // RIGHT
 | 
						|
        0x40, // DOWN
 | 
						|
        0x80, // LEFT
 | 
						|
 | 
						|
        0x01, // SELECT
 | 
						|
        0x08, // START
 | 
						|
        0x02, // L3
 | 
						|
        0x04, // R3
 | 
						|
 | 
						|
        0x0100, // L2
 | 
						|
        0x0200, // R2
 | 
						|
        0x0400, // L1
 | 
						|
        0x0800, // R1
 | 
						|
 | 
						|
        0x1000, // TRIANGLE
 | 
						|
        0x2000, // CIRCLE
 | 
						|
        0x4000, // CROSS
 | 
						|
        0x8000, // SQUARE
 | 
						|
 | 
						|
        0x010000, // PS
 | 
						|
        0x080000, // MOVE - covers 12 bits - we only need to read the top 8
 | 
						|
        0x100000, // T - covers 12 bits - we only need to read the top 8
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * Analog buttons on the controllers.
 | 
						|
 * <B>Note:</B> that the location is shifted 9 when it's connected via USB.
 | 
						|
 */
 | 
						|
const uint8_t PS3_ANALOG_BUTTONS[] PROGMEM = {
 | 
						|
        23, // UP_ANALOG
 | 
						|
        24, // RIGHT_ANALOG
 | 
						|
        25, // DOWN_ANALOG
 | 
						|
        26, // LEFT_ANALOG
 | 
						|
        0, 0, 0, 0, // Skip SELECT, L3, R3 and START
 | 
						|
 | 
						|
        27, // L2_ANALOG
 | 
						|
        28, // R2_ANALOG
 | 
						|
        29, // L1_ANALOG
 | 
						|
        30, // R1_ANALOG
 | 
						|
        31, // TRIANGLE_ANALOG
 | 
						|
        32, // CIRCLE_ANALOG
 | 
						|
        33, // CROSS_ANALOG
 | 
						|
        34, // SQUARE_ANALOG
 | 
						|
        0, 0, // Skip PS and MOVE
 | 
						|
 | 
						|
        // Playstation Move Controller
 | 
						|
        15, // T_ANALOG - Both at byte 14 (last reading) and byte 15 (current reading)
 | 
						|
};
 | 
						|
 | 
						|
enum StatusEnum {
 | 
						|
        // Note that the location is shifted 9 when it's connected via USB
 | 
						|
        // Byte location | bit location
 | 
						|
        Plugged = (38 << 8) | 0x02,
 | 
						|
        Unplugged = (38 << 8) | 0x03,
 | 
						|
 | 
						|
        Charging = (39 << 8) | 0xEE,
 | 
						|
        NotCharging = (39 << 8) | 0xF1,
 | 
						|
        Shutdown = (39 << 8) | 0x01,
 | 
						|
        Dying = (39 << 8) | 0x02,
 | 
						|
        Low = (39 << 8) | 0x03,
 | 
						|
        High = (39 << 8) | 0x04,
 | 
						|
        Full = (39 << 8) | 0x05,
 | 
						|
 | 
						|
        MoveCharging = (21 << 8) | 0xEE,
 | 
						|
        MoveNotCharging = (21 << 8) | 0xF1,
 | 
						|
        MoveShutdown = (21 << 8) | 0x01,
 | 
						|
        MoveDying = (21 << 8) | 0x02,
 | 
						|
        MoveLow = (21 << 8) | 0x03,
 | 
						|
        MoveHigh = (21 << 8) | 0x04,
 | 
						|
        MoveFull = (21 << 8) | 0x05,
 | 
						|
 | 
						|
        CableRumble = (40 << 8) | 0x10, // Operating by USB and rumble is turned on
 | 
						|
        Cable = (40 << 8) | 0x12, // Operating by USB and rumble is turned off
 | 
						|
        BluetoothRumble = (40 << 8) | 0x14, // Operating by Bluetooth and rumble is turned on
 | 
						|
        Bluetooth = (40 << 8) | 0x16, // Operating by Bluetooth and rumble is turned off
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |