Glenn Maynard
672541015f
Add SMX_SetOnlySendLightsOnChange for smx-panel-test.
5 years ago
Glenn Maynard
69b2239922
Refactor SMXManager::SendLightUpdates to queue multiple lights commands if possible.
...
This also fixes a memory leak if lights are queued too quickly.
5 years ago
Glenn Maynard
c53c3d45c6
Make sure we don't send lights commands before we have a config packet, and adjust the V3 command timing.
5 years ago
Glenn Maynard
27be716768
Add disabled combined thresholds.
5 years ago
Glenn Maynard
9facc93548
8-bit FSR thresholds.
6 years ago
Glenn Maynard
b1f675c56c
Add config packet backwards-compatibility.
6 years ago
Glenn Maynard
4c07c5572e
Add some default values for SMXConfig.
6 years ago
Glenn Maynard
6cc979b1dc
Implement the V5 config packet.
6 years ago
Glenn Maynard
c4eb3a548c
Log when we don't see data from a panel.
6 years ago
Glenn Maynard
f858e25434
Reenable bbadSensorInput (unintentionally disabled while testing).
6 years ago
Glenn Maynard
1b01f53796
Add an option to enable or disable lighting on panels with no sensors.
6 years ago
Glenn Maynard
f35f596cee
Update the config block with new fields.
6 years ago
Glenn Maynard
5556d4fd65
Fix bad Color::operator== causing GIF frames to be merged incorrectly.
6 years ago
Glenn Maynard
af82a1e423
Remove the reset command on startup (just causes flicker).
6 years ago
Glenn Maynard
ec061d4223
Refactor uploading animations to allow uploading automatically instead of having a separate upload button, and iron out some inconsistencies.
6 years ago
Glenn Maynard
d38307d3bc
Fix GIF loop frames.
6 years ago
Glenn Maynard
ce261c1ecb
Add internal support for panel test modes, and rename "test mode" to "sensor test mode" to make the distinction clearer.
6 years ago
Glenn Maynard
63e76f29cc
Use opaque white instead of just opaque for the marker pixel, so transparent GIFs aren't needed when markers aren't being used.
6 years ago
Glenn Maynard
501b297c8f
Rename iBadSensorDIP -> iBadJumper.
6 years ago
Glenn Maynard
bf9b8b185c
Coalesce identical GIF frames on load.
6 years ago
Glenn Maynard
6d370ee092
Show a warning if an incorrect sensor DIP switch is detected.
6 years ago
Glenn Maynard
6d0820f495
Add the PlatformFlags_FSR config flag.
6 years ago
Glenn Maynard
681c7adfef
Fix up calculating animation frame counts.
6 years ago
Glenn Maynard
a202063287
Truncate the config packet for firmware that doesn't need all of it.
6 years ago
Glenn Maynard
cc07e07649
Fix auto-lighting not reactivating quickly.
6 years ago
Glenn Maynard
9167c9e0ed
Use GetOverlappedResult instead of GetOverlappedResultEx for Windows 7.
6 years ago
Glenn Maynard
88052ee318
Updates to graphic upload handling.
6 years ago
Glenn Maynard
849fd7a975
Simplify overlapped I/O handling, and add a command timeout.
...
If we don't get a response from a command in a while, resend it. This doesn't
normally happen (it only happened during firmware development), but it makes
command sending more robust, so let's keep it. This also uses a single OVERLAPPED
for a whole command, which is simpler.
6 years ago
Glenn Maynard
48c75ba224
Pass the packet response to completion callbacks.
6 years ago
Glenn Maynard
879df7152c
Fix m_bSendingConfig not being reset on close.
...
This could cause us to stop sending config updates, since we're still
waiting for the previous one to complete. This is probably the cause
of threshold changes, etc. not being applied.
6 years ago
Glenn Maynard
aba274603c
Set LIGHTS_PER_PANEL to 25.
...
At 16 the lights data was overflowing, which is probably what was causing the
smxconfig crashes.
6 years ago
Glenn Maynard
1c980f24e0
Add config fields for FSR sensitivity and the platform strip color.
...
This also sets pack:1 so we don't rely on compiler struct alignment.
6 years ago
Glenn Maynard
3d5be3017b
Add support for 25 light panels (SDK side).
6 years ago
Glenn Maynard
55443cccb8
Add SMX_SetLights2 to specify the buffer size explicitly.
6 years ago
Glenn Maynard
5e1068d565
Fix config updates when updating quickly.
...
This fixes the pad flickering when dragging the color slider, because it
could briefly use an out-of-date configuration (only really visible when
going between red and white on the left).
6 years ago
Glenn Maynard
f4e60ef2e0
Clarify comment.
6 years ago
Glenn Maynard
cb7feb626e
Separate out scaleLight.
6 years ago
Glenn Maynard
cf02b97fe6
Rename m_aPendingCommands -> m_aPendingLightsCommands.
...
This only buffers lights commands, not all commands.
6 years ago
Glenn Maynard
39cfc8cee0
Add support for uploading animations to the panel, if it supports it.
6 years ago
Glenn Maynard
0b3202ccff
Handle 25-light panel animations in SMXPanelAnimation.
6 years ago
Glenn Maynard
880774f9e4
Make sure we call the callback from SendCommandLocked if the device isn't connected and we're not queueing the command.
6 years ago
Glenn Maynard
4691ce5ecf
If commands are buffered and not sent when the device is disconnected, call any completion callbacks.
...
This is to guarantee that completion callbacks are always called, so if any
resource collection happens in them it'll always happen.
6 years ago
Glenn Maynard
135e3c5401
Add a UI to set panel animations.
...
This is driven by the config tool, which needs to stay running.
6 years ago
Glenn Maynard
2628c078fa
Add SMXPanelAnimation.
6 years ago
Glenn Maynard
303283624a
Add SMX_SetLights2.
...
This is the same as SMX_SetLights, but instead of taking one buffer with a
fixed size, it takes a separate buffer for each pad, and explicitly includes
the size of the buffer rather than assuming it's 864 bytes. SMX_SetLights
and SMX_SetLights2 call into the same underlying update.
6 years ago
Glenn Maynard
d576545266
Split out low-level thread handling into SMXThread, and use it in SMXHelperThread.
...
This isn't used by the SMXManager thread for now.
This also separates out SMX::Event for thread event handling.
6 years ago
Glenn Maynard
a7cb6ad51d
Replace SMXHelperThread::GetThreadId() with SMXHelperThread::IsCurrentThread().
6 years ago
Glenn Maynard
ad2e7dcb74
Move extern "C" into the SMX_API define.
6 years ago
Glenn Maynard
4c0da63842
Add debounceDelayMs.
...
This isn't turned on, this is just to sync up the config packet with the
firmware.
6 years ago
Glenn Maynard
7a4bbc6eab
Pad the configuration struct to 250 bytes, so the SDK.DLL ABI doesn't change when fields are added.
6 years ago