mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2026-06-30 19:20:04 -05:00
added bit structs to lights
This commit is contained in:
parent
36ac9b4323
commit
421ae4c673
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include "aciodrv/device.h"
|
||||
#include "aciodrv/mdxf.h"
|
||||
#include "p4io/bitinfo.h"
|
||||
#include "p4iodrv/device.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
@ -24,10 +25,6 @@
|
|||
static struct p4iodrv_ctx *p4io_ctx;
|
||||
static struct aciodrv_device_ctx *mdxf_device;
|
||||
|
||||
uint8_t light_buff[16] = {0};
|
||||
uint8_t coin_buff[4] = {0};
|
||||
uint32_t jamma[4] = {0};
|
||||
|
||||
struct p4io_bittrans {
|
||||
uint32_t p4io;
|
||||
uint32_t ddrio;
|
||||
|
|
@ -52,6 +49,10 @@ static const struct p4io_bittrans input_map[] = {
|
|||
|
||||
};
|
||||
|
||||
p4io_lights_t light_buff = {0};
|
||||
p4io_coin_lights_t coin_buff = {0};
|
||||
uint32_t jamma[4] = {0};
|
||||
|
||||
void ddr_io_set_loggers(
|
||||
log_formatter_t misc,
|
||||
log_formatter_t info,
|
||||
|
|
@ -182,7 +183,7 @@ void ddr_io_set_lights_extio(uint32_t lights)
|
|||
// TODO: pull the NEON light out and map to the bass lights.
|
||||
|
||||
if (p4io_ctx) {
|
||||
p4iodrv_cmd_portout(p4io_ctx, (uint8_t *) &light_buff);
|
||||
p4iodrv_cmd_portout(p4io_ctx, (uint8_t *) &light_buff.raw);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -191,17 +192,26 @@ void ddr_io_set_lights_p3io(uint32_t lights)
|
|||
// TODO: map the marquee lights to the RGB of the p4io.
|
||||
|
||||
if (p4io_ctx) {
|
||||
p4iodrv_cmd_portout(p4io_ctx, (uint8_t *) &light_buff);
|
||||
p4iodrv_cmd_portout(p4io_ctx, (uint8_t *) &light_buff.raw);
|
||||
}
|
||||
}
|
||||
|
||||
void ddr_io_set_lights_hdxs_panel(uint32_t lights)
|
||||
{
|
||||
// TODO: Map the player button lights to the p4io menu lights.
|
||||
light_buff.ddr.p1_start = (lights & (1 << LIGHT_HD_P1_START)) ? 0xFF : 0x00;
|
||||
light_buff.ddr.p1_updown =
|
||||
(lights & (1 << LIGHT_HD_P1_UP_DOWN)) ? 0xFF : 0x00;
|
||||
light_buff.ddr.p1_leftright =
|
||||
(lights & (1 << LIGHT_HD_P1_LEFT_RIGHT)) ? 0xFF : 0x00;
|
||||
|
||||
// p2's lights are on the coinstock endpoint.
|
||||
coin_buff.ddr.p2_start = (lights & (1 << LIGHT_HD_P2_START));
|
||||
coin_buff.ddr.p2_leftright = (lights & (1 << LIGHT_HD_P2_LEFT_RIGHT));
|
||||
coin_buff.ddr.p2_updown = (lights & (1 << LIGHT_HD_P2_UP_DOWN));
|
||||
|
||||
if (p4io_ctx) {
|
||||
p4iodrv_cmd_coinstock(p4io_ctx, (uint8_t *) &coin_buff);
|
||||
p4iodrv_cmd_portout(p4io_ctx, (uint8_t *) &light_buff);
|
||||
p4iodrv_cmd_coinstock(p4io_ctx, (uint8_t *) &coin_buff.raw);
|
||||
p4iodrv_cmd_portout(p4io_ctx, (uint8_t *) &light_buff.raw);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
79
src/main/p4io/bitinfo.h
Normal file
79
src/main/p4io/bitinfo.h
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
#ifndef P4IO_BITINFO_H
|
||||
#define P4IO_BITINFO_H
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
bool coin0_0 : 1;
|
||||
bool coin0_1 : 1;
|
||||
bool p2_leftright : 1;
|
||||
bool p2_updown : 1;
|
||||
bool p2_start : 1;
|
||||
bool coin0_5 : 1;
|
||||
bool coin0_6 : 1;
|
||||
bool coin0_7 : 1;
|
||||
|
||||
bool coin1_0 : 1;
|
||||
bool coin1_1 : 1;
|
||||
bool coin1_2 : 1;
|
||||
bool coin1_3 : 1;
|
||||
bool coin1_4 : 1;
|
||||
bool coin1_5 : 1;
|
||||
bool coin1_6 : 1;
|
||||
bool coin1_7 : 1;
|
||||
|
||||
bool coin2_0 : 1;
|
||||
bool coin2_1 : 1;
|
||||
bool coin2_2 : 1;
|
||||
bool coin2_3 : 1;
|
||||
bool coin2_4 : 1;
|
||||
bool coin2_5 : 1;
|
||||
bool coin2_6 : 1;
|
||||
bool coin2_7 : 1;
|
||||
|
||||
bool coin3_0 : 1;
|
||||
bool coin3_1 : 1;
|
||||
bool coin3_2 : 1;
|
||||
bool coin3_3 : 1;
|
||||
bool coin3_4 : 1;
|
||||
bool coin3_5 : 1;
|
||||
bool coin3_6 : 1;
|
||||
bool coin3_7 : 1;
|
||||
} ddr;
|
||||
uint8_t raw[4];
|
||||
} p4io_coin_lights_t;
|
||||
_Static_assert(
|
||||
sizeof(p4io_coin_lights_t) == 4, "p4io_coin_lights_t is the wrong size");
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t header_up_g;
|
||||
uint8_t header_up_r;
|
||||
uint8_t header_up_b;
|
||||
|
||||
uint8_t header_down_g;
|
||||
uint8_t header_down_r;
|
||||
uint8_t header_down_b;
|
||||
|
||||
uint8_t bass_g;
|
||||
uint8_t bass_r;
|
||||
uint8_t bass_b;
|
||||
|
||||
uint8_t p1_start;
|
||||
uint8_t p1_updown;
|
||||
uint8_t p1_leftright;
|
||||
|
||||
uint8_t light12;
|
||||
uint8_t light13;
|
||||
uint8_t light14;
|
||||
uint8_t light15;
|
||||
} ddr;
|
||||
uint8_t raw[16];
|
||||
} p4io_lights_t;
|
||||
|
||||
_Static_assert(sizeof(p4io_lights_t) == 16, "p4io_lights_t is the wrong size");
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue
Block a user