Thread: [concordance-commit] concordance/libconcord libconcord.cpp, 1.42.2.12, 1.42.2.13 libconcord.h, 1.22
Brought to you by:
jaymzh,
kevin_timmerman
Update of /cvsroot/concordance/concordance/libconcord In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv16752/libconcord Modified Files: Tag: zwave_work_branch libconcord.cpp libconcord.h remote.cpp remote.h remote_z.cpp Log Message: Port learn-ir to new API. Index: libconcord.h =================================================================== RCS file: /cvsroot/concordance/concordance/libconcord/libconcord.h,v retrieving revision 1.22.2.10 retrieving revision 1.22.2.11 diff -u -d -r1.22.2.10 -r1.22.2.11 --- libconcord.h 18 Sep 2010 21:52:06 -0000 1.22.2.10 +++ libconcord.h 18 Sep 2010 22:26:51 -0000 1.22.2.11 @@ -86,6 +86,7 @@ #define LC_CB_STAGE_RESET 15 #define LC_CB_STAGE_SET_TIME 16 #define LC_CB_STAGE_HTTP 17 +#define LC_CB_STAGE_LEARN 18 /* @@ -503,7 +504,8 @@ * * Returns 0 for success, error code for failure. */ -int post_new_code(char *key_name, char *encoded_signal); +int post_new_code(char *key_name, char *encoded_signal, lc_callback cb, + void *cb_arg); int update_configuration(lc_callback cb, void *cb_arg, int noreset); int update_firmware(lc_callback cb, void *cb_arg, int noreset, int direct); Index: libconcord.cpp =================================================================== RCS file: /cvsroot/concordance/concordance/libconcord/libconcord.cpp,v retrieving revision 1.42.2.12 retrieving revision 1.42.2.13 diff -u -d -r1.42.2.12 -r1.42.2.13 --- libconcord.cpp 18 Sep 2010 21:52:06 -0000 1.42.2.12 +++ libconcord.cpp 18 Sep 2010 22:26:51 -0000 1.42.2.13 @@ -392,6 +392,10 @@ case LC_CB_STAGE_HTTP: return "Contacting website"; break; + + case LC_CB_STAGE_LEARN: + return "Learning IR code"; + break; } return "(Unknown)"; @@ -1592,7 +1596,7 @@ /* try to learn code via Harmony from original remote: */ return rmt->LearnIR(carrier_clock, ir_signal, ir_signal_length, cb, - cb_arg); + cb_arg, LC_CB_STAGE_LEARN); } /* @@ -1640,10 +1644,14 @@ * information from XML data[size] to Logitech. * Returns 0 for success, error code for failure. */ -int post_new_code(char *key_name, char *encoded_signal) +int post_new_code(char *key_name, char *encoded_signal, lc_callback cb, + void *cb_arg) { - string learn_key; - string learn_seq; + int err; + string learn_key, learn_seq; + + if (cb) + cb(LC_CB_STAGE_HTTP, 0, 0, 2, LC_CB_COUNTER_TYPE_STEPS, cb_arg); if (key_name == NULL || encoded_signal == NULL) { return LC_ERROR_POST; /* cannot do anything without */ @@ -1652,8 +1660,17 @@ learn_key = key_name; learn_seq = encoded_signal; - return Post(of->GetXml(), of->GetXmlSize(), "POSTOPTIONS", ri, true, - false, false, &learn_seq, &learn_key); + if (cb) + cb(LC_CB_STAGE_HTTP, 1, 1, 2, LC_CB_COUNTER_TYPE_STEPS, cb_arg); + + if ((err = Post(of->GetXml(), of->GetXmlSize(), "POSTOPTIONS", ri, true, + false, false, &learn_seq, &learn_key))) + return err; + + if (cb) + cb(LC_CB_STAGE_HTTP, 2, 2, 2, LC_CB_COUNTER_TYPE_STEPS, cb_arg); + + return 0; } /* Index: remote.h =================================================================== RCS file: /cvsroot/concordance/concordance/libconcord/remote.h,v retrieving revision 1.20.2.6 retrieving revision 1.20.2.7 diff -u -d -r1.20.2.6 -r1.20.2.7 --- remote.h 18 Sep 2010 21:52:06 -0000 1.20.2.6 +++ remote.h 18 Sep 2010 22:26:51 -0000 1.20.2.7 @@ -171,7 +171,8 @@ lc_callback cb=NULL, void *cb_arg=NULL, uint32_t cb_stage=NULL)=0; virtual int LearnIR(uint32_t *freq, uint32_t **ir_signal, - uint32_t *ir_signal_length, lc_callback cb, void *cb_arg)=0; + uint32_t *ir_signal_length, lc_callback cb=NULL, + void *cb_arg=NULL, uint32_t cb_stage=NULL)=0; virtual int IsZRemote()=0; }; @@ -223,7 +224,8 @@ lc_callback cb=NULL, void *cb_arg=NULL, uint32_t cb_stage=NULL); int LearnIR(uint32_t *freq, uint32_t **ir_signal, - uint32_t *ir_signal_length, lc_callback cb, void *cb_arg); + uint32_t *ir_signal_length, lc_callback cb=NULL, + void *cb_arg=NULL, uint32_t cb_stage=NULL); int IsZRemote() {return false;} }; @@ -275,7 +277,8 @@ lc_callback cb=NULL, void *cb_arg=NULL, uint32_t cb_stage=NULL); int LearnIR(uint32_t *freq, uint32_t **ir_signal, - uint32_t *ir_signal_length, lc_callback cb, void *cb_arg); + uint32_t *ir_signal_length, lc_callback cb=NULL, + void *cb_arg=NULL, uint32_t cb_stage=NULL); int IsZRemote() {return true;} }; Index: remote_z.cpp =================================================================== RCS file: /cvsroot/concordance/concordance/libconcord/remote_z.cpp,v retrieving revision 1.25.2.12 retrieving revision 1.25.2.13 diff -u -d -r1.25.2.12 -r1.25.2.13 --- remote_z.cpp 18 Sep 2010 21:52:06 -0000 1.25.2.12 +++ remote_z.cpp 18 Sep 2010 22:26:51 -0000 1.25.2.13 @@ -913,7 +913,8 @@ } int CRemoteZ_Base::LearnIR(uint32_t *freq, uint32_t **ir_signal, - uint32_t *ir_signal_length, lc_callback cb, void *cb_arg) + uint32_t *ir_signal_length, lc_callback cb, void *cb_arg, + uint32_t cb_stage) { return 0; } Index: remote.cpp =================================================================== RCS file: /cvsroot/concordance/concordance/libconcord/remote.cpp,v retrieving revision 1.40.2.4 retrieving revision 1.40.2.5 diff -u -d -r1.40.2.4 -r1.40.2.5 --- remote.cpp 18 Sep 2010 21:52:06 -0000 1.40.2.4 +++ remote.cpp 18 Sep 2010 22:26:51 -0000 1.40.2.5 @@ -932,7 +932,8 @@ int CRemote::LearnIR(uint32_t *freq, uint32_t **ir_signal, - uint32_t *ir_signal_length, lc_callback cb, void *cb_arg) + uint32_t *ir_signal_length, lc_callback cb, void *cb_arg, + uint32_t cb_stage) { int err = 0; uint8_t rsp[68]; @@ -941,7 +942,7 @@ static const uint8_t stop_ir_learn[64] = { COMMAND_STOP_IRCAP }; if (cb) { - cb(4, 0, 0, 1, LC_CB_COUNTER_TYPE_STEPS, cb_arg); + cb(cb_stage, 0, 0, 1, LC_CB_COUNTER_TYPE_STEPS, cb_arg); } if (HID_WriteReport(start_ir_learn) != 0) { @@ -1027,7 +1028,7 @@ } while ((rsp[0] & COMMAND_MASK) != RESPONSE_DONE); if (cb && !err) { - cb(5, 1, 1, 1, LC_CB_COUNTER_TYPE_STEPS, cb_arg); + cb(cb_stage, 1, 1, 1, LC_CB_COUNTER_TYPE_STEPS, cb_arg); } return err; |