bool SoundSDL::load()

in atari_py/ale_interface/src/common/SoundSDL.cxx [448:494]


bool SoundSDL::load(Deserializer& in)
{
  string device = "TIASound";

  try
  {
    if(in.getString() != device)
      return false;

    uInt8 reg1 = 0, reg2 = 0, reg3 = 0, reg4 = 0, reg5 = 0, reg6 = 0;
    reg1 = (uInt8) in.getInt();
    reg2 = (uInt8) in.getInt();
    reg3 = (uInt8) in.getInt();
    reg4 = (uInt8) in.getInt();
    reg5 = (uInt8) in.getInt();
    reg6 = (uInt8) in.getInt();

    myLastRegisterSetCycle = (Int32) in.getInt();

    // Only update the TIA sound registers if sound is enabled
    // Make sure to empty the queue of previous sound fragments
    if(myIsInitializedFlag)
    {
      SDL_PauseAudio(1);
      myRegWriteQueue.clear();
      myTIASound.set(0x15, reg1);
      myTIASound.set(0x16, reg2);
      myTIASound.set(0x17, reg3);
      myTIASound.set(0x18, reg4);
      myTIASound.set(0x19, reg5);
      myTIASound.set(0x1a, reg6);
      SDL_PauseAudio(0);
    }
  }
  catch(char *msg)
  {
    Logger::Error << msg << endl;
    return false;
  }
  catch(...)
  {
    Logger::Error << "Unknown error in load state for " << device << endl;
    return false;
  }

  return true;
}