DirectOutput
DirectOutput framework R2 for virtual pinball cabinets.
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
DirectOutput.Cab.Out.OutputControllerBase Class Referenceabstract

Abstract OutputController base class to be used for IOutputController implementations.
Implements IOutputController. More...

Inheritance diagram for DirectOutput.Cab.Out.OutputControllerBase:
Collaboration diagram for DirectOutput.Cab.Out.OutputControllerBase:

Public Member Functions

abstract void Init (Cabinet Cabinet)
 Init must be overwritten and must initialize the ouput controller.
This method is called after the objects haven been instanciated. More...
 
abstract void Finish ()
 Finish must be overwritten and must finish the ouput controller.
All necessary cleanup tasks have to be implemented here und all physical outputs have to be turned off. More...
 
abstract void Update ()
 Update must update the physical outputs to the values defined in the Outputs list. More...
 

Protected Member Functions

virtual void OnOutputValueChanged (IOutput Output)
 This method is called whenever the value of a output in the Outputs property changes its value.
It doesn't do anything in this base class, but it can be overwritten (use override) in classes inherting the base class. More...
 

Properties

virtual OutputList Outputs [get, set]
 Contains the OutputList object for the outputs of the output controller.
More...
 
- Properties inherited from DirectOutput.General.Generic.NamedItemBase
string Name [get, set]
 Name of the named item.
Triggers BeforeNameChange before a new Name is set.
Triggers AfterNameChanged after a new name has been set. More...
 
- Properties inherited from DirectOutput.General.Generic.INamedItem
string Name [get, set]
 Gets or sets the name of the item.
Must fire the BeforeNameChange and AfterNameChange events when the value of the property is changed. More...
 
- Properties inherited from DirectOutput.Cab.Out.IOutputController
new string Name [get, set]
 Name of the IOutputController. This property is fully implemented in the abstract OutputControllerBase class. More...
 
OutputList Outputs [get, set]
 OutputList containing the IOutput objects for a IOutputController. More...
 

Additional Inherited Members

- Events inherited from DirectOutput.General.Generic.NamedItemBase
EventHandler< NameChangeEventArgsAfterNameChanged
 Event is fired after the value of the property Name has changed. More...
 
EventHandler< NameChangeEventArgsBeforeNameChange
 Event is fired before the value of the property Name is changed. More...
 
- Events inherited from DirectOutput.General.Generic.INamedItem
EventHandler< NameChangeEventArgsBeforeNameChange
 Occurs before the name of the item changes. More...
 
EventHandler< NameChangeEventArgsAfterNameChanged
 Occurs when after the name of the item has changed. More...
 

Detailed Description

Abstract OutputController base class to be used for IOutputController implementations.
Implements IOutputController.

Remarks
Remember that IOutputController does inherit INamedItem, so the members of that interface have to be implemented as well. The easiest way to achiev this is to inherit the NamedItemBase class.

Member Function Documentation

abstract void DirectOutput.Cab.Out.OutputControllerBase.Finish ( )
pure virtual
abstract void DirectOutput.Cab.Out.OutputControllerBase.Init ( Cabinet  Cabinet)
pure virtual
virtual void DirectOutput.Cab.Out.OutputControllerBase.OnOutputValueChanged ( IOutput  Output)
protectedvirtual

This method is called whenever the value of a output in the Outputs property changes its value.
It doesn't do anything in this base class, but it can be overwritten (use override) in classes inherting the base class.

Parameters
OutputThe output.

Reimplemented in DirectOutput.Cab.Out.LW.LedWiz, DirectOutput.Cab.Out.Pac.PacLed64, DirectOutput.Cab.Out.AdressableLedStrip.WS2811StripController, DirectOutput.Cab.Out.Pac.PacDrive, DirectOutput.Cab.Out.FTDIChip.FT245RBitbangController, and DirectOutput.Cab.Out.DMX.ArtNet.

abstract void DirectOutput.Cab.Out.OutputControllerBase.Update ( )
pure virtual

Update must update the physical outputs to the values defined in the Outputs list.

Remarks
Since communication with external components can be slow, it is a good practice to send the actual updates from a separate thread and to use this method only to notify the updater thread that data has to be sent.

Implements DirectOutput.Cab.Out.IOutputController.

Implemented in DirectOutput.Cab.Out.AdressableLedStrip.WS2811StripController, DirectOutput.Cab.Out.DMX.ArtNet, DirectOutput.Cab.Out.LW.LedWiz, DirectOutput.Cab.Out.Pac.PacLed64, DirectOutput.Cab.Out.FTDIChip.FT245RBitbangController, DirectOutput.Cab.Out.NullOutputController.NullOutputController, and DirectOutput.Cab.Out.Pac.PacDrive.

Property Documentation

virtual OutputList DirectOutput.Cab.Out.OutputControllerBase.Outputs
getset

Contains the OutputList object for the outputs of the output controller.

Remarks
This property is marked with the XMLIgnore attributte so its content does not get serialized, which means that output controller implementations inherting from this class have to create the output objects in the list.
The XMLIgnore attribute is inherted to classes inheriting from this base class. This means that inherited classes do not serialize this property unless a specific serialization implementation is used in that class.

The documentation for this class was generated from the following file: