mirror of https://github.com/RPCS3/rpcs3.git
Input: Add PS Move navigation controller
Add the ps move navigation controller to pad types. Use proper pad class profiles.
This commit is contained in:
parent
f3b631fbb4
commit
e28b705f0d
|
@ -123,6 +123,8 @@ void cellPad_NotifyStateChange(u32 index, u32 state)
|
|||
product = input::get_product_info(input::product_type::dance_dance_revolution_mat);
|
||||
break;
|
||||
case CELL_PAD_PCLASS_TYPE_NAVIGATION:
|
||||
product = input::get_product_info(input::product_type::ps_move_navigation);
|
||||
break;
|
||||
case CELL_PAD_PCLASS_TYPE_STANDARD:
|
||||
default:
|
||||
product = input::get_product_info(input::product_type::playstation_3_controller);
|
||||
|
|
|
@ -24,92 +24,6 @@ enum CellPadFilterError : u32
|
|||
CELL_PADFILTER_ERROR_INVALID_PARAMETER = 0x80121401,
|
||||
};
|
||||
|
||||
// Controller types
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_TYPE_STANDARD = 0x00,
|
||||
CELL_PAD_PCLASS_TYPE_GUITAR = 0x01,
|
||||
CELL_PAD_PCLASS_TYPE_DRUM = 0x02,
|
||||
CELL_PAD_PCLASS_TYPE_DJ = 0x03,
|
||||
CELL_PAD_PCLASS_TYPE_DANCEMAT = 0x04,
|
||||
CELL_PAD_PCLASS_TYPE_NAVIGATION = 0x05,
|
||||
};
|
||||
|
||||
// Profile of a Standard Type Controller
|
||||
// Profile of a Navigation Type Controller
|
||||
// Bits 0 – 31 All 0s
|
||||
|
||||
// Profile of a Guitar Type Controller
|
||||
enum
|
||||
{
|
||||
// Basic
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_1 = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_2 = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_3 = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_4 = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_5 = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_UP = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_DOWN = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_WHAMMYBAR = 0x00000080,
|
||||
// All Basic = 0x000000FF
|
||||
|
||||
// Optional
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H1 = 0x00000100,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H2 = 0x00000200,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H3 = 0x00000400,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H4 = 0x00000800,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H5 = 0x00001000,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_5WAY_EFFECT = 0x00002000,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_TILT_SENS = 0x00004000,
|
||||
// All = 0x00007FFF
|
||||
};
|
||||
|
||||
// Profile of a Drum Type Controller
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_SNARE = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM2 = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM_FLOOR = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_HiHAT = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_CRASH = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_RIDE = 0x00000080,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK2 = 0x00000100,
|
||||
// All = 0x000001FF
|
||||
};
|
||||
|
||||
// Profile of a DJ Deck Type Controller
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_ATTACK = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_CROSSFADER = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_DSP_DIAL = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM1 = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM2 = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM3 = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_PLATTER = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM1 = 0x00000080,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM2 = 0x00000100,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM3 = 0x00000200,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_PLATTER = 0x00000400,
|
||||
// All = 0x000007FF
|
||||
};
|
||||
|
||||
// Profile of a Dance Mat Type Controller
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_CIRCLE = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_CROSS = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_TRIANGLE = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_SQUARE = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_RIGHT = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_LEFT = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_UP = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_DOWN = 0x00000080,
|
||||
// All = 0x000000FF
|
||||
};
|
||||
|
||||
// Length returned in CellPadData struct
|
||||
enum
|
||||
{
|
||||
|
|
|
@ -124,6 +124,92 @@ enum DeviceType
|
|||
CELL_PAD_DEV_TYPE_LDD = 5,
|
||||
};
|
||||
|
||||
// Controller types
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_TYPE_STANDARD = 0x00,
|
||||
CELL_PAD_PCLASS_TYPE_GUITAR = 0x01,
|
||||
CELL_PAD_PCLASS_TYPE_DRUM = 0x02,
|
||||
CELL_PAD_PCLASS_TYPE_DJ = 0x03,
|
||||
CELL_PAD_PCLASS_TYPE_DANCEMAT = 0x04,
|
||||
CELL_PAD_PCLASS_TYPE_NAVIGATION = 0x05,
|
||||
};
|
||||
|
||||
// Profile of a Standard Type Controller
|
||||
// Profile of a Navigation Type Controller
|
||||
// Bits 0 – 31 All 0s
|
||||
|
||||
// Profile of a Guitar Type Controller
|
||||
enum
|
||||
{
|
||||
// Basic
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_1 = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_2 = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_3 = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_4 = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_5 = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_UP = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_DOWN = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_WHAMMYBAR = 0x00000080,
|
||||
// All Basic = 0x000000FF
|
||||
|
||||
// Optional
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H1 = 0x00000100,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H2 = 0x00000200,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H3 = 0x00000400,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H4 = 0x00000800,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H5 = 0x00001000,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_5WAY_EFFECT = 0x00002000,
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_TILT_SENS = 0x00004000,
|
||||
// All = 0x00007FFF
|
||||
};
|
||||
|
||||
// Profile of a Drum Type Controller
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_SNARE = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM2 = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM_FLOOR = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_HiHAT = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_CRASH = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_RIDE = 0x00000080,
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK2 = 0x00000100,
|
||||
// All = 0x000001FF
|
||||
};
|
||||
|
||||
// Profile of a DJ Deck Type Controller
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_ATTACK = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_CROSSFADER = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_DSP_DIAL = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM1 = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM2 = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM3 = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_PLATTER = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM1 = 0x00000080,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM2 = 0x00000100,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM3 = 0x00000200,
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_PLATTER = 0x00000400,
|
||||
// All = 0x000007FF
|
||||
};
|
||||
|
||||
// Profile of a Dance Mat Type Controller
|
||||
enum
|
||||
{
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_CIRCLE = 0x00000001,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_CROSS = 0x00000002,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_TRIANGLE = 0x00000004,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_SQUARE = 0x00000008,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_RIGHT = 0x00000010,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_LEFT = 0x00000020,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_UP = 0x00000040,
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_DOWN = 0x00000080,
|
||||
// All = 0x000000FF
|
||||
};
|
||||
|
||||
enum ButtonDataOffset
|
||||
{
|
||||
CELL_PAD_BTN_OFFSET_DIGITAL1 = 2,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include "Emu/Io/pad_types.h"
|
||||
|
||||
namespace input
|
||||
{
|
||||
|
@ -14,7 +15,8 @@ namespace input
|
|||
harmonix_rockband_guitar,
|
||||
harmonix_rockband_drum_kit,
|
||||
harmonix_rockband_drum_kit_2,
|
||||
rock_revolution_drum_kit
|
||||
rock_revolution_drum_kit,
|
||||
ps_move_navigation
|
||||
};
|
||||
|
||||
enum vendor_id
|
||||
|
@ -35,14 +37,15 @@ namespace input
|
|||
harmonix_rockband_drum_kit_2 = 0x0218, // Harmonix Pro-Drum Kit (Rock Band III Pro-Drum Controller)
|
||||
playstation_3_controller = 0x0268, // PlayStation 3 Controller
|
||||
rock_revolution_drum_kit = 0x0300, // Rock Revolution Drum Controller
|
||||
ps_move_navigation = 0x042F, // PlayStation Move navigation controller
|
||||
};
|
||||
|
||||
struct product_info
|
||||
{
|
||||
product_type type;
|
||||
unsigned short vendor_id;
|
||||
unsigned short product_id;
|
||||
unsigned int pclass_profile; // See CELL_PAD_PCLASS_PROFILE flags
|
||||
u16 vendor_id;
|
||||
u16 product_id;
|
||||
u32 pclass_profile; // See CELL_PAD_PCLASS_PROFILE flags
|
||||
};
|
||||
|
||||
inline product_info get_product_info(product_type type)
|
||||
|
@ -51,40 +54,172 @@ namespace input
|
|||
{
|
||||
case product_type::dance_dance_revolution_mat:
|
||||
{
|
||||
return product_info{ type, vendor_id::konami_de, product_id::dance_dance_revolution_mat, 0x000000FF };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_CIRCLE |
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_CROSS |
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_TRIANGLE |
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_SQUARE |
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_RIGHT |
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_LEFT |
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_UP |
|
||||
CELL_PAD_PCLASS_PROFILE_DANCEMAT_DOWN;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::konami_de,
|
||||
.product_id = product_id::dance_dance_revolution_mat,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::dj_hero_turntable:
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_cea, product_id::dj_hero_turntable, 0x000007FF };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_ATTACK |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_CROSSFADER |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_MIXER_DSP_DIAL |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM1 |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM2 |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_STREAM3 |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK1_PLATTER |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM1 |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM2 |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_STREAM3 |
|
||||
CELL_PAD_PCLASS_PROFILE_DJ_DECK2_PLATTER;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_cea,
|
||||
.product_id = product_id::dj_hero_turntable,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::harmonix_rockband_drum_kit:
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_cea, product_id::harmonix_rockband_drum_kit, 0x000000FF };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_SNARE |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM2 |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM_FLOOR |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_HiHAT |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_CRASH |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_RIDE;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_cea,
|
||||
.product_id = product_id::harmonix_rockband_drum_kit,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::harmonix_rockband_drum_kit_2:
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_cea, product_id::harmonix_rockband_drum_kit_2, 0x000000BF };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_SNARE |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM2 |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM_FLOOR |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_HiHAT |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_RIDE;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_cea,
|
||||
.product_id = product_id::harmonix_rockband_drum_kit_2,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::harmonix_rockband_guitar:
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_cea, product_id::harmonix_rockband_guitar, 0x00007FFF };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_1 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_2 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_3 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_4 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_5 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_UP |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_DOWN |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_WHAMMYBAR |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H1 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H2 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H3 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H4 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_H5 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_5WAY_EFFECT |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_TILT_SENS;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_cea,
|
||||
.product_id = product_id::harmonix_rockband_guitar,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::red_octane_gh_drum_kit:
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_cea, product_id::red_octane_gh_drum_kit, 0x000000BB };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_SNARE |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM_FLOOR |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_HiHAT |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_RIDE;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_cea,
|
||||
.product_id = product_id::red_octane_gh_drum_kit,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::red_octane_gh_guitar:
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_cea, product_id::red_octane_gh_guitar, 0x000000FF };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_1 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_2 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_3 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_4 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_FRET_5 |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_UP |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_STRUM_DOWN |
|
||||
CELL_PAD_PCLASS_PROFILE_GUITAR_WHAMMYBAR;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_cea,
|
||||
.product_id = product_id::red_octane_gh_guitar,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::rock_revolution_drum_kit:
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_cea, product_id::rock_revolution_drum_kit, 0x000000FB };
|
||||
constexpr u32 profile =
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_SNARE |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_TOM_FLOOR |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_KICK |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_HiHAT |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_CRASH |
|
||||
CELL_PAD_PCLASS_PROFILE_DRUM_CYM_RIDE;
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_cea,
|
||||
.product_id = product_id::rock_revolution_drum_kit,
|
||||
.pclass_profile = profile
|
||||
};
|
||||
}
|
||||
case product_type::ps_move_navigation:
|
||||
{
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_corp,
|
||||
.product_id = product_id::ps_move_navigation,
|
||||
.pclass_profile = 0x0
|
||||
};
|
||||
}
|
||||
case product_type::playstation_3_controller:
|
||||
default: // GCC doesn't like it when there is no return value if if all enum values are covered
|
||||
{
|
||||
return product_info{ type, vendor_id::sony_corp, product_id::playstation_3_controller, 0x0 };
|
||||
return product_info{
|
||||
.type = type,
|
||||
.vendor_id = vendor_id::sony_corp,
|
||||
.product_id = product_id::playstation_3_controller,
|
||||
.pclass_profile = 0x0
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -94,14 +229,14 @@ namespace input
|
|||
switch (class_id)
|
||||
{
|
||||
default:
|
||||
case 0: // CELL_PAD_PCLASS_TYPE_STANDARD
|
||||
case CELL_PAD_PCLASS_TYPE_STANDARD:
|
||||
{
|
||||
return
|
||||
{
|
||||
get_product_info(product_type::playstation_3_controller)
|
||||
};
|
||||
}
|
||||
case 1: // CELL_PAD_PCLASS_TYPE_GUITAR
|
||||
case CELL_PAD_PCLASS_TYPE_GUITAR:
|
||||
{
|
||||
return
|
||||
{
|
||||
|
@ -109,7 +244,7 @@ namespace input
|
|||
get_product_info(product_type::harmonix_rockband_guitar)
|
||||
};
|
||||
}
|
||||
case 2: // CELL_PAD_PCLASS_TYPE_DRUM
|
||||
case CELL_PAD_PCLASS_TYPE_DRUM:
|
||||
{
|
||||
return
|
||||
{
|
||||
|
@ -119,25 +254,25 @@ namespace input
|
|||
get_product_info(product_type::rock_revolution_drum_kit)
|
||||
};
|
||||
}
|
||||
case 3: // CELL_PAD_PCLASS_TYPE_DJ
|
||||
case CELL_PAD_PCLASS_TYPE_DJ:
|
||||
{
|
||||
return
|
||||
{
|
||||
get_product_info(product_type::dj_hero_turntable)
|
||||
};
|
||||
}
|
||||
case 4: // CELL_PAD_PCLASS_TYPE_DANCEMAT
|
||||
case CELL_PAD_PCLASS_TYPE_DANCEMAT:
|
||||
{
|
||||
return
|
||||
{
|
||||
get_product_info(product_type::dance_dance_revolution_mat)
|
||||
};
|
||||
}
|
||||
case 5: // CELL_PAD_PCLASS_TYPE_NAVIGATION
|
||||
case CELL_PAD_PCLASS_TYPE_NAVIGATION:
|
||||
{
|
||||
return
|
||||
{
|
||||
get_product_info(product_type::playstation_3_controller)
|
||||
get_product_info(product_type::ps_move_navigation)
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1612,7 +1612,7 @@ void pad_settings_dialog::HandleDeviceClassChange(int index) const
|
|||
|
||||
ui->chooseProduct->clear();
|
||||
|
||||
for (const auto& product : input::get_products_by_class(index))
|
||||
for (const input::product_info& product : input::get_products_by_class(index))
|
||||
{
|
||||
switch (product.type)
|
||||
{
|
||||
|
@ -1661,6 +1661,11 @@ void pad_settings_dialog::HandleDeviceClassChange(int index) const
|
|||
ui->chooseProduct->addItem(tr("Rock Revolution", "Rock Revolution Drum Controller"), static_cast<int>(product.type));
|
||||
break;
|
||||
}
|
||||
case input::product_type::ps_move_navigation:
|
||||
{
|
||||
ui->chooseProduct->addItem(tr("PS Move Navigation", "PS Move Navigation Controller"), static_cast<int>(product.type));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue