Thanks, I’ll have to take a closer look at the Aux press.
Looks like there wasn’t a press action while ON, I have added. Give it a try when you get a chance, pull down an updated ZIP from same branch.
That did it!
All sounds playing in all states for all uses.
Very functional and a huge help for these 8mm copper headed buttons that have no feedback built in.
Thanks again!
Great to hear, appreciate the help testing.
Not sure if this can be considered as a valid test but I compiled the same config several times with PROFFIEOS_LOG_LEVEL
value 0, 100, 200, 300, 400, 500 & 1000.
#define PROFFIEOS_LOG_LEVEL 0:
Sketch uses 260768 bytes (99%) of program storage space. Maximum is 262144 bytes.
#define PROFFIEOS_LOG_LEVEL 100:
Sketch uses 261008 bytes (99%) of program storage space. Maximum is 262144 bytes.
#define PROFFIEOS_LOG_LEVEL 200:
Sketch uses 261384 bytes (99%) of program storage space. Maximum is 262144 bytes.
#define PROFFIEOS_LOG_LEVEL 300:
Sketch uses 261520 bytes (99%) of program storage space. Maximum is 262144 bytes.
#define PROFFIEOS_LOG_LEVEL 400:
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe:C:\..redacted..\Arduino15\packages\proffieboard\hardware\stm32l4\4.6\variants\STM32L433CC-ProffieboardV2/linker_scripts/STM32L433CC_FLASH.ld:224: warning: memory region `SRAM2' not declared
lto-wrapper.exe: warning: using serial compilation of 8 LTRANS jobs
lto-wrapper.exe: note: see the '-flto' option documentation for more information
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: start of section .bss changed by 16
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\..redacted..\arduino\sketches\7DE54DF856E10BE9B34F4CADF2AECF61/ProffieOS.ino.elf section `.text' will not fit in region `FLASH'
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 832 bytes
collect2.exe: error: ld returned 1 exit status
exit status 1
Compilation error: exit status 1
#define PROFFIEOS_LOG_LEVEL 500:
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe:C:\..redacted..\proffieboard\hardware\stm32l4\4.6\variants\STM32L433CC-ProffieboardV2/linker_scripts/STM32L433CC_FLASH.ld:224: warning: memory region `SRAM2' not declared
lto-wrapper.exe: warning: using serial compilation of 8 LTRANS jobs
lto-wrapper.exe: note: see the '-flto' option documentation for more information
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: start of section .bss changed by 16
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\..redacted..\arduino\sketches\7DE54DF856E10BE9B34F4CADF2AECF61/ProffieOS.ino.elf section `.text' will not fit in region `FLASH'
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 1056 bytes
collect2.exe: error: ld returned 1 exit status
exit status 1
Compilation error: exit status 1
#define PROFFIEOS_LOG_LEVEL 1000:
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe:C:\..redacted..\proffieboard\hardware\stm32l4\4.6\variants\STM32L433CC-ProffieboardV2/linker_scripts/STM32L433CC_FLASH.ld:224: warning: memory region `SRAM2' not declared
lto-wrapper.exe: warning: using serial compilation of 8 LTRANS jobs
lto-wrapper.exe: note: see the '-flto' option documentation for more information
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: start of section .bss changed by 16
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\..redacted..\arduino\sketches\7DE54DF856E10BE9B34F4CADF2AECF61/ProffieOS.ino.elf section `.text' will not fit in region `FLASH'
C:/..redacted../14.2.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 1056 bytes
collect2.exe: error: ld returned 1 exit status
exit status 1
Compilation error: exit status 1
I didn’t upload them this time, however on previous occasions with my multi_prop testing (compiling & uploading) with PROFFIEOS_LOG_LEVEL
values of 100, 300 & 500, I was getting similar results: the lower the log level, the lower the flash memory was used. I believe it is working as expected.
I know, I am the one who submitted the PR for this (so I might be biassed) but I tried it with a value of 3000 and it worked as expected.
SubBladeWithList - Works well. (Used it a few times now without realising it was new, but just double-checked again and all good)!)
BLADE_ID_SCAN_TIMEOUT - Yep, it stops scanning after the timeout.
BLADE_ID_STOP_SCAN_WHILE_IGNITED - I think this needs work. I found that lighting the blade was fine, but when you shut down, as the blade is just starting to retract, it starts trying to scan again which messes up the retraction. With no blade fitted you get garbled lights on the neo blade connector. Admittedly I’m only using snapshotid, so might be different with externalpullup, but I don’t have a hilt to test that. I do still also find I get quite a few false reads, where it’s sat idle, then suddenly decides the value has changed, starts to play the font ident, then thinks, “Oh no, it hasn’t changed after all.” But again, that might be the fault of snapshotid.
NO_BLADE_ID_RANGE 77,1000 - With careful value settings, this can work as a substitute for true Blade Detect I think, though of course it still has the limitation of only working with a given specified blade, and if the genuine scanned values happen to be very close to each other, the system can still get confused about which state it finds itself in. I also tried it with NO_BLADE in the blade array (instead of 0) and the scan value for the bladein array, and it worked, correctly playing the bladein/out wavs when fitting/removing a blade.
You may also remember when we worked on this a while back we got little micro flickers from some LEDs when the system was scanning. As far as I can tell, that seems to be fixed now.
I thought this was tested by NoSloppy already. I have mass storage and #define MOUNT_SD_SETTING
. I rarely make changes to my SD-Card through Proffieboard because most changes are usually quite big but when I need to only change a file or two, I open serial monitor, use sd 1, change my file, use sd 0, done. No need to worry about having to remember to safely eject SD-Card anymore. Been using it for a few weeks. No corruption so far.
I’m trying to work out SubBladeWithList, and have tried a few blade sections without a successful compile.
I want to take my secondary blade and split it up into two SubBladeWithList. I tried following the pattern of subblade in general, then thought maybe line needs a complete blade definition (as below). The syntax seems different with more <> and less (). SubBlade also generally ends in NULL somewhere, and I tried that without any luck.
Here’s what I’ve got right now:
BladeConfig blades[] = {
{ 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(),
SubBladeWithList<2,3,7,8,9,>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(),
CONFIGARRAY(presets) },
};
Could I get a little guidance please ?
Try this:
BladeConfig blades[] = {
{ 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(),
SubBladeWithList<2,3,7,8,9,>(NULL),
CONFIGARRAY(presets) },
Proffie 3.9
OS8.4
Plugin 4.6
Testing: SubBladeWithList
Main blade 122 leds
Secondary blade 14 leds
I’ve tried that blade array above. I also reduced my config to the most basic, fresh out of the V3 configurator version:
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#define VOLUME 1000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SHARED_POWER_PINS
#endif
#ifdef CONFIG_PRESETS
Preset presets[] = {
{ "TeensySF", "tracks/venus.wav",
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>(), "cyan"},
};
BladeConfig blades[] = {
{ 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(),
SubBladeWithList<2,3,7,8,9,>(NULL),
CONFIGARRAY(presets) },
#endif
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, auxPin, "pow");
Button AuxButton(BUTTON_AUX, powerButtonPin, "aux");
#endif
Error:
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:673:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:5: error: parse error in template argument list
26 | SubBladeWithList<2,3,7,8,9,>(NULL),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:33: error: no matching function for call to 'SubBladeWithList<2, 3, 7, 8, 9, <expression error> >(NULL)'
26 | SubBladeWithList<2,3,7,8,9,>(NULL),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:607:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/blades/sub_blade.h:363:12: note: candidate: 'template<int ...Indices> BladeBase* SubBladeWithList(BladeBase*)'
363 | BladeBase* SubBladeWithList(BladeBase* blade) {
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/blades/sub_blade.h:363:12: note: template argument deduction/substitution failed:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:33: error: template argument 6 is invalid
26 | SubBladeWithList<2,3,7,8,9,>(NULL),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:33: note: some candidates omitted; use '-fdiagnostics-all-candidates' to display them
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:27:26: error: expected ')' before '}' token
27 | CONFIGARRAY(presets) },
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:25:44: note: to match this '('
25 | SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(),
| ^
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber.h:30,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:681:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:28:1: error: expected primary-expression before 'class'
28 | class SaveGlobalStateFile : public ConfigFile {
| ^~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:28:1: error: expected '}' before 'class'
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:23:24: note: to match this '{'
23 | BladeConfig blades[] = {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:722:3: error: 'SaveGlobalStateFile' does not name a type; did you mean 'SavePresetStateFile'?
722 | SaveGlobalStateFile saved_global_state;
| ^~~~~~~~~~~~~~~~~~~
| SavePresetStateFile
exit status 1
Compilation error: parse error in template argument list
Sublime text had a red highlights in the blade section when working on the config, so I added a closing bracket to the first SubBladeWithList (to match the normal SubBlade pattern I think), which made them go away. Config at that point:
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#define VOLUME 1000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SHARED_POWER_PINS
#endif
#ifdef CONFIG_PRESETS
Preset presets[] = {
{ "TeensySF", "tracks/venus.wav",
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>(), "cyan"},
};
BladeConfig blades[] = {
{ 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()),
SubBladeWithList<2,3,7,8,9,>(NULL),
CONFIGARRAY(presets) },
#endif
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, auxPin, "pow");
Button AuxButton(BUTTON_AUX, powerButtonPin, "aux");
#endif
No joy. Error:
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:673:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:5: error: parse error in template argument list
26 | SubBladeWithList<2,3,7,8,9,>(NULL),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:33: error: no matching function for call to 'SubBladeWithList<2, 3, 7, 8, 9, <expression error> >(NULL)'
26 | SubBladeWithList<2,3,7,8,9,>(NULL),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:607:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/blades/sub_blade.h:363:12: note: candidate: 'template<int ...Indices> BladeBase* SubBladeWithList(BladeBase*)'
363 | BladeBase* SubBladeWithList(BladeBase* blade) {
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/blades/sub_blade.h:363:12: note: template argument deduction/substitution failed:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:33: error: template argument 6 is invalid
26 | SubBladeWithList<2,3,7,8,9,>(NULL),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:26:33: note: some candidates omitted; use '-fdiagnostics-all-candidates' to display them
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber.h:30,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:681:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:28:1: error: expected primary-expression before 'class'
28 | class SaveGlobalStateFile : public ConfigFile {
| ^~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:28:1: error: expected '}' before 'class'
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:23:24: note: to match this '{'
23 | BladeConfig blades[] = {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:722:3: error: 'SaveGlobalStateFile' does not name a type; did you mean 'SavePresetStateFile'?
722 | SaveGlobalStateFile saved_global_state;
| ^~~~~~~~~~~~~~~~~~~
| SavePresetStateFile
exit status 1
Compilation error: parse error in template argument list
What am I missing? Do I need to grab the github version of Proffie OS8?
Thank you!!
Top post updated.
I’m not sure either, it would be better to check that the printouts happen or not, but hey, it’s a lot better than no testing!
Again, it would be better if someone else tested it, but I’ll take what I can get…
It was. (See MOUNT_SD_SETTING define in top post.)
Can’t end the list with a comma, remove that and it should work better.
Thanks!!
Changed the blade array as suggested. Config:
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#define VOLUME 1000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#endif
#ifdef CONFIG_PRESETS
Preset presets[] = {
{ "TeensySF", "tracks/venus.wav",
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>(), "cyan"},
};
BladeConfig blades[] = {
{ 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()),
SubBladeWithList<2,3,7,8,9>(NULL),
CONFIGARRAY(presets) },
#endif
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, auxPin, "pow");
Button AuxButton(BUTTON_AUX, powerButtonPin, "aux");
#endif
Error:
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber.h:30,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:681:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:28:1: error: expected primary-expression before 'class'
28 | class SaveGlobalStateFile : public ConfigFile {
| ^~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:28:1: error: expected '}' before 'class'
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:673:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaMini.h:22:24: note: to match this '{'
22 | BladeConfig blades[] = {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:722:3: error: 'SaveGlobalStateFile' does not name a type; did you mean 'SavePresetStateFile'?
722 | SaveGlobalStateFile saved_global_state;
| ^~~~~~~~~~~~~~~~~~~
| SavePresetStateFile
exit status 1
Compilation error: expected primary-expression before 'class'
Then tried the config I was planning to use, so I could see the new blades stand out when my hilt is lit:
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 60
#define VOLUME 1250
#define CLASH_THRESHOLD_G 1
#define KILL_OLD_PLAYERS
#define FILTER_CUTOFF_FREQUENCY 100
#define FILTER_ORDER 8
#define MOTION_TIMEOUT 60 * 5 * 1000
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define DISABLE_TALKIE
#define ENABLE_ALL_EDIT_OPTIONS
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define FETT263_EDIT_SETTINGS_MENU
#define FETT263_SPECIAL_ABILITIES
#define FETT263_DISABLE_CHANGE_FONT
#define FETT263_DISABLE_CHANGE_STYLE
#define FETT263_DISABLE_COPY_PRESET
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define FETT263_SWING_ON
#define FETT263_SWING_ON_SPEED 400
#define FETT263_SWING_ON_NO_BM
#define FETT263_TWIST_OFF
#define SAVE_PRESET
#define FETT263_SAY_BATTERY_PERCENT
#endif
#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif
#ifdef CONFIG_PRESETS
Preset presets[] = {
{"ANH;common", "common/tracks/trailer.wav",
/* copyright Fett263 Rotoscope (Primary Blade) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope
OS7.14 v3.25p
Single Style
Style Option
Base Color: BaseColorArg (0)
--Effects Included--
Ignition Effect: Standard Ignition [Color: IgnitionColorArg]
Retraction Effect: Standard Retraction [Color: RetractionColorArg]
Lockup Effect:
0: mainLockMulti0Shape - Begin: Real Clash - Style: Intensity AudioFlicker - End: Full Blade Absorb
[Color: LockupColorArg]
Lightning Block Effect:
0: mainLBMulti0Shape - Begin: Responsive Impact - Style: Strobing AudioFlicker - End: Full Blade Absorb
[Color: LBColorArg]
Drag Effect:
0: mainDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: mainMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out
[Color: StabColorArg]
Blast Effect: Blast Wave (Random) [Color: BlastColorArg]
Clash Effect: Real Clash V1 [Color: ClashColorArg]
*/
StylePtr<Layers<Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<15000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-3200>,Int<-200>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,TransitionEffectL<TrWaveX<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<EffectRandomF<EFFECT_BLAST>,Int<100>,Int<400>>,Int<100>,Scale<EffectPosition<EFFECT_BLAST>,Int<100>,Int<400>>,Scale<EffectPosition<EFFECT_BLAST>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<12000>,Int<60000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,EFFECT_CLASH>,TransitionEffectL<TrWaveX<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Int<100>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,EFFECT_CLASH>>,LockupTrL<TransitionEffect<AlphaL<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<22000>>>,AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,BrownNoiseFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,300>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<22000>>>>,AlphaL<AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<20000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,TrExtend<5000,TrInstant>,TrFade<5000>,EFFECT_LOCKUP_BEGIN>,TrConcat<TrJoin<TrDelay<50>,TrInstant>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,AlphaL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<20000>,Int<60000>>>>>,TrFade<300>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL,Int<1>>,ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,AudioFlicker<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Blue>,50,1>,TrConcat<TrExtend<200,TrInstant>,AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Int<10000>,Int<21000>>,Int<10000>>>,TrFade<200>>,TrConcat<TrInstant,RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,Int<1>>,LockupTrL<AlphaL<TransitionEffect<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Stripes<2000,4000,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<Sin<Int<50>>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,Mix<Int<4096>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrConcat<TrExtend<4000,TrWipeIn<200>>,AlphaL<HumpFlicker<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,RotateColorsX<Int<3000>,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,100>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL<TrWipeX<BendTimePowInvX<IgnitionTime<300>,Mult<IntArg<IGNITION_OPTION2_ARG,10992>,Int<98304>>>>,TrWipeInX<BendTimePowX<RetractionTime<0>,Mult<IntArg<RETRACTION_OPTION2_ARG,10992>,Int<98304>>>>,Black>>>(),
/* copyright Fett263 Rotoscope (Accent LED / PCB) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope
OS7.14 v3.25p
Single Style
Style Option
Off Behavior: Solid Color [Color: OffColorArg]
Base Color: BaseColorArg (0)
--Effects Included--
Ignition Effect: Instant [Color: IgnitionColorArg]
Retraction Effect: Instant [Color: RetractionColorArg]
Lockup Effect: NoneLightning Block Effect: NoneDrag Effect:
0: accentDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: accentMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out
[Color: StabColorArg]
*/
StylePtr<Layers<Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<15000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-3200>,Int<-200>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,LockupTrL<AlphaL<TransitionEffect<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,31000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Stripes<2000,4000,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<Sin<Int<50>>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,Mix<Int<4096>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrConcat<TrExtend<4000,TrWipeIn<200>>,AlphaL<HumpFlicker<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,RotateColorsX<Int<3000>,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,100>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL<TrInstant,TrInstant,RgbArg<OFF_COLOR_ARG,Rgb<255,0,0>>>>>(),
/* copyright Fett263 Rotoscope (Accent LED / PCB) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope
OS7.14 v3.25p
Single Style
Style Option
Off Behavior: Solid Color [Color: OffColorArg]
Base Color: BaseColorArg (0)
--Effects Included--
Ignition Effect: Instant [Color: IgnitionColorArg]
Retraction Effect: Instant [Color: RetractionColorArg]
Lockup Effect: NoneLightning Block Effect: NoneDrag Effect:
0: accentDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: accentMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out
[Color: StabColorArg]
*/
StylePtr<Layers<Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<15000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-3200>,Int<-200>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,LockupTrL<AlphaL<TransitionEffect<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,31000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Stripes<2000,4000,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<Sin<Int<50>>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,Mix<Int<4096>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrConcat<TrExtend<4000,TrWipeIn<200>>,AlphaL<HumpFlicker<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,RotateColorsX<Int<3000>,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,100>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL<TrInstant,TrInstant,RgbArg<OFF_COLOR_ARG,Rgb<255,244,157>>>>>(),
"RotoTest"},
};
BladeConfig blades[] = {
{ 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()),
SubBladeWithList<2,3,7,8,9>(NULL),
CONFIGARRAY(presets) },
#endif
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, auxPin, "pow");
Button AuxButton(BUTTON_AUX, powerButtonPin, "aux");
#endif
Error:
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaTest.h:36,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:677:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:1034:1: error: expected primary-expression before 'class'
1034 | class GestureControlFile : public ConfigFile {
| ^~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:1034:1: error: expected '}' before 'class'
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:673:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaTest.h:119:24: note: to match this '{'
119 | BladeConfig blades[] = {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:1100:1: error: 'GestureControlFile' does not name a type
1100 | GestureControlFile saved_gesture_control;
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h: In member function 'void SaberFett263Buttons::RestoreGestureState()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:1630:5: error: 'saved_gesture_control' was not declared in this scope
1630 | saved_gesture_control.ReadINIFromDir(NULL, "gesture");
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h: In member function 'void SaberFett263Buttons::SaveGestureState()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:1635:5: error: 'saved_gesture_control' was not declared in this scope
1635 | saved_gesture_control.WriteToRootDir("gesture");
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h: In member function 'virtual void SaberFett263Buttons::Loop()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:2535:81: error: 'saved_gesture_control' was not declared in this scope
2535 | if (clash_type_ == CLASH_BATTLE_MODE && SaberBase::GetClashStrength() > saved_gesture_control.clashdetect) {
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:2562:45: error: 'saved_gesture_control' was not declared in this scope
2562 | millis() - clash_impact_millis_ > saved_gesture_control.lockupdelay &&
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:2576:45: error: 'saved_gesture_control' was not declared in this scope
2576 | millis() - clash_impact_millis_ > saved_gesture_control.lockupdelay &&
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:2587:13: error: 'saved_gesture_control' was not declared in this scope
2587 | if (saved_gesture_control.forcepush && millis() - push_begin_millis_ > saved_gesture_control.forcepushlen) {
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:2603:49: error: 'saved_gesture_control' was not declared in this scope
2603 | if (!swinging_ && fusor.swing_speed() > saved_gesture_control.swingonspeed) {
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h: In member function 'void SaberFett263Buttons::MenuChoice()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:3227:42: error: 'saved_gesture_control' was not declared in this scope
3227 | EnterBooleanMenu(MENU_SWINGON, saved_gesture_control.swingon);
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:3284:9: error: 'saved_gesture_control' was not declared in this scope
3284 | saved_gesture_control.swingon = true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:3287:9: error: 'saved_gesture_control' was not declared in this scope
3287 | saved_gesture_control.swingon = false;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:3294:7: error: 'saved_gesture_control' was not declared in this scope
3294 | saved_gesture_control.swingonspeed = calc_;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h: In member function 'void SaberFett263Buttons::MenuDial(int)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:4320:27: error: 'saved_gesture_control' was not declared in this scope
4320 | if (clash_t_ >= saved_gesture_control.maxclash) {
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h: In member function 'virtual bool SaberFett263Buttons::Parse(const char*, const char*)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:5215:7: error: 'saved_gesture_control' was not declared in this scope
5215 | saved_gesture_control.Print(arg);
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:5219:7: error: 'saved_gesture_control' was not declared in this scope
5219 | saved_gesture_control.Set(arg);
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h: In member function 'virtual bool SaberFett263Buttons::Event2(BUTTON, EVENT, uint32_t)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:5933:16: error: 'saved_gesture_control' was not declared in this scope
5933 | if (!saved_gesture_control.gestureon) {
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6146:13: error: 'saved_gesture_control' was not declared in this scope
6146 | if (saved_gesture_control.powerlock
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6213:18: error: 'saved_gesture_control' was not declared in this scope
6213 | if (!saved_gesture_control.powerlock) {
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6825:14: error: 'saved_gesture_control' was not declared in this scope
6825 | if (!saved_gesture_control.gestureon) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6826:14: error: 'saved_gesture_control' was not declared in this scope
6826 | if (!saved_gesture_control.swingon) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6840:14: error: 'saved_gesture_control' was not declared in this scope
6840 | if (!saved_gesture_control.gestureon) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6841:14: error: 'saved_gesture_control' was not declared in this scope
6841 | if (!saved_gesture_control.twistoff) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6903:14: error: 'saved_gesture_control' was not declared in this scope
6903 | if (!saved_gesture_control.gestureon) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6904:14: error: 'saved_gesture_control' was not declared in this scope
6904 | if (!saved_gesture_control.twiston) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6941:14: error: 'saved_gesture_control' was not declared in this scope
6941 | if (!saved_gesture_control.gestureon) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6942:14: error: 'saved_gesture_control' was not declared in this scope
6942 | if (!saved_gesture_control.stabon) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6978:14: error: 'saved_gesture_control' was not declared in this scope
6978 | if (!saved_gesture_control.gestureon) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6979:14: error: 'saved_gesture_control' was not declared in this scope
6979 | if (!saved_gesture_control.thruston) return true;
| ^~~~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber_fett263_buttons.h:6994:14: error: 'saved_gesture_control' was not declared in this scope
6994 | if (!saved_gesture_control.forcepush) return true;
| ^~~~~~~~~~~~~~~~~~~~~
exit status 1
Compilation error: expected primary-expression before 'class'
Something else I missed?
You’re missing };
at the end of your blade array.
Thank you again.
This very cool feature is running well. I like the way it looks in a loop or circle. I feel like you could also use it in a bridge panel.
SubBladeWithList confirmed working for me.
Oh that, easy, yes I did for some of them at least with my multi_prop testing. In fact I was looking for one of them in particular then I realized that the log level was the wrong value for what I was looking for. Change the value and tada I saw the message I wanted. I can assure that VERBOSE stays well hidden till the log level reaches 500, same for DEBUG with 400. I was running low on flash memory on my v2.2 saber, changed log level to 200 and of course less messages not that I was looking for a particular one but the saber is running Fett’s prop who has a few NORMAL messages. I guess the only one left is PVLOG_ERROR since my props don’t generate that.
Trying some menus/defines.
Defines:
#define MENU_SPEC_MENU ChangeVolumeMode
Jumps directly into volume menu, with no prompt (immediately starts playing percentage values and adjusting actual volume). Looks good.
I wanted to use brightness or dimming as the MENU_SPEC_MENU and see that “The name for each menu can be found in the menu specification.” However, I tried several of the menu names from the POD to try to get dimming, and none worked (addling “Mode” to them, or not). So maybe I don’t understand where the real list is.
#define DISABLE_MOTION - motion detection shuts off
#define DISABLE_SD - immediate error in font directory playback on boot, no sound
#define DISABLE_AUDIO - error on compile:
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound.h:163,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:445:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/common/sd_card.h: In member function 'virtual void SDCard::Loop()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/common/sd_card.h:62:9: error: 'AudioStreamWork' has not been declared
62 | AudioStreamWork::LockSD_nomount(true);
| ^~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/common/sd_card.h:63:9: error: 'AudioStreamWork' has not been declared
63 | AudioStreamWork::CloseAllOpenFiles();
| ^~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/common/sd_card.h:66:9: error: 'AudioStreamWork' has not been declared
66 | AudioStreamWork::LockSD_nomount(false);
| ^~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/common/sd_card.h:71:9: error: 'AudioStreamWork' has not been declared
71 | AudioStreamWork::LockSD_nomount(true);
| ^~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/common/sd_card.h:73:9: error: 'AudioStreamWork' has not been declared
73 | AudioStreamWork::LockSD_nomount(false);
| ^~~~~~~~~~~~~~~
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:6,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/styles/display.h:5,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:524:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'virtual int SoundLevelVariableSource::percent()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:82:50: error: 'dynamic_mixer' was not declared in this scope
82 | int percent() override { return clampi32(sqrtf(dynamic_mixer.audio_volume()) / 1638, 0, 100); };
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'virtual int VolumeVariableSource::percent()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:88:44: error: 'dynamic_mixer' was not declared in this scope
88 | int percent() override { return clampi32(dynamic_mixer.get_volume() * 100 / VOLUME, 0, 100); };
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:124:51: error: expected class-name before '{' token
124 | class BufferedFileReader : public AudioStreamWork {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:276:3: error: 'CircularBuffer' does not name a type
276 | CircularBuffer<uint8_t, 1024> input_buffer_;
| ^~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:166:8: error: 'bool BufferedFileReader::FillBuffer()' marked 'override', but does not override
166 | bool FillBuffer() override {
| ^~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:231:8: error: 'void BufferedFileReader::CloseFiles()' marked 'override', but does not override
231 | void CloseFiles() override {
| ^~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:237:10: error: 'size_t BufferedFileReader::space_available()' marked 'override', but does not override
237 | size_t space_available() override {
| ^~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'void BufferedFileReader::SEEK_LOW(uint32_t)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:131:5: error: 'input_buffer_' was not declared in this scope
131 | input_buffer_.clear();
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'void BufferedFileReader::SEEK(uint32_t)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:136:40: error: 'input_buffer_' was not declared in this scope
136 | if (pos > TELL() && pos - TELL() < input_buffer_.size()) {
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'uint32_t BufferedFileReader::TELL()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:145:32: error: 'input_buffer_' was not declared in this scope
145 | uint32_t ret = seek_pos_ + input_buffer_.pos();
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'bool BufferedFileReader::BUFATEOF()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:163:21: error: 'input_buffer_' was not declared in this scope
163 | return TELL() + input_buffer_.size() == file_size_;
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'bool BufferedFileReader::FillBuffer()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:174:10: error: 'input_buffer_' was not declared in this scope
174 | if (!input_buffer_.space_available()) {
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:179:7: error: 'input_buffer_' was not declared in this scope
179 | input_buffer_.clear();
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:199:23: error: 'input_buffer_' was not declared in this scope
199 | uint32_t toread = input_buffer_.continuous_space();
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'size_t BufferedFileReader::space_available()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:239:9: error: 'input_buffer_' was not declared in this scope
239 | if (input_buffer_.space_available() < 512) {
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'int BufferedFileReader::getc()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:264:23: error: 'input_buffer_' was not declared in this scope
264 | int getc() { return input_buffer_.pop(); }
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:414:8: error: 'bool SCRReader::IsActive()' marked 'override', but does not override
414 | bool IsActive() override { return active_ || delayed_open_; }
| ^~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'void SCRReader::loop()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:307:16: error: 'input_buffer_' was not declared in this scope
307 | while (input_buffer_.empty()) {
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:313:11: error: 'scheduleFillBuffer' was not declared in this scope
313 | scheduleFillBuffer();
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h: In member function 'void SCRReader::check_open()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/layer_controller.h:422:7: error: 'scheduleFillBuffer' was not declared in this scope
422 | scheduleFillBuffer();
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:20:47: error: 'CircularBuffer' has not been declared
20 | void fill(PQOI::PqoiStreamingDecoder* pqoi, CircularBuffer<uint8_t, N>* input_buffer, int left, int pixels) {
| ^~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:20:61: error: expected ',' or '...' before '<' token
20 | void fill(PQOI::PqoiStreamingDecoder* pqoi, CircularBuffer<uint8_t, N>* input_buffer, int left, int pixels) {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: In member function 'void OutputBuffer<WIDTH>::fill(PQOI::PqoiStreamingDecoder*, int)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:22:21: error: 'input_buffer' was not declared in this scope
22 | pqoi->set_input(input_buffer->data(), input_buffer->data() + input_buffer->continuous_data());
| ^~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:23:22: error: 'left' was not declared in this scope
23 | chunk.fill(pqoi, left, pixels);
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:23:28: error: 'pixels' was not declared in this scope
23 | chunk.fill(pqoi, left, pixels);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: In member function 'void PQOILayer<WIDTH, HEIGHT>::run()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:146:17: error: 'input_buffer_' was not declared in this scope
146 | while (!input_buffer_.size()) {
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:155:11: error: there are no arguments to 'scheduleFillBuffer' that depend on a template parameter, so a declaration of 'scheduleFillBuffer' must be available [-fpermissive]
155 | scheduleFillBuffer();
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:155:11: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:159:66: error: 'input_buffer_' was not declared in this scope
159 | size_t to_copy = std::min<size_t>(read_end_ - read_pos_, input_buffer_.continuous_data());
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: In member function 'bool PQOILayer<WIDTH, HEIGHT>::Fill(OutputBuffer<WIDTH>*)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:323:12: error: 'input_buffer_' was not declared in this scope; did you mean 'output_buffer'?
323 | if (!input_buffer_.size()) {
| ^~~~~~~~~~~~~
| output_buffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:326:9: error: there are no arguments to 'scheduleFillBuffer' that depend on a template parameter, so a declaration of 'scheduleFillBuffer' must be available [-fpermissive]
326 | scheduleFillBuffer();
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:329:12: error: 'input_buffer_' was not declared in this scope; did you mean 'output_buffer'?
329 | if (!input_buffer_.size()) {
| ^~~~~~~~~~~~~
| output_buffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:333:35: error: 'input_buffer_' was not declared in this scope; did you mean 'output_buffer'?
333 | output_buffer->fill(&pqoi, &input_buffer_, left_margin_, width_);
| ^~~~~~~~~~~~~
| output_buffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: In member function 'bool PQOILayer<WIDTH, HEIGHT>::Apply(OutputBuffer<WIDTH>*, uint16_t*&)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:374:12: error: 'input_buffer_' was not declared in this scope; did you mean 'output_buffer'?
374 | if (!input_buffer_.size()) scheduleFillBuffer();
| ^~~~~~~~~~~~~
| output_buffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:374:34: error: there are no arguments to 'scheduleFillBuffer' that depend on a template parameter, so a declaration of 'scheduleFillBuffer' must be available [-fpermissive]
374 | if (!input_buffer_.size()) scheduleFillBuffer();
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:375:12: error: 'input_buffer_' was not declared in this scope; did you mean 'output_buffer'?
375 | if (!input_buffer_.size()) return false;
| ^~~~~~~~~~~~~
| output_buffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:376:22: error: 'input_buffer_' was not declared in this scope; did you mean 'output_buffer'?
376 | pqoi.set_input(input_buffer_.data(), input_buffer_.data() + input_buffer_.continuous_data());
| ^~~~~~~~~~~~~
| output_buffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: In member function 'void PQOILayer<WIDTH, HEIGHT>::dumpstate()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:433:31: error: 'input_buffer_' was not declared in this scope
433 | << " Bufsize: " << input_buffer_.size()
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:726:3: error: 'CircularBuffer' does not name a type
726 | CircularBuffer<OutputBuffer<WIDTH>, 32> output_buffers_;
| ^~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: In member function 'OutputBuffer<WIDTH>* RGB565Frame<WIDTH, HEIGHT, LAYERS>::getOutputBuffer()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:512:9: error: 'output_buffers_' was not declared in this scope; did you mean 'OutputBuffer'?
512 | if (output_buffers_.space_available() == 0) return nullptr;
| ^~~~~~~~~~~~~~~
| OutputBuffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:513:32: error: 'output_buffers_' was not declared in this scope; did you mean 'OutputBuffer'?
513 | OutputBuffer<WIDTH>* ret = output_buffers_.space();
| ^~~~~~~~~~~~~~~
| OutputBuffer
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h: In member function 'void RGB565Frame<WIDTH, HEIGHT, LAYERS>::dumpstate()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/display/rgb565frame.h:683:37: error: 'output_buffers_' was not declared in this scope; did you mean 'OutputBuffer'?
683 | << " buffered rows: " << output_buffers_.size()
| ^~~~~~~~~~~~~~~
| OutputBuffer
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/transitions/doeffect.h:5,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:589:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:204:10: error: 'BufferedWavPlayer' was not declared in this scope
204 | RefPtr<BufferedWavPlayer> hum_player_;
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:204:27: error: template argument 1 is invalid
204 | RefPtr<BufferedWavPlayer> hum_player_;
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:205:10: error: 'BufferedWavPlayer' was not declared in this scope
205 | RefPtr<BufferedWavPlayer> next_hum_player_;
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:205:27: error: template argument 1 is invalid
205 | RefPtr<BufferedWavPlayer> next_hum_player_;
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:206:10: error: 'BufferedWavPlayer' was not declared in this scope
206 | RefPtr<BufferedWavPlayer> swing_player_;
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:206:27: error: template argument 1 is invalid
206 | RefPtr<BufferedWavPlayer> swing_player_;
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:207:10: error: 'BufferedWavPlayer' was not declared in this scope
207 | RefPtr<BufferedWavPlayer> lock_player_;
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:207:27: error: template argument 1 is invalid
207 | RefPtr<BufferedWavPlayer> lock_player_;
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:251:10: error: 'BufferedWavPlayer' was not declared in this scope
251 | RefPtr<BufferedWavPlayer> PlayPolyphonic(const Effect::FileID& f) {
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:251:27: error: template argument 1 is invalid
251 | RefPtr<BufferedWavPlayer> PlayPolyphonic(const Effect::FileID& f) {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:265:10: error: 'BufferedWavPlayer' was not declared in this scope
265 | RefPtr<BufferedWavPlayer> PlayPolyphonic(Effect* f) {
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:265:27: error: template argument 1 is invalid
265 | RefPtr<BufferedWavPlayer> PlayPolyphonic(Effect* f) {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:413:33: error: 'BufferedWavPlayer' was not declared in this scope
413 | Effect::FileID getNext(RefPtr<BufferedWavPlayer> previous, Effect* next) {
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:413:50: error: template argument 1 is invalid
413 | Effect::FileID getNext(RefPtr<BufferedWavPlayer> previous, Effect* next) {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::Activate()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:138:5: error: 'SetupStandardAudio' was not declared in this scope
138 | SetupStandardAudio();
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::Deactivate()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:195:18: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::lock_player_', which is of non-class type 'int'
195 | lock_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:196:17: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::hum_player_', which is of non-class type 'int'
196 | hum_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:197:22: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::next_hum_player_', which is of non-class type 'int'
197 | next_hum_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:198:19: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::swing_player_', which is of non-class type 'int'
198 | swing_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::PlayMonophonic(const Effect::FileID&, Effect*, float)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:212:26: error: 'GetFreeWavPlayer' was not declared in this scope
212 | next_hum_player_ = GetFreeWavPlayer();
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:219:18: error: base operand of '->' is not a pointer
219 | hum_player_->set_fade_time(xfade);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:220:18: error: base operand of '->' is not a pointer
220 | hum_player_->FadeAndStop();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:221:19: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::hum_player_', which is of non-class type 'int'
221 | hum_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:222:23: error: base operand of '->' is not a pointer
222 | next_hum_player_->set_volume_now(0);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:223:23: error: base operand of '->' is not a pointer
223 | next_hum_player_->set_fade_time(xfade);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:224:23: error: base operand of '->' is not a pointer
224 | next_hum_player_->set_volume(font_config.volEff / 16.0f);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:226:23: error: base operand of '->' is not a pointer
226 | next_hum_player_->set_volume_now(font_config.volEff / 16.0f);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:229:22: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::next_hum_player_', which is of non-class type 'int'
229 | next_hum_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:230:16: error: base operand of '->' is not a pointer
230 | hum_player_->PlayOnce(f);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:231:41: error: base operand of '->' is not a pointer
231 | current_effect_length_ = hum_player_->length();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:232:26: error: base operand of '->' is not a pointer
232 | if (loop) hum_player_->PlayLoop(loop);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::RestartHum(int)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:241:35: error: base operand of '->' is not a pointer
241 | if (hum_player_ && hum_player_->isPlaying()) {
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'int HybridFont::PlayPolyphonic(const Effect::FileID&)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:253:27: error: 'BufferedWavPlayer' was not declared in this scope
253 | if (!f) return RefPtr<BufferedWavPlayer>(nullptr);
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:253:44: error: template argument 1 is invalid
253 | if (!f) return RefPtr<BufferedWavPlayer>(nullptr);
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:254:12: error: 'BufferedWavPlayer' was not declared in this scope
254 | RefPtr<BufferedWavPlayer> player = GetOrFreeWavPlayer(f.GetEffect());
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:254:29: error: template argument 1 is invalid
254 | RefPtr<BufferedWavPlayer> player = GetOrFreeWavPlayer(f.GetEffect());
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:254:40: error: 'GetOrFreeWavPlayer' was not declared in this scope
254 | RefPtr<BufferedWavPlayer> player = GetOrFreeWavPlayer(f.GetEffect());
| ^~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:256:13: error: base operand of '->' is not a pointer
256 | player->set_volume_now(font_config.volEff / 16.0f);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:257:13: error: base operand of '->' is not a pointer
257 | player->PlayOnce(f);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:258:38: error: base operand of '->' is not a pointer
258 | current_effect_length_ = player->length();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual void HybridFont::StartSwing(const Vec3&, float, float)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:304:28: error: base operand of '->' is not a pointer
304 | if (swing_player_->pos() / swing_player_->length() >= font_config.ProffieOSSwingOverlap) {
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:304:51: error: base operand of '->' is not a pointer
304 | if (swing_player_->pos() / swing_player_->length() >= font_config.ProffieOSSwingOverlap) {
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:305:26: error: base operand of '->' is not a pointer
305 | swing_player_->set_fade_time(swing_player_->length() - swing_player_->pos());
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:305:55: error: base operand of '->' is not a pointer
305 | swing_player_->set_fade_time(swing_player_->length() - swing_player_->pos());
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:305:81: error: base operand of '->' is not a pointer
305 | swing_player_->set_fade_time(swing_player_->length() - swing_player_->pos());
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:306:26: error: base operand of '->' is not a pointer
306 | swing_player_->FadeAndStop();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:307:27: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::swing_player_', which is of non-class type 'int'
307 | swing_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:361:21: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::swing_player_', which is of non-class type 'int'
361 | swing_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual float HybridFont::SetSwingVolume(float, float)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:375:24: error: base operand of '->' is not a pointer
375 | if (swing_player_->isPlaying()) {
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:378:22: error: base operand of '->' is not a pointer
378 | swing_player_->set_fade_time(0.04);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:379:22: error: base operand of '->' is not a pointer
379 | swing_player_->set_volume(accent_volume);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:382:23: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::swing_player_', which is of non-class type 'int'
382 | swing_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::SB_Preon(EffectLocation)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:402:14: error: 'BufferedWavPlayer' was not declared in this scope
402 | RefPtr<BufferedWavPlayer> tmp = PlayPolyphonic(&SFX_preon);
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:402:31: error: template argument 1 is invalid
402 | RefPtr<BufferedWavPlayer> tmp = PlayPolyphonic(&SFX_preon);
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'Effect::FileID HybridFont::getNext(int, Effect*)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:415:22: error: base operand of '->' is not a pointer
415 | return previous->current_file_id().GetFollowing(next);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::SB_Postoff()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:424:12: error: 'BufferedWavPlayer' was not declared in this scope
424 | RefPtr<BufferedWavPlayer> tmp = GetWavPlayerPlaying(&SFX_pstoff);
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:424:29: error: template argument 1 is invalid
424 | RefPtr<BufferedWavPlayer> tmp = GetWavPlayerPlaying(&SFX_pstoff);
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:424:37: error: 'GetWavPlayerPlaying' was not declared in this scope
424 | RefPtr<BufferedWavPlayer> tmp = GetWavPlayerPlaying(&SFX_pstoff);
| ^~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:426:10: error: base operand of '->' is not a pointer
426 | tmp->UpdateSaberBaseSoundInfo();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual void HybridFont::SB_On(EffectLocation)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:445:23: error: 'GetFreeWavPlayer' was not declared in this scope
445 | hum_player_ = GetFreeWavPlayer();
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:447:22: error: base operand of '->' is not a pointer
447 | hum_player_->set_volume_now(0);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:448:22: error: base operand of '->' is not a pointer
448 | hum_player_->PlayOnce(getNext(GetWavPlayerPlaying(getOut()), SFX_humm ? &SFX_humm : &SFX_hum));
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:448:41: error: 'GetWavPlayerPlaying' was not declared in this scope
448 | hum_player_->PlayOnce(getNext(GetWavPlayerPlaying(getOut()), SFX_humm ? &SFX_humm : &SFX_hum));
| ^~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:449:22: error: base operand of '->' is not a pointer
449 | hum_player_->PlayLoop(SFX_humm ? &SFX_humm : &SFX_hum);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:453:14: error: 'BufferedWavPlayer' was not declared in this scope
453 | RefPtr<BufferedWavPlayer> tmp;
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:453:31: error: template argument 1 is invalid
453 | RefPtr<BufferedWavPlayer> tmp;
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:455:15: error: 'GetWavPlayerPlaying' was not declared in this scope
455 | tmp = GetWavPlayerPlaying(getOut());
| ^~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:458:14: error: base operand of '->' is not a pointer
458 | tmp->UpdateSaberBaseSoundInfo();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:467:27: error: base operand of '->' is not a pointer
467 | hum_fade_in_ = tmp->length();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:473:34: error: base operand of '->' is not a pointer
473 | int delay_ms = 1000 * tmp->length() - font_config.humStart;
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual void HybridFont::SB_Off(SaberBase::OffType, EffectLocation)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:532:24: error: base operand of '->' is not a pointer
532 | hum_player_->set_fade_time(0.2);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:533:24: error: base operand of '->' is not a pointer
533 | hum_player_->FadeAndStop();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:534:25: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::hum_player_', which is of non-class type 'int'
534 | hum_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:558:20: error: base operand of '->' is not a pointer
558 | swing_player_->set_fade_time(0.3);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:559:20: error: base operand of '->' is not a pointer
559 | swing_player_->FadeAndStop();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:560:21: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::swing_player_', which is of non-class type 'int'
560 | swing_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual void HybridFont::SB_Effect(EffectType, EffectLocation)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:570:11: error: 'beeper' was not declared in this scope
570 | beeper.Beep(0.05, 2000.0);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::SB_BladeDetect(Effect&)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:656:5: error: 'beeper' was not declared in this scope
656 | beeper.Beep(0.05, 2000.0);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::SB_NewFont()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:661:7: error: 'beeper' was not declared in this scope
661 | beeper.Beep(0.05, 1046.5);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual void HybridFont::SB_Change(SaberBase::ChangeType)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:669:11: error: 'beeper' was not declared in this scope
669 | beeper.Beep(0.20, 1000.0);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:676:11: error: 'beeper' was not declared in this scope
676 | beeper.Beep(0.20, 2000.0);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:683:11: error: 'beeper' was not declared in this scope
683 | beeper.Beep(0.05, 2000.0);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::SB_BeginLockup()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:732:39: error: base operand of '->' is not a pointer
732 | if (lock_player_) lock_player_->PlayLoop(loop);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'void HybridFont::SB_EndLockup()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:769:19: error: base operand of '->' is not a pointer
769 | lock_player_->set_fade_time(0.3);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:773:23: error: base operand of '->' is not a pointer
773 | lock_player_->set_fade_time(0.003);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:777:19: error: base operand of '->' is not a pointer
777 | lock_player_->FadeAndStop();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:778:20: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::lock_player_', which is of non-class type 'int'
778 | lock_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual void HybridFont::SetHumVolume(float)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:790:23: error: 'GetFreeWavPlayer' was not declared in this scope
790 | hum_player_ = GetFreeWavPlayer();
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:792:22: error: base operand of '->' is not a pointer
792 | hum_player_->set_volume_now(0);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:793:22: error: base operand of '->' is not a pointer
793 | hum_player_->PlayOnce(SFX_humm ? &SFX_humm : &SFX_hum);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:794:22: error: base operand of '->' is not a pointer
794 | hum_player_->PlayLoop(SFX_humm ? &SFX_humm : &SFX_hum);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:829:24: error: base operand of '->' is not a pointer
829 | hum_player_->FadeAndStop();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:830:25: error: request for member 'Free' in '((HybridFont*)this)->HybridFont::hum_player_', which is of non-class type 'int'
830 | hum_player_.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:840:16: error: base operand of '->' is not a pointer
840 | hum_player_->set_volume(vol);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h: In member function 'virtual void HybridFont::Loop()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:846:12: error: 'GetWavPlayerPlaying' was not declared in this scope
846 | if (!GetWavPlayerPlaying(&SFX_preon)) {
| ^~~~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/hybrid_font.h:852:12: error: 'GetWavPlayerPlaying' was not declared in this scope
852 | if (!GetWavPlayerPlaying(&SFX_in) &&
| ^~~~~~~~~~~~~~~~~~~
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_library.h:4,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:619:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:13:13: error: 'BufferedWavPlayer' has not been declared
13 | bool Play(BufferedWavPlayer* player) {
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h: In member function 'bool SoundToPlay::Play(int*)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:15:22: error: request for member 'PlayInCurrentDir' in '* player', which is of non-class type 'int'
15 | return player->PlayInCurrentDir(filename_);
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:18:15: error: request for member 'PlayOnce' in '* player', which is of non-class type 'int'
18 | player->PlayOnce(file_id_);
| ^~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:33:20: error: request for member 'PlayInCurrentDir' in '* player', which is of non-class type 'int'
33 | return player->PlayInCurrentDir(filename);
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:55:30: error: 'BufferedWavPlayer' was not declared in this scope
55 | void PollSoundQueue(RefPtr<BufferedWavPlayer>& player) {
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:55:47: error: template argument 1 is invalid
55 | void PollSoundQueue(RefPtr<BufferedWavPlayer>& player) {
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h: In member function 'void SoundQueue<QueueLength>::PollSoundQueue(int&)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:56:29: error: base operand of '->' is not a pointer
56 | busy_ = player && player->isPlaying();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:63:15: error: base operand of '->' is not a pointer
63 | player->set_fade_time(fadeout_len_);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:64:15: error: base operand of '->' is not a pointer
64 | player->FadeAndStop();
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:71:20: error: there are no arguments to 'GetFreeWavPlayer' that depend on a template parameter, so a declaration of 'GetFreeWavPlayer' must be available [-fpermissive]
71 | player = GetFreeWavPlayer();
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:74:15: error: base operand of '->' is not a pointer
74 | player->set_volume_now(1.0f);
| ^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:75:31: error: request for member 'get' in 'player', which is of non-class type 'int'
75 | queue_[0].Play(player.get());
| ^~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:79:28: error: request for member 'Free' in 'player', which is of non-class type 'int'
79 | if (player) player.Free();
| ^~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_library.h: At global scope:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_library.h:84:10: error: 'BufferedWavPlayer' was not declared in this scope
84 | RefPtr<BufferedWavPlayer> wav_player_;
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_library.h:84:27: error: template argument 1 is invalid
84 | RefPtr<BufferedWavPlayer> wav_player_;
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_library.h:96:27: error: 'BufferedWavPlayer' was not declared in this scope
96 | static void Poll(RefPtr<BufferedWavPlayer>& player) {}
| ^~~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_library.h:96:44: error: template argument 1 is invalid
96 | static void Poll(RefPtr<BufferedWavPlayer>& player) {}
| ^
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:626:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/color_menues.h: In member function 'void mode::FileColorMenu<SPEC>::init()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/color_menues.h:22:7: error: 'AudioStreamWork' has not been declared
22 | AudioStreamWork::scheduleFillBuffer();
| ^~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/color_menues.h: In member function 'Color8 mode::FileColorMenu<SPEC>::get()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/color_menues.h:42:7: error: 'AudioStreamWork' has not been declared
42 | AudioStreamWork::scheduleFillBuffer();
| ^~~~~~~~~~~~~~~
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:627:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h: In member function 'void mode::SelectFontMode<SPEC>::say()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h:47:5: error: 'hybrid_font' was not declared in this scope; did you mean 'HybridFont'?
47 | hybrid_font.SB_Effect(EFFECT_NEWFONT, 0);
| ^~~~~~~~~~~
| HybridFont
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h: In member function 'void mode::SelectTrackMode<SPEC>::fadeout(float)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h:73:9: error: 'track_player_' was not declared in this scope
73 | if (track_player_) {
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h: In member function 'void mode::SelectTrackMode<SPEC>::say()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h:82:10: error: 'track_player_' was not declared in this scope
82 | if (!track_player_) track_player_ = GetFreeWavPlayer();
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h:82:41: error: there are no arguments to 'GetFreeWavPlayer' that depend on a template parameter, so a declaration of 'GetFreeWavPlayer' must be available [-fpermissive]
82 | if (!track_player_) track_player_ = GetFreeWavPlayer();
| ^~~~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h:83:9: error: 'track_player_' was not declared in this scope
83 | if (track_player_) track_player_->Play(this->get(), 20.0); // start 20s from the beginning
| ^~~~~~~~~~~~~
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:630:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/settings_menues.h: In member function 'virtual int mode::SmoothVolumeMode<SPEC>::get()':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/settings_menues.h:28:20: error: 'dynamic_mixer' was not declared in this scope
28 | float volume = dynamic_mixer.get_volume();
| ^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/settings_menues.h: In member function 'virtual void mode::SmoothVolumeMode<SPEC>::set(int)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/settings_menues.h:52:5: error: 'dynamic_mixer' was not declared in this scope
52 | dynamic_mixer.set_volume(VOLUME * ret);
| ^~~~~~~~~~~~~
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/saber.h:30,
from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:681:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h: In member function 'virtual void PropBase::SpeakBladeID(float)':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:535:5: error: 'talkie' was not declared in this scope
535 | talkie.Say(spI);
| ^~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:535:16: error: 'spI' was not declared in this scope
535 | talkie.Say(spI);
| ^~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/props/prop_base.h:536:16: error: 'spD' was not declared in this scope
536 | talkie.Say(spD);
| ^~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h: In instantiation of 'void SoundQueue<QueueLength>::PollSoundQueue(int&) [with int QueueLength = 16]':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_library.h:58:19: required from here
58 | PollSoundQueue(wav_player_);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/sound/sound_queue.h:71:36: error: 'GetFreeWavPlayer' was not declared in this scope
71 | player = GetFreeWavPlayer();
| ~~~~~~~~~~~~~~~~^~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h: In instantiation of 'void mode::SelectTrackMode<SPEC>::say() [with SPEC = MKSPEC<DefaultMenuSpec>]':
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h:79:8: required from here
79 | void say() override {
| ^~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/modes/sorted_list_menues.h:82:57: error: 'GetFreeWavPlayer' was not declared in this scope
82 | if (!track_player_) track_player_ = GetFreeWavPlayer();
| ~~~~~~~~~~~~~~~~^~
exit status 1
Compilation error: 'AudioStreamWork' has not been declared
#define DISABLE_WS2811 - error on compile:
In file included from /Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/ProffieOS.ino:673:
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaEditor.h:135:7: error: 'WS281XBladePtr' was not declared in this scope
135 | { 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
| ^~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaEditor.h:135:92: error: expected primary-expression before '>' token
135 | { 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaEditor.h:135:94: error: expected primary-expression before ')' token
135 | { 0, WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaEditor.h:136:45: error: 'WS281XBladePtr' was not declared in this scope
136 | SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()),
| ^~~~~~~~~~~~~~
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaEditor.h:136:114: error: expected primary-expression before '>' token
136 | SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()),
| ^
/Users/catherinebogin/Documents/Sabers/ProffieOSCollection/ProffieOS8.4/ProffieOS/config/LyleOS84BetaEditor.h:136:116: error: expected primary-expression before ')' token
136 | SubBladeWithList<0,1,4,5,6,10,11,12,13>(WS281XBladePtr<14, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()),
| ^
exit status 1
Compilation error: 'WS281XBladePtr' was not declared in this scope
Menus:
Menu path: Edit Presets ->Edit Style Settings → Base Color
- Hue
- Red/Green/Blue
- Copy/Paste
- Reset
- Save
All working as expected.
Brightness
Seems to increase the white value until the color was completely white, then dims. It Immediately starts to distort from the base color. To me this seems like a different behavior than editing brightness in the past. If thats’s the intent then it’s all good.
Select By Name
I hear the “color list” prompt, then rotating the hilt turns off the blade and no colors are spoken or visible. The blade is black, or off. The “blip” sound between where the colors would go is playing as I rotate.
I tried improving some practices to reduce typos
Hope some of this is useful.