UsbUirt.Controller.Learn C# (CSharp) Method

Learn() public method

Learns an IR code synchronously.
public Learn ( CodeFormat codeFormat, LearnCodeModifier learnCodeFormat, uint forcedFrequency, System.TimeSpan timeout ) : string
codeFormat CodeFormat The format of the IR code to use in learning.
learnCodeFormat LearnCodeModifier The modifier used for the code format.
forcedFrequency uint The frequency to use in learning.
timeout System.TimeSpan The timeout after which to abort learning if it has not completed.
return string
        public string Learn(CodeFormat codeFormat, LearnCodeModifier learnCodeFormat,
                            uint forcedFrequency, TimeSpan timeout)
        {
            CheckDisposed();
            if (timeout < TimeSpan.Zero) {
                throw new ArgumentOutOfRangeException("timeout", "timeout cannot be negative");
            }

            using (var results = new SyncLearnResults()) {
                LearnCompleted += ManagedWrapper_LearnCompleted;

                try {
                    LearnAsync(codeFormat, learnCodeFormat, forcedFrequency, results);
                    if (TimeSpan.Zero == timeout) {
                        results.WaitEvent.WaitOne();
                        return results.LearnCompletedEventArgs.Code;
                    }
                    else if (results.WaitEvent.WaitOne(timeout, false)) {
                        if (null != results.LearnCompletedEventArgs.Error) {
                            throw results.LearnCompletedEventArgs.Error;
                        }
                        else if (results.LearnCompletedEventArgs.Cancelled) {
                            return null;
                        }
                        return results.LearnCompletedEventArgs.Code;
                    }
                    else {
                        LearnAsyncCancel(results);
                        return null;
                    }
                }
                finally {
                    LearnCompleted -= ManagedWrapper_LearnCompleted;
                }
            }
        }

Same methods

Controller::Learn ( ) : string
Controller::Learn ( CodeFormat codeFormat ) : string
Controller::Learn ( CodeFormat codeFormat, LearnCodeModifier learnCodeFormat, System.TimeSpan timeout ) : string
Controller::Learn ( System.TimeSpan timeout ) : string