Pass in the callback parameters to ReadFile() and add calls to the callbacks
as is done for the other remote types.  Otherwise, the user doesn't know what
is doing on while a config dump is in progress.

Signed-off-by: Scott Talbert <s...@techie.net>
---
 libconcord/libconcord.cpp |  6 +++---
 libconcord/remote.cpp     |  3 ++-
 libconcord/remote.h       | 15 +++++++++------
 libconcord/remote_mh.cpp  | 13 ++++++++++---
 libconcord/remote_z.cpp   |  3 ++-
 5 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/libconcord/libconcord.cpp b/libconcord/libconcord.cpp
index ee66b23..c9b97eb 100644
--- a/libconcord/libconcord.cpp
+++ b/libconcord/libconcord.cpp
@@ -1827,7 +1827,7 @@ int mh_get_cfg_properties(struct mh_cfg_properties 
*properties)
     char buffer[buflen];
     int data_read;
     if ((err = rmt->ReadFile("/cfg/properties", (uint8_t*)buffer, buflen,
-                             &data_read)))
+                             &data_read, 0x00, NULL, NULL, 0)))
         return err;
 
     mh_get_value(buffer, "host_name", properties->host_name);
@@ -1869,7 +1869,7 @@ int mh_get_wifi_networks(struct mh_wifi_networks 
*networks)
     char buffer[buflen];
     int data_read;
     if ((err = rmt->ReadFile("/sys/wifi/networks", (uint8_t*)buffer, buflen,
-                             &data_read)))
+                             &data_read, 0x00, NULL, NULL, 0)))
         return err;
 
     char *buf_ptr = buffer;
@@ -1899,7 +1899,7 @@ int mh_get_wifi_config(struct mh_wifi_config *config)
     char buffer[buflen];
     int data_read;
     if ((err = rmt->ReadFile("/sys/wifi/connect", (uint8_t*)buffer, buflen,
-                             &data_read)))
+                             &data_read, 0x00, NULL, NULL, 0)))
         return err;
 
     mh_get_value(buffer, "ssid", config->ssid);
diff --git a/libconcord/remote.cpp b/libconcord/remote.cpp
index fa7fcb7..cd972c6 100644
--- a/libconcord/remote.cpp
+++ b/libconcord/remote.cpp
@@ -1056,7 +1056,8 @@ int CRemote::LearnIR(uint32_t *freq, uint32_t **ir_signal,
 }
 
 int CRemote::ReadFile(const char *filename, uint8_t *rd, const uint32_t rdlen,
-                      int *data_read, uint8_t start_seq)
+                      int *data_read, uint8_t start_seq, lc_callback cb,
+                      void *cb_arg, uint32_t cb_stage)
 {
     return LC_ERROR_UNSUPP;
 }
diff --git a/libconcord/remote.h b/libconcord/remote.h
index 5d835ab..549ac88 100644
--- a/libconcord/remote.h
+++ b/libconcord/remote.h
@@ -201,10 +201,10 @@ public:
     virtual int IsMHRemote()=0;
 
     virtual int ReadFile(const char *filename, uint8_t *rd,
-                         const uint32_t rdlen, int *data_read,
-                         uint8_t start_seq=0)=0;
+        const uint32_t rdlen, int *data_read, uint8_t start_seq,
+        lc_callback cb, void *cb_arg, uint32_t cb_stage)=0;
     virtual int WriteFile(const char *filename, uint8_t *wr,
-                          const uint32_t wrlen)=0;
+        const uint32_t wrlen)=0;
 };
 
 class CRemote : public CRemoteBase    // All non-Z-Wave remotes
@@ -263,7 +263,8 @@ public:
     int IsMHRemote() {return false;}
 
     int ReadFile(const char *filename, uint8_t *rd, const uint32_t rdlen,
-        int *data_read, uint8_t start_seq=0);
+        int *data_read, uint8_t start_seq, lc_callback cb, void *cb_arg,
+        uint32_t cb_stage);
     int WriteFile(const char *filename, uint8_t *wr, const uint32_t wrlen);
 };
 
