INTRODUCCION SOBRE LA TDX_INPUT_LIBRARY
Top
Next
La TDx_Input_Library es una libreria de 29 Componentes (Borland
C++ Builder (BCB) rapid application development (RAD)) que "mapean"
toda la funcionalidad de DirectInput(tm) en sencillos componentes
de fácil utilizacion para la VCL del C++ Builder (BCB Visual
Component Library (VCL) components), proveen de un completo entorno
de trabajo para evitarte trabajo y disponer de la funcionalidad
y el poder de DirectInput(tm) integrado en Borland C++ Builder.
Estos componentes hacen que DirectInput(tm) sea muy sencillo de
utilizar, haciendo que DirectInput(tm) trabaje con Borland C++
Builder, incluyendo algunos extras para mezclar DirectInput(tm)
y Borland C++ Builder - rápida y fácilmente.
Todos los componentes vienen con su código fuente completo,
archivos de proyecto, auto-installer, y completa ayuda sensible
al contexto accesible mediante la tecla [F1] l [F1] context-sensitive
help covering all of DirectInput(tm) asi como características
adicionales, y demos con completo código fuente.
Estos componentes "Hablan" con dispositivos de entrada
avanzados , incluyendo :-
- Ratones
- Teclados
- Trackballs
- Joysticks
- Volantes
- Aircraft Control Yolks
- Versiones avanzadas de los dispositivos arriba mencionados
- Estos dispositivos con capacidades force feedback
Una completa utilización entendiendo el funcionamiento del
motor de DirectInput(tm), LaTDx_Input_Library te permite :-
- Polling del dispositivo en Tiempo Real (consulta de valores)
- Monitorización del dispositivo en Tiempo Real.
- Control de Efectos Force Feedback en Tiempo Real
- Modificación y Descarga de datos de efectos del dispositivo
en Tiempo Real
- Seguimiento e Información del progreso del force feedback
y posicionamiento usando timers o notificaciones de eventos
del estilo BCB.
- Un nuevo paradigma de programación, desarrollo rápido
de aplicaciones DirectInput, o"RAD DirectX" para abreviar.
La TDx_Input_Library contiene ademas muchas funcionalidades añadidas
diseñadas para facilitarte la tarea , incluyendo :-
- Completa optimización para la VCL y el BCB
- Como solución a la integracion de BCB y DirectX.
- Detección automática de errores y redireccionamiento
a sencillos eventos del tipo OnError().
- Manejo automático de Callbacks y redireccionamiento
a sencillos eventos del tipo OnEnum...().
- Manejo simple de recursos con funciones integradas como: CreateFrom(),
LoadFrom() and SaveTo().
- Baja Latencia (delay) cuando se reproducen efectos force feedback,
y en general para todos los procesos de mapeado.
Para más información pulsa:-
Para informacion sobre la libreria TDx_Library al completo, pulsa
:-
DETALLES DE LA TDX_INPUT_LIBRARY
Arriba Siguiente
Anterior
Los 29 Componentes de la TDx_Input_Library :-
- te permiten soporte avanzado para dispositivos de entrada
en tus aplicaciones en BCB
- Manejan automáticamente todo lo relacionado con DirectInput(tm)
- Son muy "compactas" - manteniendo todo perfectamente organizado
para que DirectInput(tm) funcione a la perfección en
BCB
- Son un juego de herramientas muy faciles de usar diseñadas
para ahorrarte el gran esfuerzo requerido para utilizar DirectInput(tm)
- Te permiten enfocar tus esfuerzos en el lado creativo de la
programacion de DirectInput(tm) mas que en comprender la tecnología
del SDK
Cuando empieces a usar los componentes, puedes ignorar muchas de
las características avanzadas de DirectInput y obtener asombrosos
resultados en cuestion de minutos, Mas tarde cuando ya te hayas
familiarizado con los componentes y como funcionan, podrás
experimentar con las capacidades avanzadas disponibles.
Tienes acceso completo a las interioridades de los componentes,
esto significa que puedes mezclar y unir código "normal"
de DirectInput(tm) si lo deseas.
Sobretodo, la TDx_Input_Library provee de todo lo requerido para
añadir soporte para dispositivos básico y avanzado
en cualquier aplicacion de BCB.
La TDx_Input_Library ofrece :-
- Manejo Simple de todo lo relacionado con DirectInput(tm)
- Acceso sencillo a todas las funcionalidades disponibles de
DirectInput(tm)
- Fácil acceso a todos los dispositivos de entrada
- Fácil acceso a todos los datos de cualquier dispositivo
- Fácil acceso a los datos de un solo objeto o control
sobre el dispositivo
- Fácil acceso a todos los datos de información
del dispositivo
- Easy access to a single object or control's data format information
- Fácil manipulación de los datos de efectos del
dispositivo
- Fácil manejo de los efectos de force feedback
- Completa ayuda sensible al contexto accesible mediante la
tecla F1 [ Pulsando F1 en el BCB ]
Para mas información, Pulsa:-
COMPONENTES DE LA TDX_INPUT_LIBRARY
Top Next
Prev
The table below contains details on each TDx_Input_Library component,
and also contains links to individual reference pages :-
COMPONENT
LOGO |
COMPONENT
NAME |
WRAPPER
TYPE |
COMMENT |
|
TDICondition
|
Multi
- Wrapper |
The TDICondition
component wraps multiple DICONDITION structures and is referenced
by the TypeSpecificParams
property of the TDIEffect
component.
It describes the positive
and negative
coefficients,
positive
and negative
saturations,
the deadband
and the offset
of a 'Conditional'
force feedback effect.
There are four standard types of conditions - friction,
damper,
inertia
and spring.
Additional functionality :-
An ArraySize
property that determines the total # of internal DICONDITION
structures maintained by the TDICondition
component.
A Size
property for determining the sizeof(DICONDITION). All internal
fDICONDITION[index].dwSize structure members are set to this
value when calling the Clear()
and ClearAll()
methods.
A SizeAll
property for determining the byte size of all internal DICONDITION
structures, equivalent to ArraySize
* Size.
A Clear()
method for clearing the contents of the specified internal
DICONDITION structure and auto-resetting the specified fDICONDITION.dwSize
structure member.
A ClearAll()
method for clearing the contents of all internal DICONDITION
structures and auto-resetting all fDICONDITION[index].dwSize
structure members.
An OnError()
event that is called whenever any problems occur inside the
TDICondition
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIConstantForce
|
Wrapper
|
The TDIConstantForce
component wraps a single DICONSTANTFORCE structure and is
referenced by the TypeSpecificParams
property of the TDIEffect
component.
It describes the magnitude
of a 'Constant'
force feedback effect, the duration
being defined in the TDIEffect
component.
Additional functionality :-
A Size
property for determining the sizeof(DICONSTANTFORCE). The
internal fDICONSTANTFORCE.dwSize structure member is automatically
set to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DICONSTANTFORCE
structure and auto-resetting the internal fDICONSTANTFORCE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIConstantForce
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDICustomForce
|
Wrapper
|
The TDICustomForce
component wraps a single DICUSTOMFORCE structure and is referenced
by the TypeSpecificParams
property of the TDIEffect
component.
It describes the channels,
force
data, samples
and sample
period of a 'Custom'
force feedback effect.
Additional functionality :-
A Size
property for determining the sizeof(DICUSTOMFORCE). The internal
fDICUSTOMFORCE.dwSize structure member is automatically set
to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DICUSTOMFORCE
structure and auto-resetting the internal fDICUSTOMFORCE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDICustomForce
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIDataFormat
|
Wrapper
|
The TDIDataFormat
component wraps a single DIDATAFORMAT structure.
It describes the data format of the device as a whole.
To do this it defines the number
and size
of individual controls,
references an array of TDIObjectDataFormat
components describing those controls,
defines the mode
of the axes and the size
of the data packets returned by the device.
In most cases the predefined data formats for keyboards,
mice
and joysticks
can be used instead of this component.
Additional functionality :-
A Size
property for determining the sizeof(DIDATAFORMAT). The internal
fDIDATAFORMAT.dwSize structure member is automatically set
to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIDATAFORMAT
structure and auto-resetting the internal fDIDATAFORMAT.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIDataFormat
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIDevCaps
|
Wrapper |
The TDIDevCaps
component wraps a single DIDEVCAPS structure.
It describes the capabilities of a particular DirectInput
device, including the number of axes,
POVs
and buttons,
hardware,
firmware
and driver
versions, the device
type, minimum sample
and time
resolutions as well as flags
indicating device status and capabilities.
Additional functionality :-
A Size
property for determining the sizeof(DIDEVCAPS). The internal
fDIDEVCAPS.dwSize structure member is automatically set to
this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIDEVCAPS
structure and auto-resetting the internal fDIDEVICEINSTANCE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIDevCaps
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIDeviceInstance
|
Wrapper |
The TDIDeviceInstance
component wraps a single DIDEVICEINSTANCE structure.
It details a device
instance, including information like the device
type, the product,
driver
and instance
ID's, product
and instance
names and the HID
codes
and pages
for the device.
Additional functionality :-
A Size
property for determining the sizeof(DIDEVICEINSTANCE). The
internal fDIDEVICEINSTANCE.dwSize structure member is automatically
set to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIDEVICEINSTANCE
structure and auto-resetting the internal fDIDEVICEINSTANCE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIDeviceInstance
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIDeviceObjectData
|
Multi
- Wrapper |
The TDIDeviceObjectData
component wraps multiple DirectX DIDEVICEOBJECTDATA structures.
It holds a timestamp
and sequence
number for determining the data retrieval order, plus the
offset
or ID of the actual
data being sent to or from an individual device
control.
Additional functionality :-
An ArraySize
property that determines the total # of internal DIDEVICEOBJECTDATA
structures maintained by the TDIDeviceObjectData
component.
A Size
property for determining the sizeof(DIDEVICEOBJECTDATA). All
internal fDIDEVICEOBJECTDATA[index].dwSize structure members
are set to this value when calling the Clear()
and ClearAll()
methods.
A SizeAll
property for determining the byte size of all internal DIDEVICEOBJECTDATA
structures, equivalent to ArraySize
* Size.
A Clear()
method for clearing the contents of the specified internal
DIDEVICEOBJECTDATA structure and auto-resetting the specified
fDIDEVICEOBJECTDATA.dwSize structure member.
A ClearAll()
method for clearing the contents of all internal DIDEVICEOBJECTDATA
structures and auto-resetting all fDIDEVICEOBJECTDATA[index].dwSize
structure members.
An OnError()
event that is called whenever any problems occur inside the
TDIDeviceObjectData
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIDeviceObjectInstance
|
Wrapper |
The TDIDeviceObjectInstance
component wraps a single DIDEVICEOBJECTINSTANCE structure.
It describes an individual device
control, including information like the name
and type,
dimensional
units, exponent,
resolution,
maximum
output, data
offset and flags
detailing the reporting and output capabilities. It also includes
HID
information like the usage page
and code,
collection
number and designator
index.
Additional functionality :-
A Size
property for determining the sizeof(DIDEVICEOBJECTINSTANCE).
The internal fDIDEVICEOBJECTINSTANCE.dwSize structure member
is automatically set to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIDEVICEOBJECTINSTANCE
structure and auto-resetting the internal fDIDEVICEOBJECTINSTANCE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIDeviceObjectInstance
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIEffEscape
|
Wrapper |
The TDIEffEscape
component wraps a single DIEEFFESCAPE structure.
It is used when sending commands
directly to the device driver, additional data required or
resultiong from the command being stored in an input
and an output
buffer.
Additional functionality :-
A Size
property for determining the sizeof(DIEFFESCAPE). The internal
fDIEFFESCAPE.dwSize structure member is automatically set
to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIEFFESCAPE
structure and auto-resetting the internal fDIEFFESCAPE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIEffEscape
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIEffect
|
Wrapper |
The TDIEffect
component wraps a single DIEFFECT structure.
It is used to set up effect parameters prior to downloading
them to a device.
These parameters include the number
of axes and an array
to store them in, the effect's direction,
duration,
envelope,
sample
period and gain,
some interpretation flags,
which
button (if any) should trigger the effect and how
often it should be triggered if the button is held down,
how
long to wait before starting the effect and a size
value for the type
specific parameters of the effect which are stored in
a TDICustomForce,
TDIPeriodic,
TDIConstantForce,
TDIRampForce
or TDICondition
component as required.
Additional functionality :-
A Size
property for determining the sizeof(DIEFFECT). The internal
fDIEFFECT.dwSize structure member is automatically set to
this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIEFFECT
structure and auto-resetting the internal fDIEFFECT.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIEffect
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIEffectInfo
|
Wrapper |
The TDIEffectInfo
component wraps a single DIEFFECTINFO structure.
It describes the type and capabilities of an effect, including
the name
and ID
of the effect, as well as flags indicating the supported
effect parameters, which parameters can be updated
dynamically and the type
and enumeration settings.
Additional functionality :-
A Size
property for determining the sizeof(DIEFFECTINFO). The internal
fDIEFFECTINFO.dwSize structure member is automatically set
to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIEFFECTINFO
structure and auto-resetting the internal fDIEFFECTINFO.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIEffectInfo
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIEnvelope
|
Wrapper |
The TDIEnvelope
component wraps a single DIENVELOPE structure.
It describes the attack
level
and time
and the fade
level
and time
for an effect
envelope, which is used to modify the shape of constant
and periodic
effects.
Additional functionality :-
A Size
property for determining the sizeof(DIENVELOPE). The internal
fDIENVELOPE.dwSize structure member is automatically set to
this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIENVELOPE
structure and auto-resetting the internal fDIENVELOPE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIEnvelope
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIFileEffect
|
Multi
- Wrapper |
The TDIFileEffect
component wraps multiple DIFILEEFFECT structures.
It holds the name,
type
and parameters
of an effect being retrieved or written to a file.
Additional functionality :-
An ArraySize
property that determines the total # of internal DIFILEEFFECT
structures maintained by the TDIFileEffect
component.
A Size
property for determining the sizeof(DIFILEEFFECT). All internal
fDIFILEEFFECT[index].dwSize structure members are set to this
value when calling the Clear()
and ClearAll()
methods.
A SizeAll
property for determining the byte size of all internal DIFILEEFFECT
structures, equivalent to ArraySize
* Size.
A Clear()
method for clearing the contents of the specified internal
DIFILEEFFECT structure and auto-resetting the specified fDIFILEEFFECT.dwSize
structure member.
A ClearAll()
method for clearing the contents of all internal DIFILEEFFECT
structures and auto-resetting all fDIFILEEFFECT[index].dwSize
structure members.
An OnError()
event that is called whenever any problems occur inside the
TDIFileEffect
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIJoyState
|
Wrapper |
The TDIJoyState
component wraps a single DIJOYSTATE structure.
It holds basic joystick information, including X, Y and Z
axis positional
and rotational
information with arrays for storing up to two sliders,
4 directional
controllers (POV's) and 32 button
states.
Additional functionality :-
A Size
property for determining the sizeof(DIJOYSTATE). The internal
fDIJOYSTATE.dwSize structure member is automatically set to
this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIJOYSTATE
structure and auto-resetting the internal fDIJOYSTATE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIJoyState
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIJoyState2
|
Wrapper |
The TDIJoyState2
component wraps a single DIJOYSTATE2 structure.
It holds advanced joystick information, with X, Y and Z axis
values for the position,
rotation,
velocity,
acceleration,
force,
angular
acceleration, angular
velocity and rotational
force of the axes, with arrays for storing the position
velocity
acceleration
and force
information for two sliders. There is also room for up to
4 directional
controllers (POV's) and 128 button
states.
Additional functionality :-
A Size
property for determining the sizeof(DIJOYSTATE2). The internal
fDIJOYSTATE2.dwSize structure member is automatically set
to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIJOYSTATE2
structure and auto-resetting the internal fDIJOYSTATE2.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIJoyState2
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIKeyboardState
|
Wrapper |
The TDIKeyboardState
component was created by BCB-Tools.com.
It is used to retrieve keyboard
data in the form of a 256 byte array.
Additional functionality :-
A Size
property for determining the sizeof(TDIKeyboardState).
A Clear()
method for clearing the contents of the TDIKeyboardState component.
An OnError()
event that is called whenever any problems occur inside the
TDIKeyboardState
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIMouseState
|
Wrapper |
The TDIMouseState
component wraps a single DIMOUSESTATE structure.
It holds up to four button
states and the X,
Y
and Z
axis information for a basic mouse.
Additional functionality :-
A Size
property for determining the sizeof(DIMOUSESTATE). The internal
fDIMOUSESTATE.dwSize structure member is automatically set
to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIMOUSESTATE
structure and auto-resetting the internal fDIMOUSESTATE.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIMouseState
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIMouseState2
|
Wrapper |
The TDIMouseState2
component wraps a single DIMOUSESTATE2 structure.
It holds up to eight button
states and the X,
Y
and Z
axis information for a more advanced mouse.
Additional functionality :-
A Size
property for determining the sizeof(DIMOUSESTATE2). The internal
fDIMOUSESTATE2.dwSize structure member is automatically set
to this value when calling the Clear()
method.
A Clear()
method for clearing the contents of the internal DIMOUSESTATE2
structure and auto-resetting the internal fDIMOUSESTATE2.dwSize
structure member.
An OnError()
event that is called whenever any problems occur inside the
TDIMouseState
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIObjectDataFormat
|
Multi
- Wrapper |
The TDIObjectDataFormat
component wraps multiple DIOBJECTDATAFORMAT structures.
It describes which
part of the device the object represents, the object's
type, the kind
of information that can be reported and the data
offset for the device
object.
Additional functionality :-
An ArraySize
property that determines the total # of internal DIOBJECTDATAFORMAT
structures maintained by the TDIObjectDataFormat
component.
A Size
property for determining the sizeof(DIOBJECTDATAFORMAT). All
internal fDIOBJECTDATAFORMAT[index].dwSize structure members
are set to this value when calling the Clear()
and ClearAll()
methods.
A SizeAll
property for determining the byte size of all internal DIOBJECTDATAFORMAT
structures, equivalent to ArraySize
* Size.
A Clear()
method for clearing the contents of the specified internal
DIOBJECTDATAFORMAT structure and auto-resetting the specified
fDIOBJECTDATAFORMAT.dwSize structure member.
A ClearAll()
method for clearing the contents of all internal DIOBJECTDATAFORMAT
structures and auto-resetting all fDIOBJECTDATAFORMAT[index].dwSize
structure members.
An OnError()
event that is called whenever any problems occur inside the
TDIObjectDataFormat
component.
An ErrorValue
property for determining the value of the last error result
that triggered the OnError()
event. |
|
TDIPeriodic
|
Wrapper |
The TDIPeriodic component wraps the DirectX DIPERIODIC structure
which contains type specific information for force feedback
effects that have the DIEFT_PERIODIC option set.
This component is referenced by TDIEffect::TypeSpecificParams
when it is being used to define a periodic effect.
Periodic effects are waveforms that are usually used to achieve
a shaking in the control device. You can apply an envelope
to a periodic effect.
To create a standard periodic effect pass one of the GUIDs
below in the TDx_InputDevice::CreateEffect()
Guid parameter.
The standard waveform GUIDs are:
GUID_Square - Feedback oscillates directly from maximum negative
to maximum positive force.
GUID_Sine - Feedback oscillates using a sine waveform pattern
of smooth curves.
GUID_Triangle - Feedback oscillates from positive to negative
at a constant rate of force change.
GUID_SawtoothUp - Feedback increases at a fixed rate then
drops directly to the maximum negative magnitude and begins
increasing again.
GUID_SawtoothDown - Feedback decreases at a fixed rate then
rises directly to the maximum positive magnitude and begins
decreasing again.
Magnitude is defined here, while the duration is defined by
TDIEffect::Duration.
A periodic
force using an envelope will start its cycle at the attack
level, relative to its phase,
spend a specified duration moving towards the sustain
level, stay at the sustain level for a specified period, then
spend another period of time moving towards the fade
level. |
|
TDIPropDWORD
|
Wrapper |
The TDIPropDWORD component wraps the DirectX DIPROPDWORD structure
which is a generic structure used to access dword properties.
This component is primarily utilised by the TDx_InputDevice::GetProperty()
and TDx_InputDevice::SetProperty()
methods to access properties that require a single value,
such as a buffer size.
This component also references a TDIPropHeader
component. |
|
TDIPropGuidAndPath
|
Wrapper |
The TDIPropGuidAndPath component wraps the DirectX TDIPROPGUIDANDPATH
structure which is used to access GUID and path properties.
This component is primarily utilised by the TDx_InputDevice::GetProperty()
and TDx_InputDevice::SetProperty()
methods to perform operations on a HID
that are not otherwise supported.
This component also references a TDIPropHeader
component.
|
|
TDIPropHeader
|
Wrapper |
The TDIPropHeader component wraps the DirectX DIPROPHEADER
structure which is located at the start of all TDIProperty-derived
components internal structures, in a structure-in-structure
relationship.
These TDIProperty-derived components are TDIPropDWORD,
TDIPropGuidAndPath, TDIPropRange
and TDIPropString, which wrap
the various DIPROPDWORD, DIGUIDANDPATH, DIPROPRANGE and DIPROPSTRING
structures.
Each of these internal structures contains a DIPROPHEADER
structure which is used to define the size of the encapsulating
structure and how the data within the encapsulating structure
should be interpreted. This structure also defines a special-purpose
dwSize member, usually maintained with manual code.
To automatically maintain this dwSize member and to access
all relevant information within these TDIProperty components,
link a TDIPropHeader component using the relevant TDIPropDWORD::PropHeader,
TDIPropGuidAndPath::PropHeader,
TDIPropRange::PropHeader
and TDIPropString::PropHeader
properties.
During linking, the TDIPropHeader::Size property is automatically
set to the TDIProperty's Size property.
Example code that sets a property :-
DIPropHeader1->Obj = 0;
DIPropHeader1->How = DIPH_DEVICE;
DIPropDWORD1->PropHeader = DIPropHeader1;
DIPropDWORD1->Data = 10;
Dx_InputDevice1->SetProperty( DIPROP_BUFFERSIZE, DIPropDWORD1
);
You can also access the contents of the TDIPropDWORD's internal
DIPROPHEADER structure using standard vcl code like :-
DIPropDWORD1->PropHeader = DIPropHeader1;
DIPropDWORD1->PropHeader->Obj = 0;
DIPropDWORD1->PropHeader->How = DIPH_DEVICE;
DIPropDWORD1->Data = 10;
Dx_InputDevice1->SetProperty( DIPROP_BUFFERSIZE, DIPropDWORD1
);
After linking and setting up the relevant details, pass the
TDIProperty-derived component into TDx_InputDevice::GetProperty()
and TDx_InputDevice::SetProperty()
to perform a range of property related operations on an input
device or object.
|
|
TDIPropRange
|
Wrapper |
The TDIPropRange component wraps the DirectX DIPROPRANGE structure
which used to access information about the possible range
values of an object.
This component is primarily utilised by the TDx_InputDevice::GetProperty()
and TDx_InputDevice::SetProperty()
methods to access properties that define a device objects
reporting range.
This component also references a TDIPropHeader
component.
For some devices you cannot set the range values by calling
TDx_InputDevice::SetProperty().
When device ranges are unrestricted they will wrap around.
|
|
TDIPropString
|
Wrapper |
The TDIPropString component wraps the DirectX TDIPROPSTRING
structure which is used to access string properties.
This component is primarily utilised by the TDx_InputDevice::GetProperty()
and TDx_InputDevice::SetProperty()
methods to perform operations on a HID
that are not otherwise supported.
This component also references a TDIPropHeader
component. |
|
TDIRampForce
|
Wrapper |
The TDIRampForce component wraps the DirectX DICONSTANTFORCE
structure, which contains type specific information for force
feedback effects that have the DIEFT_RAMPFORCE option set.
It is used to define a 'Ramp
Force', which is a force that moves from one defined magnitude
to another over a specified time period.
You can apply an envelope
to a ramp force but not an offset.
Only the magnitudes are defined by this component, the duration
is set in TDIEffect::Duration,
which cannot be set to INFINITE for a ramp force.
Use this component by setting TDIEffect::TypeSpecificParams
to refer to a single TDIRampForce component.
To create a ramp force, use the TDx_InputDevice::CreateEffect()
method and pass the following as the GUID
parameter:
GUID_RampForce |
|
TDx_Input
|
Interface |
The TDx_Input component wraps and manages a single IDirectInput7
interface.
This is the main root component of the TDx_Input_Library,
everything else ultimately requires this component.
It supplies access to DirectInput device interfaces and the
Windows control panel.
It can be used to create
a TDx_Input interface, create
a TDx_InputDevice interface, destroy
a TDx_Input interface, enumerate
directinput devices, find
a device's GUID, retrieve
a device's status, and
launch the windows control panel.
Additional functionality :-
OnCreate(),
OnDestroy()
and OnError()
events triggered during creation, destruction, and whenever
any error occurs.
A modified EnumDevices()
method which automatically calls the OnEnumDevices()
callback event, which makes responding to device enumeration
simple.
An ErrorValue
property for determination of the last error result returned
from DirectInput(tm) or the TDx_Input_Library.
|
|
TDx_InputDevice
|
Interface |
The TDx_InputDevice component wraps and manages the DirectX
IDirectInputDevice7 interface.
It manages and manipulates directinput devices.
It can be used to acquire
access to the input device, create
a TDx_InputDevice interface, create
an effect for the device, destroy
a TDx_InputDevice interface, enumerate
effects already created, enumerate
effects supported by the device, enumerate
effects stored in a file, enumerate
individual device objects, send
a hardware specific command, retrieve
device capabilities, retrieve
buffered input data, retrieve
the devices identity, retrieve
the devices current state, retrieve
effect information, retrieve
the current force feedback state, retrieve
information for an individual device object, test
for specific device properties, retrieve
state information from the polled device, launch
the devices control panel, send
data to a device, send
force feedback commands to the device, set
the devices cooperative level, define
the devices data format, toggle
event notification on device state change, define
device behaviour properties, unaquire
the input device, and
write an effect to a file.
Additional functionality :-
A OnDeviceStateChange()
event triggered whenever the device's state changes, toggled
on or off by the SetEventNotification()
method.
A modified EnumCreatedEffectObjects()
method which automatically calls the OnEnumCreatedEffectObjects()
callback event, which makes handling created effect enumeration
simple.
A modified EnumEffects()
method which automatically calls the OnEnumEffects()
callback event, which makes handling supported effect enumeration
simple.
A modified EnumEffectsInFile()
method which automatically calls the OnEnumEffectsInFile()
callback event, which makes handling file effect enumeration
simple.
A modified EnumObjects()
method which automatically calls the OnEnumObjects()
callback event, which makes handling object enumeration simple.
|
|
TDx_InputEffect
|
Interface |
The TDx_InputEffect component wraps and manages the DirectX
IDirectInputEffect interface.
It manages and manipulates directinput effects.
It can be used to create
a TDx_InputEffect interface, destroy
a TDx_InputEffect interface, download
an effect to the device, send
commands to the device driver, retrieve
an effects identifier, retrieve
an effects status, retrieve
an effects current settings, define
an effects settings, play
an effect, halt
an effect, and
remove an effect from the device.
|
MORE INFORMATION ABOUT THE TDX_INPUT_LIBRARY
Top Prev
Over time we will add much more information about the TDx_Input_Library.
In the meantime, the table below contains details on the current
status of the entire TDx_Library, and links to more information
:-
|