## SPI main loop and initialization

SPI main loop and initialization —

##

# Synopsis

    int         SPI_init                        (void);
    void        SPI_event_main                  (void);
    void        SPI_event_quit                  (void);
    SPIBoolean  SPI_eventIsReady                (void);
    AccessibleEvent* SPI_nextEvent              (SPIBoolean waitForEvent);
    int         SPI_exit                        (void);

    void        SPI_freeString                  (char *s);

## Description

## Details

### SPI_init ()

    int         SPI_init                        (void);

Connects to the accessibility registry and initializes the SPI.

Returns : | 0 on success, otherwise an integer error code.

### SPI_event_main ()

    void        SPI_event_main                  (void);

Starts/enters the main event loop for the SPI services.

(NOTE: This method does not return control, it is exited via a call to SPI_event_quit() from within an event handler).

### SPI_event_quit ()

    void        SPI_event_quit                  (void);

Quits the last main event loop for the SPI services, see SPI_event_main

### SPI_eventIsReady ()

    SPIBoolean  SPI_eventIsReady                (void);

Checks to see if an SPI event is waiting in the event queue. Used by clients that don't wish to use SPI_event_main().

Not Yet Implemented.

Returns : | TRUE if an event is waiting, otherwise FALSE.

### SPI_nextEvent ()

    AccessibleEvent* SPI_nextEvent              (SPIBoolean waitForEvent);

Gets the next event in the SPI event queue; blocks if no event is pending and `waitForEvent` is TRUE. Used by clients that don't wish to use SPI_event_main().

Not Yet Implemented.

`waitForEvent` : | a SPIBoolean indicating whether to block or not.
Returns : | the next AccessibleEvent in the SPI event queue.

### SPI_exit ()

    int         SPI_exit                        (void);

Disconnects from the Accessibility Registry and releases any floating resources. Call only once at exit.

Returns : | 0 if there were no leaks, otherwise non zero.

### SPI_freeString ()

    void        SPI_freeString                  (char *s);

Free a character string returned from an at-spi call. Clients of at-spi should use this function instead of free() or g_free(). A NULL string `s` will be silently ignored. This API should not be used to free strings from other libraries or allocated by the client.

`s` : | a character string returned from another at-spi call.