I've been (very slowly) working on congruity support for IR learning,
and have something basic working now.

FYI, it's in congruity's /branches/irlean if anyone wants to take a look.

Now that I have the GUI working, I have a couple more comments on the
libconcord changes:

1)

If I press and hold the button on the original remote forever (I tested
60 seconds), the recording process takes forever. I guess perhaps it'll
automatically stop if some maximum pulse limit is reached, but this can
take forever if the original remote's repeat signal is just a couple
pulses (e.g. TiVo remote's TiVo button).

libconcord should do one/some/all of:

* Impose some maximum *time* limit on the learned signal length (e.g. a
couple seconds?)

* Provide the learned signal back to the client app in chunks, and let
the client app keep calling "learn" if it wants more. The API would
probably need to be "setup for learning", "learn a chunk", "stop
learning", or something like that.

* Analyze the signal, and determine when the initial code and "enough"
repeats have been seen, then stop.

2)

The lack of meaningful progress callback is an issue; I don't want to
make a special case just for this one function.

I think the algorithm should be:

* Assume the maximum time to wait for the user to press the original key
is 5 seconds, and the maximum learning time is 2 seconds.

Whilst no IR has been received, move the progress bar between 0 and 5/7
of 100%, based on elapsed time since learning was initiated.

As soon as some IR is seen, jump to 5/7 of 100%

Whilst IR learning is in progress, move the progress bar smoothly
between 5/7 of 100% and 100%, based on elapsed time since the first
piece of the IR signal was received. (possibly for this phase, take the
max of % max time elapsed, and % max IR signal buffer size filled.)

I would be OK doing mapping of callback information to percentages in
the client app, but since there's no feedback of any kind from learning
(no "seen first bit of IR" callback, or "asynchronous abort IR learning"
functions, or defines exposing time/size limits on the phases), I can't.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
concordance-devel mailing list
concordance-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/concordance-devel

Reply via email to