@@ -320,7 +321,8 @@ public:
     int IsMHRemote() {return false;}
 
     int ReadFile(const char *filename, uint8_t *rd, const uint32_t rdlen,
-        int *data_read, uint8_t start_seq=0);
+        int *data_read, uint8_t start_seq, lc_callback cb, void *cb_arg,
+        uint32_t cb_stage);
     int WriteFile(const char *filename, uint8_t *wr, const uint32_t wrlen);
 };
 
@@ -447,7 +449,8 @@ public:
     int IsMHRemote() {return true;}
 
     int ReadFile(const char *filename, uint8_t *rd, const uint32_t rdlen,
-        int *data_read, uint8_t start_seq=0);
+        int *data_read, uint8_t start_seq, lc_callback cb, void *cb_arg,
+        uint32_t cb_stage);
     int WriteFile(const char *filename, uint8_t *wr, const uint32_t wrlen);
 };
 
diff --git a/libconcord/remote_mh.cpp b/libconcord/remote_mh.cpp
index adaf428..2670419 100644
--- a/libconcord/remote_mh.cpp
+++ b/libconcord/remote_mh.cpp
@@ -182,9 +182,11 @@ int reset_sequence(uint8_t seq, uint8_t param)
 }
 
 int CRemoteMH::ReadFile(const char *filename, uint8_t *rd, const uint32_t 
rdlen,
-                        int *data_read, uint8_t start_seq)
+                        int *data_read, uint8_t start_seq, lc_callback cb,
+                        void *cb_arg, uint32_t cb_stage)
 {
     int err = 0;
+    uint32_t cb_count = 0;
     uint8_t seq = start_seq;
 
     if (strlen(filename) > (MH_MAX_PACKET_SIZE - 9)) {
@@ -273,6 +275,10 @@ int CRemoteMH::ReadFile(const char *filename, uint8_t *rd, 
const uint32_t rdlen,
         *data_read += len;
         pkt_count++;
         pkts_to_read--;
+        if (cb) {
+            cb(cb_stage, cb_count++, *data_read, data_len,
+              LC_CB_COUNTER_TYPE_BYTES, cb_arg, NULL);
+        }
         if (pkts_to_read == 1) {
             break;
         }
@@ -467,7 +473,7 @@ int CRemoteMH::GetIdentity(TRemoteInfo &ri, THIDINFO &hid, 
lc_callback cb,
     char buffer[buflen];
     int data_read;
     if ((err = ReadFile("/sys/sysinfo", (uint8_t*)buffer, buflen, &data_read,
-                        0x03)))
+                        0x03, NULL, NULL, 0)))
         return err;
     string identity(buffer);
     debug("%s", identity.c_str());
@@ -564,7 +570,8 @@ int CRemoteMH::ReadFlash(uint32_t addr, const uint32_t len, 
uint8_t *rd,
     int err = 0;
     int data_read;
 
-    if ((err = ReadFile("/cfg/usercfg", rd, len, &data_read, 0x00)))
+    if ((err = ReadFile("/cfg/usercfg", rd, len, &data_read, 0x00, cb, cb_arg,
+                        cb_stage)))
         return err;
 
     /*
diff --git a/libconcord/remote_z.cpp b/libconcord/remote_z.cpp
index 4c69ef7..2c4ddc2 100644
--- a/libconcord/remote_z.cpp
+++ b/libconcord/remote_z.cpp
@@ -1497,7 +1497,8 @@ int CRemoteZ_HID::LearnIR(uint32_t *freq, uint32_t 
**ir_signal,
 
 int CRemoteZ_Base::ReadFile(const char *filename, uint8_t *rd,
                             const uint32_t rdlen, int *data_read,
-                            uint8_t start_seq)
+                            uint8_t start_seq, lc_callback cb, void *cb_arg,
+                            uint32_t cb_stage)
 {
     return LC_ERROR_UNSUPP;
 }
-- 
1.8.3.1


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
concordance-devel mailing list
concordance-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/concordance-devel

Reply via email to