@@ -19,24 +19,23 @@ public class HapticWebPlugin : Plugin
1919 private CertificateManager _certificateManager ;
2020 private HttpsServer _httpsServer ;
2121
22- private static readonly Dictionary < String , String > HapticWaveforms = new Dictionary < String , String >
22+ private static readonly List < String > HapticWaveforms = new List < String >
2323 {
24- { "sharp_state_change" , "Short, high-intensity pulse for discrete state transitions" } ,
25- { "damp_state_change" , "Gradual intensity change for smooth state transitions" } ,
26- { "sharp_collision" , "High-intensity impact simulation for collision events" } ,
27- { "damp_collision" , "Medium-intensity impact with gradual decay" } ,
28- { "subtle_collision" , "Low-intensity feedback for light contact events" } ,
29- { "happy_alert" , "Positive feedback pattern for success states" } ,
30- { "angry_alert" , "Attention-grabbing pattern for error conditions" } ,
31- { "completed" , "Confirmation pattern for task completion" } ,
32- { "square" , "Sharp-edged waveform with defined start/stop points" } ,
33- { "wave" , "Smooth sinusoidal pattern with gradual transitions" } ,
34- { "firework" , "Multi-burst pattern with varying intensities" } ,
35- { "mad" , "High-frequency chaotic pattern" } ,
36- { "knock" , "Repetitive impact pattern" } ,
37- { "jingle" , "Musical-style pattern with multiple tones" } ,
38- { "ringing" , "Continuous oscillating pattern" } ,
39- { "heartbeat" , "Rhythmic double-pulse pattern" }
24+ "sharp_collision" ,
25+ "sharp_state_change" ,
26+ "knock" ,
27+ "damp_collision" ,
28+ "mad" ,
29+ "ringing" ,
30+ "subtle_collision" ,
31+ "completed" ,
32+ "jingle" ,
33+ "damp_state_change" ,
34+ "firework" ,
35+ "happy_alert" ,
36+ "wave" ,
37+ "angry_alert" ,
38+ "square"
4039 } ;
4140
4241 public override Boolean UsesApplicationApiOnly => true ;
@@ -159,17 +158,11 @@ private Object HandleHealthCheck()
159158
160159 private Object HandleListWaveforms ( )
161160 {
162- var waveformList = new List < Object > ( ) ;
163- foreach ( var waveform in HapticWaveforms )
164- {
165- waveformList . Add ( new { name = waveform . Key , description = waveform . Value } ) ;
166- }
167-
168161 return new
169162 {
170163 success = true ,
171164 count = HapticWaveforms . Count ,
172- waveforms = waveformList
165+ waveforms = HapticWaveforms
173166 } ;
174167 }
175168
@@ -180,13 +173,13 @@ private Object HandleTriggerHaptic(String waveform)
180173 return new { success = false , error = "Waveform name is required" } ;
181174 }
182175
183- if ( ! HapticWaveforms . ContainsKey ( waveform ) )
176+ if ( ! HapticWaveforms . Contains ( waveform ) )
184177 {
185178 return new
186179 {
187180 success = false ,
188181 error = $ "Unknown waveform: { waveform } ",
189- availableWaveforms = new List < String > ( HapticWaveforms . Keys )
182+ availableWaveforms = HapticWaveforms
190183 } ;
191184 }
192185
@@ -212,7 +205,7 @@ private void RegisterHapticEvents()
212205 {
213206 foreach ( var waveform in HapticWaveforms )
214207 {
215- this . PluginEvents . AddEvent ( waveform . Key , waveform . Key , waveform . Value ) ;
208+ this . PluginEvents . AddEvent ( waveform , waveform , null ) ;
216209 }
217210 PluginLog . Info ( $ "Registered { HapticWaveforms . Count } haptic events") ;
218211 }
0 commit comments