Skip to content

Commit 7ff8bbf

Browse files
authored
Add voice pack version error (#849)
1 parent b19fbd1 commit 7ff8bbf

File tree

9 files changed

+162
-70
lines changed

9 files changed

+162
-70
lines changed

common/errors.h

Lines changed: 85 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ class ProffieOSErrors {
1212
public:
1313
static void sd_card_not_found();
1414
static void font_directory_not_found();
15+
static void voice_pack_not_found();
1516
static void error_in_blade_array();
1617
static void error_in_font_directory();
18+
static void error_in_voice_pack_version();
1719
static void low_battery();
1820
};
1921

@@ -23,82 +25,134 @@ class ProffieOSErrors {
2325

2426
void ProffieOSErrors::sd_card_not_found() {
2527
SaberBase::DoEffect(EFFECT_SD_CARD_NOT_FOUND, 0);
28+
PVLOG_ERROR << "** ERROR - SD card not found.\n"
29+
"** See https://pod.hubbe.net/troubleshooting/what-is-it-saying.html#sd-card-not-found\n";
2630
#ifdef ENABLE_AUDIO
2731
#ifndef DISABLE_TALKIE
2832
talkie.Say(talkie_sd_card_15, 15);
2933
talkie.Say(talkie_not_found_15, 15);
3034
#else
31-
beeper.Beep(0.5, 261.63 * 2); // C4
32-
beeper.Beep(0.5, 293.66 * 2); // D4
33-
beeper.Beep(0.5, 261.63 * 2); // C4
34-
beeper.Beep(0.5, 196.00 * 2); // G3
35-
beeper.Beep(1.0, 130.81 * 2); // C3
35+
beeper.Beep(0.5, 261.63 * 2); // C5 - S
36+
beeper.Beep(0.5, 293.66 * 2); // D5 - D
37+
beeper.Beep(0.5, 261.63 * 2); // C5 - card
38+
beeper.Beep(0.5, 196.00 * 2); // G4 - not
39+
beeper.Beep(1.0, 130.81 * 2); // C4 - found
3640
#endif
3741
#endif
3842
}
3943

4044
void ProffieOSErrors::font_directory_not_found() {
4145
SaberBase::DoEffect(EFFECT_FONT_DIRECTORY_NOT_FOUND, 0);
46+
PVLOG_ERROR << "** ERROR - Font directory not found.\n"
47+
"** See https://pod.hubbe.net/troubleshooting/what-is-it-saying.html#font-directory-not-found\n";
4248
#ifdef ENABLE_AUDIO
4349
if (SaberBase::sound_length > 0) return;
4450
#ifndef DISABLE_TALKIE
4551
talkie.Say(talkie_font_directory_15, 15);
4652
talkie.Say(talkie_not_found_15, 15);
4753
DodgeSound(2000);
4854
#else
49-
beeper.Beep(0.5, 261.63 * 2); // C4
50-
beeper.Beep(0.5/3, 246.94 * 2); // B3
51-
beeper.Beep(0.5/3, 220.00 * 2); // A3
52-
beeper.Beep(0.5/3, 196.00 * 2); // G3
53-
beeper.Beep(0.5, 174.61 * 2); // F3
54-
beeper.Beep(0.5, 146.83 * 2); // D3
55-
beeper.Beep(0.5, 130.81 * 2); // C3
56-
DodgeSound(2350);
55+
beeper.Beep(0.5, 261.63 * 2); // C5 - Font
56+
beeper.Beep(0.5/3, 246.94 * 2); // B4 - di
57+
beeper.Beep(0.5/3, 220.00 * 2); // A4 - rec
58+
beeper.Beep(0.5/3, 196.00 * 2); // G4 - tor
59+
beeper.Beep(0.5, 174.61 * 2); // F4 - y
60+
beeper.Beep(0.5, 146.83 * 2); // D4 - not
61+
beeper.Beep(0.5, 130.81 * 2); // C4 - found
62+
DodgeSound(2530);
63+
#endif
64+
#endif
65+
}
66+
67+
void ProffieOSErrors::voice_pack_not_found() {
68+
SaberBase::DoEffect(EFFECT_VOICE_PACK_NOT_FOUND, 0);
69+
PVLOG_ERROR << "** ERROR - Voice pack not found.\n"
70+
"** See https://pod.hubbe.net/troubleshooting/what-is-it-saying.html#voice-pack-not-found\n";
71+
#ifdef ENABLE_AUDIO
72+
if (SaberBase::sound_length > 0) return;
73+
#ifndef DISABLE_TALKIE
74+
talkie.Say(talkie_voice_pack_15, 25);
75+
talkie.Say(talkie_not_found_15, 15);
76+
DodgeSound(2000);
77+
#else
78+
beeper.Beep(1.0, 220.00 * 2); // A4 - Voice
79+
beeper.Beep(0.5, 130.81 * 2); // C4 - pack
80+
beeper.Beep(0.5, 146.83 * 2); // D4 - not
81+
beeper.Beep(1.0, 130.81 * 2); // C4 - found
82+
DodgeSound(3000);
5783
#endif
5884
#endif
5985
}
6086

6187
void ProffieOSErrors::error_in_blade_array() {
6288
SaberBase::DoEffect(EFFECT_ERROR_IN_BLADE_ARRAY, 0);
63-
STDOUT.println("BAD BLADE");
89+
PVLOG_ERROR << "** ERROR - Error in blade array\n"
90+
"** See https://pod.hubbe.net/troubleshooting/what-is-it-saying.html#error-in-blade-array\n";
6491
#ifdef ENABLE_AUDIO
6592
if (SaberBase::sound_length > 0) return;
6693
#ifndef DISABLE_TALKIE
6794
talkie.Say(talkie_error_in_15, 15);
6895
talkie.Say(talkie_blade_array_15, 15);
6996
DodgeSound(2000);
7097
#else
71-
beeper.Beep(0.25, 174.61 * 2); // F3 - Er
72-
beeper.Beep(0.25, 196.00 * 2); // G3 - ror
73-
beeper.Beep(0.25, 174.61 * 2); // F3 - in
74-
beeper.Beep(0.25, 164.81 * 2); // E3 - the
75-
beeper.Beep(0.3, 146.83 * 2); // D3 - blade
76-
beeper.Beep(0.2, 0);
77-
beeper.Beep(0.5, 146.83 * 2); // D3 - ar
78-
beeper.Beep(1.0, 130.81 * 2); // C3 - ray
98+
beeper.Beep(0.25, 174.61 * 2); // F4 - Err
99+
beeper.Beep(0.25, 196.00 * 2); // G4 - or
100+
beeper.Beep(0.25, 174.61 * 2); // F4 - in
101+
beeper.Beep(0.25, 164.81 * 2); // E4 - the
102+
beeper.Beep(0.3, 146.83 * 2); // D4 - blade
103+
beeper.Beep(0.2, 0); // Silence
104+
beeper.Beep(0.5, 146.83 * 2); // D4 - ar
105+
beeper.Beep(1.0, 130.81 * 2); // C4 - ray
79106
DodgeSound(3000);
80107
#endif
81108
#endif
82109
}
83110

84111
void ProffieOSErrors::error_in_font_directory() {
85112
SaberBase::DoEffect(EFFECT_ERROR_IN_FONT_DIRECTORY, 0);
113+
PVLOG_ERROR << "** ERROR - Error in font directory.\n"
114+
"** See https://pod.hubbe.net/troubleshooting/what-is-it-saying.html#error-in-font-directory\n";
86115
#ifdef ENABLE_AUDIO
87116
if (SaberBase::sound_length > 0) return;
88117
#ifndef DISABLE_TALKIE
89118
talkie.Say(talkie_error_in_15, 15);
90119
talkie.Say(talkie_font_directory_15, 15);
91120
DodgeSound(1300);
92121
#else
93-
beeper.Beep(0.25, 174.61 * 2); // F3
94-
beeper.Beep(0.25, 196.0 * 2); // G3
95-
beeper.Beep(0.25, 174.61 * 2); // F3
96-
beeper.Beep(0.25, 164.81 * 2); // E3
97-
beeper.Beep(0.5, 146.83 * 2); // D3
98-
beeper.Beep(0.5, 164.81 * 2); // E3
99-
beeper.Beep(0.5, 196.0 * 2); // G3
100-
beeper.Beep(0.5, 246.94 * 2); // B3
101-
beeper.Beep(0.5, 261.63 * 2); // C4
122+
beeper.Beep(0.25, 174.61 * 2); // F4 - Err
123+
beeper.Beep(0.25, 196.00 * 2); // G4 - or
124+
beeper.Beep(0.25, 174.61 * 2); // F4 - in
125+
beeper.Beep(0.25, 164.81 * 2); // E4 - the
126+
beeper.Beep(0.5, 146.83 * 2); // D4 - font
127+
beeper.Beep(0.5, 164.81 * 2); // E4 - di
128+
beeper.Beep(0.5, 196.00 * 2); // G4 - rec
129+
beeper.Beep(0.5, 246.94 * 2); // B4 - tor
130+
beeper.Beep(0.5, 261.63 * 2); // C5 - y
131+
DodgeSound(3500);
132+
#endif
133+
#endif
134+
}
135+
136+
void ProffieOSErrors::error_in_voice_pack_version() {
137+
SaberBase::DoEffect(EFFECT_ERROR_IN_VOICE_PACK_VERSION, 0);
138+
PVLOG_ERROR << "** ERROR - Error in voice pack version.\n"
139+
"** See https://pod.hubbe.net/troubleshooting/what-is-it-saying.html#error-in-voice-pack-version\n";
140+
#ifdef ENABLE_AUDIO
141+
if (SaberBase::sound_length > 0) return;
142+
#ifndef DISABLE_TALKIE
143+
talkie.Say(talkie_error_in_15, 15);
144+
talkie.Say(talkie_voice_pack_15, 15);
145+
talkie.Say(talkie_version_15, 15);
146+
DodgeSound(1500);
147+
#else
148+
beeper.Beep(0.25, 174.61 * 2); // F4 - Err
149+
beeper.Beep(0.25, 196.00 * 2); // G4 - or
150+
beeper.Beep(0.25, 174.61 * 2); // F4 - in
151+
beeper.Beep(0.25, 164.81 * 2); // E4 - the
152+
beeper.Beep(0.5, 220.00 * 2); // A4 - voice
153+
beeper.Beep(0.5, 146.83 * 2); // D4 - pack
154+
beeper.Beep(1.0, 196.00 * 2); // G4 - ver
155+
beeper.Beep(0.5, 130.81 * 2); // C4 - sion
102156
DodgeSound(3500);
103157
#endif
104158
#endif

common/saber_base.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,11 @@ extern SaberBase* saberbases;
109109
DEFINE_EFFECT(USER8) \
110110
/* ERRORS */ \
111111
DEFINE_EFFECT(SD_CARD_NOT_FOUND) \
112-
DEFINE_EFFECT(ERROR_IN_FONT_DIRECTORY) \
113-
DEFINE_EFFECT(ERROR_IN_BLADE_ARRAY) \
114112
DEFINE_EFFECT(FONT_DIRECTORY_NOT_FOUND) \
113+
DEFINE_EFFECT(VOICE_PACK_NOT_FOUND) \
114+
DEFINE_EFFECT(ERROR_IN_BLADE_ARRAY) \
115+
DEFINE_EFFECT(ERROR_IN_FONT_DIRECTORY) \
116+
DEFINE_EFFECT(ERROR_IN_VOICE_PACK_VERSION) \
115117
/* menu effects, triggered when you go from one menu entry to the next/previous */ \
116118
DEFINE_EFFECT(MENU_CHANGE) \
117119

display/ssd1306.h

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -571,14 +571,20 @@ class StandardDisplayController : public DisplayControllerBase<Width, col_t>, pu
571571
case EFFECT_SD_CARD_NOT_FOUND:
572572
SetErrorMessage("sd card\nnot found");
573573
break;
574-
case EFFECT_ERROR_IN_FONT_DIRECTORY:
575-
SetErrorMessage("err font\ndirectory");
574+
case EFFECT_FONT_DIRECTORY_NOT_FOUND:
575+
SetErrorMessage("font dir\nnot found");
576+
break;
577+
case EFFECT_VOICE_PACK_NOT_FOUND:
578+
SetErrorMessage("voice pack\nnot found");
576579
break;
577580
case EFFECT_ERROR_IN_BLADE_ARRAY:
578581
SetErrorMessage("err blade\narray");
579582
break;
580-
case EFFECT_FONT_DIRECTORY_NOT_FOUND:
581-
SetErrorMessage("font dir\nnot found");
583+
case EFFECT_ERROR_IN_FONT_DIRECTORY:
584+
SetErrorMessage("err font\ndirectory");
585+
break;
586+
case EFFECT_ERROR_IN_VOICE_PACK_VERSION:
587+
SetErrorMessage("err voice\npack ver");
582588
break;
583589
case EFFECT_LOW_BATTERY:
584590
// Maybe we should make this blink or something?

props/prop_base.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1463,15 +1463,23 @@ class PropBase : CommandParser, protected Looper, protected SaberBase, public Mo
14631463
ProffieOSErrors::font_directory_not_found();
14641464
return true;
14651465
}
1466-
if (!strcmp(cmd, "error_in_blade_array")) {
1466+
if (!strcmp(cmd, "voice_pack_not_found")) {
1467+
ProffieOSErrors::voice_pack_not_found();
1468+
return true;
1469+
}
1470+
if (!strcmp(cmd, "error_in_blade_array")) {
14671471
ProffieOSErrors::error_in_blade_array();
14681472
return true;
14691473
}
14701474
if (!strcmp(cmd, "error_in_font_directory")) {
14711475
ProffieOSErrors::error_in_font_directory();
14721476
return true;
14731477
}
1474-
if (!strcmp(cmd, "low_battery")) {
1478+
if (!strcmp(cmd, "error_in_voice_pack_version")) {
1479+
ProffieOSErrors::error_in_voice_pack_version();
1480+
return true;
1481+
}
1482+
if (!strcmp(cmd, "low_battery")) {
14751483
SaberBase::DoLowBatt();
14761484
return true;
14771485
}

sound/effect.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,12 +610,12 @@ class Effect {
610610
#endif
611611

612612
#ifdef ENABLE_SD
613+
if (!LSFS::Begin()) ProffieOSErrors::sd_card_not_found();
613614
if (LSFS::Exists(dir)) {
614615
Scanner scanner;
615616
scanner.Scan(dir);
616617
STDOUT.println(" done");
617618
} else {
618-
STDOUT.println(" NOT FOUND!");
619619
if (strlen(dir)) ProffieOSErrors::font_directory_not_found();
620620
}
621621
#endif // ENABLE_SD

sound/hybrid_font.h

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -643,14 +643,20 @@ class HybridFont : public SaberBase, public Looper {
643643
}
644644
break;
645645
case EFFECT_FONT_DIRECTORY_NOT_FOUND:
646-
PlayErrorMessage("e_fnt_nf.wav");
647-
break;
648-
case EFFECT_ERROR_IN_FONT_DIRECTORY:
649-
PlayErrorMessage("e_in_fnt.wav");
650-
break;
646+
PlayErrorMessage("e_fnt_nf.wav");
647+
break;
648+
case EFFECT_VOICE_PACK_NOT_FOUND:
649+
PlayErrorMessage("e_vp_nf.wav");
650+
break;
651651
case EFFECT_ERROR_IN_BLADE_ARRAY:
652-
PlayErrorMessage("e_blade.wav");
653-
break;
652+
PlayErrorMessage("e_blade.wav");
653+
break;
654+
case EFFECT_ERROR_IN_FONT_DIRECTORY:
655+
PlayErrorMessage("e_in_fnt.wav");
656+
break;
657+
case EFFECT_ERROR_IN_VOICE_PACK_VERSION:
658+
PlayErrorMessage("e_vp_ver.wav");
659+
break;
654660
}
655661
}
656662

sound/sound_library.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,14 @@ class SoundQueueSingleton : public SoundQueue<16>, Looper, SaberBase {
7272
VoicePackVersionFile f;
7373
f.ReadInCurrentDir("voicepack.ini");
7474
found_version = f.voice_pack_version;
75-
PVLOG_STATUS << "Sound library version " << found_version << " found.\n";
75+
PVLOG_STATUS << "Voice pack version " << found_version << " found.\n";
7676
}
7777
if (found_version < required_version_) {
78-
PVLOG_ERROR << "ERROR - Sound library version " << required_version_ << " required.\n";
79-
ProffieOSErrors::error_in_font_directory(); // Make new error for voice pack?
78+
if (SFX_mnum) {
79+
ProffieOSErrors::error_in_voice_pack_version();
80+
} else {
81+
ProffieOSErrors::voice_pack_not_found();
82+
}
8083
}
8184
}
8285

sound/talkie.h

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -961,38 +961,49 @@ class Talkie : public ProffieOSAudioStream
961961
uint32_t rate = 0;
962962
if (!strcmp(cmd, "say") && arg) {
963963
if (!strcmp(arg, "bfd")) {
964-
Say(talkie_error_in_15, 15);
965-
Say(talkie_font_directory_15, 15);
966-
return true;
964+
Say(talkie_error_in_15, 15);
965+
Say(talkie_font_directory_15, 15);
966+
return true;
967967
}
968968
if (!strcmp(arg, "bof")) {
969-
Say(talkie_font_directory_15, 15);
970-
Say(talkie_not_found_15, 15);
971-
return true;
969+
Say(talkie_font_directory_15, 15);
970+
Say(talkie_not_found_15, 15);
971+
return true;
972972
}
973973
if (!strcmp(arg, "ftl")) {
974-
Say(talkie_font_directory_15, 15);
975-
Say(talkie_too_long_15, 15);
976-
return true;
974+
Say(talkie_font_directory_15, 15);
975+
Say(talkie_too_long_15, 15);
976+
return true;
977977
}
978978
if (!strcmp(arg, "sd")) {
979-
Say(talkie_sd_card_15, 15);
980-
Say(talkie_not_found_15, 15);
981-
return true;
979+
Say(talkie_sd_card_15, 15);
980+
Say(talkie_not_found_15, 15);
981+
return true;
982982
}
983983
if (!strcmp(arg, "bb")) {
984-
Say(talkie_error_in_15, 15);
985-
Say(talkie_blade_array_15, 15);
986-
return true;
984+
Say(talkie_error_in_15, 15);
985+
Say(talkie_blade_array_15, 15);
986+
return true;
987987
}
988988
if (!strcmp(arg, "bp")) {
989-
Say(talkie_error_in_15, 15);
990-
Say(talkie_preset_array_15, 15);
991-
return true;
989+
Say(talkie_error_in_15, 15);
990+
Say(talkie_preset_array_15, 15);
991+
return true;
992992
}
993993
if (!strcmp(arg, "lb")) {
994-
Say(talkie_low_battery_15, 15);
995-
return true;
994+
Say(talkie_low_battery_15, 15);
995+
return true;
996+
}
997+
if (!strcmp(arg, "vp")) {
998+
Say(talkie_voice_pack_15, 25);
999+
Say(talkie_not_found_15, 15);
1000+
return true;
1001+
}
1002+
if (!strcmp(arg, "bvp")) {
1003+
Say(talkie_error_in_15, 15);
1004+
Say(talkie_voice_pack_15, 15);
1005+
Say(talkie_version_15, 15);
1006+
return true;
9961007
}
9971008
}
9981009
if (!strcmp(cmd, "talkie")) rate = 25;

sound/voice_data.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,3 +687,5 @@ const unsigned char talkie_preset_array_15[] = {0xEC,0x6D,0xCA,0x95,0x85,0xE5,0x
687687
const unsigned char talkie_sd_card_15[] = {0x00,0x88,0xE8,0x4D,0x9D,0xBD,0x6D,0x09,0x32,0x19,0x8A,0xCA,0x20,0x13,0xC2,0x6A,0x45,0x3B,0xCA,0x70,0x8A,0xAA,0x11,0xAD,0x28,0xC3,0x21,0x2A,0x4A,0xBC,0x3D,0x85,0x84,0x28,0x6B,0xF5,0xF4,0x16,0xE2,0xD8,0xA0,0x5D,0x2A,0x5C,0x8C,0x78,0xBD,0x65,0xF5,0x09,0xDA,0x4C,0xF0,0xC4,0x24,0xA2,0xE3,0x10,0xAA,0x53,0x63,0x55,0x8F,0x4B,0xDC,0x46,0x0C,0xD5,0xDD,0x0E,0x01,0x16,0x76,0x21,0xC0,0xE6,0xA1,0x48,0x1E,0xD4,0x98,0x34,0xE2,0x00,0x00,0x88,0xA3,0x69,0x53,0x2B,0xA7,0xA3,0x8E,0x40,0xBC,0xA6,0x82,0x72,0x70,0x2B,0x92,0xDC,0x6E,0xC2,0xC1,0x6B,0x50,0xF2,0xA6,0x85,0x04,0xAF,0x43,0xCE,0xEF,0x14,0x12,0xBC,0x8E,0x38,0x7F,0x52,0x88,0xF3,0x1A,0x21,0xBF,0x2D,0xC2,0xCC,0x2B,0x94,0xE2,0xDB,0x45,0x01,0x90,0x6E,0xE4,0x29,0x8D,0x94,0xAB,0xCE,0x1E,0x3B,0x35,0x82,0x2A,0x03,0xA6,0xEB,0x14,0x47,0x0B,0x25,0x64,0x1A,0x59,0xDC,0x2D,0x6C,0x4A,0x49,0x24,0xB1,0xD7,0xD0,0xA1,0xA1,0x56,0x04,0x1D,0x82,0x89,0x9B,0x59,0x0E,0x74,0x6C,0x12,0x1E,0x6E,0x3A,0x84,0xB1,0x49,0x59,0x94,0x91,0x10,0xC5,0x2E,0x65,0x19,0x86,0x43,0x14,0xA7,0x64,0x94,0x07,0x0E,0x71,0x9A,0x5C,0xD6,0x69,0x38,0xC4,0x69,0x70,0x69,0x47,0xE1,0x10,0xA7,0x2E,0xAD,0x15,0x85,0x42,0x1C,0xAB,0xB4,0x95,0x17,0x0E,0x71,0x2C,0xD2,0x9E,0x52,0xCA,0xC5,0x29,0x71,0x47,0x48,0x49,0x17,0xA7,0x4C,0xE3,0xE1,0x21,0x4D,0x14,0x33,0x4E,0x84,0x87,0x32,0x51,0xCC,0xD8,0x1D,0x1E,0xD3,0xC4,0x31,0x61,0x4D,0x86,0x23,0x11,0xE7,0x0C,0xE3,0x99,0xB2,0x50,0x9A,0x22,0x44,0x47,0x5A,0x41,0x69,0x94,0x46,0x91,0x56,0x47,0xB0,0x55,0x3B,0x5A,0x48,0x6C,0xC4,0x52,0x67,0x31,0xA1,0xA6,0x11,0xC7,0x94,0x59,0xAF,0x45,0x06,0x80,0x07};
688688
const unsigned char talkie_too_long_15[] = {0x04,0x58,0x31,0x22,0x00,0xCB,0x9B,0x99,0xB7,0x52,0x26,0xB1,0xAA,0x2C,0x8E,0x21,0x88,0xD4,0x2A,0x0C,0x03,0xA6,0x35,0x66,0x64,0x91,0x24,0xD6,0x1D,0xC5,0xF8,0x5A,0x69,0x77,0x05,0x19,0x17,0x58,0xAD,0x5D,0x55,0x62,0x5C,0xA8,0x4C,0x7A,0x8F,0x99,0x76,0xA1,0x56,0x15,0xD9,0x11,0xD8,0x85,0x52,0x4F,0x79,0x79,0x18,0x17,0x2A,0xD5,0xE5,0x11,0x91,0x5C,0xA8,0xE5,0xA6,0x7B,0x59,0x36,0x91,0x11,0xE7,0xE6,0x65,0x46,0x44,0x52,0xAD,0x6B,0xAC,0x11,0x15,0x19,0x71,0x62,0xD9,0xA1,0x45,0x2C,0x63,0x63,0x6D,0x88,0x51,0x91,0x4C,0xCD,0x5E,0x2D,0xD6,0x45,0xBE,0x3B,0x55,0x86,0x64,0x17,0x85,0xC5,0xB2,0x29,0x52,0x5C,0x1C,0x36,0x59,0xA5,0x51,0x76,0x71,0xD8,0xE4,0x19,0x66,0xCA,0xC5,0x61,0x93,0x55,0x88,0x69,0x17,0x87,0x2D,0x92,0x21,0xA1,0x5D,0x1C,0x96,0x48,0x26,0x87,0x76,0x71,0x58,0xC2,0x55,0x14,0xC9,0x25,0x61,0x09,0x67,0x71,0x28,0x93,0x86,0xE1,0x64,0x83,0x91,0x4D,0x1A,0x86,0xB1,0x37,0x85,0x51,0x59,0x18,0xC6,0x9E,0x12,0x54,0xE4,0x7E,0x8A,0x44,0x98,0x51,0x91,0x87,0x89,0xA1,0x19,0x64,0x49,0xEE,0x07,0x05,0x8F,0x53,0x21,0x85,0xCD,0x1A,0xB0,0x66,0x0B,0x15,0xD2,0xD9,0x40,0x7B,0x42,0x54,0x28,0x2D,0x47,0xA9,0xA9,0x50,0xC9,0xAC,0x1D,0xA6,0x39,0x42,0x95,0x91,0x7C,0xEC,0xEA,0x08,0x55,0x42,0xC9,0x49,0xAA,0x43,0x54,0x31,0xA3,0xCB,0x95,0x16,0x51,0x25,0x8C,0xB4,0x54,0xDB,0x46,0x15,0xB6,0xBA,0x62,0x21,0x05,0xA9,0x20,0x58,0xBB,0x46,0x64,0x00,0x00,0x00,0x78};
689689
const unsigned char talkie_font_directory_15[] = {0x48,0x1D,0x3A,0xC2,0x42,0x1C,0xB3,0x77,0xE8,0x34,0x36,0x75,0xCC,0x08,0x37,0x54,0x34,0x43,0xB2,0x21,0xC3,0xE1,0x88,0x08,0xD1,0xCE,0x8F,0x47,0x52,0xCA,0xCC,0x04,0x3F,0x2E,0x0B,0x4D,0x0F,0x1D,0xFC,0xB8,0x24,0x35,0x23,0x74,0xF0,0xD2,0xE6,0x94,0x0A,0x59,0xCE,0x8F,0x83,0x93,0xC6,0x15,0x0A,0x3F,0x38,0x29,0xCC,0x76,0xC9,0xBC,0x60,0xA4,0xB1,0x46,0x25,0xF2,0x99,0xB3,0x91,0x1C,0x4A,0x00,0x00,0x0A,0x58,0x36,0xDC,0x99,0x49,0x7A,0xA6,0xA6,0xA9,0xE4,0xA4,0x24,0x1E,0xD5,0x52,0x92,0x9B,0xA2,0x94,0x4E,0xCA,0x4E,0x5E,0x4A,0xD2,0xB2,0x21,0x2B,0x79,0x29,0x73,0xCB,0x44,0xA4,0xE0,0xA7,0x42,0xC3,0xE3,0x91,0x9D,0x1F,0x2B,0x0D,0x77,0xC4,0x72,0x7E,0xAA,0x38,0xDC,0x11,0xC9,0x05,0xA9,0x50,0xF3,0x78,0x99,0x10,0xE4,0xC2,0x2D,0xE3,0x45,0x52,0x90,0x0B,0x95,0x8E,0x87,0x49,0x41,0x29,0x54,0x3A,0x11,0x26,0x05,0x25,0x63,0xE9,0x44,0xE4,0x10,0x96,0x04,0x6D,0x93,0x96,0x18,0x57,0x02,0x64,0x45,0x58,0x04,0x00,0x00,0xF1,0x8C,0x19,0xE5,0xAE,0x76,0x84,0x3B,0x6A,0x9B,0x1B,0xD9,0x11,0xDF,0x8C,0xD9,0x19,0x6A,0x9B,0x61,0x3D,0x94,0x9B,0x32,0x55,0xE1,0xD9,0xA8,0x11,0xE9,0xB6,0x8D,0x1F,0x12,0xB5,0x65,0x44,0x72,0x41,0x0A,0xD8,0x96,0x19,0xCA,0x05,0x39,0x60,0x45,0x55,0xA8,0x10,0x14,0x8F,0x91,0x55,0xA1,0x5D,0x98,0x0D,0xD9,0x74,0x84,0x72,0x61,0x96,0xAC,0x33,0x1E,0xDA,0x85,0x89,0x8B,0xCD,0xB8,0x69,0x15,0x25,0xC6,0xD1,0x1D,0xA6,0x50,0x4C,0xA5,0x57,0x57,0x86,0x02,0x80,0x07};
690+
const unsigned char talkie_voice_pack_15[] = {0x22,0x6e,0x24,0xc8,0x53,0xed,0xa8,0x58,0x96,0xca,0x50,0x8d,0x2b,0x62,0xf9,0x5c,0x2d,0xb2,0xa9,0x88,0xe5,0x4b,0x15,0xcf,0xa6,0x2a,0xd2,0x4f,0x4d,0x2b,0xd3,0xba,0x40,0x3e,0x2d,0x4f,0x77,0x17,0x02,0xbd,0xac,0xbc,0xc3,0x5a,0xf2,0x75,0xf7,0x8e,0x29,0xb1,0xc9,0x0b,0x41,0xa6,0x22,0xa5,0x24,0x2f,0x39,0xec,0x1e,0xa7,0x1d,0xbc,0x68,0xa9,0xa6,0x83,0x4e,0xf0,0x5b,0x30,0xf6,0xcc,0xb8,0xee,0x1c,0xba,0xd8,0xdc,0xe3,0x0a,0x60,0xda,0x61,0x06,0x1c,0x33,0x86,0x80,0x25,0x4b,0x11,0xb0,0x64,0x28,0x02,0x96,0x48,0x13,0x7f,0x2b,0xa1,0x99,0x1e,0xdb,0xc8,0xb5,0x6a,0x74,0x55,0x53,0xe7,0xd7,0x2a,0x95,0xd5,0x4d,0x52,0x90,0x0b,0x4f,0x8c,0xcb,0x6e,0x51,0x2a,0x32,0xb1,0x61,0xa5,0xc5,0xa9,0xca,0xd4,0x86,0xd9,0x12,0xc7,0x62,0x63,0x6b,0x72,0x4a,0x1c,0x93,0x6e,0x4e,0x52,0x29,0x71,0x49,0xb4,0xd9,0x21,0xc5,0x25,0xb5,0x72,0x59,0xa7,0x64,0x15,0x97,0x22,0x59,0x55,0x76,0xd8,0x5f,0x92,0x46,0x67,0xc5,0x15,0x7f,0xcd,0x66,0x95,0x11,0x29,0x44,0x5d,0x27,0x9b,0x5b,0x1c,0x95,0x0f,0x59,0x12,0x21,0x76,0xd0,0x5f,0xad,0x88,0xaa,0x88,0x84,0x07};
691+
const unsigned char talkie_version_15[] = {0x26,0xae,0x24,0xc8,0x43,0xed,0x84,0xc4,0x05,0xcf,0x74,0xb3,0x93,0x12,0xdf,0x68,0x2d,0x2b,0x62,0x4a,0xed,0xa4,0x75,0x4f,0x53,0x21,0xd3,0x53,0x36,0xcc,0x2c,0xba,0xdc,0x54,0x3e,0xb3,0x30,0x14,0xf2,0x90,0xf0,0x22,0x22,0x44,0xc8,0x63,0xc2,0xcd,0x88,0x90,0x21,0x0f,0x91,0xba,0xc3,0x23,0x95,0xbc,0x15,0x11,0x35,0x6d,0x5a,0xb2,0x91,0xdb,0xd5,0x44,0x96,0x03,0x66,0xad,0x74,0xc0,0x2e,0x5d,0x06,0x58,0x6d,0x2a,0x25,0x43,0xb2,0x47,0x47,0xcb,0x92,0x26,0xe5,0x91,0x55,0x15,0x4b,0x16,0x8d,0x47,0x54,0x9a,0x4c,0x79,0x51,0xec,0x9e,0x1e,0x39,0x65,0x49,0x88,0x6b,0x44,0xed,0x90,0x45,0xa1,0xa1,0x1e,0x75,0x42,0xe6,0xb9,0x66,0x44,0x34,0x09,0x99,0x95,0x9a,0x9a,0xdd,0xc4,0x65,0x41,0xb3,0x53,0x54,0x52,0x95,0x17,0x23,0x4e,0x66,0x96,0xe0,0x01};

0 commit comments

Comments
 (0)