Skip to content

Commit b689501

Browse files
committed
Add PAD_BarrelMic
1 parent 063770e commit b689501

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

include/ogc/pad.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ u8 PAD_TriggerR(s32 chan);
126126
u8 PAD_AnalogA(s32 chan);
127127
u8 PAD_AnalogB(s32 chan);
128128

129+
u8 PAD_BarrelMic(s32 chan);
130+
129131
#define PAD_Steering PAD_StickX
130132

131133
#define PAD_PedalGas PAD_AnalogA

libogc/pad.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -913,8 +913,10 @@ u32 PAD_ScanPads(void)
913913
if(padstatus[i].triggerL>(UINT8_MAX/2)) state |= PADEX_TRIGGER_L;
914914
if(padstatus[i].analogA>(UINT8_MAX/2)) state |= PADEX_ANALOG_A;
915915
if(padstatus[i].analogB>(UINT8_MAX/2)) state |= PADEX_ANALOG_B;
916-
} else if(!_SHIFTR(padstatus[i].triggerL,4,4)) {
917-
if(padstatus[i].triggerR>(UINT8_MAX/8)) state |= PADEX_BARREL_MIC;
916+
} else {
917+
if((padstatus[i].triggerR-padstatus[i].triggerL)>(UINT8_MAX/8)) {
918+
state |= PADEX_BARREL_MIC;
919+
}
918920
}
919921

920922
state |= (state & (PAD_TRIGGER_R | PAD_TRIGGER_L)) << (__builtin_clz(PAD_TRIGGER_R | PAD_TRIGGER_L) - __builtin_clz(PADEX_TRIGGER_R | PADEX_TRIGGER_L));
@@ -1122,3 +1124,9 @@ u8 PAD_AnalogB(s32 chan)
11221124
if(chan<PAD_CHAN0 || chan>PAD_CHAN3 || __pad_keys[chan].chan==-1) return 0;
11231125
return __pad_keys[chan].analogB;
11241126
}
1127+
1128+
u8 PAD_BarrelMic(s32 chan)
1129+
{
1130+
if(chan<PAD_CHAN0 || chan>PAD_CHAN3 || __pad_keys[chan].chan==-1) return 0;
1131+
return __pad_clampU8(__pad_keys[chan].triggerR,__pad_keys[chan].triggerL);
1132+
}

0 commit comments

Comments
 (0)