add support for the Impulse dance platform.
This commit is contained in:
parent
cd1c1f93d0
commit
42a8235ddf
|
@ -27,6 +27,7 @@ struct HIDAPIOutDriver
|
||||||
int is_rgby;
|
int is_rgby;
|
||||||
int bank_size[4];
|
int bank_size[4];
|
||||||
int bank_id[4];
|
int bank_id[4];
|
||||||
|
int do_write_method;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,13 +50,74 @@ static void * LEDOutThread( void * v )
|
||||||
}
|
}
|
||||||
printf( "\n" );
|
printf( "\n" );
|
||||||
*/
|
*/
|
||||||
|
if( led->do_write_method )
|
||||||
|
{
|
||||||
|
static int rk;
|
||||||
|
|
||||||
|
int panel = 0;
|
||||||
|
for( panel = 0; panel < 9; panel++ )
|
||||||
|
{
|
||||||
|
uint8_t hidbuf[66];
|
||||||
|
memset( hidbuf, 0x00, 65 );
|
||||||
|
hidbuf[0] = panel;
|
||||||
|
int i;
|
||||||
|
int tled = panel;
|
||||||
|
|
||||||
|
if( led->do_write_method == 2 )
|
||||||
|
{
|
||||||
|
for( i = 0; i < 16; i++ )
|
||||||
|
{
|
||||||
|
int wled = i * 3;
|
||||||
|
tled = panel * 16 + i;
|
||||||
|
hidbuf[wled+2] = OutLEDs[tled*3+1];
|
||||||
|
hidbuf[wled+3] = OutLEDs[tled*3+0];
|
||||||
|
hidbuf[wled+4] = OutLEDs[tled*3+2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for( i = 0; i < 16; i++ )
|
||||||
|
{
|
||||||
|
int wled = i * 3;
|
||||||
|
hidbuf[wled+2] = OutLEDs[tled*3+1];
|
||||||
|
hidbuf[wled+3] = OutLEDs[tled*3+0];
|
||||||
|
hidbuf[wled+4] = OutLEDs[tled*3+2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rk += 0x80;
|
||||||
|
hidbuf[0] = 0;
|
||||||
|
hidbuf[1] = panel;
|
||||||
|
|
||||||
|
int r;
|
||||||
|
#if 0
|
||||||
|
for( i = 0; i < 64; i++ )
|
||||||
|
{
|
||||||
|
printf( "%02x ", hidbuf[i] );
|
||||||
|
}
|
||||||
|
printf( "\n" ); fflush( stdout );
|
||||||
|
#endif
|
||||||
|
// printf( "." ); fflush( stdout );
|
||||||
|
r = hid_write( led->devh, hidbuf, 64 );
|
||||||
|
//usleep(1000);
|
||||||
|
if( r < 0 )
|
||||||
|
{
|
||||||
|
led->did_init = 0;
|
||||||
|
printf( "Fault sending LEDs.\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
int r = hid_send_feature_report( led->devh, led->last_leds, total_bytes );
|
int r = hid_send_feature_report( led->devh, led->last_leds, total_bytes );
|
||||||
if( r < 0 )
|
if( r < 0 )
|
||||||
{
|
{
|
||||||
led->did_init = 0;
|
led->did_init = 0;
|
||||||
printf( "Fault sending LEDs.\n" );
|
printf( "Fault sending LEDs.\n" );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
led->readyFlag = 0;
|
led->readyFlag = 0;
|
||||||
|
printf( "." ); fflush( stdout );
|
||||||
}
|
}
|
||||||
OGUSleep(100);
|
OGUSleep(100);
|
||||||
}
|
}
|
||||||
|
@ -73,7 +135,16 @@ static void LEDUpdate(void * id, struct NoteFinder*nf)
|
||||||
led->did_init = 1;
|
led->did_init = 1;
|
||||||
hid_init();
|
hid_init();
|
||||||
|
|
||||||
|
if( led->do_write_method )
|
||||||
|
{
|
||||||
|
//Impulse
|
||||||
|
led->devh = hid_open( 0x0483, 0x5750, 0 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//My dingus.
|
||||||
led->devh = hid_open( 0xabcd, 0xf104, 0 );
|
led->devh = hid_open( 0xabcd, 0xf104, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
if( !led->devh )
|
if( !led->devh )
|
||||||
{
|
{
|
||||||
|
@ -217,6 +288,7 @@ static void LEDParams(void * id )
|
||||||
led->bank_id[1] = 0; RegisterValue( "bank2_id", PAINT, &led->bank_id[1], sizeof( led->bank_id[1] ) );
|
led->bank_id[1] = 0; RegisterValue( "bank2_id", PAINT, &led->bank_id[1], sizeof( led->bank_id[1] ) );
|
||||||
led->bank_id[2] = 0; RegisterValue( "bank3_id", PAINT, &led->bank_id[2], sizeof( led->bank_id[2] ) );
|
led->bank_id[2] = 0; RegisterValue( "bank3_id", PAINT, &led->bank_id[2], sizeof( led->bank_id[2] ) );
|
||||||
led->bank_id[3] = 0; RegisterValue( "bank4_id", PAINT, &led->bank_id[3], sizeof( led->bank_id[3] ) );
|
led->bank_id[3] = 0; RegisterValue( "bank4_id", PAINT, &led->bank_id[3], sizeof( led->bank_id[3] ) );
|
||||||
|
led->do_write_method = 0; RegisterValue( "do_write_method", PAINT, &led->do_write_method, sizeof( led->do_write_method ) );
|
||||||
|
|
||||||
led->did_init = 0;
|
led->did_init = 0;
|
||||||
}
|
}
|
||||||
|
|
37
colorchord2/impulse.conf
Normal file
37
colorchord2/impulse.conf
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
|
||||||
|
This is a vornoi thing:
|
||||||
|
outdrivers = DisplayArray, OutputCells, DisplayHIDAPI
|
||||||
|
lightx = 12
|
||||||
|
lighty = 12
|
||||||
|
leds = 144
|
||||||
|
fromsides = 0
|
||||||
|
shape_cutoff = 0.00
|
||||||
|
satamp = 5.000
|
||||||
|
amppow = 2.510
|
||||||
|
distpow = 1.500
|
||||||
|
|
||||||
|
light_siding = 1.9
|
||||||
|
|
||||||
|
samplerate = 11025
|
||||||
|
buffer = 64
|
||||||
|
|
||||||
|
#sourcename = default
|
||||||
|
sourcename = alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
|
||||||
|
#default
|
||||||
|
do_write_method = 2
|
||||||
|
|
||||||
|
amplify = 2.5
|
||||||
|
note_attach_amp_iir = 0.9000
|
||||||
|
note_attach_amp_iir2 = 0.550
|
||||||
|
note_attach_freq_iir = 0.9000
|
||||||
|
dft_iir = .6
|
||||||
|
dft_q = 20.0000
|
||||||
|
dft_speedup = 1000.0000
|
||||||
|
note_jumpability = 1.0000
|
||||||
|
|
||||||
|
#skittlequantity = 24
|
||||||
|
timebased = 1
|
||||||
|
snakey=0
|
||||||
|
qtyamp = 160
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue