diff options
author | Wohlstand <admin@wohlnet.ru> | 2016-02-07 06:16:45 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2016-02-07 06:16:45 +0300 |
commit | 26f5342bb8227f73dbee833f4fbe1cece97154a2 (patch) | |
tree | 2425e63736c298bbf25fab079aa0bda6801585f5 /src/dbopl.cpp | |
parent | b5dedb86bf2bac931706764171623ee17b06c1f0 (diff) | |
download | libADLMIDI-26f5342bb8227f73dbee833f4fbe1cece97154a2.tar.gz libADLMIDI-26f5342bb8227f73dbee833f4fbe1cece97154a2.tar.bz2 libADLMIDI-26f5342bb8227f73dbee833f4fbe1cece97154a2.zip |
Taking generated audio also via pointer
Not only via callback funtion pointer
Diffstat (limited to 'src/dbopl.cpp')
-rw-r--r-- | src/dbopl.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/dbopl.cpp b/src/dbopl.cpp index 54df48c..809d394 100644 --- a/src/dbopl.cpp +++ b/src/dbopl.cpp @@ -1551,10 +1551,21 @@ void Handler::Generate( void(*AddSamples_m32)(Bitu,Bit32s*), AddSamples_m32( samples, buffer ); } else { chip.GenerateBlock3( samples, buffer ); - AddSamples_s32( samples, buffer ); + AddSamples_s32( samples, buffer ); } } +void Handler::GenerateArr(Bit32s* out, Bitu *samples ) +{ + if ( GCC_UNLIKELY(*samples > 512) ) + *samples = 512; + if ( !chip.opl3Active ) { + chip.GenerateBlock2( *samples, out ); + } else { + chip.GenerateBlock3( *samples, out ); + } +} + void Handler::Init( Bitu rate ) { InitTables(); chip.Setup( rate ); |