@@ -44,12 +44,12 @@ class OSCContainerEncoder : public AudioEncoder {
44
44
45
45
bool begin () override {
46
46
TRACED ();
47
+ if (p_codec == nullptr ) return false ;
47
48
// target.begin();
48
- bool rc = p_codec->begin ();
49
+ is_active = p_codec->begin ();
49
50
p_codec->setAudioInfo (audioInfo ());
50
- is_beginning = true ;
51
51
writeAudioInfo ();
52
- return rc ;
52
+ return is_active ;
53
53
}
54
54
55
55
void setAudioInfo (AudioInfo info) override {
@@ -68,9 +68,12 @@ class OSCContainerEncoder : public AudioEncoder {
68
68
return len;
69
69
}
70
70
71
- void end () { p_codec->end (); }
71
+ void end () {
72
+ p_codec->end ();
73
+ is_active = false ;
74
+ }
72
75
73
- operator bool () { return true ; };
76
+ operator bool () { return is_active ; };
74
77
75
78
virtual const char *mime () { return " audio/OSC" ; };
76
79
@@ -81,7 +84,7 @@ class OSCContainerEncoder : public AudioEncoder {
81
84
protected:
82
85
uint64_t packet_count = 0 ;
83
86
int repeat_info = 0 ;
84
- bool is_beginning = true ;
87
+ bool is_active = false ;
85
88
AudioEncoder *p_codec = nullptr ;
86
89
Print *p_out = nullptr ;
87
90
@@ -137,14 +140,15 @@ class OSCContainerDecoder : public ContainerDecoder {
137
140
138
141
bool begin () {
139
142
TRACED ();
140
- is_first = true ;
143
+ if (p_codec == nullptr ) return false ;
141
144
osc.setReference (this );
142
145
osc.addCallback (" /audio/info" , parseInfo, OSCCompare::StartsWith);
143
146
osc.addCallback (" /audio/data" , parseData, OSCCompare::StartsWith);
147
+ is_active = true ;
144
148
return true ;
145
149
}
146
150
147
- void end () { TRACED () ; }
151
+ void end () { is_active = false ; }
148
152
149
153
size_t write (const uint8_t *data, size_t len) {
150
154
LOGD (" write: %d" , (int )len);
@@ -154,13 +158,13 @@ class OSCContainerDecoder : public ContainerDecoder {
154
158
return len;
155
159
}
156
160
157
- operator bool () { return true ; };
161
+ operator bool () { return is_active ; };
158
162
159
163
// / Provides the mime type from the encoder
160
164
const char *mime () { return mime_str.c_str (); };
161
165
162
166
protected:
163
- bool is_first = true ;
167
+ bool is_active = false ;
164
168
AudioDecoder *p_codec = nullptr ;
165
169
MultiDecoder *p_multi_decoder = nullptr ;
166
170
SingleBuffer<uint8_t > buffer{0 };
@@ -170,9 +174,9 @@ class OSCContainerDecoder : public ContainerDecoder {
170
174
171
175
static bool parseData (OSCData &osc, void *ref) {
172
176
OSCBinaryData data = osc.readData ();
173
- OSCContainerDecoder *decoder = static_cast <OSCContainerDecoder *>(ref);
174
- if (decoder ->p_codec != nullptr ) {
175
- decoder ->p_codec ->write (data.data , data.len );
177
+ OSCContainerDecoder *self = static_cast <OSCContainerDecoder *>(ref);
178
+ if (self ->p_codec != nullptr ) {
179
+ self ->p_codec ->write (data.data , data.len );
176
180
}
177
181
return true ;
178
182
}
@@ -184,13 +188,14 @@ class OSCContainerDecoder : public ContainerDecoder {
184
188
info.bits_per_sample = osc.readInt32 ();
185
189
const char *mime = osc.readString ();
186
190
187
- OSCContainerDecoder *decoder = static_cast <OSCContainerDecoder *>(ref);
188
- if (decoder != nullptr ) {
189
- decoder->setAudioInfo (info);
190
- decoder->mime_str = mime;
191
+ OSCContainerDecoder *self = static_cast <OSCContainerDecoder *>(ref);
192
+ if (self != nullptr ) {
193
+ self->setAudioInfo (info);
194
+ self->mime_str = mime;
195
+ LOGI (" mime: %s" , mime);
191
196
// select the right decoder based on the mime type
192
- if (decoder ->p_multi_decoder )
193
- decoder ->p_multi_decoder ->selectDecoder (mime);
197
+ if (self ->p_multi_decoder != nullptr )
198
+ self ->p_multi_decoder ->selectDecoder (mime);
194
199
}
195
200
196
201
return true ;
0 commit comments