Supporting Hardware Triggers
The toolbox supports three types of triggers:
- Immediate — Trigger fires when video input object is started. 
- Manual — Trigger fires when user calls - triggerfunction.
- Hardware — Trigger fires when externally defined conditions are met 
The engine provides automatic support for immediate and manual triggers. If you want
            your adaptor to support hardware triggers you must check to see if users have specified
            a hardware trigger in your acquisition thread function. Before you start acquiring
            frames from your device, insert a call to the IAdaptor member
            function useHardwareTrigger() to determine if the frame acquisition
            loop should wait for a hardware trigger to fire. If a hardware trigger is configured, insert device
            SDK calls required to wait for trigger.
The following figure illustrates the frame acquisition loop with the test for hardware trigger.
Main Acquisition Loop with Test for Hardware Trigger

Example
The following is an acquisition thread function that includes a call to check for hardware trigger.
while(adaptor->isAcquisitionNotComplete()) {
    // Check for hardware trigger 
    if (adaptor->useHardwareTrigger()) {
                    // Add code here to configure the image
                    // acquisition device for hardware
                    // triggering.
                }
                if (adaptor->isSendFrame()) {
                 // see acquisition thread
                } // if isSendFrame()
            // Increment the frame count.
            adaptor->incrementFrameCount();
            } // while(isAcquisitionNotComplete() 
             break;
        } //switch-case WM_USER
   } //while message is not WM_QUIT
   
return 0;
}