UNPKG

jsgbc

Version:
115 lines (114 loc) 3.86 kB
import CPU from "../CPU"; import * as util from "../util"; import GameBoy from "../GameBoy"; import AudioDevice from "./AudioDevice"; import SquareAudioChannel from "./SquareAudioChannel"; export default class AudioController { cartridgeLeftChannelInputVolume: number; cartridgeRightChannelInputVolume: number; mixerOutputCache: number; sequencerClocks: number; sequencePosition: number; audioClocksUntilNextEvent: number; audioClocksUntilNextEventCounter: number; resamplerFirstPassFactor: number; leftChannel3: boolean; rightChannel3: boolean; channel3Enabled: boolean; channel3CanPlay: boolean; cachedChannel3Sample: number; channel3CurrentSampleLeft: number; channel3CurrentSampleRight: number; channel3CurrentSampleLeftSecondary: number; channel3CurrentSampleRightSecondary: number; channel3envelopeVolume: number; channel3TotalLength: number; channel3PatternType: number; channel3frequency: number; channel3Consecutive: boolean; channel3Counter: number; channel3FrequencyPeriod: number; channel3LastSampleLookup: number; channel3PcmData: Int8Array; leftChannel4: boolean; rightChannel4: boolean; channel4Enabled: boolean; channel4CanPlay: boolean; cachedChannel4Sample: number; channel4Counter: number; channel4CurrentSampleLeft: number; channel4CurrentSampleRight: number; channel4CurrentSampleLeftSecondary: number; channel4CurrentSampleRightSecondary: number; channel4FrequencyPeriod: number; channel4TotalLength: number; channel4EnvelopeVolume: number; channel4CurrentVolume: number; channel4EnvelopeType: boolean; channel4EnvelopeSweeps: number; channel4EnvelopeSweepsLast: number; channel4Consecutive: boolean; channel4BitRange: number; channel4VolumeShifter: number; channel4LastSampleLookup: number; downSampleInputDivider: number; device: AudioDevice; memory: util.TypedArray; gameboy: GameBoy; cpu: CPU; LSFR15Table: Int8Array; LSFR7Table: Int8Array; noiseSampleTable: Int8Array; bufferLength: number; audioTicks: number; audioIndex: number; bufferContainAmount: number; bufferPosition: number; downsampleInput: number; buffer: Float32Array; enabled: boolean; channel1: SquareAudioChannel; channel2: SquareAudioChannel; constructor({ cpu, gameboy }: { cpu: CPU; gameboy: GameBoy; }); setMemory(memory: util.TypedArray): void; initMemory(): void; init(): void; setInitialState(): void; setSkippedBootRomState(): void; generate(sampleCount: number): void; enable(): void; disable(): void; run(): void; clockAudioEnvelope(): void; performChannel1AudioSweepDummy(): void; audioComputeSequencer(): void; clockAudioLength(): void; clockAudioSweep(): void; computeChannels(): void; cacheChannel3Update(): void; checkChannel3Enable(): void; cacheChannel3OutputLevel(): void; channel3OutputLevelSecondaryCache(): void; checkChannel4Enable(): void; cacheChannel4Update(): void; cacheChannel4OutputLevel(): void; checkChannel4VolumeEnable(): void; cacheChannel4OutputLevelSecondary(): void; cacheMixerOutputLevel(): void; connectDevice(device: AudioDevice): void; setVolume(volume: number): void; adjustUnderrun(): void; recalculateIterationClockLimitForAudio(audioClocking: any): void; outputAudio(): void; fillBuffer(): void; generateWhiteNoise(): void; generateLSFR7Table(): Int8Array; generateLSFR15Table(): Int8Array; registerMemoryWriters(): void; registerWaveformMemoryWriters(): void; writeWaveformRam(address: number, data: number): void; channelVolumeControlWriter: (address: number, data: number) => void; }