@@ -59,6 +59,13 @@ class SAM {
59
59
setVoice (Sam);
60
60
}
61
61
62
+ // / Constructor - for output with a SAMOutputBase class
63
+ SAM (SAMOutputBase &out){
64
+ SAM_LOG (" SAM SAMOutputBase" );
65
+ setOutput (&out);
66
+ setVoice (Sam);
67
+ }
68
+
62
69
// / Constructor - for output with a SAMOutputBase class
63
70
SAM (SAMOutputBase *out){
64
71
SAM_LOG (" SAM SAMOutputBase" );
@@ -209,11 +216,20 @@ class SAM {
209
216
true16Bits = active;
210
217
}
211
218
212
- // / Provides the sample rate (22050 )
219
+ // / Provides the sample rate (44100 )
213
220
static int sampleRate () {
214
221
return SAMOutputBase::sampleRate ();
215
222
}
216
223
224
+
225
+ int bitsPerSample () {
226
+ return bits_per_sample;
227
+ }
228
+
229
+ int channels () {
230
+ return channel_count;
231
+ }
232
+
217
233
protected:
218
234
SAMOutputBase *arduino_output=nullptr ;
219
235
int bits_per_sample = 8 ;
@@ -232,12 +248,16 @@ class SAM {
232
248
SAM_LOG (" setOutput" );
233
249
arduino_output = out;
234
250
235
- // force output definition as defined in arduino_output
251
+ // synchronize output definition with arduino_output
236
252
if (arduino_output->channels ()!=-1 ){
237
253
this ->channel_count = arduino_output->channels ();
254
+ } else {
255
+ arduino_output->setChannels (channel_count);
238
256
}
239
257
if (arduino_output->bitsPerSample ()!=-1 ){
240
258
this ->bits_per_sample = arduino_output->bitsPerSample ();
259
+ } else {
260
+ arduino_output->setBitsPerSample (bits_per_sample);
241
261
}
242
262
SAM_LOG (" -> channel_count: %d" ,this ->channel_count );
243
263
SAM_LOG (" -> bits_per_sample: %d" ,this ->bits_per_sample );
0 commit comments