DeviceFactory.hh 774 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef DEVICEFACTORY_HH
  2. #define DEVICEFACTORY_HH
  3. #include <memory>
  4. namespace openmsx {
  5. class MSXDevice;
  6. class DeviceConfig;
  7. class HardwareConfig;
  8. class DummyDevice;
  9. class MSXDeviceSwitch;
  10. class MSXMapperIO;
  11. class VDPIODelay;
  12. class MSXCPUInterface;
  13. class DeviceFactory
  14. {
  15. public:
  16. static std::unique_ptr<MSXDevice> create(const DeviceConfig& conf);
  17. static std::unique_ptr<DummyDevice> createDummyDevice(
  18. const HardwareConfig& hwConf);
  19. static std::unique_ptr<MSXDeviceSwitch> createDeviceSwitch(
  20. const HardwareConfig& hwConf);
  21. static std::unique_ptr<MSXMapperIO> createMapperIO(
  22. const HardwareConfig& hwConf);
  23. static std::unique_ptr<VDPIODelay> createVDPIODelay(
  24. const HardwareConfig& hwConf, MSXCPUInterface& cpuInterface);
  25. };
  26. } // namespace openmsx
  27. #endif