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