Package sidplay.audio

Klasse ProxyDriver

java.lang.Object
sidplay.audio.ProxyDriver
Alle implementierten Schnittstellen:
Consumer<VIC>, SIDListener, IMOS6510Extension, AudioDriver, VideoDriver

public class ProxyDriver extends Object implements AudioDriver, VideoDriver, SIDListener, IMOS6510Extension
Proxy driver to use two different sound or video drivers at the same time.

Note: Both drivers sample buffer must be equal in size.

Autor:
Ken Händel
  • Felddetails

  • Konstruktordetails

    • ProxyDriver

      public ProxyDriver(AudioDriver driver1, AudioDriver driver2)
      Create a proxy driver
      Parameter:
      driver1 - sound driver, that buffer gets filled
      driver2 - sound driver that gets the copied sample buffer
  • Methodendetails

    • open

      public void open(IAudioSection audioSection, String recordingFilename, CPUClock cpuClock, EventScheduler context) throws IOException, LineUnavailableException, InterruptedException
      Beschreibung aus Schnittstelle kopiert: AudioDriver
      Open audio interface.
      Angegeben von:
      open in Schnittstelle AudioDriver
      Parameter:
      audioSection - audio configuration
      recordingFilename - name for a recording
      cpuClock - CPU clock
      context - event context
      Löst aus:
      IOException - error open audio device
      LineUnavailableException - audio device not available
      InterruptedException
    • pause

      public void pause()
      Beschreibung aus Schnittstelle kopiert: AudioDriver
      Temporarily cease audio production, for instance if user paused the application. Some backends such as DirectSound end up looping the audio unless explicitly told to pause.

      Audio will be resumed automatically on the next writing ().

      Angegeben von:
      pause in Schnittstelle AudioDriver
    • write

      public void write() throws InterruptedException
      Beschreibung aus Schnittstelle kopiert: AudioDriver
      Write the complete contents of ByteBuffer to an audio device.
      Angegeben von:
      write in Schnittstelle AudioDriver
      Löst aus:
      InterruptedException - if interrupted
    • accept

      public void accept(VIC vic)
      Beschreibung aus Schnittstelle kopiert: VideoDriver
      Propagates VIC pixel data for video drivers.
      Pixels can be accessed using vic.getPALEmulation().getPixels()

      Note: Pixel format is ARGB and is updated frequently at a rate of screen refresh rate. CPUClock.getScreenRefresh()

      Angegeben von:
      accept in Schnittstelle Consumer<VIC>
      Angegeben von:
      accept in Schnittstelle VideoDriver
    • write

      public void write(int sidNum, int addr, byte data)
      Angegeben von:
      write in Schnittstelle SIDListener
    • jmpJsr

      public void jmpJsr()
      Angegeben von:
      jmpJsr in Schnittstelle IMOS6510Extension
    • close

      public void close()
      Beschreibung aus Schnittstelle kopiert: AudioDriver
      Free the audio device. (Counterpart of open().)
      Angegeben von:
      close in Schnittstelle AudioDriver
    • buffer

      public ByteBuffer buffer()
      Driver one's buffer gets filled, while driver two gets a copy in method write()
      Angegeben von:
      buffer in Schnittstelle AudioDriver
      Gibt zurück:
      The buffer to write audio to.
    • isRecording

      public boolean isRecording()
      Angegeben von:
      isRecording in Schnittstelle AudioDriver
      Gibt zurück:
      is this audio driver recording tunes?
    • getExtension

      public String getExtension()
      Angegeben von:
      getExtension in Schnittstelle AudioDriver
      Gibt zurück:
      file extension for recordings
    • lookup

      public <T extends AudioDriver> Optional<T> lookup(Class<T> clz)
      Angegeben von:
      lookup in Schnittstelle AudioDriver
      Gibt zurück:
      concrete audio driver, if proxied