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 | |
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
-rw-r--r-- | src/dbopl.cpp | 13 | ||||
-rw-r--r-- | src/dbopl.h | 3 |
2 files changed, 14 insertions, 2 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 ); diff --git a/src/dbopl.h b/src/dbopl.h index bf10295..794c645 100644 --- a/src/dbopl.h +++ b/src/dbopl.h @@ -265,7 +265,8 @@ struct Handler { void Generate( void(*AddSamples_m32)(Bitu,Bit32s*), void(*AddSamples_s32)(Bitu,Bit32s*), Bitu samples ); - void Init( Bitu rate ); + void GenerateArr(Bit32s* out, Bitu *samples ); + void Init( Bitu rate ); }; |