lnx-keyboard.h File Reference

Go to the source code of this file.

Functions

pointer kbdLinuxCreatePrivate (DeviceIntPtr pKeyboard)
void kbdLinuxDestroyPrivate (pointer private)
void kbdLinuxInit (DevicePtr pDev)
void kbdLinuxGetInfo (DevicePtr pDev, DMXLocalInitInfoPtr info)
int kbdLinuxOn (DevicePtr pDev)
void kbdLinuxOff (DevicePtr pDev)
void kbdLinuxVTPreSwitch (pointer p)
void kbdLinuxVTPostSwitch (pointer p)
int kbdLinuxVTSwitch (pointer p, int vt, dmxVTSwitchReturnProcPtr switch_return, pointer switch_return_data)
void kbdLinuxRead (DevicePtr pDev, dmxMotionProcPtr motion, dmxEnqueueProcPtr enqueue, dmxCheckSpecialProcPtr checkspecial, DMXBlockType block)
void kbdLinuxCtrl (DevicePtr pDev, KeybdCtrl *ctrl)
void kbdLinuxBell (DevicePtr pDev, int percent, int volume, int pitch, int duration)

Detailed Description

Interface to Linux keyboard driver.

See also:
lnx-keyboard.c

Function Documentation

void kbdLinuxBell ( DevicePtr  pDev,
int  percent,
int  volume,
int  pitch,
int  duration 
)

Ring the bell.

Note: we completely ignore the volume, since Linux's ioctl() interface does not provide a way to control it. If it did, the XBell manpage tells how the actual volume is a function of the percent and the (base) volume.

Note that most of the other PC-based bell drivers compute the duration for KDMKTONE as a function of the volume and the duration. For some drivers, the duration is only measured in mS if the volume is 50, and is scaled by the volume for other values. This seems confusing and possibly incorrect (the xset man page says that the bell will be "as closely as it can to the user's specifications" -- if we ignore the volume and set the duration correctly, then we'll get one parameter "wrong" -- but if we use the volume to scale the duration, then we'll get both parameters "wrong").

References GETPRIV.

pointer kbdLinuxCreatePrivate ( DeviceIntPtr  pKeyboard)

Create a private structure for use within this file.

References _myPrivate::fd, and _myPrivate::pKeyboard.

void kbdLinuxCtrl ( DevicePtr  pDev,
KeybdCtrl *  ctrl 
)

Set the LEDs.

References GETPRIV.

void kbdLinuxDestroyPrivate ( pointer  priv)

Destroy a private structure.

void kbdLinuxGetInfo ( DevicePtr  pDev,
DMXLocalInitInfoPtr  info 
)
void kbdLinuxInit ( DevicePtr  pDev)

Initialize the pDev as a Linux keyboard.

References FATAL1, GETPRIV, and kbdLinuxOpenConsole().

void kbdLinuxOff ( DevicePtr  pDev)

Turn pDev off (i.e., stop taking input from pDev).

References GETPRIV, and kbdLinuxCloseConsole().

int kbdLinuxOn ( DevicePtr  pDev)

Turn pDev on (i.e., take input from pDev).

References FATAL1, and GETPRIV.

void kbdLinuxRead ( DevicePtr  pDev,
dmxMotionProcPtr  motion,
dmxEnqueueProcPtr  enqueue,
dmxCheckSpecialProcPtr  checkspecial,
DMXBlockType  block 
)
void kbdLinuxVTPostSwitch ( pointer  p)

Currently unused hook called after returning from a VT switch.

void kbdLinuxVTPreSwitch ( pointer  p)

Currently unused hook called prior to an VT switch.

int kbdLinuxVTSwitch ( pointer  p,
int  vt,
void(*)(pointer)  switch_return,
pointer  switch_return_data 
)

Tell the operating system to switch to vt. The switch_return function is called with the switch_return_data when the VT is switched back to the pre-switch VT (i.e., the user returns to the DMX session).

References FATAL0, _myPrivate::fd, kbdLinuxActivate(), _myPrivate::switch_return, _myPrivate::switch_return_data, _myPrivate::switched, and _myPrivate::vtno.