128 lines
5.8 KiB
C
128 lines
5.8 KiB
C
/*----------------------------------------------------------------------
|
|
* siSyncPriv.h -- 3DxWare GUI Synchronization Private header
|
|
*
|
|
* Written: June 2005
|
|
* Author: Jim Wick
|
|
*
|
|
*----------------------------------------------------------------------
|
|
*
|
|
* (c) 1998-2005 3Dconnexion. All rights reserved.
|
|
* Permission to use, copy, modify, and distribute this software for all
|
|
* purposes and without fees is hereby grated provided that this copyright
|
|
* notice appears in all copies. Permission to modify this software is granted
|
|
* and 3Dconnexion will support such modifications only is said modifications are
|
|
* approved by 3Dconnexion.
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef _SISYNCPRIV_H_
|
|
#define _SISYNCPRIV_H_
|
|
|
|
|
|
/*
|
|
* All packets start with the same fields.
|
|
* Many packets have data following the itemCode.
|
|
*/
|
|
typedef struct /* Sync Packet */
|
|
{
|
|
SPWuint32 size; /* total packet size */
|
|
SPWuint32 hashCode; /* Hash code that syncs a question with an answer */
|
|
SiSyncOpCode opCode; /* OpCode */
|
|
SiSyncItemCode itemCode; /* itemCode */
|
|
/* There will, generally, be more data starting here.
|
|
* There will not be any pointers, the data will be in here.
|
|
*/
|
|
} SiSyncPacketHeader;
|
|
|
|
/*
|
|
* I've enumerated all the possible packets here, not because they are all different,
|
|
* but mostly just for documentation. So the developer knows what parameters are
|
|
* expected with which packet type.
|
|
*/
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetVersionPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 major; SPWint32 minor; } SiSyncSetVersionPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncCommandQueryPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncCommandSaveConfigPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetNumberOfFunctionsPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 n; } SiSyncSetNumberOfFunctionsPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; } SiSyncGetFunctionPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; SPWint32 n; WCHAR name[1];} SiSyncSetFunctionPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; } SiSyncGetButtonAssignmentPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; SPWint32 n; } SiSyncSetButtonAssignmentPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; SPWint32 n; } SiSyncSetButtonAssignmentAbsolutePacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; WCHAR name[1]; } SiSyncSetButtonNamePacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; } SiSyncGetAxisLabelPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; WCHAR name[1]; } SiSyncSetAxisLabelPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetOrientationPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 a[6]; } SiSyncSetOrientationPacket;
|
|
typedef struct { SiSyncPacketHeader h; SiSyncFilter i; } SiSyncGetFilterPacket;
|
|
typedef struct { SiSyncPacketHeader h; SiSyncFilter i; SiSyncFilterValue v; } SiSyncSetFilterPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetAxesStatePacket;
|
|
typedef struct { SiSyncPacketHeader h; SiSyncAxesState a; } SiSyncSetAxesStatePacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 duration; WCHAR s[1]; } SiSyncSetInfoLinePacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetScaleOverallPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWfloat32 v; } SiSyncSetScaleOverallPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetScaleTxPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWfloat32 v; } SiSyncSetScaleTxPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetScaleTyPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWfloat32 v; } SiSyncSetScaleTyPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetScaleTzPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWfloat32 v; } SiSyncSetScaleTzPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetScaleRxPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWfloat32 v; } SiSyncSetScaleRxPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetScaleRyPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWfloat32 v; } SiSyncSetScaleRyPacket;
|
|
typedef struct { SiSyncPacketHeader h; } SiSyncGetScaleRzPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWfloat32 v; } SiSyncSetScaleRzPacket;
|
|
typedef struct { SiSyncPacketHeader h; SiSyncAbsFunctionNumber i; } SiSyncAbsFunctionPacket;
|
|
typedef struct { SiSyncPacketHeader h; SPWint32 i; SPWbool state; } SiSyncSetButtonStatePacket;
|
|
|
|
typedef struct
|
|
{
|
|
union
|
|
{
|
|
SiSyncPacketHeader h;
|
|
SiSyncGetVersionPacket gv;
|
|
SiSyncSetVersionPacket sv;
|
|
SiSyncCommandQueryPacket cq;
|
|
SiSyncCommandSaveConfigPacket cs;
|
|
SiSyncGetNumberOfFunctionsPacket gnf;
|
|
SiSyncSetNumberOfFunctionsPacket snf;
|
|
SiSyncGetFunctionPacket gf;
|
|
SiSyncSetFunctionPacket sf;
|
|
SiSyncGetButtonAssignmentPacket gba;
|
|
SiSyncSetButtonAssignmentPacket sba;
|
|
SiSyncSetButtonAssignmentAbsolutePacket sbaa;
|
|
SiSyncSetButtonNamePacket sbn;
|
|
SiSyncGetAxisLabelPacket ga;
|
|
SiSyncSetAxisLabelPacket sa;
|
|
SiSyncGetOrientationPacket go;
|
|
SiSyncSetOrientationPacket so;
|
|
SiSyncGetFilterPacket gfi;
|
|
SiSyncSetFilterPacket sfi;
|
|
SiSyncGetAxesStatePacket gas;
|
|
SiSyncSetAxesStatePacket sas;
|
|
SiSyncSetInfoLinePacket si;
|
|
SiSyncGetScaleOverallPacket gso;
|
|
SiSyncSetScaleOverallPacket sso;
|
|
SiSyncGetScaleTxPacket gtx;
|
|
SiSyncSetScaleTxPacket stx;
|
|
SiSyncGetScaleTyPacket gty;
|
|
SiSyncSetScaleTyPacket sty;
|
|
SiSyncGetScaleTzPacket gtz;
|
|
SiSyncSetScaleTzPacket stz;
|
|
SiSyncGetScaleRxPacket grx;
|
|
SiSyncSetScaleRxPacket srx;
|
|
SiSyncGetScaleRyPacket gry;
|
|
SiSyncSetScaleRyPacket sry;
|
|
SiSyncGetScaleRzPacket grz;
|
|
SiSyncSetScaleRzPacket srz;
|
|
SiSyncAbsFunctionPacket absf;
|
|
SiSyncSetButtonStatePacket sbs;
|
|
};
|
|
} SiSyncPacket;
|
|
|
|
|
|
#endif /* _SI_SYNCPRIV_H_ */
|