aboutsummaryrefslogtreecommitdiff
path: root/src/dbopl.cpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2016-02-07 06:16:45 +0300
committerWohlstand <admin@wohlnet.ru>2016-02-07 06:16:45 +0300
commit26f5342bb8227f73dbee833f4fbe1cece97154a2 (patch)
tree2425e63736c298bbf25fab079aa0bda6801585f5 /src/dbopl.cpp
parentb5dedb86bf2bac931706764171623ee17b06c1f0 (diff)
downloadlibADLMIDI-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.cpp13
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 );