@@ -15,6 +15,10 @@ class EthernetUDP
15
15
EthernetUDP ()
16
16
{
17
17
_port = 0 ;
18
+
19
+
20
+
21
+
18
22
}
19
23
20
24
void begin (uint16_t port)
@@ -24,6 +28,21 @@ class EthernetUDP
24
28
if (port == DEFAULT_CONTROL_PORT && true )
25
29
{
26
30
// AppleMIDI messages
31
+ byte okSessionName[] = {
32
+ 0xff , 0xff , 0x49 , 0x4e , 0x00 , 0x00 , 0x00 , 0x02 , 0x4e , 0x27 , 0x95 , 0x9e , 0x00 , 0x00 , 0xec , 0xf9 ,
33
+ 0x6c , 0x61 , 0x70 , 0x70 , 0x69 , 0x65 , 0x6d , 0x63 , 0x74 , 0x6f , 0x70 , 0x66 , 0x61 , 0x63 , 0x65 , 0x00
34
+ };
35
+
36
+ byte notOKSessionName[] = {
37
+ 0xff , 0xff , 0x49 , 0x4e , 0x00 , 0x00 , 0x00 , 0x02 , 0xcc , 0x0f , 0x6c , 0x49 , 0x00 , 0x00 , 0xa4 , 0x9b ,
38
+ 0x6c , 0x61 , 0x70 , 0x70 , 0x69 , 0x65 , 0x6d , 0x63 , 0x74 , 0x6f , 0x70 , 0x66 , 0x61 , 0x63 , 0x65 , 0x2f ,
39
+ 0x46 , 0x4c , 0x55 , 0x49 , 0x44 , 0x20 , 0x53 , 0x79 , 0x6e , 0x74 , 0x68 , 0x20 , 0x28 , 0x36 , 0x34 , 0x37 ,
40
+ 0x38 , 0x29 , 0x2d , 0x53 , 0x79 , 0x6e , 0x74 , 0x68 , 0x20 , 0x69 , 0x6e , 0x70 , 0x75 , 0x74 , 0x20 , 0x70 ,
41
+ 0x6f , 0x72 , 0x74 , 0x20 , 0x28 , 0x36 , 0x34 , 0x37 , 0x38 , 0x3a , 0x30 , 0x29 , 0x00
42
+ };
43
+
44
+ write (okSessionName, sizeof (okSessionName));
45
+
27
46
}
28
47
29
48
if (port == (DEFAULT_CONTROL_PORT + 1 ) && true )
@@ -309,7 +328,7 @@ class EthernetUDP
309
328
310
329
byte slecht[] = {0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 };
311
330
312
- write (rr2, sizeof (rr2));
331
+ // write(rr2, sizeof(rr2));
313
332
}
314
333
315
334
if (port == 5005 && true )
@@ -339,6 +358,17 @@ class EthernetUDP
339
358
return _buffer.size ();
340
359
};
341
360
361
+ int read ()
362
+ {
363
+ if (_buffer.size () == 0 )
364
+ return -1 ;
365
+
366
+ byte value = _buffer.front ();
367
+ _buffer.pop_front ();
368
+
369
+ return value;
370
+ }
371
+
342
372
size_t read (byte* buffer, size_t size)
343
373
{
344
374
size = min (size, _buffer.size ());
@@ -363,68 +393,9 @@ class EthernetUDP
363
393
};
364
394
365
395
void endPacket () { };
396
+
366
397
void flush ()
367
398
{
368
- if (_port == 5004 )
369
- {
370
- if (_buffer[0 ] == 0xff && _buffer[1 ] == 0xff && _buffer[2 ] == ' I' &&_buffer[3 ] == ' N' )
371
- {
372
- _buffer.clear ();
373
-
374
-
375
- byte u[] = {
376
- 0xff , 0xff ,
377
- 0x4f , 0x4b ,
378
- 0x00 , 0x00 , 0x00 , 0x02 ,
379
- 0xb7 , 0x06 , 0x20 , 0x30 ,
380
- 0xda , 0x8d , 0xc5 , 0x8a ,
381
- 0x4d , 0x61 , 0x63 , 0x62 , 0x6f , 0x6f , 0x6b , 0x20 , 0x50 , 0x72 , 0x6f , 0x20 , 0x66 , 0x72 , 0x6f , 0x6d , 0x20 , 0x53 , 0x61 , 0x6e , 0x64 , 0x72 , 0x61 , 0x20 , 0x56 , 0x65 , 0x72 , 0x62 , 0x65 , 0x6b , 0x65 , 0x6e , 0x20 , 0x28 , 0x32 , 0x29 , 0x00 };
382
-
383
-
384
-
385
-
386
-
387
- byte r[] = { 0xff , 0xff ,
388
- 0x4f , 0x4b ,
389
- 0x00 , 0x0 , 0x00 , 0x02 ,
390
- 0xb7 , 0x06 , 0x20 , 0x30 ,
391
- 0xda , 0x8d , 0xc5 , 0x8a ,
392
- 0x53 , 0x65 , 0x73 , 0x73 , 0x69 , 0x6 , 0x6e , 0x31 , 0x2d , 0x42 , 0x00 };
393
- write (u, sizeof (u));
394
- }
395
- }
396
- if (_port == 5005 )
397
- {
398
- if (_buffer[0 ] == 0xff && _buffer[1 ] == 0xff && _buffer[2 ] == ' I' &&_buffer[3 ] == ' N' )
399
- {
400
- _buffer.clear ();
401
- byte r[] = { 0xff , 0xff ,
402
- 0x4f , 0x4b ,
403
- 0x00 , 0x0 , 0x00 , 0x02 ,
404
- 0xb7 , 0x06 , 0x20 , 0x30 ,
405
- 0xda , 0x8d , 0xc5 , 0x8a ,
406
- 0x53 , 0x65 , 0x73 , 0x73 , 0x69 , 0x6 , 0x6e , 0x31 , 0x2d , 0x42 , 0x00 };
407
- write (r, sizeof (r));
408
- }
409
- else if (_buffer[0 ] == 0xff && _buffer[1 ] == 0xff && _buffer[2 ] == ' C' &&_buffer[3 ] == ' K' )
410
- {
411
- if (_buffer[8 ] == 0x00 )
412
- {
413
- _buffer.clear ();
414
- byte r[] = { 0xff , 0xff ,
415
- 0x43 , 0x4b ,
416
- 0xda , 0x8d , 0xc5 , 0x8a ,
417
- 0x01 ,
418
- 0x65 , 0x73 , 0x73 ,
419
- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x17 , 0x34 ,
420
- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0b , 0x6c , 0x83 ,
421
- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
422
- write (r, sizeof (r));
423
- }
424
- else
425
- _buffer.clear ();
426
- }
427
- }
428
399
};
429
400
430
401
void stop () { _buffer.clear (); };
0 commit comments