WIP
DirectOutput framework for virtual pinball cabinets WIP
Go to:
Overview 
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:
DirectOutput.General.Generic.NamedItemBase DirectOutput.Cab.Out.IOutputController DirectOutput.General.Generic.INamedItem DirectOutput.General.Generic.INamedItem DirectOutput.Cab.Out.AdressableLedStrip.DirectStripController DirectOutput.Cab.Out.FTDIChip.FT245RBitbangController DirectOutput.Cab.Out.LW.LedWiz DirectOutput.Cab.Out.NullOutputController.NullOutputController DirectOutput.Cab.Out.Pac.PacDrive DirectOutput.Cab.Out.Pac.PacLed64 DirectOutput.Cab.Out.AdressableLedStrip.WS2811StripController

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

abstract 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...
 
- Protected Member Functions inherited from DirectOutput.General.Generic.NamedItemBase
virtual void AfterNameChange (string OldName, string NewName)
 
virtual void BeforeNameChange (string OldName, string NewName)
 
virtual void OnPropertyChanged (string propertyName)
 
virtual void OnPropertyChanging (string propertyName)
 

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< NameChangeEventArgsBeforeNameChanged
 Event is fired before the value of the property Name is changed. More...
 
PropertyChangedEventHandler PropertyChanged
 
PropertyChangingEventHandler PropertyChanging
 
- Events inherited from DirectOutput.General.Generic.INamedItem
EventHandler< NameChangeEventArgsBeforeNameChanged
 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.

Definition at line 17 of file OutputControllerBase.cs.

Member Function Documentation

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

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.

Implements DirectOutput.Cab.Out.IOutputController.

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

abstract void DirectOutput.Cab.Out.OutputControllerBase.Init ( Cabinet  Cabinet)
pure virtual

Init must be overwritten and must initialize the ouput controller.
This method is called after the objects haven been instanciated.

Parameters
CabinetThe cabinet object which is using the IOutputController instance.

Implements DirectOutput.Cab.Out.IOutputController.

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

abstract void DirectOutput.Cab.Out.OutputControllerBase.OnOutputValueChanged ( IOutput  Output)
protectedpure virtual

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.

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

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.DirectStripController, DirectOutput.Cab.Out.Pac.PacLed64, DirectOutput.Cab.Out.LW.LedWiz, 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.

Definition at line 30 of file OutputControllerBase.cs.


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