From ff0ce9f07b19061b130811a14b8ac4ccb8943beb Mon Sep 17 00:00:00 2001
From: c vw <dl1ycf@darc.de>
Date: Fri, 14 Jan 2022 10:49:46 +0100
Subject: [PATCH] Some corrections for OZY devices

---
 discovery.c    |  2 +-
 old_protocol.c | 26 ++++++++++++++++++--------
 2 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/discovery.c b/discovery.c
index c6ffbd8..d854d07 100644
--- a/discovery.c
+++ b/discovery.c
@@ -229,7 +229,7 @@ void discovery() {
     discovered[devices].frequency_min=0.0;
     discovered[devices].frequency_max=61440000.0;
     for(int i=0;i<6;i++) {
-      discovered[devices].info.network.mac_address[i]=0x10+i;
+      discovered[devices].info.network.mac_address[i]=0;
     }
     discovered[devices].status = STATE_AVAILABLE;
     discovered[devices].info.network.address_length=0;
diff --git a/old_protocol.c b/old_protocol.c
index 687757a..09dd609 100644
--- a/old_protocol.c
+++ b/old_protocol.c
@@ -331,15 +331,15 @@ void old_protocol_init(int rx,int pixels,int rate) {
       exit( -1 );
     }
     g_print( "receive_thread: id=%p\n",receive_thread_id);
+  }
 
-    g_print("old_protocol_init: prime radio\n");
-    for(i=8;i<OZY_BUFFER_SIZE;i++) {
-      output_buffer[i]=0;
-    }
-
-    metis_restart();
+  g_print("old_protocol_init: prime radio\n");
+  for(i=8;i<OZY_BUFFER_SIZE;i++) {
+    output_buffer[i]=0;
   }
 
+  metis_restart();
+
 }
 
 #ifdef USBOZY
@@ -1338,6 +1338,7 @@ void ozy_send_buffer() {
   if(metis_offset==8) {
     //
     // Every second packet is a "C0=0" packet
+    // (for JANUS, *every* packet is a "C0=0" packet
     //
     output_buffer[C0]=0x00;
     output_buffer[C1]=0x00;
@@ -1410,12 +1411,21 @@ void ozy_send_buffer() {
    }
 
 #ifdef USBOZY
-    // check for Janus
-    if (device == DEVICE_OZY && !atlas_mic_source) {
+    if (device == DEVICE_OZY && atlas_janus) {
+      //
+      // The JANUS is not a radio but a sound card.
+      // pihpsdr should do RX and TX but all the frequency,
+      // RX frontend, TX filters, etc. settings are
+      // not respected (and not sent).
+      //
       output_buffer[C2]=0x00;
       output_buffer[C3]=0x00;
       output_buffer[C4]=0x00;
       ozyusb_write(output_buffer,OZY_BUFFER_SIZE);
+      //
+      // Take care we also send a C0=0 packet next time
+      //
+      metis_offset=8;
       return;
     }
 #endif
-- 
2.45.2