highlightshadow

Untitled

Oct 11th, 2023 (edited)
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.16 KB | None | 0 0
  1. /*
  2. Jedi Killer
  3. Proffie OS7.11 w/ Fett263 buttons
  4.  
  5. ********************************************************************************************************************************
  6. Version History
  7. ---------------
  8. 05/01/2023 1.0 Initial Release
  9. 06/05/2023 2.0 Reworked for OS7.7 and Proffie 3.9 Board
  10. 10/10/203 3.0 New Fett styles for multiphase + new controls for OS7
  11. ********************************************************************************************************************************
  12. */
  13.  
  14. #ifdef CONFIG_TOP
  15. #include "proffieboard_v3_config.h"
  16. #define NUM_BLADES 6
  17. #define NUM_BUTTONS 2
  18. const unsigned int maxLedsPerStrip = 144;
  19.  
  20. // Volume + Sensitivity from real / false clashes
  21. #define VOLUME 2100
  22. #define CLASH_THRESHOLD_G 9.5
  23. #define AUDIO_CLASH_SUPPRESSION_LEVEL 23
  24. #define BOOT_VOLUME 600
  25.  
  26. // Core Functionality
  27. #define ENABLE_AUDIO
  28. #define ENABLE_MOTION
  29. #define ENABLE_WS2811
  30. #define ENABLE_SD
  31.  
  32. // Memory Saving defines / New Functionality
  33. //#define DISABLE_DIAGNOSTIC_COMMANDS
  34. #define COLOR_CHANGE_DIRECT
  35. #define DISABLE_BASIC_PARSER_STYLES
  36. #define EXTRA_COLOR_BUFFER_SPACE 60
  37. #define FETT263_SPECIAL_ABILITIES
  38. #define NO_REPEAT_RANDOM
  39. #define FETT263_DISABLE_COPY_PRESET
  40.  
  41. // Support inverted install proffieboard
  42. // #define ORIENTATION ORIENTATION_USB_TOWARDS_BLADE
  43. //#define ENABLE_ALL_EDIT_OPTIONS
  44. //#define FETT263_EDIT_SETTINGS_MENU
  45. #define FETT263_TWIST_ON_NO_BM
  46. #define FETT263_TWIST_ON
  47. #define FETT263_TWIST_OFF
  48. #define FETT263_MOTION_WAKE_POWER_BUTTON
  49. #define FETT263_THRUST_ON
  50. #define FETT263_HOLD_BUTTON_LOCKUP
  51. #define FETT263_LOCKUP_DELAY 200
  52. #define FETT263_RANDOMIZE_QUOTE_PLAYER
  53.  
  54. // Timesout For Clash/Gestures (60s * 5 * 1000ms = 5 minutes)
  55. #define MOTION_TIMEOUT 60 * 5 * 1000
  56.  
  57. // Timeout for Crystal Chamber (60s * 5 * 1000ms = 5 minutes)
  58. #define IDLE_OFF_TIME 60 * 6 * 1000
  59.  
  60. #endif
  61.  
  62. // Implement Fett263 buttons
  63. #ifdef CONFIG_PROP
  64. #include "../props/saber_fett263_buttons.h"
  65. #endif
  66.  
  67. // *************************************************************************
  68. // Custom Library for Styles
  69. // *************************************************************************
  70.  
  71. #ifdef CONFIG_PRESETS
  72. #include "MyBladeStyles_OS6_v3.h" // Include file for blades
  73. #include "Accents_Library_v1.h" // Include file for accents
  74. #include "Jedi_Library_v1.h" // Include file for blades
  75.  
  76. Preset presets[] = {
  77.  
  78. ////////
  79.  
  80. /* Accent Order */
  81. /* SHTOK > BLADE > TOP CRYSTAL > BOTTOM CRYSTAL > UPPER STRIP > LOWER TURBINE */
  82.  
  83. { "Dual_Darth;common", "common/tracks/rematch_track1.wav",
  84. StylePtr<SHTOK_UNSTABLE_RED>(),
  85. StylePtr<DUAL_DARTH>(),
  86.  
  87. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  88. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  89.  
  90. StylePtr<DUAL_DARTH_ACCENT>(),
  91. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  92.  
  93. ////////
  94.  
  95. { "Vergence_Ani;common", "common/tracks/second_duel.wav",
  96. StylePtr<SHTOK_PULSE_WHITE>(),
  97. StylePtr<ANAKIN_MULTIPHASE>(),
  98.  
  99. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  100. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  101.  
  102. StylePtr<ANAKIN_UPPER_CHAMBER>(),
  103. StylePtr<ANAKIN_LOWER_CHAMBER>()},
  104.  
  105. ////////
  106.  
  107. { "Skoll;common", "common/tracks/skoll_track4.wav",
  108. StylePtr<SHTOK_PULSE_WHITE>(),
  109. StylePtr<SKOLL>(),
  110.  
  111. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  112. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  113.  
  114. StylePtr<SKOLL_ACCENT>(),
  115. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  116.  
  117. ////////
  118.  
  119. { "Darkness;common", "common/tracks/second_duel.wav",
  120. StylePtr<SHTOK_UNSTABLE_RED>(),
  121. StylePtr<DARKNESS_MAIN>(),
  122.  
  123. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  124. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  125.  
  126. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  127. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  128.  
  129. ////////
  130.  
  131. { "Rematch_Darth;common", "common/tracks/rematch_track2.wav",
  132. StylePtr<SHTOK_UNSTABLE_RED>(),
  133. StylePtr<REMATCH_D>(),
  134.  
  135. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  136. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  137.  
  138. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  139. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  140.  
  141. ////////
  142.  
  143. { "Vengeful_Youngling;common", "common/tracks/rematch_track1.wav",
  144. StylePtr<SHTOK_UNSTABLE_RED>(),
  145. StylePtr<VENGEFUL_YOUNGLING2>(),
  146.  
  147. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  148. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  149.  
  150. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  151. StylePtr<DIM_LOWER_FLICKER_RED>()},
  152.  
  153. ////////
  154.  
  155. { "Second;common", "common/tracks/rematch_track1.wav",
  156. StylePtr<SHTOK_UNSTABLE_RED>(),
  157. StylePtr<SECOND_SISTER_BLADE>(),
  158.  
  159. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  160. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  161.  
  162. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  163. StylePtr<DIM_LOWER_FLICKER_RED>()},
  164.  
  165. ////////
  166.  
  167. { "Traveller;common", "common/tracks/rematch_track1.wav",
  168. StylePtr<SHTOK_UNSTABLE_RED>(),
  169. StylePtr<TRAVELLER_BLADE>(),
  170.  
  171. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  172. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  173.  
  174. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  175. StylePtr<DIM_LOWER_FLICKER_RED>()},
  176.  
  177. ////////
  178.  
  179. { "Villainous_Heritage;common", "common/tracks/Kylo_Theme.wav",
  180. StylePtr<SHTOK_UNSTABLE_RED>(),
  181. StylePtr<VILLAINOUS>(),
  182.  
  183. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  184. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  185.  
  186. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  187. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  188.  
  189. ////////
  190.  
  191. { "8thBrother;common", "common/tracks/rematch_track1.wav",
  192. StylePtr<SHTOK_UNSTABLE_RED>(),
  193. StylePtr<EIGHTH_BROTHER>(),
  194.  
  195. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  196. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  197.  
  198. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  199. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  200.  
  201. ////////
  202.  
  203. { "Am;common", "common/tracks/rematch_track1.wav",
  204. StylePtr<SHTOK_UNSTABLE_RED>(),
  205. StylePtr<AM_BLADE>(),
  206.  
  207. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  208. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  209.  
  210. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  211. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  212.  
  213. ////////
  214.  
  215. { "Foolish_Old_Man;common", "common/tracks/rematch_track1.wav",
  216. StylePtr<SHTOK_UNSTABLE_RED>(),
  217. StylePtr<RED_ROTO_BLADE_PRE>(),
  218.  
  219. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  220. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  221.  
  222. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  223. StylePtr<DEATHSTAR_UNSTABLE_RED>()},
  224.  
  225. ////////
  226.  
  227. { "Emperor;common", "common/tracks/rematch_track1.wav",
  228. StylePtr<SHTOK_UNSTABLE_RED>(),
  229. StylePtr<SHADOW_HAND_BLADE>(),
  230.  
  231. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  232. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  233.  
  234. StylePtr<ERRATIC_STRIP_DUAL_RED>(),
  235. StylePtr<DIM_LOWER_FLICKER_RED>()},
  236.  
  237. ////////
  238.  
  239. { "D-Maul2;common", "common/tracks/rematch_track1.wav",
  240. StylePtr<SHTOK_UNSTABLE_RED>(),
  241. StylePtr<DMAUL_BLADE>(),
  242.  
  243. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  244. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  245.  
  246. StylePtr<DEATHSTAR_UNSTABLE_RED>(),
  247. StylePtr<DIM_LOWER_FLICKER_RED>()},
  248.  
  249. ////////
  250.  
  251. { "Kylo_TROS;common", "common/tracks/rematch_track1.wav",
  252. StylePtr<SHTOK_PULSE_WHITE>(),
  253. StylePtr<Kylo_TROS>(),
  254.  
  255. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  256. StylePtr<RED_UNSTABLE_CRYSTAL>(),
  257.  
  258. StylePtr<DEATHSTAR_UNSTABLE_RED>(),
  259. StylePtr<DIM_LOWER_FLICKER_WHITE>()},
  260.  
  261. ////////
  262.  
  263. { "Rematch_Ben;common", "common/tracks/rematch_track1.wav",
  264. StylePtr<SHTOK_PULSE_WHITE>(),
  265. StylePtr<BLUE_ROTO_BLADE_PRE>(),
  266.  
  267. StylePtr<BLUE_UNSTABLE_CRYSTAL>(),
  268. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  269.  
  270. StylePtr<ACCENT_BLUE_UNSTABLE>(),
  271. StylePtr<DEATHSTAR_UNSTABLE_BLUE>()},
  272.  
  273. ////////
  274.  
  275. { "TLJ_Graflex;common", "common/tracks/rematch_track1.wav",
  276. StylePtr<SHTOK_PULSE_WHITE>(),
  277. StylePtr<BLUE_ROTO_BLADE_PRE>(),
  278.  
  279. StylePtr<BLUE_UNSTABLE_CRYSTAL>(),
  280. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  281.  
  282. StylePtr<DEATHSTAR_UNSTABLE_BLUE>(),
  283. StylePtr<DIM_LOWER_FLICKER_BLUE>()},
  284.  
  285. ////////
  286.  
  287. { "T_Ahsoka;common", "common/tracks/rematch_track1.wav",
  288. StylePtr<SHTOK_PULSE_WHITE>(),
  289. StylePtr<BLUE_ROTO_BLADE_PRE>(),
  290.  
  291. StylePtr<BLUE_UNSTABLE_CRYSTAL>(),
  292. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  293.  
  294. StylePtr<ERRATIC_STRIP_DUAL_BLUE>(),
  295. StylePtr<DIM_LOWER_FLICKER_BLUE>()},
  296.  
  297. ////////
  298.  
  299. { "Return;common", "common/tracks/rematch_track1.wav",
  300. StylePtr<SHTOK_PULSE_WHITE>(),
  301. StylePtr<GREEN_OT_BLADE>(),
  302.  
  303. StylePtr<GREEN_UNSTABLE_CRYSTAL>(),
  304. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  305.  
  306. StylePtr<ERRATIC_STRIP_DUAL_GREEN>(),
  307. StylePtr<DIM_LOWER_FLICKER_GREEN>()},
  308.  
  309. ////////
  310.  
  311. { "Sorcerer_v2;common", "common/tracks/Sorcererv2_track1.wav",
  312. StylePtr<SHTOK_PULSE_WHITE>(),
  313. StylePtr<WHITE_AHSOKA_BLADE>(),
  314.  
  315. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  316. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  317.  
  318. StylePtr<ERRATIC_STRIP_DUAL_SILVER>(),
  319. StylePtr<DIM_LOWER_FLICKER_WHITE>()},
  320.  
  321. ////////
  322.  
  323. { "ANH_Graflex;common", "common/tracks/rematch_track1.wav",
  324. StylePtr<SHTOK_PULSE_WHITE>(),
  325. StylePtr<BLUE_OT_BLADE>(),
  326.  
  327. StylePtr<BLUE_UNSTABLE_CRYSTAL>(),
  328. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  329.  
  330. StylePtr<ERRATIC_STRIP_DUAL_BLUE>(),
  331. StylePtr<DIM_LOWER_FLICKER_WHITE>()},
  332.  
  333. ////////
  334.  
  335. { "TROS_Graflex;common", "common/tracks/rematch_track1.wav",
  336. StylePtr<SHTOK_PULSE_WHITE>(),
  337. StylePtr<BLUE_ROTO_BLADE_SEQ>(),
  338.  
  339. StylePtr<BLUE_UNSTABLE_CRYSTAL>(),
  340. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  341.  
  342. StylePtr<BLUE_COMPLEX>(),
  343. StylePtr<DIM_LOWER_FLICKER_WHITE>()},
  344.  
  345. ////////
  346.  
  347. { "Dark_Std;common", "common/tracks/rematch_track1.wav",
  348. StylePtr<SHTOK_PULSE_WHITE>(),
  349. StylePtr<WHITE_DARK_BLADE>(),
  350.  
  351. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  352. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  353.  
  354. StylePtr<ERRATIC_STRIP_DUAL_SILVER>(),
  355. StylePtr<DIM_LOWER_FLICKER_WHITE>()},
  356.  
  357. ////////
  358.  
  359. { "Inquisitor;common", "common/tracks/rematch_track1.wav",
  360. StylePtr<SHTOK_PULSE_WHITE>(),
  361. StylePtr<VISION_WHITE_UNSTABLE>(),
  362.  
  363. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  364. StylePtr<SILVER_UNSTABLE_CRYSTAL>(),
  365.  
  366. StylePtr<ERRATIC_STRIP_DUAL_SILVER>(),
  367. StylePtr<DIM_LOWER_FLICKER_WHITE>()},
  368.  
  369. ////////
  370.  
  371. { "T_Inquisitor;common", "common/tracks/rematch_track1.wav",
  372. StylePtr<SHTOK_PULSE_WHITE>(),
  373. StylePtr<T_INQUIS_BLADE>(),
  374.  
  375. StylePtr<RED_BASE_CRYSTAL>(),
  376. StylePtr<RED_BASE_CRYSTAL>(),
  377.  
  378. StylePtr<EVENT_RED>(),
  379. StylePtr<DIM_LOWER_FLICKER_WHITE>()},
  380.  
  381. ////////
  382.  
  383. { "CmdrTano;common", "common/tracks/rematch_track1.wav",
  384. StylePtr<SHTOK_PULSE_WHITE>(),
  385. StylePtr<CMDR_TANO>(),
  386.  
  387. StylePtr<BLUE_UNSTABLE_CRYSTAL>(),
  388. StylePtr<BLUE_UNSTABLE_CRYSTAL>(),
  389.  
  390. StylePtr<ACCENT_BLUE_UNSTABLE>(),
  391. StylePtr<DEATHSTAR_UNSTABLE_BLUE>()},
  392.  
  393. ////////
  394.  
  395.  
  396.  
  397. };
  398.  
  399.  
  400. BladeConfig blades[] = {
  401. { 0,
  402. // Pair 1 = Shtok PCB + Main
  403. SubBlade (0, 15, WS281XBladePtr<130, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >() ),
  404. SubBlade (16, 129, NULL),
  405.  
  406. // Pair 2 = Crystals underlight
  407. SubBlade (0, 0, WS281XBladePtr<3, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >() ),
  408. SubBlade (1, 1, NULL),
  409.  
  410. // Item 3 = Upper Strip
  411. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(),
  412.  
  413. // Item 4 - Lower Turbine
  414. WS281XBladePtr<10, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(),
  415.  
  416. CONFIGARRAY(presets) },
  417. };
  418. #endif
  419.  
  420. // Buttons Setup
  421. #ifdef CONFIG_BUTTONS
  422. Button PowerButton(BUTTON_POWER, auxPin, "pow");
  423. Button AuxButton(BUTTON_AUX, powerButtonPin, "aux");
  424. #endif
  425.  
  426.  
Advertisement
Add Comment
Please, Sign In to add comment