IDTech iOS/OSX SDK Guide  1.1.084
API reference for UniPay 1.5
EMV Callback

During an EMV transaction, without a built-in LCD display on the UniPay 1.5, LCD Display messages will be returned as an EMV Callback.

In the available protocols for the IDT_UniPayI_V class, there is a protocol as follows:

- (void) lcdDisplay:(int)mode lines:(NSArray*)lines;

Once this delegate is implemented, if an EMV transaction requires information to be displayed on what would normally be an LCD display controlled by the Kernel, this data is returned with the display message type, and message string(s).

To evaluate what kind of LCD message, you interpret the mode as follows:
1- LCD_DISPLAY_MODE_MENU: Menu selection, response required with selected menu index #, or 0 to cancel
2- LCD_DISPLAY_MODE_PROMPT: Message Prompt, response required 'E' for Enter/Accept, or 'C' for cancel
3- LCD_DISPLAY_MODE_MESSAGE: Display Message, no response required
8 – LCD_DISPLAY_MODE_LANGUAGE_SELECT: Language selection, response required with selected language index #
16 - LCD_DISPLAY_MODE_CLEAR_SCREEN: Request to clear LCD screen of information
If the mode is LCD_DISPLAY_MODE_MESSAGE or LCD_DISPLAY_MODE_CLEAR_SCREEN, these do not pause the EMV transaction. These two modes are for displaying a message (no response required), or for clearing the screen.

If the mode is LCD_DISPLAY_MODE_MENU, LCD_DISPLAY_MODE_PROMPT, or LCD_DISPLAY_MODE_LANGUAGE_SELECT, the provided message must be displayed, and then the EMV transaction pauses until a response is sent to emv_callbackResponseLCD:selection: (IDT_UniPayI_V).

The message to display is returned as an NSArray of NSStrings. This contains either Message String, or a Message retrieved from the LCD Foreign Language Mapping Table (Foreign Language Mapping Table).