Class Component
- Defined in File Component.h 
Inheritance Relationships
Derived Types
- public APU(Class APU)
- public Bus(Class Bus)
- public Gamepak(Class Gamepak)
- public MOS6502(Class MOS6502)
- public Memory(Class Memory)
- public NESPeripherals(Class NESPeripherals)
- public R2C02(Class R2C02)
- public Trigger(Class Trigger)
Class Documentation
- 
class Component
- The Component is an abstraction mechanism for interfacing with generic emulated Component. The class is used to provide an unified interface for node editors and similar tools. - The Components interface with each other using Ports and Connectors; no other means shall be used, to make the Component as universal as possible. - See documentation for creating a custom component. - Subclassed by APU, Bus, Gamepak, MOS6502, Memory, NESPeripherals, R2C02, Trigger - Public Functions - 
Component() = default
 - 
virtual ~Component() = default
 - 
virtual void init() = 0
- Initialize a component to a default power-on state (hard reset). - Note - For Component developer: Implement a correct power-on state here. 
 - 
virtual uintptr_t getDeviceID() const final
- Get a emulator-wide unique component identifier. By default a casted pointer to the component instance. - Returns
- Component’s unique ID. 
 
 - 
virtual void setDeviceName(const std::string &newName) final
- Set component’s name. - Parameters
- newName – A new name to set. 
 
 - 
virtual void connect(const std::string &toPort, std::weak_ptr<Connector> connector) final
- Connect a connector to a specified port. - Parameters
- toPort – Port to connect the connector to. 
- connector – The connector to connect. 
 
 
 - 
virtual void disconnect(const std::string &fromPort) final
- Disconnect a connector from a specified port. - Parameters
- fromPort – A name of a port from which the connector should be disconnected. 
 
 - 
virtual std::weak_ptr<Connector> getConnector(const std::string &name) final
- Get a connector IO. - Parameters
- name – Name of the connector to receive. 
- Returns
- Selected connector. 
 
 - 
virtual std::vector<std::string> listConnectors() const final
- Return names of all connectors in the component. 
 - 
virtual std::vector<std::string> listPorts() const final
- Return names of all port in the component. 
 - 
virtual std::vector<EmulatorWindow> getGUIs() = 0
- Get GUI windows: metadata and rendering functions. - Note - For Component developer: If the component have a debugger or other GUI, return an arbitrary count of windows, they will be rendered on a load of a system which contains the component. - Returns
- A vector of windows to be rendered. 
 
 - 
virtual SoundSampleSources getSoundSampleSources()
- Get audio sources: a list of functions to request a stereo audio sample (frame). - Note - For Component developer: If the component has any sound outputs, return a functions to get samples from them here. You can return any number of outputs, they will be mixed seamlessly. 
 - 
virtual std::vector<ImInputBinder::action_t> getInputs()
- Get input key/gamepad mapping requests with corresponding actions. - Note - For Component developer: If the component wants to interact with keyboard, gamepad or similar, return a vector of required keys and actions when they are pressed or released. Default keybindings can be changed by the user and saved to their config. 
 - 
virtual bool initRequested()
- Returns true if the component wants a whole system restarted. - Note - For Component developer: It can be used for example if the component represents a program ROM and a new ROM was loaded; therefore CPU needs to be restarted to change the program counter to correct location in the new ROM. - Returns
- true Restart is requested. 
- Returns
- false No restart needed. 
 
 
- 
Component() = default