Harlequin RIP SDK

Input queue implementation. More...

#include "skinkit.h"
#include "skinmon.h"
#include "swdevice.h"
#include "hqmemcpy.h"
#include "inputq.h"
#include "inputqprv.h"
#include "mem.h"
#include "eventapi.h"
#include "swevents.h"
#include "apis.h"
#include "rdrapi.h"
#include "threadapi.h"
#include "inputsapi.h"

Data Structures

struct  inputq_node_t
 

Typedefs

typedef struct inputq_node_t inputq_node_t
 

Enumerations

enum  { INPUTQ_STATE_INIT , INPUTQ_STATE_RUNNING , INPUTQ_STATE_QUIT }
 

Functions

inputq_entry_tinputq_first_entry (void)
 Take the first entry off the queue, transferring responsibility for freeing the queue entry to the caller. More...
 
void inputq_free_entry (inputq_entry_t *entry)
 Free an input queue entry returned by inputq_first_entry(). More...
 
HqBool inputq_wait (void)
 Block until the input queue is non-empty or explicitly woken up. More...
 
HqBool inputq_start (void)
 
void inputq_end (void)
 

Variables

static inputq_node_tinput_queue = ((void*)0)
 
static int32 inputq_sources = 0
 
static int32 inputq_nudge_id = 0
 
static uint32 inputq_paused = 0
 
static enum { ... }  inputq_state = INPUTQ_STATE_INIT
 

Detailed Description

Input queue implementation.

Typedef Documentation

◆ inputq_node_t

typedef struct inputq_node_t inputq_node_t

A list of input queue entries.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

The input queue system state.

Enumerator
INPUTQ_STATE_INIT 

The input queue has not been initialised.

INPUTQ_STATE_RUNNING 

The input queue is running.

INPUTQ_STATE_QUIT 

The input queue is quitting.

Function Documentation

◆ inputq_end()

void inputq_end ( void  )

Deregister the Skinkit SDK input queue from RDR, and remove all entries. The input queue must be finalised before the RDR and event systems are terminated.

◆ inputq_start()

HqBool inputq_start ( void  )

Initialise the Skinkit SDK input queue, and register its implementation in RDR. The RDR and event systems must have been initialised before the input queue is initialised.

Variable Documentation

◆ input_queue

inputq_node_t* input_queue = ((void*)0)
static

The actual input queue.

◆ inputq_nudge_id

int32 inputq_nudge_id = 0
static

An incrementing counter used to break waiting threads out of their loops. inputq_wait() will return TRUE if it is woken up and the nudge ID has changed since the wait started.

◆ inputq_paused

uint32 inputq_paused = 0
static

Count of whether the input queue is paused/resumed using the SWEVT_INPUTS_ENABLE event.

◆ inputq_sources

int32 inputq_sources = 0
static

The number of persistent input sources that might add jobs to the input queue.

◆ 

enum { ... } inputq_state

The input queue system state.