mirror of https://github.com/stella-emu/stella.git
Move SerialPort declaration/instantiation directly into AtariVox.
- This is the only class that uses it, so it makes no sense for OSystem to even care about it
This commit is contained in:
parent
852ba8ba54
commit
3b15f8da5d
|
@ -15,22 +15,21 @@
|
|||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//============================================================================
|
||||
|
||||
#include "SerialPort.hxx"
|
||||
#include "MediaFactory.hxx"
|
||||
#include "System.hxx"
|
||||
#include "OSystem.hxx"
|
||||
#include "AtariVox.hxx"
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
AtariVox::AtariVox(Jack jack, const Event& event, const System& system, const OSystem& osystem,
|
||||
const SerialPort& port, const string& portname,
|
||||
const string& eepromfile)
|
||||
const string& portname, const string& eepromfile)
|
||||
: SaveKey(jack, event, system, osystem, eepromfile, Controller::AtariVox),
|
||||
mySerialPort(const_cast<SerialPort&>(port)),
|
||||
myShiftCount(0),
|
||||
myShiftRegister(0),
|
||||
myLastDataWriteCycle(0)
|
||||
{
|
||||
if(mySerialPort.openPort(portname))
|
||||
mySerialPort = MediaFactory::createSerialPort();
|
||||
if(mySerialPort->openPort(portname))
|
||||
myAboutString = " (using serial port \'" + portname + "\')";
|
||||
else
|
||||
myAboutString = " (invalid serial port \'" + portname + "\')";
|
||||
|
@ -106,7 +105,7 @@ void AtariVox::clockDataIn(bool value)
|
|||
else
|
||||
{
|
||||
uInt8 data = ((myShiftRegister >> 1) & 0xff);
|
||||
mySerialPort.writeByte(&data);
|
||||
mySerialPort->writeByte(&data);
|
||||
}
|
||||
myShiftRegister = 0;
|
||||
}
|
||||
|
|
|
@ -18,11 +18,11 @@
|
|||
#ifndef ATARIVOX_HXX
|
||||
#define ATARIVOX_HXX
|
||||
|
||||
class SerialPort;
|
||||
class OSystem;
|
||||
|
||||
#include "Control.hxx"
|
||||
#include "SaveKey.hxx"
|
||||
#include "SerialPort.hxx"
|
||||
|
||||
/**
|
||||
Richard Hutchinson's AtariVox "controller": A speech synthesizer and
|
||||
|
@ -43,13 +43,11 @@ class AtariVox : public SaveKey
|
|||
@param event The event object to use for events
|
||||
@param system The system using this controller
|
||||
@param osystem The OSystem abstraction
|
||||
@param port The serial port object
|
||||
@param portname Name of the port used for reading and writing
|
||||
@param portname Name of the serial port used for reading and writing
|
||||
@param eepromfile The file containing the EEPROM data
|
||||
*/
|
||||
AtariVox(Jack jack, const Event& event, const System& system, const OSystem& osystem,
|
||||
const SerialPort& port, const string& portname,
|
||||
const string& eepromfile);
|
||||
const string& portname, const string& eepromfile);
|
||||
virtual ~AtariVox() = default;
|
||||
|
||||
public:
|
||||
|
@ -95,7 +93,7 @@ class AtariVox : public SaveKey
|
|||
// Instance of an real serial port on the system
|
||||
// Assuming there's a real AtariVox attached, we can send SpeakJet
|
||||
// bytes directly to it
|
||||
SerialPort& mySerialPort;
|
||||
unique_ptr<SerialPort> mySerialPort;
|
||||
|
||||
// How many bits have been shifted into the shift register?
|
||||
uInt8 myShiftCount;
|
||||
|
|
|
@ -937,8 +937,7 @@ unique_ptr<Controller> Console::getControllerPort(const string& rommd5,
|
|||
{
|
||||
const string& nvramfile = myOSystem.nvramDir() + "atarivox_eeprom.dat";
|
||||
controller = make_unique<AtariVox>(port, myEvent,
|
||||
*mySystem, myOSystem, myOSystem.serialPort(),
|
||||
myOSystem.settings().getString("avoxport"), nvramfile);
|
||||
*mySystem, myOSystem, myOSystem.settings().getString("avoxport"), nvramfile);
|
||||
}
|
||||
else if(controllerName == "SAVEKEY")
|
||||
{
|
||||
|
|
|
@ -48,7 +48,6 @@
|
|||
#include "Widget.hxx"
|
||||
#include "Console.hxx"
|
||||
#include "Random.hxx"
|
||||
#include "SerialPort.hxx"
|
||||
#include "StateManager.hxx"
|
||||
#include "TimerManager.hxx"
|
||||
#include "Version.hxx"
|
||||
|
@ -152,11 +151,6 @@ bool OSystem::create()
|
|||
// that only have a single sound device (no hardware mixing))
|
||||
createSound();
|
||||
|
||||
// Create the serial port object
|
||||
// This is used by any controller that wants to directly access
|
||||
// a real serial port on the system
|
||||
mySerialPort = MediaFactory::createSerialPort();
|
||||
|
||||
// Create random number generator
|
||||
myRandom = make_unique<Random>(uInt32(TimerManager::getTicks()));
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@ class PNGLibrary;
|
|||
class Properties;
|
||||
class PropertiesSet;
|
||||
class Random;
|
||||
class SerialPort;
|
||||
class Sound;
|
||||
class StateManager;
|
||||
class TimerManager;
|
||||
|
@ -131,13 +130,6 @@ class OSystem
|
|||
*/
|
||||
AudioSettings& audioSettings() { return *myAudioSettings; }
|
||||
|
||||
/**
|
||||
Get the serial port of the system.
|
||||
|
||||
@return The serial port object
|
||||
*/
|
||||
SerialPort& serialPort() const { return *mySerialPort; }
|
||||
|
||||
/**
|
||||
Get the settings menu of the system.
|
||||
|
||||
|
@ -475,9 +467,6 @@ class OSystem
|
|||
// Pointer to audio settings object
|
||||
unique_ptr<AudioSettings> myAudioSettings;
|
||||
|
||||
// Pointer to the serial port object
|
||||
unique_ptr<SerialPort> mySerialPort;
|
||||
|
||||
// Pointer to the Menu object
|
||||
unique_ptr<Menu> myMenu;
|
||||
|
||||
|
|
Loading…
Reference in New Issue