diff --git a/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java b/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java index 22ad92a..b53feef 100644 --- a/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java +++ b/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java @@ -30,8 +30,6 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import android.graphics.PixelFormat; -import android.media.AudioManager; import android.opengl.GLSurfaceView; import android.os.Build; import android.os.Bundle; @@ -49,7 +47,6 @@ import org.cocos2dx.lib.Cocos2dxHelper.Cocos2dxHelperListener; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.egl.EGLDisplay; -import javax.microedition.khronos.egl.EGLContext; public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelperListener { // =========================================================== @@ -71,8 +68,6 @@ public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelpe private Cocos2dxEditBoxHelper mEditBoxHelper = null; private boolean hasFocus = false; private boolean showVirtualButton = false; - private boolean gainAudioFocus = false; - private boolean paused = true; public Cocos2dxGLSurfaceView getGLSurfaceView(){ return mGLSurfaceView; @@ -96,18 +91,6 @@ public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelpe this.showVirtualButton = value; } - public void setEnableAudioFocusGain(boolean value) { - if(gainAudioFocus != value) { - if(!paused) { - if (value) - Cocos2dxAudioFocusManager.registerAudioFocusListener(this); - else - Cocos2dxAudioFocusManager.unregisterAudioFocusListener(this); - } - gainAudioFocus = value; - } - } - protected void onLoadNativeLibraries() { try { ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); @@ -163,9 +146,6 @@ public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelpe Window window = this.getWindow(); window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); - - // Audio configuration - this.setVolumeControlStream(AudioManager.STREAM_MUSIC); } //native method,call GLViewImpl::getGLContextAttrs() to get the OpenGL ES context attributions @@ -182,10 +162,7 @@ public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelpe @Override protected void onResume() { Log.d(TAG, "onResume()"); - paused = false; super.onResume(); - if(gainAudioFocus) - Cocos2dxAudioFocusManager.registerAudioFocusListener(this); this.hideVirtualButton(); resumeIfHasFocus(); } @@ -214,18 +191,13 @@ public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelpe @Override protected void onPause() { Log.d(TAG, "onPause()"); - paused = true; super.onPause(); - if(gainAudioFocus) - Cocos2dxAudioFocusManager.unregisterAudioFocusListener(this); Cocos2dxHelper.onPause(); mGLSurfaceView.onPause(); } @Override protected void onDestroy() { - if(gainAudioFocus) - Cocos2dxAudioFocusManager.unregisterAudioFocusListener(this); super.onDestroy(); } @@ -295,7 +267,6 @@ public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelpe // Set framelayout as the content view setContentView(mFrameLayout); } - public Cocos2dxGLSurfaceView onCreateView() { Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this); diff --git a/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAudioFocusManager.java b/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAudioFocusManager.java deleted file mode 100644 index ff3b77e..0000000 --- a/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAudioFocusManager.java +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2016 Chukong Technologies Inc. - * Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. - * - * http://www.cocos2d-x.org - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - ****************************************************************************/ - -package org.cocos2dx.lib; - -import android.content.Context; -import android.media.AudioManager; -import android.util.Log; - -class Cocos2dxAudioFocusManager { - - private final static String TAG = "AudioFocusManager"; - // Audio focus values synchronized with which in cocos/platform/android/javaactivity-android.cpp - private final static int AUDIOFOCUS_GAIN = 0; - private final static int AUDIOFOCUS_LOST = 1; - private final static int AUDIOFOCUS_LOST_TRANSIENT = 2; - private final static int AUDIOFOCUS_LOST_TRANSIENT_CAN_DUCK = 3; - - private static AudioManager.OnAudioFocusChangeListener sAfChangeListener = - new AudioManager.OnAudioFocusChangeListener() { - public void onAudioFocusChange(int focusChange) { - - Log.d(TAG, "onAudioFocusChange: " + focusChange + ", thread: " + Thread.currentThread().getName()); - - if (focusChange == AudioManager.AUDIOFOCUS_LOSS) { - // Permanent loss of audio focus - // Pause playback immediately - Log.d(TAG, "Pause music by AUDIOFOCUS_LOSS"); - Cocos2dxHelper.runOnGLThread(new Runnable() { - @Override - public void run() { - nativeOnAudioFocusChange(AUDIOFOCUS_LOST); - } - }); - - } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) { - // Pause playback - Log.d(TAG, "Pause music by AUDIOFOCUS_LOSS_TRANSILENT"); - Cocos2dxHelper.runOnGLThread(new Runnable() { - @Override - public void run() { - nativeOnAudioFocusChange(AUDIOFOCUS_LOST_TRANSIENT); - } - }); - } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) { - // Lower the volume, keep playing - Log.d(TAG, "Lower the volume, keep playing by AUDIOFOCUS_LOSS_TRANSILENT_CAN_DUCK"); - Cocos2dxHelper.runOnGLThread(new Runnable() { - @Override - public void run() { - nativeOnAudioFocusChange(AUDIOFOCUS_LOST_TRANSIENT_CAN_DUCK); - } - }); - } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) { - // Your app has been granted audio focus again - // Raise volume to normal, restart playback if necessary - Log.d(TAG, "Resume music by AUDIOFOCUS_GAIN"); - Cocos2dxHelper.runOnGLThread(new Runnable() { - @Override - public void run() { - nativeOnAudioFocusChange(AUDIOFOCUS_GAIN); - } - }); - } - } - }; - - static boolean registerAudioFocusListener(Context context) { - AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - - // Request audio focus for playback - int result = am.requestAudioFocus(sAfChangeListener, - // Use the music stream. - AudioManager.STREAM_MUSIC, - // Request permanent focus. - AudioManager.AUDIOFOCUS_GAIN); - - if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { - Log.d(TAG, "requestAudioFocus succeed"); - return true; - } - - Log.e(TAG, "requestAudioFocus failed!"); - return false; - } - - static void unregisterAudioFocusListener(Context context) { - AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - int result = am.abandonAudioFocus(sAfChangeListener); - if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { - Log.d(TAG, "abandonAudioFocus succeed!"); - } else { - Log.e(TAG, "abandonAudioFocus failed!"); - } - - Cocos2dxHelper.runOnGLThread(new Runnable() { - @Override - public void run() { - nativeOnAudioFocusChange(AUDIOFOCUS_GAIN); - } - }); - } - - private static native void nativeOnAudioFocusChange(int focusChange); -} diff --git a/cocos/platform/android/javaactivity-android.cpp b/cocos/platform/android/javaactivity-android.cpp index 56096cf..ce63ac1 100644 --- a/cocos/platform/android/javaactivity-android.cpp +++ b/cocos/platform/android/javaactivity-android.cpp @@ -41,8 +41,6 @@ THE SOFTWARE. void cocos_android_app_init(JNIEnv* env) __attribute__((weak)); -void cocos_audioengine_focus_change(int focusChange); - using namespace cocos2d; extern "C" @@ -116,11 +114,6 @@ JNIEXPORT jintArray Java_org_cocos2dx_lib_Cocos2dxActivity_getGLContextAttrs(JNI return glContextAttrsJava; } -JNIEXPORT void Java_org_cocos2dx_lib_Cocos2dxAudioFocusManager_nativeOnAudioFocusChange(JNIEnv* env, jobject thiz, jint focusChange) -{ - cocos_audioengine_focus_change(focusChange); -} - JNIEXPORT void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeOnSurfaceChanged(JNIEnv* env, jobject thiz, jint w, jint h) { cocos2d::Application::getInstance()->applicationScreenSizeChanged(w, h); diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 328a31b..3f41fe2 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -29,10 +29,10 @@ add_library(external empty.cpp) add_subdirectory(OpenAL) target_link_libraries(external ext_OpenAL) # OGG +add_subdirectory(libvorbis) +target_link_libraries(external ext_libvorbis) # before ogg, make android link happy add_subdirectory(libogg) target_link_libraries(external ext_libogg) -add_subdirectory(libvorbis) -target_link_libraries(external ext_libvorbis) if(BUILD_EXT_BOX2D) add_subdirectory(Box2D) @@ -130,37 +130,18 @@ if(NOT LINUX) ext_png ) endif(NOT LINUX) - -if(LINUX) - add_subdirectory(linux-specific/fmod) - target_link_libraries(external - ext_fmod - ) -endif() if(ANDROID) add_subdirectory(android-specific/cpufeatures) - add_subdirectory(android-specific/pvmp3dec) - add_subdirectory(android-specific/tremolo) - target_link_libraries(external - ext_cpufeatures - ext_pvmp3dec - ext_tremolo - ) + target_link_libraries(external ext_cpufeatures) endif() if(WINDOWS) add_subdirectory(win32-specific/gles) add_subdirectory(win32-specific/icon) - add_subdirectory(win32-specific/MP3Decoder) - add_subdirectory(win32-specific/OggDecoder) - add_subdirectory(win32-specific/OpenalSoft) target_link_libraries(external ext_gles ext_icon - ext_MP3Decoder - ext_OggDecoder - ext_OpenalSoft ) endif() diff --git a/external/android-specific/pvmp3dec/CMakeLists.txt b/external/android-specific/pvmp3dec/CMakeLists.txt deleted file mode 100644 index f16be76..0000000 --- a/external/android-specific/pvmp3dec/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ -cmake_minimum_required(VERSION 3.6) - -set(lib_name pvmp3dec) -set(target_name ext_${lib_name}) - -project(${lib_name}) - -set(${target_name}_src - ./src/pvmp3_normalize.cpp - ./src/pvmp3_alias_reduction.cpp - ./src/pvmp3_crc.cpp - ./src/pvmp3_decode_header.cpp - ./src/pvmp3_decode_huff_cw.cpp - ./src/pvmp3_getbits.cpp - ./src/pvmp3_dequantize_sample.cpp - ./src/pvmp3_framedecoder.cpp - ./src/pvmp3_get_main_data_size.cpp - ./src/pvmp3_get_side_info.cpp - ./src/pvmp3_get_scale_factors.cpp - ./src/pvmp3_mpeg2_get_scale_data.cpp - ./src/pvmp3_mpeg2_get_scale_factors.cpp - ./src/pvmp3_mpeg2_stereo_proc.cpp - ./src/pvmp3_huffman_decoding.cpp - ./src/pvmp3_huffman_parsing.cpp - ./src/pvmp3_tables.cpp - ./src/pvmp3_imdct_synth.cpp - ./src/pvmp3_mdct_6.cpp - ./src/pvmp3_dct_6.cpp - ./src/pvmp3_poly_phase_synthesis.cpp - ./src/pvmp3_equalizer.cpp - ./src/pvmp3_seek_synch.cpp - ./src/pvmp3_stereo_proc.cpp - ./src/pvmp3_reorder.cpp - ./src/pvmp3_polyphase_filter_window.cpp - ./src/pvmp3_mdct_18.cpp - ./src/pvmp3_dct_9.cpp - ./src/pvmp3_dct_16.cpp -) - -add_library(${target_name} STATIC - ${${target_name}_src} -) - -target_include_directories(${target_name} PUBLIC include) -target_include_directories(${target_name} PUBLIC src) -set_target_properties(${target_name} - PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" - LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" - FOLDER "External" -) - diff --git a/external/android-specific/pvmp3dec/include/mp3_decoder_selection.h b/external/android-specific/pvmp3dec/include/mp3_decoder_selection.h deleted file mode 100644 index e287433..0000000 --- a/external/android-specific/pvmp3dec/include/mp3_decoder_selection.h +++ /dev/null @@ -1,30 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/*! \file mp3_decoder_selection.h - * \brief select mp3 decoder - * - */ - -#ifndef MP3_DECODER_SELECTION_H -#define MP3_DECODER_SELECTION_H - - -#define NEW_PV_MP3_DECODER 1 // 1 == PV mp3 decoder - -#endif - diff --git a/external/android-specific/pvmp3dec/include/pvmp3_audio_type_defs.h b/external/android-specific/pvmp3dec/include/pvmp3_audio_type_defs.h deleted file mode 100644 index 2d94384..0000000 --- a/external/android-specific/pvmp3dec/include/pvmp3_audio_type_defs.h +++ /dev/null @@ -1,77 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_audio_type_defs.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This file was derived from a number of standards bodies. The type - definitions below were created from some of the best practices observed - in the standards bodies. - - This file is dependent on limits.h for defining the bit widths. In an - ANSI C environment limits.h is expected to always be present and contain - the following definitions: - - SCHAR_MIN - SCHAR_MAX - UCHAR_MAX - - INT_MAX - INT_MIN - UINT_MAX - - SHRT_MIN - SHRT_MAX - USHRT_MAX - - LONG_MIN - LONG_MAX - ULONG_MAX - ------------------------------------------------------------------------------- -*/ - -#ifndef PVMP3_AUDIO_TYPE_DEFS_H -#define PVMP3_AUDIO_TYPE_DEFS_H - -#include - -typedef int8_t int8; -typedef uint8_t uint8; -typedef int16_t int16; -typedef uint16_t uint16; -typedef int32_t int32; -typedef uint32_t uint32; -typedef int64_t int64; -typedef uint64_t uint64; - -typedef int32_t Int32; - -#endif /* PVMP3_AUDIO_TYPE_DEFS_H */ diff --git a/external/android-specific/pvmp3dec/include/pvmp3decoder_api.h b/external/android-specific/pvmp3dec/include/pvmp3decoder_api.h deleted file mode 100644 index 1568e7c..0000000 --- a/external/android-specific/pvmp3dec/include/pvmp3decoder_api.h +++ /dev/null @@ -1,259 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3decoder_api.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This include file defines the structure tPVMP3DecoderExternal - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3DECODER_API_H -#define PVMP3DECODER_API_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "pvmp3_dec_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - /*---------------------------------------------------------------------------- - ; DEFINES - ; Include all pre-processor statements here. - ----------------------------------------------------------------------------*/ - - /*---------------------------------------------------------------------------- - ; EXTERNAL VARIABLES REFERENCES - ; Declare variables used in this module but defined elsewhere - ----------------------------------------------------------------------------*/ - - /*---------------------------------------------------------------------------- - ; SIMPLE TYPEDEF'S - ----------------------------------------------------------------------------*/ - - /*---------------------------------------------------------------------------- - ; ENUMERATED TYPEDEF'S - ----------------------------------------------------------------------------*/ - typedef enum - { - flat = 0, - bass_boost = 1, - rock = 2, - pop = 3, - jazz = 4, - classical = 5, - talk = 6, - flat_ = 7 - - } e_equalization; - - - - typedef enum ERROR_CODE - { - NO_DECODING_ERROR = 0, - UNSUPPORTED_LAYER = 1, - UNSUPPORTED_FREE_BITRATE = 2, - FILE_OPEN_ERROR = 3, /* error opening file */ - CHANNEL_CONFIG_ERROR = 4, /* error in channel configuration */ - SYNTHESIS_WINDOW_ERROR = 5, /* error in synthesis window table */ - READ_FILE_ERROR = 6, /* error reading input file */ - SIDE_INFO_ERROR = 7, /* error in side info */ - HUFFMAN_TABLE_ERROR = 8, /* error in Huffman table */ - COMMAND_LINE_ERROR = 9, /* error in command line */ - MEMORY_ALLOCATION_ERROR = 10, /* error allocating memory */ - NO_ENOUGH_MAIN_DATA_ERROR = 11, - SYNCH_LOST_ERROR = 12, - OUTPUT_BUFFER_TOO_SMALL = 13 /* output buffer can't hold output */ - } ERROR_CODE; - - /*---------------------------------------------------------------------------- - ; STRUCTURES TYPEDEF'S - ----------------------------------------------------------------------------*/ - - typedef struct -#ifdef __cplusplus - tPVMP3DecoderExternal -#endif - { - - /* - * INPUT: - * Pointer to the input buffer that contains the encoded bistream data. - * The data is filled in such that the first bit transmitted is - * the most-significant bit (MSB) of the first array element. - * The buffer is accessed in a linear fashion for speed, and the number of - * bytes consumed varies frame to frame. - * The calling environment can change what is pointed to between calls to - * the decode function, library, as long as the inputBufferCurrentLength, - * and inputBufferUsedLength are updated too. Also, any remaining bits in - * the old buffer must be put at the beginning of the new buffer. - */ - uint8 *pInputBuffer; - - /* - * INPUT: - * Number of valid bytes in the input buffer, set by the calling - * function. After decoding the bitstream the library checks to - * see if it when past this value; it would be to prohibitive to - * check after every read operation. This value is not modified by - * the MP3 library. - */ - int32 inputBufferCurrentLength; - - /* - * INPUT/OUTPUT: - * Number of elements used by the library, initially set to zero by - * the function pvmp3_resetDecoder(), and modified by each - * call to pvmp3_framedecoder(). - */ - int32 inputBufferUsedLength; - - /* - * OUTPUT: - * holds the predicted frame size. It used on the test console, for parsing - * purposes. - */ - uint32 CurrentFrameLength; - - /* - * INPUT: - * This variable holds the type of equalization used - * - * - */ - e_equalization equalizerType; - - - /* - * INPUT: - * The actual size of the buffer. - * This variable is not used by the library, but is used by the - * console test application. This parameter could be deleted - * if this value was passed into these function. - */ - int32 inputBufferMaxLength; - - /* - * OUTPUT: - * The number of channels decoded from the bitstream. - */ - int16 num_channels; - - /* - * OUTPUT: - * The number of channels decoded from the bitstream. - */ - int16 version; - - /* - * OUTPUT: - * The sampling rate decoded from the bitstream, in units of - * samples/second. - */ - int32 samplingRate; - - /* - * OUTPUT: - * This value is the bitrate in units of bits/second. IT - * is calculated using the number of bits consumed for the current frame, - * and then multiplying by the sampling_rate, divided by points in a frame. - * This value can changes frame to frame. - */ - int32 bitRate; - - /* - * INPUT/OUTPUT: - * In: Inform decoder how much more room is available in the output buffer in int16 samples - * Out: Size of the output frame in 16-bit words, This value depends on the mp3 version - */ - int32 outputFrameSize; - - /* - * INPUT: - * Flag to enable/disable crc error checking - */ - int32 crcEnabled; - - /* - * OUTPUT: - * This value is used to accumulate bit processed and compute an estimate of the - * bitrate. For debugging purposes only, as it will overflow for very long clips - */ - uint32 totalNumberOfBitsUsed; - - - /* - * INPUT: (but what is pointed to is an output) - * Pointer to the output buffer to hold the 16-bit PCM audio samples. - * If the output is stereo, both left and right channels will be stored - * in this one buffer. - */ - - int16 *pOutputBuffer; - - } tPVMP3DecoderExternal; - -uint32 pvmp3_decoderMemRequirements(void); - -void pvmp3_InitDecoder(tPVMP3DecoderExternal *pExt, - void *pMem); - -void pvmp3_resetDecoder(void *pMem); - -ERROR_CODE pvmp3_framedecoder(tPVMP3DecoderExternal *pExt, - void *pMem); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - - diff --git a/external/android-specific/pvmp3dec/src/asm/pvmp3_dct_16_gcc.s b/external/android-specific/pvmp3dec/src/asm/pvmp3_dct_16_gcc.s deleted file mode 100644 index e61c8d3..0000000 --- a/external/android-specific/pvmp3dec/src/asm/pvmp3_dct_16_gcc.s +++ /dev/null @@ -1,476 +0,0 @@ -@ ------------------------------------------------------------------ -@ Copyright (C) 1998-2009 PacketVideo -@ -@ Licensed under the Apache License, Version 2.0 (the "License"); -@ you may not use this file except in compliance with the License. -@ You may obtain a copy of the License at -@ -@ http://www.apache.org/licenses/LICENSE-2.0 -@ -@ Unless required by applicable law or agreed to in writing, software -@ distributed under the License is distributed on an "AS IS" BASIS, -@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -@ express or implied. -@ See the License for the specific language governing permissions -@ and limitations under the License. -@ ------------------------------------------------------------------- - -@ -@ -@ Filename: pvmp3_dct_16_gcc.s -@ -@ -@------------------------------------------------------------------------------ -@ REVISION HISTORY -@ -@ -@ Who: Date: MM/DD/YYYY -@ Description: -@ -@------------------------------------------------------------------------------ - -.arm - -.align 4 - -.text - -.extern pvmp3_dct_16 -.extern pvmp3_merge_in_place_N32 -.extern pvmp3_split - - - -@------------------------------------------------------------------------------ - -.global pvmp3_dct_16 - -pvmp3_dct_16: - stmfd sp!,{r0,r1,r4-r11,lr} - ldr r1,[r0] - ldr r3,[r0,#0x3c] - ldr r12,constant1 - sub r2,r1,r3 - smull lr,r2,r12,r2 - sub sp,sp,#0x1c - str r2,[sp,#0x14] - ldr r2,[r0,#0x1c] - ldr r12,[r0,#0x20] - add r1,r1,r3 - sub r3,r2,r12 - ldr lr,constant2 - mov r3,r3,lsl #3 - smull r4,r3,lr,r3 - ldr r6,constant5 - str r3,[sp] - add r3,r2,r12 - sub r2,r1,r3 - ldr r12,constant3 - add r3,r1,r3 - smull lr,r2,r12,r2 - ldr r12,[r0,#0x38] - ldr r1,[r0,#4] - ldr lr,constant4 - sub r4,r1,r12 - add r1,r1,r12 - ldr r12,[r0,#0x18] - smull r4,r5,lr,r4 - ldr lr,[r0,#0x24] - ldr r10,constant10 - sub r4,r12,lr - mov r4,r4,lsl #1 - smull r7,r4,r6,r4 - add r12,r12,lr - add r7,r1,r12 - sub r12,r1,r12 - ldr r1,constant6 - str r4,[sp,#4] - smull r12,r4,r1,r12 - ldr r1,[r0,#8] - ldr r12,[r0,#0x34] - ldr r6,constant7 - sub lr,r1,r12 - smull r8,lr,r6,lr - add r1,r1,r12 - str lr,[sp,#0x10] - ldr r12,[r0,#0x14] - ldr lr,[r0,#0x28] - ldr r8,constant8 - sub r6,r12,lr - mov r6,r6,lsl #1 - smull r9,r6,r8,r6 - add r12,r12,lr - ldr r9,constant9 - add r8,r1,r12 - sub r12,r1,r12 - smull r12,lr,r9,r12 - ldr r12,[r0,#0x30] - ldr r1,[r0,#0xc] - sub r9,r1,r12 - smull r11,r9,r10,r9 - add r12,r1,r12 - str r9,[sp,#0xc] - ldr r9,[r0,#0x10] - ldr r10,constant11 - str r9,[sp,#0x18] - ldr r1,[r0,#0x2c] - sub r9,r9,r1 - smull r11,r9,r10,r9 - ldr r10,constant12 - str r9,[sp,#8] - ldr r9,[sp,#0x18] - ldr r11,constant14 - add r9,r9,r1 - add r1,r12,r9 - sub r12,r12,r9 - mov r12,r12,lsl #2 - smull r9,r12,r10,r12 - ldr r10,constant13 - add r9,r3,r1 - sub r1,r3,r1 - smull r1,r3,r10,r1 - sub r1,r7,r8 - mov r1,r1,lsl #1 - smull r1,r10,r11,r1 - add r1,r7,r8 - add r8,r9,r1 - sub r7,r9,r1 - mov r8,r8,asr #1 - ldr r1,constant15 - str r8,[r0] - smull r7,r8,r1,r7 - sub r7,r3,r10 - str r8,[r0,#0x20] - mov r7,r7,lsl #1 - smull r8,r7,r1,r7 - add r3,r3,r10 - add r3,r3,r7 - str r3,[r0,#0x10] - sub r3,r2,r12 - str r7,[r0,#0x30] - add r2,r2,r12 - ldr r7,constant13 - sub r12,r4,lr - mov r3,r3,lsl #1 - smull r8,r3,r7,r3 - add lr,r4,lr - sub r4,r2,lr - mov r12,r12,lsl #2 - smull r7,r12,r11,r12 - add lr,lr,r2 - sub r2,r3,r12 - mov r2,r2,lsl #1 - smull r7,r2,r1,r2 - mov r4,r4,lsl #1 - add r12,r12,r2 - add r3,r12,r3 - smull r7,r4,r1,r4 - add r12,r3,lr - add r3,r3,r4 - str r3,[r0,#0x18] - add r3,r2,r4 - str r2,[r0,#0x38] - str r3,[r0,#0x28] - str r12,[r0,#8] - ldr r2,[sp,#0x14] - ldr r3,[sp,#0] - ldr lr,[sp,#4] - sub r2,r2,r3 - ldr r3,constant3 - mov r2,r2,lsl #1 - smull r12,r2,r3,r2 - ldr r3,[sp,#0x14] - ldr r12,[sp,#0] - ldr r4,constant6 - add r12,r3,r12 - ldr r3,[sp,#4] - sub lr,r5,lr - mov lr,lr,lsl #1 - add r3,r5,r3 - smull r5,lr,r4,lr - ldr r4,[sp,#0x10] - ldr r5,[sp,#0x10] - add r4,r4,r6 - sub r5,r5,r6 - ldr r6,constant9 - mov r5,r5,lsl #1 - smull r7,r5,r6,r5 - ldr r6,[sp,#8] - ldr r9,[sp,#0xc] - ldr r10,constant12 - sub r6,r9,r6 - mov r6,r6,lsl #3 - smull r7,r6,r10,r6 - ldr r8,[sp,#0x20] - ldr r7,[sp,#8] - cmp r8,#0 - add r7,r9,r7 - - bne no_flag_proc - rsb r12,r12,#0 - rsb r2,r2,#0 - rsb r3,r3,#0 - rsb lr,lr,#0 - rsb r4,r4,#0 - rsb r5,r5,#0 - rsb r7,r7,#0 - rsb r6,r6,#0 -no_flag_proc: - - sub r8,r2,r6 - add r2,r6,r2 - sub r6,r12,r7 - ldr r9,constant13 - add r12,r12,r7 - sub r7,r3,r4 - mov r6,r6,lsl #1 - mov r8,r8,lsl #1 - smull r10,r8,r9,r8 - add r3,r3,r4 - smull r10,r6,r9,r6 - sub r4,lr,r5 - mov r7,r7,lsl #2 - smull r9,r7,r11,r7 - add lr,lr,r5 - sub r5,r6,r7 - add r6,r6,r7 - sub r7,r12,r3 - add r3,r12,r3 - sub r12,r2,lr - mov r4,r4,lsl #2 - smull r9,r4,r11,r4 - add lr,r2,lr - sub r2,r8,r4 - mov r2,r2,lsl #1 - mov r5,r5,lsl #1 - mov r12,r12,lsl #1 - mov r7,r7,lsl #1 - smull r9,r5,r1,r5 - smull r9,r2,r1,r2 - add r6,r6,r5 - smull r9,r7,r1,r7 - smull r9,r12,r1,r12 - add r1,r4,r2 - add r1,r1,r8 - add lr,lr,r1 - add r3,r3,lr - str r3,[r0,#4] - add r3,r6,lr - str r3,[r0,#0xc] - add r1,r1,r12 - add r3,r6,r1 - add r1,r7,r1 - str r1,[r0,#0x1c] - str r3,[r0,#0x14] - add r1,r12,r2 - add r3,r7,r1 - add r1,r5,r1 - str r1,[r0,#0x2c] - str r3,[r0,#0x24]! - add r1,r5,r2 - str r1,[r0,#0x10] - str r2,[r0,#0x18] - add sp,sp,#0x24 - ldmfd sp!,{r4-r11,pc} - - - -@------------------------------------------------------------------------------ - -.global pvmp3_merge_in_place_N32 - - - -pvmp3_merge_in_place_N32: - stmfd sp!,{r4,lr} - ldr r1,[r0,#0x1c] - ldr r2,[r0,#0x38] - str r1,[r0,#0x38] - ldr r1,[r0,#0x18] - ldr r3,[r0,#0x30] - str r1,[r0,#0x30] - ldr r12,[r0,#0x14] - ldr r1,[r0,#0x28] - str r12,[r0,#0x28] - ldr r12,[r0,#0x10] - ldr lr,[r0,#0x20] - str r12,[r0,#0x20] - ldr r12,[r0,#0xc] - str r12,[r0,#0x18] - ldr r12,[r0,#8] - str r12,[r0,#0x10] - ldr r12,[r0,#4] - str r12,[r0,#8] - ldr r4,[r0,#0x40] - ldr r12,[r0,#0x44] - add r4,r4,r12 - str r4,[r0,#4] - str lr,[r0,#0x40] - ldr lr,[r0,#0x48] - add r12,lr,r12 - str r12,[r0,#0xc] - ldr r12,[r0,#0x4c] - add lr,r12,lr - str lr,[r0,#0x14] - ldr lr,[r0,#0x24] - str lr,[r0,#0x48] - ldr lr,[r0,#0x50] - add r12,lr,r12 - str r12,[r0,#0x1c] - ldr r12,[r0,#0x54] - str r1,[r0,#0x50] - add lr,r12,lr - str lr,[r0,#0x24] - ldr r1,[r0,#0x58] - ldr r4,[r0,#0x2c] - ldr lr,[r0,#0x34] - add r12,r1,r12 - str r12,[r0,#0x2c] - ldr r12,[r0,#0x5c] - add r1,r12,r1 - str r1,[r0,#0x34] - str r4,[r0,#0x58] - ldr r1,[r0,#0x60] - ldr r4,[r0,#0x3c] - add r12,r1,r12 - str r12,[r0,#0x3c] - ldr r12,[r0,#0x64] - add r1,r12,r1 - str r1,[r0,#0x44] - ldr r1,[r0,#0x68] - add r12,r1,r12 - str r12,[r0,#0x4c] - ldr r12,[r0,#0x6c] - add r1,r12,r1 - str r1,[r0,#0x54] - ldr r1,[r0,#0x70] - str r3,[r0,#0x60] - add r12,r1,r12 - str r12,[r0,#0x5c] - ldr r3,[r0,#0x74] - add r1,r3,r1 - str r1,[r0,#0x64] - str lr,[r0,#0x68] - ldr r1,[r0,#0x78] - str r2,[r0,#0x70] - add r3,r1,r3 - str r3,[r0,#0x6c] - ldr r2,[r0,#0x7c] - add r1,r1,r2 - str r1,[r0,#0x74] - str r4,[r0,#0x78] - ldmfd sp!,{r4,pc} - - -@------------------------------------------------------------------------------ - -.global pvmp3_split - - -pvmp3_split: - stmfd sp!,{r4,r5,lr} - adr r1,constant16 - ldr r2,[r1] - add r2,r1 - sub r1,r0,#4 - mov r3,#3 -loop1: - ldr r12,[r0] - ldr lr,[r1] - ldr r4,[r2],#-4 - add r5,lr,r12 - sub r12,lr,r12 - smull r12,lr,r4,r12 - str r5,[r1],#-4 - mov r12,r12,lsr #27 - add r12,r12,lr,lsl #5 - str r12,[r0],#4 - ldr r12,[r0] - ldr lr,[r1] - ldr r4,[r2],#-4 - add r5,lr,r12 - sub r12,lr,r12 - smull r12,lr,r4,r12 - str r5,[r1],#-4 - mov r12,r12,lsr #27 - add r12,r12,lr,lsl #5 - str r12,[r0],#4 - subs r3,r3,#1 - bne loop1 - mov r3,#5 -loop2: - ldr r12,[r0] - ldr lr,[r1] - ldr r4,[r2],#-4 - add r5,lr,r12 - sub r12,lr,r12 - mov r12,r12,lsl #1 - smull lr,r12,r4,r12 - str r5,[r1],#-4 - str r12,[r0],#4 - ldr r12,[r0] - ldr lr,[r1] - ldr r4,[r2],#-4 - add r5,lr,r12 - sub r12,lr,r12 - mov r12,r12,lsl #1 - smull lr,r12,r4,r12 - str r5,[r1],#-4 - str r12,[r0],#4 - subs r3,r3,#1 - bne loop2 - ldmfd sp!,{r4,r5,pc} -constant1: - .word 0x404f4680 -constant2: - .word 0x519e4e00 -constant3: - .word 0x4140fb80 -constant4: - .word 0x42e13c00 -constant5: - .word 0x6e3c9300 -constant6: - .word 0x4cf8de80 -constant7: - .word 0x48919f80 -constant8: - .word 0x43e22480 -constant9: - .word 0x73326b80 -constant10: - .word 0x52cb0e80 -constant11: - .word 0x64e24000 -constant12: - .word 0x52036780 -constant13: - .word 0x4545ea00 -constant14: - .word 0x539eba80 -constant15: - .word 0x5a827980 -constant16: - .word (CosTable_dct32 + 60)-constant16 - - - -CosTable_dct32: - .word 0x4013c280 - .word 0x40b34580 - .word 0x41fa2d80 - .word 0x43f93400 - .word 0x46cc1c00 - .word 0x4a9d9d00 - .word 0x4fae3700 - .word 0x56601e80 - .word 0x5f4cf700 - .word 0x6b6fcf00 - .word 0x07c7d1d8 - .word 0x095b0350 - .word 0x0bdf91b0 - .word 0x107655e0 - .word 0x1b42c840 - .word 0x51852300 - - diff --git a/external/android-specific/pvmp3dec/src/asm/pvmp3_dct_9_gcc.s b/external/android-specific/pvmp3dec/src/asm/pvmp3_dct_9_gcc.s deleted file mode 100644 index 618c50e..0000000 --- a/external/android-specific/pvmp3dec/src/asm/pvmp3_dct_9_gcc.s +++ /dev/null @@ -1,193 +0,0 @@ -@ ------------------------------------------------------------------ -@ Copyright (C) 1998-2009 PacketVideo -@ -@ Licensed under the Apache License, Version 2.0 (the "License"); -@ you may not use this file except in compliance with the License. -@ You may obtain a copy of the License at -@ -@ http://www.apache.org/licenses/LICENSE-2.0 -@ -@ Unless required by applicable law or agreed to in writing, software -@ distributed under the License is distributed on an "AS IS" BASIS, -@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -@ express or implied. -@ See the License for the specific language governing permissions -@ and limitations under the License. -@ ------------------------------------------------------------------- - -@ -@ -@ Filename: pvmp3_dct_9_gcc.s -@ -@------------------------------------------------------------------------------ -@ REVISION HISTORY -@ -@ -@ Who: Date: MM/DD/YYYY -@ Description: -@ -@------------------------------------------------------------------------------ - -.arm - -.align 4 - -.text - - -@------------------------------------------------------------------------------ - -.global pvmp3_dct_9 - -pvmp3_dct_9: - stmfd sp!,{r4-r11,lr} - ldr r2, [r0, #0x20] - ldr r3, [r0, #0] - ldr r12,[r0, #4] - add r1,r2,r3 - sub lr,r2,r3 - ldr r3,[r0, #0x1c] - ldr r4,[r0, #0x18] - add r2,r3,r12 - ldr r5,[r0,#8] - sub r3,r3,r12 - add r12,r4,r5 - sub r4,r4,r5 - ldr r5,[r0, #0x14] - ldr r7,[r0, #0xc] - ldr r9,[r0, #0x10] - add r6,r5,r7 - sub r5,r5,r7 - add r7,r1,r12 - add r8,r9,r2 - add r7,r7,r6 - add r10,r7,r8 - rsb r7,r8,r7,asr #1 - str r7,[r0, #0x18] - rsb r2,r9,r2,asr #1 - str r10,[r0,#0] - ldr r11,cos_2pi_9 - rsb r7,r2,#0 - - ldr r10,cos_4pi_9 - mov r9,r1,lsl #1 - mov r8,r7 - -@ vec[4] = fxp_mac32_Q32( vec[4], tmp0<<1, cos_2pi_9)@ - - smlal r1,r8,r11,r9 - ldr r11,cos_pi_9 - mov r1,r9 @@@@@@ !!!!!! - -@ vec[8] = fxp_mac32_Q32( vec[8], tmp0<<1, cos_4pi_9)@ - - smlal r1,r7,r10,r9 - - mov r1,r12,lsl #1 - - -@ vec[2] = fxp_mac32_Q32( vec[2], tmp0<<1, cos_pi_9)@ - - smlal r9,r2,r11,r9 - rsb r9,r10,#0 - ldr r11,cos_5pi_9 - - smlal r12,r2,r9,r1 - - - -@ vec[2] = fxp_mac32_Q32( vec[2], tmp2<<1, cos_5pi_9)@ - - ldr r9,cos_2pi_9 - mov r12,r1 @@@@@@ !!!!!! - smlal r12,r8,r11,r1 - - -@ vec[8] = fxp_mac32_Q32( vec[8], tmp2<<1, cos_2pi_9)@ - - smlal r1,r7,r9,r1 - mov r1,r6,lsl #1 - smlal r12,r7,r11,r1 - and r6,r10,r11,asr #14 - smlal r12,r8,r6,r1 - ldr r10,cos_11pi_18 - add r12,r11,r6 - smlal r1,r2,r12,r1 - ldr r9,cos_8pi_9 - str r2,[r0,#8] - mov r1,r5,lsl #1 - -@ vec[8] = fxp_mac32_Q32( vec[8], tmp3<<1, cos_8pi_9)@ - - smull r2,r6,r9,r1 - str r7,[r0,#0x20] - mov r2,r4,lsl #1 - ldr r7,cos_13pi_18 - smlal r12,r6,r10,r2 - - mov r3,r3,lsl #1 - -@ vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18)@ - - smlal r12,r6,r7,r3 - add r4,r5,r4 - mov r12,lr,lsl #1 - sub lr,r4,lr - ldr r7,cos_17pi_18 - str r8,[r0, #0x10] - ldr r4,cos_pi_6 - - mov lr,lr,lsl #1 - -@ vec[1] = fxp_mac32_Q32( vec[1], tmp8<<1, cos_17pi_18)@ - - smlal r8,r6,r7,r12 - -@ vec[3] = fxp_mul32_Q32((tmp5 + tmp6 - tmp8)<<1, cos_pi_6)@ - - smull r5,lr,r4,lr - str r6,[r0, #4] - str lr,[r0, #0xc] - - -@ vec[5] = fxp_mul32_Q32(tmp5<<1, cos_17pi_18)@ - smull r5,lr,r7,r1 - rsb r6,r9,#0 -@ vec[5] = fxp_mac32_Q32( vec[5], tmp6<<1, cos_7pi_18)@ - smlal r5,lr,r6,r2 -@ vec[5] = fxp_mac32_Q32( vec[5], tmp7<<1, cos_pi_6)@ - smlal r5,lr,r4,r3 -@ vec[5] = fxp_mac32_Q32( vec[5], tmp8<<1, cos_13pi_18)@ - smlal r5,lr,r10,r12 - str lr,[r0, #0x14] - rsb lr,r10,#0 - -@ vec[7] = fxp_mul32_Q32(tmp5<<1, cos_5pi_18)@ - smull r5,r1,lr,r1 -@ vec[7] = fxp_mac32_Q32( vec[7], tmp6<<1, cos_17pi_18)@ - smlal r2,r1,r7,r2 -@ vec[7] = fxp_mac32_Q32( vec[7], tmp7<<1, cos_pi_6)@ - smlal r3,r1,r4,r3 -@ vec[7] = fxp_mac32_Q32( vec[7], tmp8<<1, cos_11pi_18)@ - smlal r12,r1,r9,r12 - str r1,[r0, #0x1c] - ldmfd sp!,{r4-r11,pc} -cos_2pi_9: - .word 0x620dbe80 -cos_4pi_9: - .word 0x163a1a80 -cos_pi_9: - .word 0x7847d900 -cos_5pi_9: - .word 0x87b82700 -cos_8pi_9: - .word 0xd438af00 -cos_11pi_18: - .word 0xadb92280 -cos_13pi_18: - .word 0x91261480 -cos_17pi_18: - .word 0x81f1d200 -cos_pi_6: - .word 0x6ed9eb80 - diff --git a/external/android-specific/pvmp3dec/src/asm/pvmp3_mdct_18_gcc.s b/external/android-specific/pvmp3dec/src/asm/pvmp3_mdct_18_gcc.s deleted file mode 100644 index 575acd6..0000000 --- a/external/android-specific/pvmp3dec/src/asm/pvmp3_mdct_18_gcc.s +++ /dev/null @@ -1,357 +0,0 @@ -@ ------------------------------------------------------------------ -@ Copyright (C) 1998-2009 PacketVideo -@ -@ Licensed under the Apache License, Version 2.0 (the "License"); -@ you may not use this file except in compliance with the License. -@ You may obtain a copy of the License at -@ -@ http://www.apache.org/licenses/LICENSE-2.0 -@ -@ Unless required by applicable law or agreed to in writing, software -@ distributed under the License is distributed on an "AS IS" BASIS, -@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -@ express or implied. -@ See the License for the specific language governing permissions -@ and limitations under the License. -@ ------------------------------------------------------------------- - -@ -@ -@ Filename: pvmp3_dct_18_gcc.s -@ -@------------------------------------------------------------------------------ -@ REVISION HISTORY -@ -@ -@ Who: Date: MM/DD/YYYY -@ Description: -@ -@------------------------------------------------------------------------------ - -.arm - -.align 4 - -.text - -.extern pvmp3_dct_9 - -@------------------------------------------------------------------------------ - -.global pvmp3_mdct_18 - -pvmp3_mdct_18: - stmfd sp!,{r4-r11,lr} - mov r7,r2 - adr r2,constdata$1 - mov r6,r1 - add r3,r2,#0x24 - add r12,r3,#0x44 - add r1,r0,#0x44 - mov r5,r0 - -@ for ( i=9@ i!=0@ i--) -@ { - - mov r4,#9 -Loop_1: - -@ tmp = *(pt_vec) -@ tmp1 = *(pt_vec_o) - - ldr lr,[r0] @@ tmp == lr - ldr r8,[r3],#4 @@ tmp1 == r8 - -@ tmp = fxp_mul32_Q32( tmp<<1, *(pt_cos++ )) -@ tmp1 = fxp_mul32_Q27( tmp1, *(pt_cos_x--)) - - mov lr,lr,lsl #1 - smull r10,lr,r8,lr - ldr r8,[r12],#-4 - ldr r9,[r1] - subs r4,r4,#1 - smull r9,r10,r8,r9 - mov r8,r9,lsr #27 - add r8,r8,r10,lsl #5 - -@ *(pt_vec++) = tmp + tmp1 -@ *(pt_vec_o--) = fxp_mul32_Q28( (tmp - tmp1), *(pt_cos_split++)) - - add r9,lr,r8 - sub r8,lr,r8 - ldr lr,[r2],#4 - str r9,[r0],#4 - smull r8,r9,lr,r8 - mov lr,r8,lsr #28 - add lr,lr,r9,lsl #4 - str lr,[r1],#-4 - bne Loop_1 - -@ } - - mov r0,r5 @@ r0 = vec - bl pvmp3_dct_9 - add r0,r5,#0x24 @@ r0 = &vec[9] - bl pvmp3_dct_9 - - ldr r0,[r5,#0x20] - ldr r2,[r5,#0x40] - str r0,[r5,#0x40] - ldr r0,[r5,#0x1c] - ldr r3,[r5,#0x38] - str r0,[r5,#0x38] - ldr r1,[r5,#0x18] - ldr r0,[r5,#0x30] - str r1,[r5,#0x30] - ldr r12,[r5,#0x14] - ldr r1,[r5,#0x28] - str r12,[r5,#0x28] - ldr r12,[r5,#0x10] - str r12,[r5,#0x20] - ldr r12,[r5,#0xc] - str r12,[r5,#0x18] - ldr r12,[r5,#8] - str r12,[r5,#0x10] - ldr r12,[r5,#4] - str r12,[r5,#8] - ldr r12,[r5,#0x24] - sub r12,r12,r1 - str r12,[r5,#4] - ldr r12,[r5,#0x2c] - sub r1,r12,r1 - str r1,[r5,#0xc] - sub r1,r12,r0 - str r1,[r5,#0x14] - ldr r1,[r5,#0x34] - sub r0,r1,r0 - str r0,[r5,#0x1c] - sub r0,r1,r3 - str r0,[r5,#0x24] - ldr r1,[r5,#0x3c] - sub r3,r1,r3 - sub r1,r1,r2 - str r1,[r5,#0x34] - str r3,[r5,#0x2c] - ldr r1,[r5,#0x44] - sub r1,r1,r2 - str r1,[r5,#0x3c] - ldr r12,[r5,#0] - -Loop_2: - add r1,r5,r4,lsl #2 - ldr r2,[r1,#0x28] - ldr r3,[r6,r4,lsl #2] - add r0,r0,r2 - str r0,[r1,#0x28] - ldr lr,[r7,r4,lsl #2] - ldr r1,[r1,#4] - smlal r0,r3,lr,r0 - mov r0,r2 - add r2,r12,r1 - rsb r2,r2,#0 - str r3,[r5,r4,lsl #2] - str r2,[r6,r4,lsl #2] - add r4,r4,#1 - cmp r4,#6 - mov r12,r1 - - blt Loop_2 - - ldr r1,[r5,#0x40] - ldr r2,[r6,#0x18] - add r3,r0,r1 - str r3,[r5,#0x40] - ldr lr,[r7,r4,lsl #2] - mov r3,r3,lsl #1 - ldr r0,[r5,#0x1c] - smlal r3,r2,lr,r3 - add r3,r12,r0 - str r2,[r5,#0x18] - ldr r2,[r6,#0x1c] - rsb r3,r3,#0 - str r3,[r6,#0x18] - ldr r3,[r5,#0x20] - add r0,r3,r0 - rsb r0,r0,#0 - str r0,[r6,#0x1c] - ldr r3,[r5,#0x44] - ldr r0,[r6,#0x20] - add r3,r3,r1 - mov r1,r2 - ldr r10,[r7,#0x1c] - mov r2,r3,lsl #1 - smlal r12,r1,r10,r2 - str r1,[r5,#0x1c] - ldr r1,[r5,#0x20] - ldr r3,[r5,#0x24] - add r1,r1,r3 - rsb r1,r1,#0 - str r1,[r6,#0x20] - ldr r1,[r5,#0x44] - ldr r3,[r7,#0x20] - mov r1,r1,lsl #1 - smlal r12,r0,r3,r1 - ldr lr,[r7,#0x24] - ldr r3,[r6,#0x24] - str r0,[r5,#0x20] - smlal r1,r3,lr,r1 - ldr r0,[r6,#0x40] - ldr r12,[r6,#0x44] - str r3,[r5,#0x24] - ldr r1,[r5,#0x28] - ldr r3,[r7,#0x44] - mov r1,r1,lsl #1 - smlal r1,r12,r3,r1 - ldr r1,[r5,#0x40] - str r12,[r5,#0x44] - rsb r8,r1,#0 - str r8,[r5,#0x28] - ldr r1,[r5,#0x2c] - ldr r3,[r7,#0x40] - mov r1,r1,lsl #1 - smlal r1,r0,r3,r1 - str r0,[r5,#0x40] - ldr r0,[r5,#0x3c] - ldr r1,[r6,#0x38] - ldr r3,[r6,#0x3c] - rsb r9,r0,#0 - str r9,[r5,#0x2c] - ldr r0,[r5,#0x30] - ldr r12,[r7,#0x3c] - mov r0,r0,lsl #1 - smlal r0,r3,r12,r0 - str r3,[r5,#0x3c] - ldr r0,[r5,#0x38] - rsb r0,r0,#0 - str r0,[r5,#0x30] - ldr r3,[r5,#0x34] - ldr r12,[r7,#0x38] - mov r3,r3,lsl #1 - smlal r3,r1,r12,r3 - mov r0,r0,lsl #1 - str r1,[r5,#0x38] - ldr r4,[r7,#0x34] - ldr r1,[r6,#0x34] - ldr r3,[r6,#0x30] - smlal r0,r1,r4,r0 - ldr r12,[r6,#0x2c] - ldr lr,[r6,#0x28] - str r1,[r5,#0x34] - ldr r1,[r7,#0x30] - mov r0,r9,lsl #1 - smlal r0,r3,r1,r0 - mov r0,r8,lsl #1 - ldr r1,[r7,#0x2c] - str r3,[r5,#0x30] - smlal r0,r12,r1,r0 - ldr r0,[r7,#0x28] - str r12,[r5,#0x2c] - smlal r2,lr,r0,r2 - str lr,[r5,#0x28] - ldr r1,[r6,#4] - ldr r12,[r7,#0x48] - mov r2,r1,lsl #1 - ldr r1,[r6,#0x20] - ldr r0,[r6,#0] - mov r1,r1,lsl #1 - smull r4,lr,r12,r1 - ldr r3,[r6,#0x1c] - str lr,[r6,#0] - ldr r12,[r7,#0x4c] - mov r3,r3,lsl #1 - smull r4,lr,r12,r3 - mov r0,r0,lsl #1 - ldr r12,[r7,#0x64] - str lr,[r6,#4] - smull r4,lr,r12,r2 - ldr r12,[r7,#0x68] - str lr,[r6,#0x1c] - smull r4,lr,r12,r0 - ldr r12,[r7,#0x6c] - str lr,[r6,#0x20] - smull lr,r0,r12,r0 - ldr r12,[r7,#0x70] - str r0,[r6,#0x24] - smull r0,r2,r12,r2 - ldr r0,[r7,#0x88] - str r2,[r6,#0x28] - smull r3,r2,r0,r3 - ldr r0,[r7,#0x8c] - str r2,[r6,#0x40] - smull r2,r1,r0,r1 - str r1,[r6,#0x44] - ldr r0,[r6,#0x18] - ldr lr,[r7,#0x50] - mov r1,r0,lsl #1 - ldr r0,[r6,#0x14] - smull r5,r4,lr,r1 - mov r3,r0,lsl #1 - ldr r0,[r6,#0x10] - mov r12,r0,lsl #1 - ldr r0,[r6,#0xc] - mov r2,r0,lsl #1 - ldr r0,[r6,#8] - str r4,[r6,#8] - ldr lr,[r7,#0x54] - mov r0,r0,lsl #1 - smull r5,r4,lr,r3 - ldr lr,[r7,#0x58] - str r4,[r6,#0xc] - smull r5,r4,lr,r12 - ldr lr,[r7,#0x5c] - str r4,[r6,#0x10] - smull r5,r4,lr,r2 - ldr lr,[r7,#0x60] - str r4,[r6,#0x14] - smull r5,r4,lr,r0 - ldr lr,[r7,#0x74] - str r4,[r6,#0x18] - smull r4,r0,lr,r0 - ldr lr,[r7,#0x78] - str r0,[r6,#0x2c] - smull r0,r2,lr,r2 - ldr r0,[r7,#0x7c] - str r2,[r6,#0x30] - smull r12,r2,r0,r12 - ldr r0,[r7,#0x80] - str r2,[r6,#0x34] - smull r3,r2,r0,r3 - ldr r0,[r7,#0x84] - str r2,[r6,#0x38] - smull r2,r1,r0,r1 - str r1,[r6,#0x3c] - ldmfd sp!,{r4-r11,pc} - -@------------------------------------------------------------------------------ - -constdata$1: -cosTerms_dct18: - .word 0x0807d2b0 - .word 0x08483ee0 - .word 0x08d3b7d0 - .word 0x09c42570 - .word 0x0b504f30 - .word 0x0df29440 - .word 0x12edfb20 - .word 0x1ee8dd40 - .word 0x5bca2a00 -cosTerms_1_ov_cos_phi: - .word 0x400f9c00 - .word 0x408d6080 - .word 0x418dcb80 - .word 0x431b1a00 - .word 0x4545ea00 - .word 0x48270680 - .word 0x4be25480 - .word 0x50ab9480 - .word 0x56ce4d80 - .word 0x05ebb630 - .word 0x06921a98 - .word 0x0771d3a8 - .word 0x08a9a830 - .word 0x0a73d750 - .word 0x0d4d5260 - .word 0x127b1ca0 - .word 0x1ea52b40 - .word 0x5bb3cc80 - diff --git a/external/android-specific/pvmp3dec/src/asm/pvmp3_polyphase_filter_window_gcc.s b/external/android-specific/pvmp3dec/src/asm/pvmp3_polyphase_filter_window_gcc.s deleted file mode 100644 index 1140ed7..0000000 --- a/external/android-specific/pvmp3dec/src/asm/pvmp3_polyphase_filter_window_gcc.s +++ /dev/null @@ -1,233 +0,0 @@ -@ ------------------------------------------------------------------ -@ Copyright (C) 1998-2009 PacketVideo -@ -@ Licensed under the Apache License, Version 2.0 (the "License"); -@ you may not use this file except in compliance with the License. -@ You may obtain a copy of the License at -@ -@ http://www.apache.org/licenses/LICENSE-2.0 -@ -@ Unless required by applicable law or agreed to in writing, software -@ distributed under the License is distributed on an "AS IS" BASIS, -@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -@ express or implied. -@ See the License for the specific language governing permissions -@ and limitations under the License. -@ ------------------------------------------------------------------- - -@ -@ -@ Filename: pvmp3_polyphase_filter_window.s -@ -@------------------------------------------------------------------------------ -@ REVISION HISTORY -@ -@ -@ Who: Date: MM/DD/YYYY -@ Description: -@ -@------------------------------------------------------------------------------ - -.arm - -.align 4 - -.text - -.extern pqmfSynthWin -.hidden pqmfSynthWin - - - -@------------------------------------------------------------------------------ - -.global pvmp3_polyphase_filter_window - -pvmp3_polyphase_filter_window: - stmfd sp!,{r0-r2,r4-r11,lr} - - sub sp,sp,#4 - adr r2,PolyPh_filter_coeff - ldr r1,[r2] - add r1,r2 - ldr r2,[sp,#0xc] - - sub r2,r2,#1 - mov r10,#1 - str r2,[sp] - -@ Accumulators r9, r11::> Initialization - -Loop_j: - mov r9, #0x20 - mov r11, #0x20 - mov r4, #0x10 -Loop_i: - add r2,r4,r10 - add r3,r0,r2,lsl #2 - sub r2,r4,r10 - ldr r5,[r3] - ldr lr,[r1] - add r12,r0,r2,lsl #2 - ldr r6,[r12,#0x780] - smlal r2,r9,lr,r5 - smlal r2,r11,lr,r6 - ldr r2,[r1,#4] - ldr r7,[r12,#0x80] - smlal r5,r11,r2,r5 - smull r6,r5,r2,r6 - sub r9,r9,r5 - ldr r5,[r1,#8] - ldr r8,[r3,#0x700] - add r4,r4,#0x200 - smlal r6,r9,r5,r7 - smull r6,r2,r5,r8 - ldr r5,[r1,#0xc] - sub r11,r11,r2 - smlal r8,r9,r5,r8 - smlal r7,r11,r5,r7 - ldr r5,[r3,#0x100] - ldr r2,[r1,#0x10] - ldr r6,[r12,#0x680] - smlal lr,r9,r2,r5 - smlal lr,r11,r2,r6 - ldr r2,[r1,#0x14] - ldr r7,[r12,#0x180] - smlal r5,r11,r2,r5 - smull r6,r5,r2,r6 - ldr r6,[r1,#0x18] - ldr r8,[r3,#0x600] - sub r9,r9,r5 - smlal r5,r9,r6,r7 - smull r2,r5,r6,r8 - ldr r6,[r1,#0x1c] - sub r11,r11,r5 - smlal r8,r9,r6,r8 - ldr r2,[r1,#0x20] - ldr r5,[r3,#0x200] - smlal r7,r11,r6,r7 - ldr r6,[r12,#0x580] - smlal lr,r9,r2,r5 - smlal lr,r11,r2,r6 - ldr r2,[r1,#0x24] - ldr r7,[r12,#0x280] - smlal r5,r11,r2,r5 - smull r6,r5,r2,r6 - ldr r6,[r1,#0x28] - ldr r8,[r3,#0x500] - sub r9,r9,r5 - smlal r5,r9,r6,r7 - smull r2,r5,r6,r8 - ldr r6,[r1,#0x2c] - sub r11,r11,r5 - - smlal r8,r9,r6,r8 - smlal r7,r11,r6,r7 - ldr r5,[r3,#0x300] - ldr r8,[r1,#0x30] - ldr r6,[r12,#0x480] - smlal r7,r9,r8,r5 - smlal r7,r11,r8,r6 - ldr r8,[r1,#0x34] - ldr r12,[r12,#0x380] - smlal r5,r11,r8,r5 - smull r6,r5,r8,r6 - ldr r6,[r1,#0x38] - - - ldr r3,[r3,#0x400] - sub r9,r9,r5 - smlal r7,r9,r6,r12 - smull r8,r7,r6,r3 - cmp r4,#0x210 - sub r11,r11,r7 - - ldr r2,[r1,#0x3c] - add r1,r1,#0x40 - smlal r3,r9,r2,r3 - smlal r12,r11,r2,r12 - - blt Loop_i - - mov r3,r9, asr #6 - mov r4,r3, asr #15 - teq r4,r3, asr #31 - ldr r12,LOW_16BITS - ldr r2,[sp] - eorne r3,r12,r3,asr #31 - ldr r4,[sp,#8] - mov r2,r10,lsl r2 - add r4,r4,r2,lsl #1 - strh r3,[r4] - - mov r3,r11,asr #6 - mov r4,r3,asr #15 - teq r4,r3,asr #31 - eorne r3,r12,r3,asr #31 - ldr r12,[sp,#0xc] - ldr r11,[sp,#8] - rsb r2,r2,r12,lsl #5 - add r2,r11,r2,lsl #1 - strh r3,[r2] - - add r10,r10,#1 - cmp r10,#0x10 - blt Loop_j - -@ Accumulators r4, r5 Initialization - - mov r4,#0x20 - mov r5,#0x20 - mov r3,#0x10 -PolyPh_filter_loop2: - add r2,r0,r3,lsl #2 - ldr r12,[r2] - ldr r8,[r1] - ldr r6,[r2,#0x80] - smlal r12,r4,r8,r12 - ldr r12,[r1,#4] - ldr r7,[r2,#0x40] - smlal r6,r4,r12,r6 - - ldr r12,[r1,#8] - ldr r6,[r2,#0x180] - smlal r7,r5,r12,r7 - ldr r12,[r2,#0x100] - ldr r7,[r1,#0xc] - ldr r2,[r2,#0x140] - smlal r12,r4,r7,r12 - ldr r12,[r1,#0x10] - add r3,r3,#0x80 - smlal r6,r4,r12,r6 - ldr r6,[r1,#0x14] - cmp r3,#0x210 - smlal r2,r5,r6,r2 - add r1,r1,#0x18 - - blt PolyPh_filter_loop2 - mov r0,r4,asr #6 - mov r2,r0,asr #15 - teq r2,r0,asr #31 - ldrne r12,LOW_16BITS - ldr r1,[sp,#8] - eorne r0,r12,r0,asr #31 - strh r0,[r1,#0] - mov r0,r5,asr #6 - mov r2,r0,asr #15 - teq r2,r0,asr #31 - ldrne r12,LOW_16BITS - ldr r2,[sp] - mov r1,#0x10 - eorne r0,r12,r0,asr #31 - ldr r12,[sp,#8] - mov r1,r1,lsl r2 - add r1,r12,r1,lsl #1 - strh r0,[r1] - add sp,sp,#0x10 - ldmfd sp!,{r4-r11,pc} - -PolyPh_filter_coeff: - .word pqmfSynthWin-PolyPh_filter_coeff -LOW_16BITS: - .word 0x00007fff - diff --git a/external/android-specific/pvmp3dec/src/mp3_mem_funcs.h b/external/android-specific/pvmp3dec/src/mp3_mem_funcs.h deleted file mode 100644 index 46e8022..0000000 --- a/external/android-specific/pvmp3dec/src/mp3_mem_funcs.h +++ /dev/null @@ -1,81 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: mp3_mem_funcs.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: ------------------------------------------------------------------------------- - - ----------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ - -#ifndef MP3_MEM_FUNCS_H -#define MP3_MEM_FUNCS_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include - -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES AND SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - - -#define pv_memset(to, c, n) memset(to, c, n) - - -#define pv_memcpy(to, from, n) memcpy(to, from, n) -#define pv_memmove(to, from, n) memmove(to, from, n) -#define pv_memcmp(p, q, n) memcmp(p, q, n) - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - - -#endif diff --git a/external/android-specific/pvmp3dec/src/pv_mp3_huffman.h b/external/android-specific/pvmp3dec/src/pv_mp3_huffman.h deleted file mode 100644 index 31102ea..0000000 --- a/external/android-specific/pvmp3dec/src/pv_mp3_huffman.h +++ /dev/null @@ -1,115 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pv_mp3_huffman.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- -*/ -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ - -#ifndef PV_MP3_HUFFMAN_H -#define PV_MP3_HUFFMAN_H - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "s_mp3bits.h" -#include "s_tmp3dec_file.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES AND SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - int32 pvmp3_huffman_parsing(int32 is[SUBBANDS_NUMBER*FILTERBANK_BANDS], - granuleInfo *grInfo, - tmp3dec_file *pVars, - int32 part2_start, - mp3Header *info); - - - void pvmp3_huffman_quad_decoding(struct huffcodetab *h, - int32 *is, - tmp3Bits *pMainData); - - void pvmp3_huffman_pair_decoding(struct huffcodetab *h, - int32 *is, - tmp3Bits *pMainData); - - - void pvmp3_huffman_pair_decoding_linbits(struct huffcodetab *h, - int32 *is, - tmp3Bits *pMainData); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - - - diff --git a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op.h b/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op.h deleted file mode 100644 index f14e2de..0000000 --- a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op.h +++ /dev/null @@ -1,84 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pv_mp3dec_fxd_op.h - - Date: 09/21/2007 - - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This file select the associated fixed point functions with the OS/ARCH. - - - ------------------------------------------------------------------------------- -*/ - -#ifndef PV_MP3DEC_FXD_OP_H -#define PV_MP3DEC_FXD_OP_H - -#include "pvmp3_audio_type_defs.h" - - -#ifdef __cplusplus -extern "C" -{ -#endif - - -#if (defined(PV_ARM_V5)||defined(PV_ARM_V4)) - -#include "pv_mp3dec_fxd_op_arm.h" - -#elif (defined(PV_ARM_GCC_V5)||defined(PV_ARM_GCC_V4)) - -#include "pv_mp3dec_fxd_op_arm_gcc.h" - -#elif (defined(PV_ARM_MSC_EVC_V5)||defined(PV_ARM_MSC_EVC_V4)) - -#include "pv_mp3dec_fxd_op_msc_evc.h" - -#else - -#ifndef C_EQUIVALENT -#define C_EQUIVALENT -#endif - -#include "pv_mp3dec_fxd_op_c_equivalent.h" - -#endif - - -#ifdef __cplusplus -} -#endif - - - -#endif /* PV_MP3DEC_FXD_OP_H */ diff --git a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_arm.h b/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_arm.h deleted file mode 100644 index 76a8229..0000000 --- a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_arm.h +++ /dev/null @@ -1,203 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Pathname: ./cpp/include/pv_mp3dec_fxd_op_arm.h - - Date: 08/20/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This file select the associated fixed point functions with the OS/ARCH. - - ------------------------------------------------------------------------------- -*/ - -#ifndef PV_MP3DEC_FXD_OP_ARM -#define PV_MP3DEC_FXD_OP_ARM - - -#ifdef __cplusplus -extern "C" -{ -#endif - -#include "pvmp3_audio_type_defs.h" - - -#if (defined(PV_ARM_V5)||defined(PV_ARM_V4)) - - - __inline Int32 fxp_mul32_Q30(const Int32 L_var1, const Int32 L_var2) - { - - Int32 result64_hi; - Int32 result64_lo; - __asm - { - smull result64_lo, result64_hi, L_var2, L_var1 - mov result64_lo, result64_lo, lsr #30 - add result64_hi, result64_lo, result64_hi, asl #2 - } - return (result64_hi); - } - - __inline Int32 fxp_mac32_Q30(const Int32 L_var1, const Int32 L_var2, Int32 L_add) - { - Int32 result64_hi; - Int32 result64_lo; - __asm - { - smull result64_lo, result64_hi, L_var2, L_var1 - add L_add, L_add, result64_hi, asl #2 - add L_add, L_add, result64_lo, lsr #30 - } - return (L_add); - } - - - -#define Qfmt_31(a) (Int32)(a*0x7FFFFFFF + (a>=0?0.5F:-0.5F)) - - - - __inline Int32 fxp_mul32_Q32(Int32 L_var1, const Int32 L_var2) - { - Int32 result64_hi; - __asm - { - smull L_var1, result64_hi, L_var2, L_var1 - } - return (result64_hi); - } - - __inline Int32 fxp_mul32_Q28(const Int32 L_var1, const Int32 L_var2) - { - - Int32 result64_hi; - Int32 result64_lo; - __asm - { - smull result64_lo, result64_hi, L_var2, L_var1 - mov result64_lo, result64_lo, lsr #28 - add result64_hi, result64_lo, result64_hi, asl #4 - } - return (result64_hi); - } - - - __inline Int32 fxp_mul32_Q27(const Int32 L_var1, const Int32 L_var2) - { - - Int32 result64_hi; - Int32 result64_lo; - __asm - { - smull result64_lo, result64_hi, L_var2, L_var1 - mov result64_lo, result64_lo, lsr #27 - add result64_hi, result64_lo, result64_hi, asl #5 - } - return (result64_hi); - } - - - __inline Int32 fxp_mul32_Q26(Int32 L_var1, Int32 L_var2) - { - - Int32 result64_hi; - Int32 result64_lo; - __asm - { - smull result64_lo, result64_hi, L_var2, L_var1 - mov result64_lo, result64_lo, lsr #26 - add result64_hi, result64_lo, result64_hi, asl #6 - } - return (result64_hi); - } - - - - __inline Int32 fxp_mac32_Q32(Int32 L_add, Int32 L_var1, const Int32 L_var2) - { - __asm - { - smlal L_var1, L_add, L_var2, L_var1 - } - return L_add; - } - - - __inline Int32 fxp_msb32_Q32(Int32 L_sub, Int32 L_var1, Int32 L_var2) - { - - __asm - { - smull L_var2, L_var1, L_var2, L_var1 - sub L_sub, L_sub, L_var1 - } - return L_sub; - } - - - __inline Int32 fxp_mul32_Q29(const Int32 L_var1, const Int32 L_var2) - { - Int32 result64_hi; - Int32 result64_lo; - __asm - { - smull result64_lo, result64_hi, L_var2, L_var1 - mov result64_lo, result64_lo, lsr #29 - add result64_hi, result64_lo, result64_hi, asl #3 - } - return (result64_hi); - } - - - __inline int32 pv_abs(int32 a) - { - Int32 b; - /* - b = a - (a<0); - a = b ^ sign(b) - */ - __asm - { - sub b, a, a, lsr #31 - eor a, b, b, asr #31 - } - return (a); - } - -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* PV_MP3DEC_FXD_OP_ARM */ - diff --git a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_arm_gcc.h b/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_arm_gcc.h deleted file mode 100644 index 71fbd20..0000000 --- a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_arm_gcc.h +++ /dev/null @@ -1,252 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Pathname: ./cpp/include/pv_mp3dec_fxd_op_arm_gcc.h - - Date: 08/20/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This file select the associated fixed point functions with the OS/ARCH. - - ------------------------------------------------------------------------------- -*/ - -#ifndef PV_MP3DEC_FXD_OP_ARM_GCC_H -#define PV_MP3DEC_FXD_OP_ARM_GCC_H - - -#ifdef __cplusplus -extern "C" -{ -#endif - -#include "pvmp3_audio_type_defs.h" - - -#if (defined(PV_ARM_GCC_V5)||defined(PV_ARM_GCC_V4)) - -#define Qfmt_31(a) (int32)(a*0x7FFFFFFF + (a>=0?0.5F:-0.5F)) - -#define Qfmt15(x) (Int16)(x*((int32)1<<15) + (x>=0?0.5F:-0.5F)) - - static inline int32 fxp_mul32_Q30(const int32 a, const int32 b) - { - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - asm volatile("smull %1, %0, %2, %3\n\t" - "mov %1, %1, lsr #30\n\t" - "add %0, %1, %0, asl #2" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb)); - return (result64_hi); - } - - - static inline int32 fxp_mac32_Q30(const int32 a, const int32 b, int32 L_add) -{ - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - register int32 rc = (int32)L_add; - - asm volatile("smull %1, %0, %2, %3\n\t" - "add %4, %4, %0, asl #2\n\t" - "add %0, %4, %1, lsr #30" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb), - "r"(rc)); - - return (result64_hi); - } - - - - static inline int32 fxp_mul32_Q32(const int32 a, const int32 b) -{ - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - asm volatile( - "smull %1, %0, %2, %3" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb)); - - return (result64_hi); - } - - - static inline int32 fxp_mul32_Q29(const int32 a, const int32 b) -{ - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - asm volatile("smull %1, %0, %2, %3\n\t" - "mov %1, %1, lsr #29\n\t" - "add %0, %1, %0, asl #3" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb)); - return (result64_hi); - - } - - static inline int32 fxp_mul32_Q28(const int32 a, const int32 b) -{ - - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - asm volatile("smull %1, %0, %2, %3\n\t" - "mov %1, %1, lsr #28\n\t" - "add %0, %1, %0, asl #4" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb)); - return (result64_hi); - - } - - - static inline int32 fxp_mul32_Q27(const int32 a, const int32 b) -{ - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - asm volatile("smull %1, %0, %2, %3\n\t" - "mov %1, %1, lsr #27\n\t" - "add %0, %1, %0, asl #5" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb)); - return (result64_hi); - - } - - - static inline int32 fxp_mul32_Q26(const int32 a, const int32 b) -{ - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - asm volatile("smull %1, %0, %2, %3\n\t" - "mov %1, %1, lsr #26\n\t" - "add %0, %1, %0, asl #6" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb)); - return (result64_hi); - - } - - - - static inline int32 fxp_mac32_Q32(int32 L_add, const int32 a, const int32 b) -{ - - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - register int32 rc = (int32)L_add; - - asm volatile("smull %1, %0, %2, %3\n\t" - "add %0, %0, %4" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb), - "r"(rc)); - - return (result64_hi); - } - - static inline int32 fxp_msb32_Q32(int32 L_sub, const int32 a, const int32 b) -{ - int32 result64_hi; - int32 result64_lo; - register int32 ra = (int32)a; - register int32 rb = (int32)b; - register int32 rc = (int32)L_sub; - - asm volatile("smull %1, %0, %2, %3\n\t" - "sub %0, %4, %0" - : "=&r*i"(result64_hi), - "=&r*i"(result64_lo) - : "r"(ra), - "r"(rb), - "r"(rc)); - - - return (result64_hi); - } - - - __inline int32 pv_abs(int32 x) -{ - register int32 z; - register int32 y; - register int32 ra = x; - asm volatile( - "sub %0, %2, %2, lsr #31\n\t" - "eor %1, %0, %0, asr #31" - : "=&r*i"(z), - "=&r*i"(y) - : "r"(ra)); - - return (y); - } - - -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* PV_MP3DEC_FXD_OP_ARM_GCC_H */ - diff --git a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_c_equivalent.h b/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_c_equivalent.h deleted file mode 100644 index ba43820..0000000 --- a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_c_equivalent.h +++ /dev/null @@ -1,123 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Pathname: ./cpp/include/pv_mp3dec_fxd_op_c_equivalent.h - - Date: 12/06/2005 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -#ifndef PV_MP3DEC_FXD_OP_C_EQUIVALENT -#define PV_MP3DEC_FXD_OP_C_EQUIVALENT - - -#ifdef __cplusplus -extern "C" -{ -#endif - -#include "pvmp3_audio_type_defs.h" -#define Qfmt_31(a) (Int32)((float)a*0x7FFFFFFF) - -#define Qfmt15(x) (Int16)(x*((Int32)1<<15) + (x>=0?0.5F:-0.5F)) - - - - __inline int32 pv_abs(int32 a) - { - int32 b = (a < 0) ? -a : a; - return b; - } - - - - - __inline Int32 fxp_mul32_Q30(const Int32 a, const Int32 b) - { - return (Int32)(((int64)(a) * b) >> 30); - } - - __inline Int32 fxp_mac32_Q30(const Int32 a, const Int32 b, Int32 L_add) - { - return (L_add + (Int32)(((int64)(a) * b) >> 30)); - } - - __inline Int32 fxp_mul32_Q32(const Int32 a, const Int32 b) - { - return (Int32)(((int64)(a) * b) >> 32); - } - - - __inline Int32 fxp_mul32_Q28(const Int32 a, const Int32 b) - { - return (Int32)(((int64)(a) * b) >> 28); - } - - __inline Int32 fxp_mul32_Q27(const Int32 a, const Int32 b) - { - return (Int32)(((int64)(a) * b) >> 27); - } - - __inline Int32 fxp_mul32_Q26(const Int32 a, const Int32 b) - { - return (Int32)(((int64)(a) * b) >> 26); - } - - - __inline Int32 fxp_mac32_Q32(Int32 L_add, const Int32 a, const Int32 b) - { - return (L_add + (Int32)(((int64)(a) * b) >> 32)); - } - - __inline Int32 fxp_msb32_Q32(Int32 L_sub, const Int32 a, const Int32 b) - { - return (L_sub - ((Int32)(((int64)(a) * b) >> 32))); - } - - - __inline Int32 fxp_mul32_Q29(const Int32 a, const Int32 b) - { - return (Int32)(((int64)(a) * b) >> 29); - } - - - - - - -#ifdef __cplusplus -} -#endif - - -#endif /* PV_MP3DEC_FXD_OP_C_EQUIVALENT */ - - - diff --git a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_msc_evc.h b/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_msc_evc.h deleted file mode 100644 index 271e6b7..0000000 --- a/external/android-specific/pvmp3dec/src/pv_mp3dec_fxd_op_msc_evc.h +++ /dev/null @@ -1,132 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Pathname: ./cpp/include/pv_mp3dec_fxd_op_msc_evc.h - - Date: 08/20/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This file select the associated fixed point functions with the OS/ARCH. - - ------------------------------------------------------------------------------- -*/ - -#ifndef PV_MP3DEC_FXD_OP_MSC_EVC_H -#define PV_MP3DEC_FXD_OP_MSC_EVC_H - - -#ifdef __cplusplus -extern "C" -{ -#endif - -#include "pvmp3_audio_type_defs.h" - - -#if (defined(PV_ARM_MSC_EVC_V5)||defined(PV_ARM_MSC_EVC_V4)) -#include "armintr.h" -#include "cmnintrin.h" - - - __inline int32 fxp_mul32_Q30(const int32 a, const int32 b) - { - return (int32)(((int64)(a) * b) >> 30); - } - - - __inline int32 fxp_mac32_Q30(const int32 a, const int32 b, int32 L_add) - { - return (L_add + (int32)(((int64)(a) * b) >> 30)); - } - - -#define Qfmt_31(a) (int32)(a*0x7FFFFFFF + (a>=0?0.5F:-0.5F)) - -#define Qfmt15(x) (Int16)(x*((int32)1<<15) + (x>=0?0.5F:-0.5F)) - -#define fxp_mul32_Q32( a, b) _MulHigh( b, a) - - - - __inline int32 fxp_mul32_Q28(const int32 a, const int32 b) - { - return (int32)(((int64)(a) * b) >> 28); - } - - - __inline int32 fxp_mul32_Q27(const int32 a, const int32 b) - { - return (int32)(((int64)(a) * b) >> 27); - } - - - - __inline int32 fxp_mul32_Q26(const int32 a, const int32 b) - { - return (int32)(((int64)(a) * b) >> 26); - } - - - __inline int32 fxp_mac32_Q32(int32 L_add, const int32 a, const int32 b) - { - return (L_add + _MulHigh(b, a)); - } - - - __inline int32 fxp_msb32_Q32(int32 L_sub, const int32 a, const int32 b) - { - return (L_sub - _MulHigh(b, a)); - } - - - - __inline int32 fxp_mul32_Q29(const int32 a, const int32 b) - { - return (int32)(((int64)(a) * b) >> 29); - } - - - - __inline int32 pv_abs(int32 a) - { - int32 b = (a < 0) ? -a : a; - return b; - } - - - -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* PV_MP3DEC_FXD_OP_MSC_EVC_H */ - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_alias_reduction.cpp b/external/android-specific/pvmp3dec/src/pvmp3_alias_reduction.cpp deleted file mode 100644 index 32c76c6..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_alias_reduction.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_alias_reduction.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - int32 *input_buffer, Ptr to fequency lines of current channel - struct gr_info_s *gr_info, structure with granuke information for the - input - mp3Header *info mp3 header information - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - Alias Reduction - - - - Alias reduction before processing by the IMDCT - - Csi + - >---------0---------0--------> - \ / - - Cai \ / - \ / - \ / - \ - / \ - Cai / \ - / \ + - >--------0---------0----------> - Csi + - - Aliasing Butterfly - Alias reduction is not applied to short blocks - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - 1 ci - csi = ---------------- csi = ---------------- - sqrt( 1 + (ci^2)) sqrt( 1 + (ci^2)) - - - ci = -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037 - - ------------------------------------------------------------------------------ -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_alias_reduction.h" -#include "pv_mp3dec_fxd_op.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define NUM_BUTTERFLIES 8 - -#define Q31_fmt(a) (int32(double(0x7FFFFFFF)*a)) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -const int32 c_signal [ NUM_BUTTERFLIES ] = -{ - - Q31_fmt(0.85749292571254f), Q31_fmt(0.88174199731771f), - Q31_fmt(0.94962864910273f), Q31_fmt(0.98331459249179f), - Q31_fmt(0.99551781606759f), Q31_fmt(0.99916055817815f), - Q31_fmt(0.99989919524445f), Q31_fmt(0.99999315507028f) - -}; - - -const int32 c_alias [ NUM_BUTTERFLIES ] = -{ - - Q31_fmt(-0.51449575542753f), Q31_fmt(-0.47173196856497f), - Q31_fmt(-0.31337745420390f), Q31_fmt(-0.18191319961098f), - Q31_fmt(-0.09457419252642f), Q31_fmt(-0.04096558288530f), - Q31_fmt(-0.01419856857247f), Q31_fmt(-0.00369997467376f) -}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_alias_reduction(int32 *input_buffer, /* Ptr to spec values of current channel */ - granuleInfo *gr_info, - int32 *used_freq_lines, - mp3Header *info) -{ - int32 *ptr1; - int32 *ptr2; - int32 *ptr3; - int32 *ptr4; - const int32 *ptr_csi; - const int32 *ptr_csa; - int32 sblim; - - int32 i, j; - - *used_freq_lines = fxp_mul32_Q32(*used_freq_lines << 16, (int32)(0x7FFFFFFF / (float)18 - 1.0f)) >> 15; - - - if (gr_info->window_switching_flag && gr_info->block_type == 2) - { - if (gr_info->mixed_block_flag) - { - sblim = ((info->version_x == MPEG_2_5) && (info->sampling_frequency == 2)) ? 3 : 1; - } - else - { - return; /* illegal parameter */ - } - } - else - { - sblim = *used_freq_lines + 1; - - if (sblim > SUBBANDS_NUMBER - 1) - { - sblim = SUBBANDS_NUMBER - 1; /* default */ - } - - } - - - ptr3 = &input_buffer[17]; - ptr4 = &input_buffer[18]; - ptr_csi = c_signal; - ptr_csa = c_alias; - - /* NUM_BUTTERFLIES (=8) butterflies between each pair of sub-bands*/ - - for (i = NUM_BUTTERFLIES >> 1; i != 0; i--) - { - int32 csi1 = *ptr_csi++; - int32 csi2 = *ptr_csi++; - int32 csa1 = *ptr_csa++; - int32 csa2 = *ptr_csa++; - - ptr1 = ptr3; - ptr3 -= 2; - ptr2 = ptr4; - ptr4 += 2; - - /* - * "sblim" alias-reduction operations between each - * pair of sub-bands - */ - - for (j = sblim >> 1; j != 0; j--) - { - int32 y = *ptr2; - int32 x = *ptr1 << 1; - *ptr1-- = fxp_msb32_Q32(fxp_mul32_Q32(x, csi1), y << 1, csa1); - *ptr2++ = fxp_mac32_Q32(fxp_mul32_Q32(y << 1, csi1), x, csa1); - y = *ptr2; - x = *ptr1 << 1; - *ptr1 = fxp_msb32_Q32(fxp_mul32_Q32(x, csi2), y << 1, csa2); - *ptr2 = fxp_mac32_Q32(fxp_mul32_Q32(y << 1, csi2), x, csa2); - ptr1 += 19; - ptr2 += 17; - y = *ptr2; - x = *ptr1 << 1; - *ptr1-- = fxp_msb32_Q32(fxp_mul32_Q32(x, csi1), y << 1, csa1); - *ptr2++ = fxp_mac32_Q32(fxp_mul32_Q32(y << 1, csi1), x, csa1); - y = *ptr2; - x = *ptr1 << 1; - *ptr1 = fxp_msb32_Q32(fxp_mul32_Q32(x, csi2), y << 1, csa2); - *ptr2 = fxp_mac32_Q32(fxp_mul32_Q32(y << 1, csi2), x, csa2); - ptr1 += 19; - ptr2 += 17; - - } - - if (sblim & 1) - { - int32 x = *ptr1 << 1; - int32 y = *ptr2; - *ptr1-- = fxp_msb32_Q32(fxp_mul32_Q32(x, csi1), y << 1, csa1); - *ptr2++ = fxp_mac32_Q32(fxp_mul32_Q32(y << 1, csi1), x, csa1); - - x = *ptr1 << 1; - y = *ptr2; - *ptr1 = fxp_msb32_Q32(fxp_mul32_Q32(x, csi2), y << 1, csa2); - *ptr2 = fxp_mac32_Q32(fxp_mul32_Q32(y << 1, csi2), x, csa2); - } - } - -} diff --git a/external/android-specific/pvmp3dec/src/pvmp3_alias_reduction.h b/external/android-specific/pvmp3dec/src/pvmp3_alias_reduction.h deleted file mode 100644 index 2292d5f..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_alias_reduction.h +++ /dev/null @@ -1,100 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_alias_reduction.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_ALIAS_REDUCTION_H -#define PVMP3_ALIAS_REDUCTION_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_alias_reduction(int32 *input_buffer, - granuleInfo *gr_info, - int32 *used_freq_lines, - mp3Header *info); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_crc.cpp b/external/android-specific/pvmp3dec/src/pvmp3_crc.cpp deleted file mode 100644 index 20d0d82..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_crc.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_crc.cpp - - Functions: - getbits_crc - calculate_crc - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -getbits_crc - -Input - tbits *inputStream, bit stream structure - int32 neededBits, number of bits to read from the bit stream - uint32 *crc, memory location holding calculated crc value - uint32 crc_enabled flag to enable/disable crc checking - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -calculate_crc - -Input - uint32 data, data vector - uint32 length, number of element upon the crc will be calculated - uint32 *crc, memory location holding calculated crc value - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - - ------------------------------------------------------------------------------ -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_getbits.h" -#include "pvmp3_crc.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -uint32 getbits_crc(tmp3Bits *inputStream, /* bit stream structure */ - int32 neededBits, /* number of bits to read from the bit stream */ - uint32 *crc, - uint32 crc_enabled) -{ - uint32 bits = getNbits(inputStream, neededBits); - - if (crc_enabled) - { - calculate_crc(bits, neededBits, crc); - } - return(bits); -} - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void calculate_crc(uint32 data, - uint32 length, - uint32 *crc) -{ - uint32 carry; - uint32 masking = 1 << length; - - while ((masking >>= 1)) - { - carry = *crc & 0x8000; - *crc <<= 1; - if (!carry ^ !(data & masking)) - { - *crc ^= CRC16_POLYNOMIAL; - } - } - *crc &= 0xffff; -} - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_crc.h b/external/android-specific/pvmp3dec/src/pvmp3_crc.h deleted file mode 100644 index b7c277a..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_crc.h +++ /dev/null @@ -1,110 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_crc.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_CRC_H -#define PVMP3_CRC_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" -#include "s_mp3bits.h" -#include "pvmp3decoder_api.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ -#define CRC16_POLYNOMIAL 0x8005 - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - uint32 getbits_crc(tmp3Bits *inputStream, - int32 neededBits, - uint32 *crc, - uint32 crc_enabled); - - - void calculate_crc(uint32 data, - uint32 length, - uint32 *crc); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_dct_16.cpp b/external/android-specific/pvmp3dec/src/pvmp3_dct_16.cpp deleted file mode 100644 index a71efc4..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_dct_16.cpp +++ /dev/null @@ -1,410 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_dct_16.cpp - - Functions: - dct_16 - pv_merge_in_place_N32 - pv_split - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - dct_16 - -Input - int32 vec[], input vector length 16 - Int flag processing direction: forward (1), backward ( 0) - Returns - - int32 vec[], dct length 16 - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - pv_merge_in_place_N32 - -Input - int32 vec[], input vector length 16 - - Returns - - int32 vec[], merged output of two dct 16 to create a dct 32 - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - pv_split - -Input - int32 vec[], input vector length 16 - - Returns - - int32 vec[], splitted even/odd and pre processing rotation - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - dct 16 and tools to assemble a dct32 output - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - -#if ( !defined(PV_ARM_GCC_V5) && !defined(PV_ARM_GCC_V4) ) -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dct_16.h" -#include "pv_mp3dec_fxd_op.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define Qfmt(a) (int32)(a*((int32)1<<27)) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -const int32 CosTable_dct32[16] = -{ - Qfmt_31(0.50060299823520F) , Qfmt_31(0.50547095989754F) , - Qfmt_31(0.51544730992262F) , Qfmt_31(0.53104259108978F) , - Qfmt_31(0.55310389603444F) , Qfmt_31(0.58293496820613F) , - Qfmt_31(0.62250412303566F) , Qfmt_31(0.67480834145501F) , - Qfmt_31(0.74453627100230F) , Qfmt_31(0.83934964541553F) , - - Qfmt(0.97256823786196F) , Qfmt(1.16943993343288F) , - Qfmt(1.48416461631417F) , Qfmt(2.05778100995341F) , - Qfmt(3.40760841846872F) , Qfmt(10.19000812354803F) -}; - - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_dct_16(int32 vec[], int32 flag) -{ - int32 tmp0; - int32 tmp1; - int32 tmp2; - int32 tmp3; - int32 tmp4; - int32 tmp5; - int32 tmp6; - int32 tmp7; - int32 tmp_o0; - int32 tmp_o1; - int32 tmp_o2; - int32 tmp_o3; - int32 tmp_o4; - int32 tmp_o5; - int32 tmp_o6; - int32 tmp_o7; - int32 itmp_e0; - int32 itmp_e1; - int32 itmp_e2; - - /* split input vector */ - - tmp_o0 = fxp_mul32_Q32((vec[ 0] - vec[15]), Qfmt_31(0.50241928618816F)); - tmp0 = vec[ 0] + vec[15]; - - tmp_o7 = fxp_mul32_Q32((vec[ 7] - vec[ 8]) << 3, Qfmt_31(0.63764357733614F)); - tmp7 = vec[ 7] + vec[ 8]; - - itmp_e0 = fxp_mul32_Q32((tmp0 - tmp7), Qfmt_31(0.50979557910416F)); - tmp7 = (tmp0 + tmp7); - - tmp_o1 = fxp_mul32_Q32((vec[ 1] - vec[14]), Qfmt_31(0.52249861493969F)); - tmp1 = vec[ 1] + vec[14]; - - tmp_o6 = fxp_mul32_Q32((vec[ 6] - vec[ 9]) << 1, Qfmt_31(0.86122354911916F)); - tmp6 = vec[ 6] + vec[ 9]; - - - - itmp_e1 = (tmp1 + tmp6); - tmp6 = fxp_mul32_Q32((tmp1 - tmp6), Qfmt_31(0.60134488693505F)); - - - - tmp_o2 = fxp_mul32_Q32((vec[ 2] - vec[13]), Qfmt_31(0.56694403481636F)); - tmp2 = vec[ 2] + vec[13]; - tmp_o5 = fxp_mul32_Q32((vec[ 5] - vec[10]) << 1, Qfmt_31(0.53033884299517F)); - tmp5 = vec[ 5] + vec[10]; - - itmp_e2 = (tmp2 + tmp5); - tmp5 = fxp_mul32_Q32((tmp2 - tmp5), Qfmt_31(0.89997622313642F)); - - tmp_o3 = fxp_mul32_Q32((vec[ 3] - vec[12]), Qfmt_31(0.64682178335999F)); - tmp3 = vec[ 3] + vec[12]; - tmp_o4 = fxp_mul32_Q32((vec[ 4] - vec[11]), Qfmt_31(0.78815462345125F)); - tmp4 = vec[ 4] + vec[11]; - - tmp1 = (tmp3 + tmp4); - tmp4 = fxp_mul32_Q32((tmp3 - tmp4) << 2, Qfmt_31(0.64072886193538F)); - - /* split even part of tmp_e */ - - tmp0 = (tmp7 + tmp1); - tmp1 = fxp_mul32_Q32((tmp7 - tmp1), Qfmt_31(0.54119610014620F)); - - tmp3 = fxp_mul32_Q32((itmp_e1 - itmp_e2) << 1, Qfmt_31(0.65328148243819F)); - tmp7 = (itmp_e1 + itmp_e2); - - vec[ 0] = (tmp0 + tmp7) >> 1; - vec[ 8] = fxp_mul32_Q32((tmp0 - tmp7), Qfmt_31(0.70710678118655F)); - tmp0 = fxp_mul32_Q32((tmp1 - tmp3) << 1, Qfmt_31(0.70710678118655F)); - vec[ 4] = tmp1 + tmp3 + tmp0; - vec[12] = tmp0; - - /* split odd part of tmp_e */ - - tmp1 = fxp_mul32_Q32((itmp_e0 - tmp4) << 1, Qfmt_31(0.54119610014620F)); - tmp7 = itmp_e0 + tmp4; - - tmp3 = fxp_mul32_Q32((tmp6 - tmp5) << 2, Qfmt_31(0.65328148243819F)); - tmp6 += tmp5; - - tmp4 = fxp_mul32_Q32((tmp7 - tmp6) << 1, Qfmt_31(0.70710678118655F)); - tmp6 += tmp7; - tmp7 = fxp_mul32_Q32((tmp1 - tmp3) << 1, Qfmt_31(0.70710678118655F)); - - tmp1 += tmp3 + tmp7; - vec[ 2] = tmp1 + tmp6; - vec[ 6] = tmp1 + tmp4; - vec[10] = tmp7 + tmp4; - vec[14] = tmp7; - - - // dct8; - - tmp1 = fxp_mul32_Q32((tmp_o0 - tmp_o7) << 1, Qfmt_31(0.50979557910416F)); - tmp7 = tmp_o0 + tmp_o7; - - tmp6 = tmp_o1 + tmp_o6; - tmp_o1 = fxp_mul32_Q32((tmp_o1 - tmp_o6) << 1, Qfmt_31(0.60134488693505F)); - - tmp5 = tmp_o2 + tmp_o5; - tmp_o5 = fxp_mul32_Q32((tmp_o2 - tmp_o5) << 1, Qfmt_31(0.89997622313642F)); - - tmp0 = fxp_mul32_Q32((tmp_o3 - tmp_o4) << 3, Qfmt_31(0.6407288619354F)); - tmp4 = tmp_o3 + tmp_o4; - - if (!flag) - { - tmp7 = -tmp7; - tmp1 = -tmp1; - tmp6 = -tmp6; - tmp_o1 = -tmp_o1; - tmp5 = -tmp5; - tmp_o5 = -tmp_o5; - tmp4 = -tmp4; - tmp0 = -tmp0; - } - - - tmp2 = fxp_mul32_Q32((tmp1 - tmp0) << 1, Qfmt_31(0.54119610014620F)); - tmp0 += tmp1; - tmp1 = fxp_mul32_Q32((tmp7 - tmp4) << 1, Qfmt_31(0.54119610014620F)); - tmp7 += tmp4; - tmp4 = fxp_mul32_Q32((tmp6 - tmp5) << 2, Qfmt_31(0.65328148243819F)); - tmp6 += tmp5; - tmp5 = fxp_mul32_Q32((tmp_o1 - tmp_o5) << 2, Qfmt_31(0.65328148243819F)); - tmp_o1 += tmp_o5; - - - vec[13] = fxp_mul32_Q32((tmp1 - tmp4) << 1, Qfmt_31(0.70710678118655F)); - vec[ 5] = tmp1 + tmp4 + vec[13]; - - vec[ 9] = fxp_mul32_Q32((tmp7 - tmp6) << 1, Qfmt_31(0.70710678118655F)); - vec[ 1] = tmp7 + tmp6; - - tmp4 = fxp_mul32_Q32((tmp0 - tmp_o1) << 1, Qfmt_31(0.70710678118655F)); - tmp0 += tmp_o1; - tmp6 = fxp_mul32_Q32((tmp2 - tmp5) << 1, Qfmt_31(0.70710678118655F)); - tmp2 += tmp5 + tmp6; - tmp0 += tmp2; - - vec[ 1] += tmp0; - vec[ 3] = tmp0 + vec[ 5]; - tmp2 += tmp4; - vec[ 5] = tmp2 + vec[ 5]; - vec[ 7] = tmp2 + vec[ 9]; - tmp4 += tmp6; - vec[ 9] = tmp4 + vec[ 9]; - vec[11] = tmp4 + vec[13]; - vec[13] = tmp6 + vec[13]; - vec[15] = tmp6; - -} -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -void pvmp3_merge_in_place_N32(int32 vec[]) -{ - - - int32 temp0; - int32 temp1; - int32 temp2; - int32 temp3; - - temp0 = vec[14]; - vec[14] = vec[ 7]; - temp1 = vec[12]; - vec[12] = vec[ 6]; - temp2 = vec[10]; - vec[10] = vec[ 5]; - temp3 = vec[ 8]; - vec[ 8] = vec[ 4]; - vec[ 6] = vec[ 3]; - vec[ 4] = vec[ 2]; - vec[ 2] = vec[ 1]; - - vec[ 1] = (vec[16] + vec[17]); - vec[16] = temp3; - vec[ 3] = (vec[18] + vec[17]); - vec[ 5] = (vec[19] + vec[18]); - vec[18] = vec[9]; - - vec[ 7] = (vec[20] + vec[19]); - vec[ 9] = (vec[21] + vec[20]); - vec[20] = temp2; - temp2 = vec[13]; - temp3 = vec[11]; - vec[11] = (vec[22] + vec[21]); - vec[13] = (vec[23] + vec[22]); - vec[22] = temp3; - temp3 = vec[15]; - - vec[15] = (vec[24] + vec[23]); - vec[17] = (vec[25] + vec[24]); - vec[19] = (vec[26] + vec[25]); - vec[21] = (vec[27] + vec[26]); - vec[23] = (vec[28] + vec[27]); - vec[24] = temp1; - vec[25] = (vec[29] + vec[28]); - vec[26] = temp2; - vec[27] = (vec[30] + vec[29]); - vec[28] = temp0; - vec[29] = (vec[30] + vec[31]); - vec[30] = temp3; -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - - -void pvmp3_split(int32 *vect) -{ - - int32 i; - const int32 *pt_cosTerms = &CosTable_dct32[15]; - int32 *pt_vect = vect; - int32 *pt_vect_2 = pt_vect - 1; - - for (i = 3; i != 0; i--) - { - int32 tmp2 = *(pt_vect); - int32 tmp1 = *(pt_vect_2); - int32 cosx = *(pt_cosTerms--); - *(pt_vect_2--) = (tmp1 + tmp2); - *(pt_vect++) = fxp_mul32_Q27((tmp1 - tmp2), cosx); - - tmp2 = *(pt_vect); - tmp1 = *(pt_vect_2); - cosx = *(pt_cosTerms--); - *(pt_vect_2--) = (tmp1 + tmp2); - *(pt_vect++) = fxp_mul32_Q27((tmp1 - tmp2), cosx); - - } - - for (i = 5; i != 0; i--) - { - int32 tmp2 = *(pt_vect); - int32 tmp1 = *(pt_vect_2); - int32 cosx = *(pt_cosTerms--); - *(pt_vect_2--) = (tmp1 + tmp2); - *(pt_vect++) = fxp_mul32_Q32((tmp1 - tmp2) << 1, cosx); - - tmp2 = *(pt_vect); - tmp1 = *(pt_vect_2); - cosx = *(pt_cosTerms--); - *(pt_vect_2--) = (tmp1 + tmp2); - *(pt_vect++) = fxp_mul32_Q32((tmp1 - tmp2) << 1, cosx); - } - -} - -#endif diff --git a/external/android-specific/pvmp3dec/src/pvmp3_dct_16.h b/external/android-specific/pvmp3dec/src/pvmp3_dct_16.h deleted file mode 100644 index e8bf76e..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_dct_16.h +++ /dev/null @@ -1,102 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_dct_16.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_DCT_16_H -#define PVMP3_DCT_16_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_dct_16(int32 vec[], int32 flag); - - void pvmp3_merge_in_place_N32(int32 vec[]); - - void pvmp3_split(int32 *vect); - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_dct_6.cpp b/external/android-specific/pvmp3dec/src/pvmp3_dct_6.cpp deleted file mode 100644 index 4c5fb03..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_dct_6.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_dct6.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - Int32 vec[] vector of 6 32-bit integers -Returns - Int32 vec[] dct computation in-place - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - Returns the dct of length 6 of the input vector - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_mdct_6.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define Qfmt30(a) (Int32)(a*((Int32)1<<30) + (a>=0?0.5F:-0.5F)) - -#define cos_pi_6 Qfmt30( 0.86602540378444f) -#define cos_2_pi_6 Qfmt30( 0.5f) -#define cos_7_pi_12 Qfmt30( -0.25881904510252f) -#define cos_3_pi_12 Qfmt30( 0.70710678118655f) -#define cos_11_pi_12 Qfmt30( -0.96592582628907f) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_dct_6(int32 vec[]) -{ - - Int32 tmp0; - Int32 tmp1; - Int32 tmp2; - Int32 tmp3; - Int32 tmp4; - Int32 tmp5; - - - /* split input vector */ - - tmp0 = vec[5] + vec[0]; - tmp5 = vec[5] - vec[0]; - tmp1 = vec[4] + vec[1]; - tmp4 = vec[4] - vec[1]; - tmp2 = vec[3] + vec[2]; - tmp3 = vec[3] - vec[2]; - - vec[0] = tmp0 + tmp2 ; - vec[2] = fxp_mul32_Q30(tmp0 - tmp2, cos_pi_6); - vec[4] = (vec[0] >> 1) - tmp1; - vec[0] += tmp1; - - tmp0 = fxp_mul32_Q30(tmp3, cos_7_pi_12); - tmp0 = fxp_mac32_Q30(tmp4, -cos_3_pi_12, tmp0); - vec[1] = fxp_mac32_Q30(tmp5, cos_11_pi_12, tmp0); - - vec[3] = fxp_mul32_Q30((tmp3 + tmp4 - tmp5), cos_3_pi_12); - tmp0 = fxp_mul32_Q30(tmp3, cos_11_pi_12); - tmp0 = fxp_mac32_Q30(tmp4, cos_3_pi_12, tmp0); - vec[5] = fxp_mac32_Q30(tmp5, cos_7_pi_12, tmp0); - -} - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_dct_9.cpp b/external/android-specific/pvmp3dec/src/pvmp3_dct_9.cpp deleted file mode 100644 index ce3ec64..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_dct_9.cpp +++ /dev/null @@ -1,167 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_dct_9.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - int32 vec[] vector of 9 32-bit integers -Returns - int32 vec[] dct computation in-place - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - Returns the dct of length 9 of the input vector - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - -#if ( !defined(PV_ARM_GCC_V5) && !defined(PV_ARM_GCC_V4) && !defined(PV_ARM_V5) && !defined(PV_ARM_V4) ) -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_mdct_18.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define Qfmt31(a) (int32)(a*(0x7FFFFFFF)) - -#define cos_pi_9 Qfmt31( 0.93969262078591f) -#define cos_2pi_9 Qfmt31( 0.76604444311898f) -#define cos_4pi_9 Qfmt31( 0.17364817766693f) -#define cos_5pi_9 Qfmt31(-0.17364817766693f) -#define cos_7pi_9 Qfmt31(-0.76604444311898f) -#define cos_8pi_9 Qfmt31(-0.93969262078591f) -#define cos_pi_6 Qfmt31( 0.86602540378444f) -#define cos_5pi_6 Qfmt31(-0.86602540378444f) -#define cos_5pi_18 Qfmt31( 0.64278760968654f) -#define cos_7pi_18 Qfmt31( 0.34202014332567f) -#define cos_11pi_18 Qfmt31(-0.34202014332567f) -#define cos_13pi_18 Qfmt31(-0.64278760968654f) -#define cos_17pi_18 Qfmt31(-0.98480775301221f) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_dct_9(int32 vec[]) -{ - - /* split input vector */ - - int32 tmp0 = vec[8] + vec[0]; - int32 tmp8 = vec[8] - vec[0]; - int32 tmp1 = vec[7] + vec[1]; - int32 tmp7 = vec[7] - vec[1]; - int32 tmp2 = vec[6] + vec[2]; - int32 tmp6 = vec[6] - vec[2]; - int32 tmp3 = vec[5] + vec[3]; - int32 tmp5 = vec[5] - vec[3]; - - vec[0] = (tmp0 + tmp2 + tmp3) + (tmp1 + vec[4]); - vec[6] = ((tmp0 + tmp2 + tmp3) >> 1) - (tmp1 + vec[4]); - vec[2] = (tmp1 >> 1) - vec[4]; - vec[4] = -vec[2]; - vec[8] = -vec[2]; - vec[4] = fxp_mac32_Q32(vec[4], tmp0 << 1, cos_2pi_9); - vec[8] = fxp_mac32_Q32(vec[8], tmp0 << 1, cos_4pi_9); - vec[2] = fxp_mac32_Q32(vec[2], tmp0 << 1, cos_pi_9); - vec[2] = fxp_mac32_Q32(vec[2], tmp2 << 1, cos_5pi_9); - vec[4] = fxp_mac32_Q32(vec[4], tmp2 << 1, cos_8pi_9); - vec[8] = fxp_mac32_Q32(vec[8], tmp2 << 1, cos_2pi_9); - vec[8] = fxp_mac32_Q32(vec[8], tmp3 << 1, cos_8pi_9); - vec[4] = fxp_mac32_Q32(vec[4], tmp3 << 1, cos_4pi_9); - vec[2] = fxp_mac32_Q32(vec[2], tmp3 << 1, cos_7pi_9); - - vec[1] = fxp_mul32_Q32(tmp5 << 1, cos_11pi_18); - vec[1] = fxp_mac32_Q32(vec[1], tmp6 << 1, cos_13pi_18); - vec[1] = fxp_mac32_Q32(vec[1], tmp7 << 1, cos_5pi_6); - vec[1] = fxp_mac32_Q32(vec[1], tmp8 << 1, cos_17pi_18); - vec[3] = fxp_mul32_Q32((tmp5 + tmp6 - tmp8) << 1, cos_pi_6); - vec[5] = fxp_mul32_Q32(tmp5 << 1, cos_17pi_18); - vec[5] = fxp_mac32_Q32(vec[5], tmp6 << 1, cos_7pi_18); - vec[5] = fxp_mac32_Q32(vec[5], tmp7 << 1, cos_pi_6); - vec[5] = fxp_mac32_Q32(vec[5], tmp8 << 1, cos_13pi_18); - vec[7] = fxp_mul32_Q32(tmp5 << 1, cos_5pi_18); - vec[7] = fxp_mac32_Q32(vec[7], tmp6 << 1, cos_17pi_18); - vec[7] = fxp_mac32_Q32(vec[7], tmp7 << 1, cos_pi_6); - vec[7] = fxp_mac32_Q32(vec[7], tmp8 << 1, cos_11pi_18); - -} - - - -#endif // If not assembly diff --git a/external/android-specific/pvmp3dec/src/pvmp3_dec_defs.h b/external/android-specific/pvmp3dec/src/pvmp3_dec_defs.h deleted file mode 100644 index d3f1609..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_dec_defs.h +++ /dev/null @@ -1,200 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_dec_defs.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This include file has the mp3 decoder common defines. - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_DEC_DEFS_H -#define PVMP3_DEC_DEFS_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" -#include "pvmp3decoder_api.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ -#define module(x, POW2) ((x)&(POW2-1)) -#define OSCL_UNUSED_ARG(x) (void)(x) - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ -#define BUFSIZE 8192 // big enough to hold 4608 bytes == biggest mp3 frame - -#define CHAN 2 -#define GRAN 2 - - -#define SUBBANDS_NUMBER 32 -#define FILTERBANK_BANDS 18 -#define HAN_SIZE 512 - - -/* MPEG Header Definitions - ID Bit Values */ - -#define MPEG_1 0 -#define MPEG_2 1 -#define MPEG_2_5 2 -#define INVALID_VERSION -1 - -/* MPEG Header Definitions - Mode Values */ - -#define MPG_MD_STEREO 0 -#define MPG_MD_JOINT_STEREO 1 -#define MPG_MD_DUAL_CHANNEL 2 -#define MPG_MD_MONO 3 - - - -#define LEFT 0 -#define RIGHT 1 - - -#define SYNC_WORD (int32)0x7ff -#define SYNC_WORD_LNGTH 11 - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - /*---------------------------------------------------------------------------- - ; STRUCTURES TYPEDEF'S - ----------------------------------------------------------------------------*/ - - /* Header Information Structure */ - - typedef struct - { - int32 version_x; - int32 layer_description; - int32 error_protection; - int32 bitrate_index; - int32 sampling_frequency; - int32 padding; - int32 extension; - int32 mode; - int32 mode_ext; - int32 copyright; - int32 original; - int32 emphasis; - } mp3Header; - - - /* Layer III side information. */ - - typedef struct - { - uint32 part2_3_length; - uint32 big_values; - int32 global_gain; - uint32 scalefac_compress; - uint32 window_switching_flag; - uint32 block_type; - uint32 mixed_block_flag; - uint32 table_select[3]; - uint32 subblock_gain[3]; - uint32 region0_count; - uint32 region1_count; - uint32 preflag; - uint32 scalefac_scale; - uint32 count1table_select; - - } granuleInfo; - - typedef struct - { - uint32 scfsi[4]; - granuleInfo gran[2]; - - } channelInfo; - - /* Layer III side info. */ - - typedef struct - { - uint32 main_data_begin; - uint32 private_bits; - channelInfo ch[2]; - - } mp3SideInfo; - - /* Layer III scale factors. */ - typedef struct - { - int32 l[23]; /* [cb] */ - int32 s[3][13]; /* [window][cb] */ - - } mp3ScaleFactors; - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_decode_header.cpp b/external/android-specific/pvmp3dec/src/pvmp3_decode_header.cpp deleted file mode 100644 index d443b7c..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_decode_header.cpp +++ /dev/null @@ -1,194 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_decode_header.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - tbits *inputStream, bit stream - mp3Header *info, - uint32 *crc - Returns - - mp3Header *info, structure holding the parsed mp3 header info - uint32 *crc initialized crc computation - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - gets mp3 header information - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_decode_header.h" -#include "pvmp3_crc.h" -#include "pvmp3_getbits.h" -#include "pvmp3_seek_synch.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -ERROR_CODE pvmp3_decode_header(tmp3Bits *inputStream, - mp3Header *info, - uint32 *crc) -{ - - ERROR_CODE err = NO_DECODING_ERROR; - uint32 temp; - - /* - * Verify that at least the header is complete - * Note that SYNC_WORD_LNGTH is in unit of bits, but inputBufferCurrentLength - * is in unit of bytes. - */ - if (inputStream->inputBufferCurrentLength < ((SYNC_WORD_LNGTH + 21) >> 3)) - { - return NO_ENOUGH_MAIN_DATA_ERROR; - } - - /* - * MPEG Audio Version ID - */ - temp = getUpTo17bits(inputStream, SYNC_WORD_LNGTH); - if ((temp & SYNC_WORD) != SYNC_WORD) - { - err = pvmp3_header_sync(inputStream); - - if (err != NO_DECODING_ERROR) - { - return err; - } - } - - temp = getNbits(inputStream, 21); // to avoid multiple bitstream accesses - - - switch (temp >> 19) /* 2 */ - { - case 0: - info->version_x = MPEG_2_5; - break; - case 2: - info->version_x = MPEG_2; - break; - case 3: - info->version_x = MPEG_1; - break; - default: - info->version_x = INVALID_VERSION; - err = UNSUPPORTED_LAYER; - break; - } - - info->layer_description = 4 - ((temp << 13) >> 30); /* 2 */ - info->error_protection = !((temp << 15) >> 31); /* 1 */ - - if (info->error_protection) - { - *crc = 0xffff; /* CRC start value */ - calculate_crc((temp << 16) >> 16, 16, crc); - } - - info->bitrate_index = (temp << 16) >> 28; /* 4 */ - info->sampling_frequency = (temp << 20) >> 30; /* 2 */ - info->padding = (temp << 22) >> 31; /* 1 */ - info->extension = (temp << 23) >> 31; /* 1 */ - info->mode = (temp << 24) >> 30; /* 2 */ - info->mode_ext = (temp << 26) >> 30; /* 2 */ - info->copyright = (temp << 27) >> 31; /* 1 */ - info->original = (temp << 28) >> 31; /* 1 */ - info->emphasis = (temp << 30) >> 30; /* 2 */ - - - if (!info->bitrate_index || info->sampling_frequency == 3) - { - err = UNSUPPORTED_FREE_BITRATE; - } - - return(err); -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_decode_header.h b/external/android-specific/pvmp3dec/src/pvmp3_decode_header.h deleted file mode 100644 index 2c2e89e..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_decode_header.h +++ /dev/null @@ -1,101 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_decode_header.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_DECODE_HEADER_H -#define PVMP3_DECODE_HEADER_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "pvmp3_dec_defs.h" -#include "s_mp3bits.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - ERROR_CODE pvmp3_decode_header(tmp3Bits *inputStream, - mp3Header *info, - uint32 *crc); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_decode_huff_cw.cpp b/external/android-specific/pvmp3dec/src/pvmp3_decode_huff_cw.cpp deleted file mode 100644 index 6e45a18..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_decode_huff_cw.cpp +++ /dev/null @@ -1,758 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_decode_huff_cw.cpp - - Funtions: - pvmp3_decode_huff_cw_tab0 - pvmp3_decode_huff_cw_tab1 - pvmp3_decode_huff_cw_tab2 - pvmp3_decode_huff_cw_tab3 - pvmp3_decode_huff_cw_tab5 - pvmp3_decode_huff_cw_tab6 - pvmp3_decode_huff_cw_tab7 - pvmp3_decode_huff_cw_tab8 - pvmp3_decode_huff_cw_tab9 - pvmp3_decode_huff_cw_tab10 - pvmp3_decode_huff_cw_tab11 - pvmp3_decode_huff_cw_tab12 - pvmp3_decode_huff_cw_tab13 - pvmp3_decode_huff_cw_tab15 - pvmp3_decode_huff_cw_tab16 - pvmp3_decode_huff_cw_tab24 - pvmp3_decode_huff_cw_tab32 - pvmp3_decode_huff_cw_tab33 - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Inputs: - BITS *pMainData = pointer to input mp3 Main data bit stream - - - Outputs: - cw = bit field extracted from a leaf entry of packed mp3 Huffman Tables - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - These functions are used to decode huffman codewords from the input - bitstream using combined binary search and look-up table approach. - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - - [2] Introduction to Algorithms, - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. - The MIT press, 1990 - - [3] "Selecting an Optimal Huffman Decoder for AAC", - Vladimir Z. Mesarovic, et al. - AES 111th Convention, September 21-24, 2001, New York, USA - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_tables.h" -#include "pvmp3_getbits.h" -#include "pvmp3_decode_huff_cw.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -uint16 pvmp3_decode_huff_cw_tab0(tmp3Bits *pMainData) -{ - OSCL_UNUSED_ARG(pMainData); - return(0); - -} - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab1(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo9bits(pMainData, 3); /* hufftable1 */ - - cw = *(huffTable_1 + tmp); - pMainData->usedBits -= (3 - (cw & 0xFF)); - return(cw >> 8); - -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab2(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo9bits(pMainData, 6); /* huffTable_2,3 */ - - if (tmp >> 3) - { - tmp = (tmp >> 3) - 1; - } - else - { - tmp = tmp + 7; - } - - cw = *(huffTable_2 + tmp); - pMainData->usedBits -= (6 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab3(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo9bits(pMainData, 6); /* huffTable_2,3 */ - - if (tmp >> 3) - { - tmp = (tmp >> 3) - 1; - } - else - { - tmp = tmp + 7; - } - - cw = *(huffTable_3 + tmp); - pMainData->usedBits -= (6 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab5(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo9bits(pMainData, 8); /* huffTable_5 */ - - if ((tmp >> 5)) - { - tmp = (tmp >> 5) - 1; - } - else if ((tmp >> 1) >= 2) - { - tmp = (tmp >> 1) - 2 + 7; - } - else - { - tmp = (tmp & 3) + 21; - } - - cw = *(huffTable_5 + tmp); - pMainData->usedBits -= (8 - (cw & 0xFF)); - - return(cw >> 8); -} - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab6(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo9bits(pMainData, 7); /* huffTable_6 */ - if ((tmp >> 3) >= 3) - { - tmp = (tmp >> 3) - 3; - } - else if (tmp >> 1) - { - tmp = (tmp >> 1) - 1 + 13; - } - else - { - tmp = tmp + 24; - } - - cw = *(huffTable_6 + tmp); - pMainData->usedBits -= (7 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab7(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 10); /* huffTable_7 */ - if ((tmp >> 7) >= 2) - { - tmp = (tmp >> 7) - 2; - } - else if ((tmp >> 4) >= 7) - { - tmp = (tmp >> 4) - 7 + 6; - } - else if ((tmp >> 1) >= 2) - { - tmp = (tmp >> 1) - 2 + 15; - } - else - { - tmp = (tmp & 3) + 69; - } - - cw = *(huffTable_7 + tmp); - pMainData->usedBits -= (10 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab8(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 11); /* huffTable_8 */ - if ((tmp >> 7) >= 2) - { - tmp = (tmp >> 7) - 2; - } - else if ((tmp >> 5) >= 5) - { - tmp = (tmp >> 5) - 5 + 14; - } - else if ((tmp >> 2) >= 3) - { - tmp = (tmp >> 2) - 3 + 17; - } - else - { - tmp = (tmp) + 54; - } - - cw = *(huffTable_8 + tmp); - pMainData->usedBits -= (11 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab9(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo9bits(pMainData, 9); /* huffTable_9 */ - if ((tmp >> 5) >= 5) - { - tmp = (tmp >> 5) - 5; - } - else if ((tmp >> 3) >= 6) - { - tmp = (tmp >> 3) - 6 + 11; - } - else if ((tmp >> 1) >= 4) - { - tmp = (tmp >> 1) - 4 + 25; - } - else - { - tmp = tmp + 45; - } - - cw = *(huffTable_9 + tmp); - pMainData->usedBits -= (9 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab10(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 11); /* huffTable_10 */ - if (tmp >> 10) - { - tmp = (tmp >> 10) - 1; - } - else if ((tmp >> 7) >= 3) - { - tmp = (tmp >> 7) - 3 + 1; - } - else if ((tmp >> 5) >= 8) - { - tmp = (tmp >> 5) - 8 + 6; - } - else if ((tmp >> 3) >= 18) - { - tmp = (tmp >> 3) - 18 + 10; - } - else if ((tmp >> 2) >= 24) - { - tmp = (tmp >> 2) - 24 + 24; - } - else if ((tmp >> 1) >= 12) - { - tmp = (tmp >> 1) - 12 + 36; - } - else - { - tmp = (tmp) + 72; - } - - cw = *(huffTable_10 + tmp); - pMainData->usedBits -= (11 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab11(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 11); /* huffTable_11 */ - if ((tmp >> 8) >= 3) - { - tmp = (tmp >> 8) - 3; - } - else if ((tmp >> 6) >= 7) - { - tmp = (tmp >> 6) - 7 + 5; - } - else if ((tmp >> 3) >= 32) - { - tmp = (tmp >> 3) - 32 + 10; - } - else if ((tmp >> 2) >= 10) - { - tmp = (tmp >> 2) - 10 + 34; - } - else if ((tmp >> 1) >= 8) - { - tmp = (tmp >> 1) - 8 + 88; - } - else - { - tmp = (tmp & 0xFF) + 100; - } - cw = *(huffTable_11 + tmp); - pMainData->usedBits -= (11 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab12(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 10); /* huffTable_12 */ - if ((tmp >> 7) >= 5) - { - tmp = (tmp >> 7) - 5; - } - else if ((tmp >> 5) >= 12) - { - tmp = (tmp >> 5) - 12 + 3; - } - else if ((tmp >> 4) >= 17) - { - tmp = (tmp >> 4) - 17 + 11; - } - else if ((tmp >> 2) >= 32) - { - tmp = (tmp >> 2) - 32 + 18; - } - else if ((tmp >> 1) >= 16) - { - tmp = (tmp >> 1) - 16 + 54; - } - else - { - tmp = (tmp & 0x1F) + 102; - - } - cw = *(huffTable_12 + tmp); - pMainData->usedBits -= (10 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab13(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getNbits(pMainData, 19); /* huffTable_13 */ - if (tmp >> 18) - { - tmp = 0; - } - else if ((tmp >> 15) >= 4) - { - tmp = (tmp >> 15) - 4 + 1; - } - else if ((tmp >> 11) >= 32) - { - tmp = (tmp >> 11) - 32 + 5; - } - else if ((tmp >> 9) >= 64) - { - tmp = (tmp >> 9) - 64 + 37; - } - else if ((tmp >> 8) >= 64) - { - tmp = (tmp >> 8) - 64 + 101; - } - else if ((tmp >> 7) >= 64) - { - tmp = (tmp >> 7) - 64 + 165; - } - else if ((tmp >> 6) >= 32) - { - tmp = (tmp >> 6) - 32 + 229; - } - else if ((tmp >> 5) >= 32) - { - tmp = (tmp >> 5) - 32 + 325; - } - else if ((tmp >> 4) >= 32) - { - tmp = (tmp >> 4) - 32 + 357; - } - else if ((tmp >> 3) >= 32) - { - tmp = (tmp >> 3) - 32 + 389; - } - else if ((tmp >> 2) >= 2) - { - tmp = (tmp >> 2) - 2 + 421; - } - else - { - tmp = (tmp & 0x7) + 483; - } - - cw = *(huffTable_13 + tmp); - pMainData->usedBits -= (19 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab15(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 13); /* huffTable_15 */ - if ((tmp >> 9) >= 10) - { - tmp = (tmp >> 9) - 10; - } - else if ((tmp >> 6) >= 39) - { - tmp = (tmp >> 6) - 39 + 6; - } - else if ((tmp >> 4) >= 62) - { - tmp = (tmp >> 4) - 62 + 47; - } - else if ((tmp >> 3) >= 60) - { - tmp = (tmp >> 3) - 60 + 141; - } - else if ((tmp >> 2) >= 64) - { - tmp = (tmp >> 2) - 64 + 205; - } - else if ((tmp >> 1) >= 32) - { - tmp = (tmp >> 1) - 32 + 261; - } - else - { - tmp = (tmp & 0x3f) + 357; - } - - cw = *(huffTable_15 + tmp); - pMainData->usedBits -= (13 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab16(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 17); /* huffTable_16 */ - if (tmp >> 16) - { - tmp = 0; - } - else if ((tmp >> 13) >= 4) - { - tmp = (tmp >> 13) - 4 + 1; - } - else if ((tmp >> 9) >= 38) - { - tmp = (tmp >> 9) - 38 + 5; - } - else if ((tmp >> 7) >= 94) - { - tmp = (tmp >> 7) - 94 + 31; - } - else if ((tmp >> 5) >= 214) - { - tmp = (tmp >> 5) - 214 + 89; - } - else if ((tmp >> 3) >= 704) - { - if ((tmp >> 4) >= 384) - { - tmp = (tmp >> 4) - 384 + 315; - } - else - { - tmp = (tmp >> 3) - 704 + 251; - } - } - else if ((tmp >> 8) >= 14) - { - tmp = (tmp >> 8) - 14 + 359; - } - else if ((tmp) >= 3456) - { - if ((tmp >> 2) >= 868) - { - tmp = (tmp >> 2) - 868 + 383; - } - else - { - tmp = (tmp) - 3456 + 367; - } - } - else - { - tmp = ((tmp >> 6) & 0x3f) + 411; - } - - cw = *(huffTable_16 + tmp); - pMainData->usedBits -= (17 - (cw & 0xFF)); - - return(cw >> 8); -} - - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab24(tmp3Bits *pMainData) -{ - uint32 tmp; - uint16 cw; - - tmp = getUpTo17bits(pMainData, 12); /* huffTable_24 */ - if ((tmp >> 6) >= 41) - { - tmp = (tmp >> 6) - 41; - } - else if ((tmp >> 3) >= 218) - { - tmp = (tmp >> 3) - 218 + 23; - } - else if ((tmp >> 2) >= 336) - { - tmp = (tmp >> 2) - 336 + 133; - } - else if ((tmp >> 1) >= 520) - { - tmp = (tmp >> 1) - 520 + 233; - } - else if ((tmp) >= 1024) - { - tmp = (tmp) - 1024 + 385; - } - else if ((tmp >> 1) >= 352) - { - if ((tmp >> 8) == 3) - { - tmp = (tmp >> 8) - 3 + 433; - } - else - { - tmp = (tmp >> 1) - 352 + 401; - } - } - else - { - tmp = ((tmp >> 4) & 0x3f) + 434; - } - - cw = *(huffTable_24 + tmp); - pMainData->usedBits -= (12 - (cw & 0xFF)); - - return(cw >> 8); -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -uint16 pvmp3_decode_huff_cw_tab32(tmp3Bits *pMainData) -{ - uint32 tmp = getUpTo9bits(pMainData, 6); /* huffTable_32 */ - if ((tmp >> 5)) - { - pMainData->usedBits -= 5; - return(0); - } - else - { - uint16 cw = *(huffTable_32 + (tmp & 0x1f)); - pMainData->usedBits -= (6 - (cw & 0xFF)); - - return(cw >> 8); - } - -} - - -uint16 pvmp3_decode_huff_cw_tab33(tmp3Bits *pMainData) -{ - - uint16 tmp = getUpTo9bits(pMainData, 4); /* huffTable_33 */ - - return((0x0f - tmp)); -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_decode_huff_cw.h b/external/android-specific/pvmp3dec/src/pvmp3_decode_huff_cw.h deleted file mode 100644 index 941ca6d..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_decode_huff_cw.h +++ /dev/null @@ -1,114 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_decode_huff_cw.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_DECODE_HUFF_CW_H -#define PVMP3_DECODE_HUFF_CW_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "pvmp3_dec_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - uint16 pvmp3_decode_huff_cw_tab0(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab1(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab2(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab3(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab5(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab6(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab7(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab8(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab9(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab10(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab11(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab12(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab13(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab15(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab16(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab24(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab32(tmp3Bits *); - uint16 pvmp3_decode_huff_cw_tab33(tmp3Bits *); -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_dequantize_sample.cpp b/external/android-specific/pvmp3dec/src/pvmp3_dequantize_sample.cpp deleted file mode 100644 index 69e1987..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_dequantize_sample.cpp +++ /dev/null @@ -1,452 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_dequantize_sample.cpp - - Functions: - power_1_third - pvmp3_dequantize_sample - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -power_1_third -int32 power_1_third( int32 xx) - -Input - int32 xx, int32 in the [0, 8192] range - - Returns - - int32 xx^(1/3) int32 Q26 number representing - the 1/3 power of the input - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -pvmp3_dequantize_sample - -Input - int32 is[SUBBANDS_NUMBER*FILTERBANK_BANDS], - mp3ScaleFactors *scalefac, scale factor structure - struct gr_info_s *gr_info, granule structure informatiom - mp3Header *info mp3 header info - - Returns - - int32 is[SUBBANDS_NUMBER*FILTERBANK_BANDS], dequantize output as (.)^(4/3) - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - dequantize sample - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_dec_defs.h" -#include "pvmp3_dequantize_sample.h" -#include "pvmp3_normalize.h" -#include "mp3_mem_funcs.h" -#include "pvmp3_tables.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define Q30_fmt(a)(int32(double(0x40000000)*a)) -#define Q29_fmt(a)(int32(double(0x20000000)*a)) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -const int32 pretab[22] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0}; - -const int32 pow_2_1_fourth[4] = -{ - Q30_fmt(1.0), Q30_fmt(1.18920711500272), - Q30_fmt(1.41421356237310), Q30_fmt(1.68179283050743) -}; - -const int32 two_cubic_roots[7] = -{ - Q29_fmt(0), Q29_fmt(1.25992104989487), - Q29_fmt(1.58740105196820), Q29_fmt(2.00000000000000), - Q29_fmt(2.51984209978975), Q29_fmt(3.17480210393640), - Q29_fmt(3.99999999999999) -}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - -int32 power_1_third(int32 xx) -{ - - if (xx <= 512) - { - return (power_one_third[xx] >> 1); - } - else - { - if (xx >> 15) - { - return 0x7FFFFFFF; /* saturate any value over 32767 */ - } - else - { - int32 x = xx; - int32 m = 22 - pvmp3_normalize(xx); - - xx >>= m; - xx = (power_one_third[xx]) + (((power_one_third[xx+1] - power_one_third[xx]) >> m) * (x & ((1 << m) - 1))); - return (fxp_mul32_Q30(xx, two_cubic_roots[m])); - } - - } -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - - -void pvmp3_dequantize_sample(int32 is[SUBBANDS_NUMBER*FILTERBANK_BANDS], - mp3ScaleFactors *scalefac, - granuleInfo *gr_info, - int32 used_freq_lines, - mp3Header *info) -{ - int32 ss; - int32 cb = 0; - int32 global_gain; - int32 sfreq = info->sampling_frequency + info->version_x + (info->version_x << 1); - - /* apply formula per block type */ - - if (gr_info->window_switching_flag && (gr_info->block_type == 2)) - { - int32 next_cb_boundary; - int32 cb_begin = 0; - int32 cb_width = 0; - int32 mixstart = 8; /* added 2003/08/21 efs */ - - if (info->version_x != MPEG_1) - { - mixstart = 6; /* different value in MPEG2 LSF */ - } - - if (gr_info->mixed_block_flag) - { - next_cb_boundary = mp3_sfBandIndex[sfreq].l[1]; /* LONG blocks: 0,1,3 */ - } - else - { - next_cb_boundary = mp3_sfBandIndex[sfreq].s[1] * 3; /* pure SHORT block */ - cb_width = 0; - } - - global_gain = gr_info->global_gain; - int32 two_raise_one_fourth = pow_2_1_fourth[global_gain&0x3]; - global_gain = 12 + (global_gain >> 2); - - for (ss = 0 ; ss < used_freq_lines ; ss++) - { - if (ss == next_cb_boundary) - { - cb++; /* critical band counter */ - if (gr_info->mixed_block_flag) - { - if (next_cb_boundary == mp3_sfBandIndex[sfreq].l[mixstart]) - { - next_cb_boundary = mp3_sfBandIndex[sfreq].s[4] * 3; - - cb_begin = mp3_sfBandIndex[sfreq].s[3] * 3; - cb_width = 3; - cb = 3; - } - else if (ss < mp3_sfBandIndex[sfreq].l[mixstart]) - { - next_cb_boundary = mp3_sfBandIndex[sfreq].l[cb+1]; - } - else - { - next_cb_boundary = mp3_sfBandIndex[sfreq].s[cb+1] * 3; - - cb_width = cb; - cb_begin = mp3_sfBandIndex[sfreq].s[cb] * 3; - } - - if (ss < 2*FILTERBANK_BANDS) - { /* 1st 2 subbands of switched blocks */ - global_gain = (gr_info->global_gain); - global_gain -= (1 + gr_info->scalefac_scale) * - (scalefac->l[cb] + gr_info->preflag * pretab[cb]) << 1; - - two_raise_one_fourth = pow_2_1_fourth[global_gain&0x3]; - global_gain = 12 + (global_gain >> 2); - } - } - else - { - next_cb_boundary = mp3_sfBandIndex[sfreq].s[cb+1] * 3; - cb_width = cb; - cb_begin = mp3_sfBandIndex[sfreq].s[cb] * 3; - } - - } /* end-if ( ss == next_cb_boundary) */ - - /* Do long/short dependent scaling operations. */ - if ((gr_info->mixed_block_flag == 0) || (gr_info->mixed_block_flag && (ss >= 2*FILTERBANK_BANDS))) - { - int32 temp2 = fxp_mul32_Q32((ss - cb_begin) << 16, mp3_shortwindBandWidths[sfreq][cb_width]); - temp2 = (temp2 + 1) >> 15; - - global_gain = (gr_info->global_gain); - global_gain -= gr_info->subblock_gain[temp2] << 3; - global_gain -= (1 + gr_info->scalefac_scale) * (scalefac->s[temp2][cb] << 1); - - two_raise_one_fourth = pow_2_1_fourth[global_gain&0x3]; - global_gain = 12 + (global_gain >> 2); - - } - - - /* - * xr[sb][ss] = 2^(global_gain/4) - */ - - /* Scale quantized value. */ - - /* 0 < abs(is[ss]) < 8192 */ - - int32 tmp = fxp_mul32_Q30((is[ss] << 16), power_1_third(pv_abs(is[ ss]))); - - tmp = fxp_mul32_Q30(tmp, two_raise_one_fourth); - - if (global_gain < 0) - { - int32 temp = - global_gain; - if (temp < 32) - { - is[ss] = (tmp >> temp); - } - else - { - is[ss] = 0; - } - } - else - { - is[ss] = (tmp << global_gain); - } - - } /* for (ss=0 ; ss < used_freq_lines ; ss++) */ - - } - else - { - - for (cb = 0 ; cb < 22 ; cb++) - { - - /* Compute overall (global) scaling. */ - - global_gain = (gr_info->global_gain); - - global_gain -= (1 + gr_info->scalefac_scale) * - (scalefac->l[cb] + gr_info->preflag * pretab[cb]) << 1; - - - int32 two_raise_one_fourth = pow_2_1_fourth[global_gain&0x3]; - global_gain = 12 + (global_gain >> 2); - - /* - * xr[sb][ss] = 2^(global_gain/4) - */ - - /* Scale quantized value. */ - - if (used_freq_lines >= mp3_sfBandIndex[sfreq].l[cb+1]) - { - if (global_gain <= 0) - { - global_gain = - global_gain; - if (global_gain < 32) - { - for (ss = mp3_sfBandIndex[sfreq].l[cb]; ss < mp3_sfBandIndex[sfreq].l[cb+1]; ss += 2) - { - int32 tmp = is[ss]; - if (tmp) - { - tmp = fxp_mul32_Q30((tmp << 16), power_1_third(pv_abs(tmp))); - is[ss] = fxp_mul32_Q30(tmp, two_raise_one_fourth) >> global_gain; - } - tmp = is[ss+1]; - if (tmp) - { - tmp = fxp_mul32_Q30((tmp << 16), power_1_third(pv_abs(tmp))); - is[ss+1] = fxp_mul32_Q30(tmp, two_raise_one_fourth) >> global_gain; - } - } - } - else - { - pv_memset(&is[ mp3_sfBandIndex[sfreq].l[cb]], - 0, - (mp3_sfBandIndex[sfreq].l[cb+1] - mp3_sfBandIndex[sfreq].l[cb])*sizeof(*is)); - } - } - else - { - for (ss = mp3_sfBandIndex[sfreq].l[cb]; ss < mp3_sfBandIndex[sfreq].l[cb+1]; ss += 2) - { - int32 tmp = is[ss]; - if (tmp) - { - tmp = fxp_mul32_Q30((tmp << 16), power_1_third(pv_abs(tmp))); - is[ss] = fxp_mul32_Q30(tmp, two_raise_one_fourth) << global_gain; - } - - tmp = is[ss+1]; - if (tmp) - { - tmp = fxp_mul32_Q30((tmp << 16), power_1_third(pv_abs(tmp))); - is[ss+1] = fxp_mul32_Q30(tmp, two_raise_one_fourth) << global_gain; - } - } - } - } - else - { - if (global_gain <= 0) - { - global_gain = - global_gain; - if (global_gain < 32) - { - for (ss = mp3_sfBandIndex[sfreq].l[cb]; ss < used_freq_lines; ss += 2) - { - int32 tmp = is[ss]; - if (tmp) - { - tmp = fxp_mul32_Q30((tmp << 16), power_1_third(pv_abs(tmp))); - is[ss] = fxp_mul32_Q30(tmp, two_raise_one_fourth) >> global_gain; - } - tmp = is[ss+1]; - if (tmp) - { - tmp = fxp_mul32_Q30((tmp << 16), power_1_third(pv_abs(tmp))); - is[ss+1] = fxp_mul32_Q30(tmp, two_raise_one_fourth) >> global_gain; - } - } - - } - else - { - pv_memset(&is[ mp3_sfBandIndex[sfreq].l[cb]], - 0, - (mp3_sfBandIndex[sfreq].l[cb+1] - mp3_sfBandIndex[sfreq].l[cb])*sizeof(*is)); - } - } - else - { - for (ss = mp3_sfBandIndex[sfreq].l[cb]; ss < used_freq_lines; ss++) - { - int32 tmp = is[ss]; - - if (tmp) - { - tmp = fxp_mul32_Q30((tmp << 16), power_1_third(pv_abs(tmp))); - is[ss] = fxp_mul32_Q30(tmp, two_raise_one_fourth) << global_gain; - } - } - } - - cb = 22; // force breaking out of the loop - - } /* if ( used_freq_lines >= mp3_sfBandIndex[sfreq].l[cb+1]) */ - - } /* for (cb=0 ; cb < 22 ; cb++) */ - - } /* if (gr_info->window_switching_flag && (gr_info->block_type == 2)) */ - - - pv_memset(&is[used_freq_lines], - 0, - (FILTERBANK_BANDS*SUBBANDS_NUMBER - used_freq_lines)*sizeof(*is)); - -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_dequantize_sample.h b/external/android-specific/pvmp3dec/src/pvmp3_dequantize_sample.h deleted file mode 100644 index 9393eb1..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_dequantize_sample.h +++ /dev/null @@ -1,106 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_dequantize_sample.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_DEQUANTIZE_SAMPLE_H -#define PVMP3_DEQUANTIZE_SAMPLE_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - int32 power_1_third(int32 xx); - - void pvmp3_dequantize_sample(int32 is[SUBBANDS_NUMBER*FILTERBANK_BANDS], - mp3ScaleFactors *scalefac, - granuleInfo *gr_info, - int32 num_lines, - mp3Header *info); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_equalizer.cpp b/external/android-specific/pvmp3dec/src/pvmp3_equalizer.cpp deleted file mode 100644 index f4a4efb..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_equalizer.cpp +++ /dev/null @@ -1,415 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_equalizer.cpp - - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Input - int32 *inData, pointer to the spectrum frequency-line - e_equalization equalizerType, equalization mode - int32 *pt_work_buff - - Output - int32 *pt_work_buff pointer to the equalized frequency-line - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - Equalizer - Each subband sample is scaled according to a spectrum shape setting - defined by "equalizerType" - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_equalizer.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_dec_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define LEVEL__0__dB 0.999999970f -#define LEVEL__1_5dB 0.841395142f -#define LEVEL__3__dB 0.707106781f -#define LEVEL__4_5dB 0.595662143f -#define LEVEL__6__dB 0.500000000f -#define LEVEL__7_5dB 0.421696503f -#define LEVEL__9__dB 0.353553393f -#define LEVEL_12__dB 0.250000000f -#define LEVEL_15__dB 0.176776695f -#define LEVEL_18__dB 0.125000000f -#define LEVEL_21__dB 0.088388347f -#define LEVEL_30__dB 0.031250000f -#define LEVEL_45__dB 0.005524271f -#define LEVEL_60__dB 0.000976562f - -#define Qmf31( x) (int32)(x*(float)0x7FFFFFFF) - - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -const int32 equalizerTbl[8][SUBBANDS_NUMBER] = -{ - /* FLAT */ - { - Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB) - }, - /* BASS BOOST */ - { - Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__1_5dB), Qmf31(LEVEL__3__dB), - - Qmf31(LEVEL__4_5dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB) - }, - /* ROCK */ - { - Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__1_5dB), Qmf31(LEVEL__3__dB), - - Qmf31(LEVEL__4_5dB), Qmf31(LEVEL__6__dB), - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__1_5dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB) - }, - /* POP */ - { - Qmf31(LEVEL__6__dB), - - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - - Qmf31(LEVEL__1_5dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB) - }, - /* JAZZ */ - { - Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__1_5dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB) - }, - /* CLASSICAL */ - { - Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - Qmf31(LEVEL__9__dB), Qmf31(LEVEL__9__dB), - - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__1_5dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB) - }, - /* TALK */ - { - Qmf31(LEVEL__9__dB), - - Qmf31(LEVEL__6__dB), Qmf31(LEVEL__6__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__1_5dB), - - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB), Qmf31(LEVEL__3__dB), - Qmf31(LEVEL__3__dB) - }, - /* FLAT */ - { - Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB), Qmf31(LEVEL__0__dB), - Qmf31(LEVEL__0__dB) - } -}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_equalizer(int32 *circ_buffer, - e_equalization equalizerType, - int32 *work_buff) -{ - - if (equalizerType == flat) - { - for (int32 band = 0; band < FILTERBANK_BANDS; band += 2) - { - - int32 *pt_work_buff = &work_buff[band]; - int32 *inData = &circ_buffer[544 - (band<<5)]; - - int32 i; - for (i = 0; i < SUBBANDS_NUMBER*FILTERBANK_BANDS; i += FILTERBANK_BANDS << 2) - { - int32 temp1 = (pt_work_buff[ i ]); - int32 temp2 = (pt_work_buff[ i + FILTERBANK_BANDS ]); - int32 temp3 = (pt_work_buff[ i + 2*FILTERBANK_BANDS ]); - int32 temp4 = (pt_work_buff[ i + 3*FILTERBANK_BANDS ]); - *(inData++) = temp1; - *(inData++) = temp2; - *(inData++) = temp3; - *(inData++) = temp4; - } - - inData -= SUBBANDS_NUMBER << 1; - pt_work_buff++; - - for (i = 0; i < SUBBANDS_NUMBER*FILTERBANK_BANDS; i += FILTERBANK_BANDS << 2) - { - int32 temp1 = (pt_work_buff[ i ]); - int32 temp2 = (pt_work_buff[ i + FILTERBANK_BANDS ]); - int32 temp3 = (pt_work_buff[ i + 2*FILTERBANK_BANDS ]); - int32 temp4 = (pt_work_buff[ i + 3*FILTERBANK_BANDS ]); - *(inData++) = temp1; - *(inData++) = temp2; - *(inData++) = temp3; - *(inData++) = temp4; - } - } - } - else - { - const int32 *pt_equalizer = equalizerTbl[equalizerType&7]; - - - for (int32 band = 0; band < FILTERBANK_BANDS; band += 3) - { - int32 *inData = &circ_buffer[544 - (band<<5)]; - - int32 *pt_work_buff = &work_buff[band]; - int32 i; - - for (i = 0; i < SUBBANDS_NUMBER*FILTERBANK_BANDS; i += FILTERBANK_BANDS << 2) - { - int32 temp1 = (pt_work_buff[ i ]); - int32 temp2 = (pt_work_buff[ i + FILTERBANK_BANDS ]); - int32 temp3 = (pt_work_buff[ i + 2*FILTERBANK_BANDS ]); - int32 temp4 = (pt_work_buff[ i + 3*FILTERBANK_BANDS ]); - *(inData++) = fxp_mul32_Q32(temp1 << 1, *(pt_equalizer++)); - *(inData++) = fxp_mul32_Q32(temp2 << 1, *(pt_equalizer++)); - *(inData++) = fxp_mul32_Q32(temp3 << 1, *(pt_equalizer++)); - *(inData++) = fxp_mul32_Q32(temp4 << 1, *(pt_equalizer++)); - } - - pt_equalizer -= SUBBANDS_NUMBER; - - inData -= SUBBANDS_NUMBER << 1; - pt_work_buff++; - - for (i = 0; i < SUBBANDS_NUMBER*FILTERBANK_BANDS; i += FILTERBANK_BANDS << 2) - { - int32 temp1 = (pt_work_buff[ i ]); - int32 temp2 = (pt_work_buff[ i + FILTERBANK_BANDS ]); - int32 temp3 = (pt_work_buff[ i + 2*FILTERBANK_BANDS ]); - int32 temp4 = (pt_work_buff[ i + 3*FILTERBANK_BANDS ]); - *(inData++) = fxp_mul32_Q32(temp1 << 1, *(pt_equalizer++)); - *(inData++) = fxp_mul32_Q32(temp2 << 1, *(pt_equalizer++)); - *(inData++) = fxp_mul32_Q32(temp3 << 1, *(pt_equalizer++)); - *(inData++) = fxp_mul32_Q32(temp4 << 1, *(pt_equalizer++)); - } - pt_equalizer -= SUBBANDS_NUMBER; - - } - } -} - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_equalizer.h b/external/android-specific/pvmp3dec/src/pvmp3_equalizer.h deleted file mode 100644 index bbf134f..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_equalizer.h +++ /dev/null @@ -1,101 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_equalizer.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_EQUALIZER_H -#define PVMP3_EQUALIZER_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "pvmp3decoder_api.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_equalizer(int32 *inData, - e_equalization equalizerType, - int32 *pt_work_buff); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_framedecoder.cpp b/external/android-specific/pvmp3dec/src/pvmp3_framedecoder.cpp deleted file mode 100644 index 26bc25c..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_framedecoder.cpp +++ /dev/null @@ -1,834 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_framedecoder.cpp - - Functions: - pvmp3_framedecoder - pvmp3_InitDecoder - pvmp3_resetDecoder - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - pExt = pointer to the external interface structure. See the file - pvmp3decoder_api.h for a description of each field. - Data type of pointer to a tPVMP3DecoderExternal - structure. - - pMem = void pointer to hide the internal implementation of the library - It is cast back to a tmp3dec_file structure. This structure - contains information that needs to persist between calls to - this function, or is too big to be placed on the stack, even - though the data is only needed during execution of this function - Data type void pointer, internally pointer to a tmp3dec_file - structure. - - - Outputs: - status = ERROR condition. see structure ERROR_CODE - - Pointers and Buffers Modified: - pMem contents are modified. - pExt: (more detail in the file pvmp3decoder_api.h) - inputBufferUsedLength - number of array elements used up by the stream. - samplingRate - sampling rate in samples per sec - bitRate - bit rate in bits per second, varies frame to frame. - - - ------------------------------------------------------------------------------- - FUNCTIONS DESCRIPTION - - pvmp3_framedecoder - frame decoder library driver - pvmp3_InitDecoder - Decoder Initialization - pvmp3_resetDecoder - Reset Decoder - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - - -#include "pvmp3_framedecoder.h" -#include "pvmp3_dec_defs.h" -#include "pvmp3_poly_phase_synthesis.h" -#include "pvmp3_tables.h" -#include "pvmp3_imdct_synth.h" -#include "pvmp3_alias_reduction.h" -#include "pvmp3_reorder.h" -#include "pvmp3_dequantize_sample.h" -#include "pvmp3_stereo_proc.h" -#include "pvmp3_mpeg2_stereo_proc.h" -#include "pvmp3_get_side_info.h" -#include "pvmp3_get_scale_factors.h" -#include "pvmp3_mpeg2_get_scale_factors.h" -#include "pvmp3_decode_header.h" -#include "pvmp3_get_main_data_size.h" -#include "s_tmp3dec_file.h" -#include "pvmp3_getbits.h" -#include "mp3_mem_funcs.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -ERROR_CODE pvmp3_framedecoder(tPVMP3DecoderExternal *pExt, - void *pMem) -{ - - ERROR_CODE errorCode = NO_DECODING_ERROR; - - int32 crc_error_count = 0; - uint32 sent_crc = 0; - uint32 computed_crc = 0; - - tmp3dec_chan *pChVars[CHAN]; - tmp3dec_file *pVars = (tmp3dec_file *)pMem; - - mp3Header info_data; - mp3Header *info = &info_data; - - pVars->inputStream.pBuffer = pExt->pInputBuffer; - - - pVars->inputStream.usedBits = pExt->inputBufferUsedLength << 3; - pVars->inputStream.inputBufferCurrentLength = pExt->inputBufferCurrentLength; - - - errorCode = pvmp3_decode_header(&pVars->inputStream, - info, - &computed_crc); - - if (errorCode != NO_DECODING_ERROR) - { - pExt->outputFrameSize = 0; - return errorCode; - } - - pVars->num_channels = (info->mode == MPG_MD_MONO) ? 1 : 2; - pExt->num_channels = pVars->num_channels; - - int32 outputFrameSize = (info->version_x == MPEG_1) ? - 2 * SUBBANDS_NUMBER * FILTERBANK_BANDS : - SUBBANDS_NUMBER * FILTERBANK_BANDS; - - outputFrameSize = (info->mode == MPG_MD_MONO) ? outputFrameSize : outputFrameSize << 1; - - - /* - * Check if output buffer has enough room to hold output PCM - */ - if (pExt->outputFrameSize >= outputFrameSize) - { - pExt->outputFrameSize = outputFrameSize; - } - else - { - pExt->outputFrameSize = 0; - return OUTPUT_BUFFER_TOO_SMALL; - } - - - pChVars[ LEFT] = &pVars->perChan[ LEFT]; - pChVars[RIGHT] = &pVars->perChan[RIGHT]; - - - - - if (info->error_protection) - { - /* - * Get crc content - */ - sent_crc = getUpTo17bits(&pVars->inputStream, 16); - } - - - if (info->layer_description == 3) - { - int32 gr; - int32 ch; - uint32 main_data_end; - int32 bytes_to_discard; - int16 *ptrOutBuffer = pExt->pOutputBuffer; - - /* - * Side Information must be extracted from the bitstream and store for use - * during the decoded of the associated frame - */ - - errorCode = pvmp3_get_side_info(&pVars->inputStream, - &pVars->sideInfo, - info, - &computed_crc); - - if (errorCode != NO_DECODING_ERROR) - { - pExt->outputFrameSize = 0; - return errorCode; - } - - /* - * If CRC was sent, check that matches the one got while parsing data - * disable crc if this is the desired mode - */ - if (info->error_protection) - { - if ((computed_crc != sent_crc) && pExt->crcEnabled) - { - crc_error_count++; - } - } - - /* - * main data (scalefactors, Huffman coded, etc,) are not necessarily located - * adjacent to the side-info. Beginning of main data is located using - * field "main_data_begin" of the current frame. The length does not include - * header and side info. - * "main_data_begin" points to the first bit of main data of a frame. It is a negative - * offset in bytes from the first byte of the sync word - * main_data_begin = 0 <===> main data start rigth after side info. - */ - - int32 temp = pvmp3_get_main_data_size(info, pVars); - - - /* - * Check if available data holds a full frame, if not flag an error - */ - - if ((uint32)pVars->predicted_frame_size > pVars->inputStream.inputBufferCurrentLength) - { - pExt->outputFrameSize = 0; - return NO_ENOUGH_MAIN_DATA_ERROR; - } - - /* - * Fill in internal circular buffer - */ - fillMainDataBuf(pVars, temp); - - - main_data_end = pVars->mainDataStream.usedBits >> 3; /* in bytes */ - if ((main_data_end << 3) < pVars->mainDataStream.usedBits) - { - main_data_end++; - pVars->mainDataStream.usedBits = main_data_end << 3; - } - - - bytes_to_discard = pVars->frame_start - pVars->sideInfo.main_data_begin - main_data_end; - - - if (main_data_end > BUFSIZE) /* check overflow on the buffer */ - { - pVars->frame_start -= BUFSIZE; - - pVars->mainDataStream.usedBits -= (BUFSIZE << 3); - } - - pVars->frame_start += temp; - - - if (bytes_to_discard < 0 || crc_error_count) - { - /* - * Not enough data to decode, then we should avoid reading this - * data ( getting/ignoring sido info and scale data) - * Main data could be located in the previous frame, so an unaccounted - * frame can cause incorrect processing - * Just run the polyphase filter to "clean" the history buffer - */ - errorCode = NO_ENOUGH_MAIN_DATA_ERROR; - - /* - * Clear the input to these filters - */ - - pv_memset((void*)pChVars[RIGHT]->work_buf_int32, - 0, - SUBBANDS_NUMBER*FILTERBANK_BANDS*sizeof(pChVars[RIGHT]->work_buf_int32[0])); - - pv_memset((void*)pChVars[LEFT]->work_buf_int32, - 0, - SUBBANDS_NUMBER*FILTERBANK_BANDS*sizeof(pChVars[LEFT]->work_buf_int32[0])); - - /* clear circular buffers, to avoid any glitch */ - pv_memset((void*)&pChVars[ LEFT]->circ_buffer[576], - 0, - 480*sizeof(pChVars[ LEFT]->circ_buffer[0])); - pv_memset((void*)&pChVars[RIGHT]->circ_buffer[576], - 0, - 480*sizeof(pChVars[RIGHT]->circ_buffer[0])); - - pChVars[ LEFT]->used_freq_lines = 575; - pChVars[RIGHT]->used_freq_lines = 575; - - } - else - { - pVars->mainDataStream.usedBits += (bytes_to_discard << 3); - } - - /* - * if (fr_ps->header->version_x == MPEG_1), use 2 granules, otherwise just 1 - */ - for (gr = 0; gr < (1 + !(info->version_x)); gr++) - { - if (errorCode != NO_ENOUGH_MAIN_DATA_ERROR) - { - for (ch = 0; ch < pVars->num_channels; ch++) - { - int32 part2_start = pVars->mainDataStream.usedBits; - - if (info->version_x == MPEG_1) - { - - pvmp3_get_scale_factors(&pVars->scaleFactors[ch], - &pVars->sideInfo, - gr, - ch, - &pVars->mainDataStream); - } - else - { - int32 * tmp = pVars->Scratch_mem; - pvmp3_mpeg2_get_scale_factors(&pVars->scaleFactors[ch], - &pVars->sideInfo, - gr, - ch, - info, - (uint32 *)tmp, - &pVars->mainDataStream); - } - - pChVars[ch]->used_freq_lines = pvmp3_huffman_parsing(pChVars[ch]->work_buf_int32, - &pVars->sideInfo.ch[ch].gran[gr], - pVars, - part2_start, - info); - - - pvmp3_dequantize_sample(pChVars[ch]->work_buf_int32, - &pVars->scaleFactors[ch], - &pVars->sideInfo.ch[ch].gran[gr], - pChVars[ch]->used_freq_lines, - info); - - - - - } /* for (ch=0; chnum_channels == 2) - { - - int32 used_freq_lines = (pChVars[ LEFT]->used_freq_lines > - pChVars[RIGHT]->used_freq_lines) ? - pChVars[ LEFT]->used_freq_lines : - pChVars[RIGHT]->used_freq_lines; - - pChVars[ LEFT]->used_freq_lines = used_freq_lines; - pChVars[RIGHT]->used_freq_lines = used_freq_lines; - - if (info->version_x == MPEG_1) - { - pvmp3_stereo_proc(pChVars[ LEFT]->work_buf_int32, - pChVars[RIGHT]->work_buf_int32, - &pVars->scaleFactors[RIGHT], - &pVars->sideInfo.ch[LEFT].gran[gr], - used_freq_lines, - info); - } - else - { - int32 * tmp = pVars->Scratch_mem; - pvmp3_mpeg2_stereo_proc(pChVars[ LEFT]->work_buf_int32, - pChVars[RIGHT]->work_buf_int32, - &pVars->scaleFactors[RIGHT], - &pVars->sideInfo.ch[ LEFT].gran[gr], - &pVars->sideInfo.ch[RIGHT].gran[gr], - (uint32 *)tmp, - used_freq_lines, - info); - } - } - - } /* if ( errorCode != NO_ENOUGH_MAIN_DATA_ERROR) */ - - for (ch = 0; ch < pVars->num_channels; ch++) - { - - pvmp3_reorder(pChVars[ch]->work_buf_int32, - &pVars->sideInfo.ch[ch].gran[gr], - &pChVars[ ch]->used_freq_lines, - info, - pVars->Scratch_mem); - - pvmp3_alias_reduction(pChVars[ch]->work_buf_int32, - &pVars->sideInfo.ch[ch].gran[gr], - &pChVars[ ch]->used_freq_lines, - info); - - - /* - * IMDCT - */ - /* set mxposition - * In case of mixed blocks, # of bands with long - * blocks (2 or 4) else 0 - */ - uint16 mixedBlocksLongBlocks = 0; /* 0 = long or short, 2=mixed, 4=mixed 2.5@8000 */ - if (pVars->sideInfo.ch[ch].gran[gr].mixed_block_flag && - pVars->sideInfo.ch[ch].gran[gr].window_switching_flag) - { - if ((info->version_x == MPEG_2_5) && (info->sampling_frequency == 2)) - { - mixedBlocksLongBlocks = 4; /* mpeg2.5 @ 8 KHz */ - } - else - { - mixedBlocksLongBlocks = 2; - } - } - - pvmp3_imdct_synth(pChVars[ch]->work_buf_int32, - pChVars[ch]->overlap, - pVars->sideInfo.ch[ch].gran[gr].block_type, - mixedBlocksLongBlocks, - pChVars[ ch]->used_freq_lines, - pVars->Scratch_mem); - - - /* - * Polyphase synthesis - */ - - pvmp3_poly_phase_synthesis(pChVars[ch], - pVars->num_channels, - pExt->equalizerType, - &ptrOutBuffer[ch]); - - - }/* end ch loop */ - - ptrOutBuffer += pVars->num_channels * SUBBANDS_NUMBER * FILTERBANK_BANDS; - } /* for (gr=0;grbitrate_index > 0) - { /* if not free-format */ - - int32 ancillary_data_lenght = pVars->predicted_frame_size << 3; - - ancillary_data_lenght -= pVars->inputStream.usedBits; - - /* skip ancillary data */ - if (ancillary_data_lenght > 0) - { - pVars->inputStream.usedBits += ancillary_data_lenght; - } - - } - - /* - * This overrides a possible NO_ENOUGH_MAIN_DATA_ERROR - */ - errorCode = NO_DECODING_ERROR; - - } - else - { - /* - * The info on the header leads to an unsupported layer, more data - * will not fix this, so this is a bad frame, - */ - - pExt->outputFrameSize = 0; - return UNSUPPORTED_LAYER; - } - - pExt->inputBufferUsedLength = pVars->inputStream.usedBits >> 3; - pExt->totalNumberOfBitsUsed += pVars->inputStream.usedBits; - pExt->version = info->version_x; - pExt->samplingRate = mp3_s_freq[info->version_x][info->sampling_frequency]; - pExt->bitRate = mp3_bitrate[pExt->version][info->bitrate_index]; - - - /* - * Always verify buffer overrun condition - */ - - if (pExt->inputBufferUsedLength > pExt->inputBufferCurrentLength) - { - pExt->outputFrameSize = 0; - errorCode = NO_ENOUGH_MAIN_DATA_ERROR; - } - - return errorCode; - -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -__inline void fillDataBuf(tmp3Bits *pMainData, - uint32 val) /* val to write into the buffer */ -{ - pMainData->pBuffer[module(pMainData->offset++, BUFSIZE)] = (uint8)val; -} - - -void fillMainDataBuf(void *pMem, int32 temp) -{ - tmp3dec_file *pVars = (tmp3dec_file *)pMem; - - - int32 offset = (pVars->inputStream.usedBits) >> INBUF_ARRAY_INDEX_SHIFT; - - /* - * Check if input circular buffer boundaries need to be enforced - */ - if ((offset + temp) < BUFSIZE) - { - uint8 * ptr = pVars->inputStream.pBuffer + offset; - - offset = pVars->mainDataStream.offset; - - /* - * Check if main data circular buffer boundaries need to be enforced - */ - if ((offset + temp) < BUFSIZE) - { - pv_memcpy((pVars->mainDataStream.pBuffer + offset), ptr, temp*sizeof(uint8)); - pVars->mainDataStream.offset += temp; - } - else - { - int32 tmp1 = *(ptr++); - for (int32 nBytes = temp >> 1; nBytes != 0; nBytes--) /* read main data. */ - { - int32 tmp2 = *(ptr++); - fillDataBuf(&pVars->mainDataStream, tmp1); - fillDataBuf(&pVars->mainDataStream, tmp2); - tmp1 = *(ptr++); - } - - if (temp&1) - { - fillDataBuf(&pVars->mainDataStream, tmp1); - } - - /* adjust circular buffer counter */ - pVars->mainDataStream.offset = module(pVars->mainDataStream.offset, BUFSIZE); - } - } - else - { - for (int32 nBytes = temp >> 1; nBytes != 0; nBytes--) /* read main data. */ - { - fillDataBuf(&pVars->mainDataStream, *(pVars->inputStream.pBuffer + module(offset++ , BUFSIZE))); - fillDataBuf(&pVars->mainDataStream, *(pVars->inputStream.pBuffer + module(offset++ , BUFSIZE))); - } - if (temp&1) - { - fillDataBuf(&pVars->mainDataStream, *(pVars->inputStream.pBuffer + module(offset , BUFSIZE))); - } - } - - - pVars->inputStream.usedBits += (temp) << INBUF_ARRAY_INDEX_SHIFT; -} - - - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -uint32 pvmp3_decoderMemRequirements(void) -{ - uint32 size; - - size = (uint32) sizeof(tmp3dec_file); - return (size); -} - - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -#include "pvmp3_decode_huff_cw.h" - -void pvmp3_InitDecoder(tPVMP3DecoderExternal *pExt, - void *pMem) -{ - - tmp3dec_file *pVars; - huffcodetab *pHuff; - - pVars = (tmp3dec_file *)pMem; - - pVars->num_channels = 0; - - pExt->totalNumberOfBitsUsed = 0; - pExt->inputBufferCurrentLength = 0; - pExt->inputBufferUsedLength = 0; - - pVars->mainDataStream.offset = 0; - - pv_memset((void*)pVars->mainDataBuffer, - 0, - BUFSIZE*sizeof(*pVars->mainDataBuffer)); - - - pVars->inputStream.pBuffer = pExt->pInputBuffer; - - /* - * Initialize huffman decoding table - */ - - pHuff = pVars->ht; - pHuff[0].linbits = 0; - pHuff[0].pdec_huff_tab = pvmp3_decode_huff_cw_tab0; - pHuff[1].linbits = 0; - pHuff[1].pdec_huff_tab = pvmp3_decode_huff_cw_tab1; - pHuff[2].linbits = 0; - pHuff[2].pdec_huff_tab = pvmp3_decode_huff_cw_tab2; - pHuff[3].linbits = 0; - pHuff[3].pdec_huff_tab = pvmp3_decode_huff_cw_tab3; - pHuff[4].linbits = 0; - pHuff[4].pdec_huff_tab = pvmp3_decode_huff_cw_tab0; /* tbl 4 is not used */ - pHuff[5].linbits = 4; - pHuff[5].pdec_huff_tab = pvmp3_decode_huff_cw_tab5; - pHuff[6].linbits = 0; - pHuff[6].pdec_huff_tab = pvmp3_decode_huff_cw_tab6; - pHuff[7].linbits = 0; - pHuff[7].pdec_huff_tab = pvmp3_decode_huff_cw_tab7; - pHuff[8].linbits = 0; - pHuff[8].pdec_huff_tab = pvmp3_decode_huff_cw_tab8; - pHuff[9].linbits = 0; - pHuff[9].pdec_huff_tab = pvmp3_decode_huff_cw_tab9; - pHuff[10].linbits = 0; - pHuff[10].pdec_huff_tab = pvmp3_decode_huff_cw_tab10; - pHuff[11].linbits = 0; - pHuff[11].pdec_huff_tab = pvmp3_decode_huff_cw_tab11; - pHuff[12].linbits = 0; - pHuff[12].pdec_huff_tab = pvmp3_decode_huff_cw_tab12; - pHuff[13].linbits = 0; - pHuff[13].pdec_huff_tab = pvmp3_decode_huff_cw_tab13; - pHuff[14].linbits = 0; - pHuff[14].pdec_huff_tab = pvmp3_decode_huff_cw_tab0; /* tbl 14 is not used */ - pHuff[15].linbits = 0; - pHuff[15].pdec_huff_tab = pvmp3_decode_huff_cw_tab15; - pHuff[16].linbits = 1; - pHuff[16].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[17].linbits = 2; - pHuff[17].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[18].linbits = 3; - pHuff[18].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[19].linbits = 4; - pHuff[19].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[20].linbits = 6; - pHuff[20].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[21].linbits = 8; - pHuff[21].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[22].linbits = 10; - pHuff[22].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[23].linbits = 13; - pHuff[23].pdec_huff_tab = pvmp3_decode_huff_cw_tab16; - pHuff[24].linbits = 4; - pHuff[24].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[25].linbits = 5; - pHuff[25].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[26].linbits = 6; - pHuff[26].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[27].linbits = 7; - pHuff[27].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[28].linbits = 8; - pHuff[28].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[29].linbits = 9; - pHuff[29].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[30].linbits = 11; - pHuff[30].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[31].linbits = 13; - pHuff[31].pdec_huff_tab = pvmp3_decode_huff_cw_tab24; - pHuff[32].linbits = 0; - pHuff[32].pdec_huff_tab = pvmp3_decode_huff_cw_tab32; - pHuff[33].linbits = 0; - pHuff[33].pdec_huff_tab = pvmp3_decode_huff_cw_tab33; - - /* - * Initialize polysynthesis circular buffer mechanism - */ - /* clear buffers */ - - pvmp3_resetDecoder(pMem); - -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - -void pvmp3_resetDecoder(void *pMem) -{ - - tmp3dec_file *pVars; - tmp3dec_chan *pChVars[CHAN]; - - pVars = (tmp3dec_file *)pMem; - pChVars[ LEFT] = &pVars->perChan[ LEFT]; - pChVars[RIGHT] = &pVars->perChan[RIGHT]; - - pVars->frame_start = 0; - - pVars->mainDataStream.offset = 0; - - pVars->mainDataStream.pBuffer = pVars->mainDataBuffer; - pVars->mainDataStream.usedBits = 0; - - - pVars->inputStream.usedBits = 0; // in bits - - - pChVars[ LEFT]->used_freq_lines = 575; - pChVars[RIGHT]->used_freq_lines = 575; - - - /* - * Initialize polysynthesis circular buffer mechanism - */ - - pv_memset((void*)&pChVars[ LEFT]->circ_buffer[576], - 0, - 480*sizeof(pChVars[ LEFT]->circ_buffer[0])); - pv_memset((void*)&pChVars[RIGHT]->circ_buffer[576], - 0, - 480*sizeof(pChVars[RIGHT]->circ_buffer[0])); - - - pv_memset((void*)pChVars[ LEFT]->overlap, - 0, - SUBBANDS_NUMBER*FILTERBANK_BANDS*sizeof(pChVars[ LEFT]->overlap[0])); - - - pv_memset((void*)pChVars[ RIGHT]->overlap, - 0, - SUBBANDS_NUMBER*FILTERBANK_BANDS*sizeof(pChVars[ RIGHT]->overlap[0])); - - - - - - /* - * Clear all the structures - */ - - - pv_memset((void*)&pVars->scaleFactors[RIGHT], - 0, - sizeof(mp3ScaleFactors)); - - pv_memset((void*)&pVars->scaleFactors[LEFT], - 0, - sizeof(mp3ScaleFactors)); - - pv_memset((void*)&pVars->sideInfo, - 0, - sizeof(mp3SideInfo)); - - pv_memset((void*)&pVars->sideInfo, - 0, - sizeof(mp3SideInfo)); - -} diff --git a/external/android-specific/pvmp3dec/src/pvmp3_framedecoder.h b/external/android-specific/pvmp3dec/src/pvmp3_framedecoder.h deleted file mode 100644 index f6d4a35..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_framedecoder.h +++ /dev/null @@ -1,115 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_framedecoder.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_FRAMEDECODER_H -#define PVMP3_FRAMEDECODER_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" -#include "pvmp3decoder_api.h" -#include "s_mp3bits.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - - ERROR_CODE pvmp3_framedecoder(tPVMP3DecoderExternal *pExt, - void *pMem); - - - - uint32 pvmp3_decoderMemRequirements(void); - - void pvmp3_InitDecoder(tPVMP3DecoderExternal *pExt, - void *pMem); - - - void pvmp3_resetDecoder(void *pMem); - - - void fillMainDataBuf(void *pMem, int32 temp); - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_get_main_data_size.cpp b/external/android-specific/pvmp3dec/src/pvmp3_get_main_data_size.cpp deleted file mode 100644 index 423a7b1..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_get_main_data_size.cpp +++ /dev/null @@ -1,180 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_get_main_data_size.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Input - mp3Header *info, pointer to mp3 header info structure - tmp3dec_file *pVars - contains information that needs to persist - between calls to this function, or is too big to - be placed on the stack, even though the data is - only needed during execution of this function - - Returns - - main data frame size - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - get main data frame size - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_tables.h" -#include "pvmp3_get_main_data_size.h" -#include "pv_mp3dec_fxd_op.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -int32 pvmp3_get_main_data_size(mp3Header *info, - tmp3dec_file *pVars) -{ - - - int32 numBytes = fxp_mul32_Q28(mp3_bitrate[info->version_x][info->bitrate_index] << 20, - inv_sfreq[info->sampling_frequency]); - - - numBytes >>= (20 - info->version_x); - - /* - * Remove the size of the side information from the main data total - */ - if (info->version_x == MPEG_1) - { - pVars->predicted_frame_size = numBytes; - if (info->mode == MPG_MD_MONO) - { - numBytes -= 17; - } - else - { - numBytes -= 32; - } - } - else - { - numBytes >>= 1; - pVars->predicted_frame_size = numBytes; - - if (info->mode == MPG_MD_MONO) - { - numBytes -= 9; - } - else - { - numBytes -= 17; - } - } - - if (info->padding) - { - numBytes++; - pVars->predicted_frame_size++; - } - - if (info->error_protection) - { - numBytes -= 6; - } - else - { - numBytes -= 4; - } - - - if (numBytes < 0) - { - numBytes = 0; - } - - return(numBytes); -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_get_main_data_size.h b/external/android-specific/pvmp3dec/src/pvmp3_get_main_data_size.h deleted file mode 100644 index 8e9eaa8..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_get_main_data_size.h +++ /dev/null @@ -1,101 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_get_main_data_size.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_GET_MAIN_DATA_SIZE_H -#define PVMP3_GET_MAIN_DATA_SIZE_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" -#include "s_tmp3dec_file.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - int32 pvmp3_get_main_data_size(mp3Header *info, - tmp3dec_file *pVars); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_get_scale_factors.cpp b/external/android-specific/pvmp3dec/src/pvmp3_get_scale_factors.cpp deleted file mode 100644 index f1a3ff8..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_get_scale_factors.cpp +++ /dev/null @@ -1,226 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_get_scale_factors.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Input - mp3ScaleFactors *scalefac, - mp3SideInfo *si, side info - int32 gr, granule - int32 ch, channel - tbits *pMainData bit stream - - Returns - - mp3ScaleFactors *scalefac, scale factors - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - get scale factors - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_get_scale_factors.h" -#include "pvmp3_getbits.h" -#include "mp3_mem_funcs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define Qfmt_28(a)(int32(double(0x10000000)*a)) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -const int32 slen[2][16] = -{ - {0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4}, - {0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3} -}; - -const struct -{ - int32 l[5]; - int32 s[3]; -} sfbtable = -{ - {0, 6, 11, 16, 21}, - {0, 6, 12} -}; - -const int32 long_sfbtable[4] = { 6, 5, 5, 5}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_get_scale_factors(mp3ScaleFactors *scalefac, - mp3SideInfo *si, - int32 gr, - int32 ch, - tmp3Bits *pMainData) -{ - int32 sfb; - int32 i; - int32 window; - granuleInfo *gr_info = &(si->ch[ch].gran[gr]); - - if (gr_info->window_switching_flag && (gr_info->block_type == 2)) - { - if (gr_info->mixed_block_flag) - { /* MIXED */ - for (sfb = 0; sfb < 8; sfb++) - { - scalefac->l[sfb] = getNbits(pMainData, slen[0][gr_info->scalefac_compress]); - } - - for (sfb = 3; sfb < 6; sfb++) - { - for (window = 0; window < 3; window++) - { - scalefac->s[window][sfb] = getNbits(pMainData, slen[0][gr_info->scalefac_compress]); - } - } - for (sfb = 6; sfb < 12; sfb++) - { - for (window = 0; window < 3; window++) - { - scalefac->s[window][sfb] = getNbits(pMainData, slen[1][gr_info->scalefac_compress]); - } - } - } - else - { /* SHORT*/ - for (i = 0; i < 2; i++) - { - for (sfb = sfbtable.s[i]; sfb < sfbtable.s[i+1]; sfb++) - { - for (window = 0; window < 3; window++) - { - scalefac->s[window][sfb] = getNbits(pMainData, slen[i][gr_info->scalefac_compress]); - } - } - } - } - - scalefac->s[0][12] = 0; /* sfb = 12 win= 0 */ - scalefac->s[1][12] = 0; /* sfb = 12 win= 1 */ - scalefac->s[2][12] = 0; /* sfb = 12 win= 2 */ - } - else - { /* LONG types 0,1,3 */ - - int32 *ptr = &scalefac->l[0]; - - for (i = 0; i < 4; i++) - { - int32 tmp4 = long_sfbtable[i]; - - if ((si->ch[ch].scfsi[i] == 0) || (gr == 0)) - { - int32 tmp1 = slen[(i>>1)][gr_info->scalefac_compress]; - - if (tmp1) - { - int32 tmp2 = tmp1 * tmp4; - uint32 tmp3 = getNbits(pMainData, tmp2); - tmp4 = 32 - tmp1; - for (; tmp2 > 0; tmp2 -= tmp1) - { - *(ptr++) = (tmp3 << (32 - tmp2)) >> tmp4; - } - } - else - { - for (sfb = tmp4; sfb != 0; sfb--) - { - *(ptr++) = 0; - } - - } - } - else - { - ptr += tmp4; - } - } - scalefac->l[21] = 0; - scalefac->l[22] = 0; - } -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_get_scale_factors.h b/external/android-specific/pvmp3dec/src/pvmp3_get_scale_factors.h deleted file mode 100644 index d4f262b..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_get_scale_factors.h +++ /dev/null @@ -1,104 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_get_scale_factors.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_GET_SCALE_FACTORS_H -#define PVMP3_GET_SCALE_FACTORS_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" -#include "s_mp3bits.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_get_scale_factors(mp3ScaleFactors *scalefac, - mp3SideInfo *si, - int32 gr, - int32 ch, - tmp3Bits *pMainData); - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_get_side_info.cpp b/external/android-specific/pvmp3dec/src/pvmp3_get_side_info.cpp deleted file mode 100644 index 7eaa860..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_get_side_info.cpp +++ /dev/null @@ -1,285 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_get_side_info.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - mp3SideInfo *si, - mp3Header *info, mp3 header information - uint32 *crc initialized crc value (if enabled) - - - Returns - - mp3SideInfo *si, side information - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - acquires side information - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_get_side_info.h" -#include "pvmp3_crc.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -ERROR_CODE pvmp3_get_side_info(tmp3Bits *inputStream, - mp3SideInfo *si, - mp3Header *info, - uint32 *crc) -{ - int32 ch, gr; - uint32 tmp; - - int stereo = (info->mode == MPG_MD_MONO) ? 1 : 2; - - if (info->version_x == MPEG_1) - { - if (stereo == 1) - { - tmp = getbits_crc(inputStream, 14, crc, info->error_protection); - si->main_data_begin = (tmp << 18) >> 23; /* 9 */ - si->private_bits = (tmp << 23) >> 27; /* 5 */ - } - else - { - tmp = getbits_crc(inputStream, 12, crc, info->error_protection); - si->main_data_begin = (tmp << 20) >> 23; /* 9 */ - si->private_bits = (tmp << 23) >> 29; /* 3 */ - - } - - for (ch = 0; ch < stereo; ch++) - { - tmp = getbits_crc(inputStream, 4, crc, info->error_protection); - si->ch[ch].scfsi[0] = (tmp << 28) >> 31; /* 1 */ - si->ch[ch].scfsi[1] = (tmp << 29) >> 31; /* 1 */ - si->ch[ch].scfsi[2] = (tmp << 30) >> 31; /* 1 */ - si->ch[ch].scfsi[3] = tmp & 1; /* 1 */ - } - - for (gr = 0; gr < 2 ; gr++) - { - for (ch = 0; ch < stereo; ch++) - { - si->ch[ch].gran[gr].part2_3_length = getbits_crc(inputStream, 12, crc, info->error_protection); - tmp = getbits_crc(inputStream, 22, crc, info->error_protection); - - si->ch[ch].gran[gr].big_values = (tmp << 10) >> 23; /* 9 */ - si->ch[ch].gran[gr].global_gain = ((tmp << 19) >> 24) - 210; /* 8 */ - si->ch[ch].gran[gr].scalefac_compress = (tmp << 27) >> 28; /* 4 */ - si->ch[ch].gran[gr].window_switching_flag = tmp & 1; /* 1 */ - - if (si->ch[ch].gran[gr].window_switching_flag) - { - tmp = getbits_crc(inputStream, 22, crc, info->error_protection); - - si->ch[ch].gran[gr].block_type = (tmp << 10) >> 30; /* 2 */; - si->ch[ch].gran[gr].mixed_block_flag = (tmp << 12) >> 31; /* 1 */; - - si->ch[ch].gran[gr].table_select[0] = (tmp << 13) >> 27; /* 5 */; - si->ch[ch].gran[gr].table_select[1] = (tmp << 18) >> 27; /* 5 */; - - si->ch[ch].gran[gr].subblock_gain[0] = (tmp << 23) >> 29; /* 3 */; - si->ch[ch].gran[gr].subblock_gain[1] = (tmp << 26) >> 29; /* 3 */; - si->ch[ch].gran[gr].subblock_gain[2] = (tmp << 29) >> 29; /* 3 */; - - /* Set region_count parameters since they are implicit in this case. */ - - if (si->ch[ch].gran[gr].block_type == 0) - { - return(SIDE_INFO_ERROR); - } - else if ((si->ch[ch].gran[gr].block_type == 2) - && (si->ch[ch].gran[gr].mixed_block_flag == 0)) - { - si->ch[ch].gran[gr].region0_count = 8; /* MI 9; */ - si->ch[ch].gran[gr].region1_count = 12; - } - else - { - si->ch[ch].gran[gr].region0_count = 7; /* MI 8; */ - si->ch[ch].gran[gr].region1_count = 13; - } - } - else - { - tmp = getbits_crc(inputStream, 22, crc, info->error_protection); - - si->ch[ch].gran[gr].table_select[0] = (tmp << 10) >> 27; /* 5 */; - si->ch[ch].gran[gr].table_select[1] = (tmp << 15) >> 27; /* 5 */; - si->ch[ch].gran[gr].table_select[2] = (tmp << 20) >> 27; /* 5 */; - - si->ch[ch].gran[gr].region0_count = (tmp << 25) >> 28; /* 4 */; - si->ch[ch].gran[gr].region1_count = (tmp << 29) >> 29; /* 3 */; - - si->ch[ch].gran[gr].block_type = 0; - } - - tmp = getbits_crc(inputStream, 3, crc, info->error_protection); - si->ch[ch].gran[gr].preflag = (tmp << 29) >> 31; /* 1 */ - si->ch[ch].gran[gr].scalefac_scale = (tmp << 30) >> 31; /* 1 */ - si->ch[ch].gran[gr].count1table_select = tmp & 1; /* 1 */ - } - } - } - else /* Layer 3 LSF */ - { - si->main_data_begin = getbits_crc(inputStream, 8, crc, info->error_protection); - si->private_bits = getbits_crc(inputStream, stereo, crc, info->error_protection); - - for (ch = 0; ch < stereo; ch++) - { - tmp = getbits_crc(inputStream, 21, crc, info->error_protection); - si->ch[ch].gran[0].part2_3_length = (tmp << 11) >> 20; /* 12 */ - si->ch[ch].gran[0].big_values = (tmp << 23) >> 23; /* 9 */ - - tmp = getbits_crc(inputStream, 18, crc, info->error_protection); - si->ch[ch].gran[0].global_gain = ((tmp << 14) >> 24) - 210; /* 8 */ - si->ch[ch].gran[0].scalefac_compress = (tmp << 22) >> 23; /* 9 */ - si->ch[ch].gran[0].window_switching_flag = tmp & 1; /* 1 */ - - if (si->ch[ch].gran[0].window_switching_flag) - { - - tmp = getbits_crc(inputStream, 22, crc, info->error_protection); - - si->ch[ch].gran[0].block_type = (tmp << 10) >> 30; /* 2 */; - si->ch[ch].gran[0].mixed_block_flag = (tmp << 12) >> 31; /* 1 */; - - si->ch[ch].gran[0].table_select[0] = (tmp << 13) >> 27; /* 5 */; - si->ch[ch].gran[0].table_select[1] = (tmp << 18) >> 27; /* 5 */; - - si->ch[ch].gran[0].subblock_gain[0] = (tmp << 23) >> 29; /* 3 */; - si->ch[ch].gran[0].subblock_gain[1] = (tmp << 26) >> 29; /* 3 */; - si->ch[ch].gran[0].subblock_gain[2] = (tmp << 29) >> 29; /* 3 */; - - /* Set region_count parameters since they are implicit in this case. */ - - if (si->ch[ch].gran[0].block_type == 0) - { - return(SIDE_INFO_ERROR); - } - else if ((si->ch[ch].gran[0].block_type == 2) - && (si->ch[ch].gran[0].mixed_block_flag == 0)) - { - si->ch[ch].gran[0].region0_count = 8; /* MI 9; */ - si->ch[ch].gran[0].region1_count = 12; - } - else - { - si->ch[ch].gran[0].region0_count = 7; /* MI 8; */ - si->ch[ch].gran[0].region1_count = 13; - } - } - else - { - tmp = getbits_crc(inputStream, 22, crc, info->error_protection); - - si->ch[ch].gran[0].table_select[0] = (tmp << 10) >> 27; /* 5 */; - si->ch[ch].gran[0].table_select[1] = (tmp << 15) >> 27; /* 5 */; - si->ch[ch].gran[0].table_select[2] = (tmp << 20) >> 27; /* 5 */; - - si->ch[ch].gran[0].region0_count = (tmp << 25) >> 28; /* 4 */; - si->ch[ch].gran[0].region1_count = (tmp << 29) >> 29; /* 3 */; - - si->ch[ch].gran[0].block_type = 0; - } - - tmp = getbits_crc(inputStream, 2, crc, info->error_protection); - si->ch[ch].gran[0].scalefac_scale = tmp >> 1; /* 1 */ - si->ch[ch].gran[0].count1table_select = tmp & 1; /* 1 */ - - } - } - return (NO_DECODING_ERROR); -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_get_side_info.h b/external/android-specific/pvmp3dec/src/pvmp3_get_side_info.h deleted file mode 100644 index 2d6ccd8..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_get_side_info.h +++ /dev/null @@ -1,102 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_get_side_info.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_GET_SIDE_INFO_H -#define PVMP3_GET_SIDE_INFO_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" -#include "s_mp3bits.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - ERROR_CODE pvmp3_get_side_info(tmp3Bits *inputStream, - mp3SideInfo *si, - mp3Header *info, - uint32 *crc); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_getbits.cpp b/external/android-specific/pvmp3dec/src/pvmp3_getbits.cpp deleted file mode 100644 index 8ff7953..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_getbits.cpp +++ /dev/null @@ -1,257 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_getbits.cpp - - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Inputs: - - tmp3Bits *inputStream, structure holding the input stream parameters - int32 neededBits number of bits to read from the bit stream - - Outputs: - - word parsed from teh bitstream, with size neededBits-bits, - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_getbits.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -uint32 getNbits(tmp3Bits *ptBitStream, - int32 neededBits) /* number of bits to read from the bitstream (up to 25) */ -{ - - uint32 offset; - uint32 bitIndex; - uint8 Elem; /* Needs to be same type as pInput->pBuffer */ - uint8 Elem1; - uint8 Elem2; - uint8 Elem3; - uint32 returnValue = 0; - - if (!neededBits) - { - return (returnValue); - } - - offset = (ptBitStream->usedBits) >> INBUF_ARRAY_INDEX_SHIFT; - - Elem = *(ptBitStream->pBuffer + module(offset , BUFSIZE)); - Elem1 = *(ptBitStream->pBuffer + module(offset + 1, BUFSIZE)); - Elem2 = *(ptBitStream->pBuffer + module(offset + 2, BUFSIZE)); - Elem3 = *(ptBitStream->pBuffer + module(offset + 3, BUFSIZE)); - - - returnValue = (((uint32)(Elem)) << 24) | - (((uint32)(Elem1)) << 16) | - (((uint32)(Elem2)) << 8) | - ((uint32)(Elem3)); - - /* Remove extra high bits by shifting up */ - bitIndex = module(ptBitStream->usedBits, INBUF_BIT_WIDTH); - - /* This line is faster than to mask off the high bits. */ - returnValue <<= bitIndex; - - /* Move the field down. */ - returnValue >>= (32 - neededBits); - - ptBitStream->usedBits += neededBits; - - return (returnValue); -} - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -uint16 getUpTo9bits(tmp3Bits *ptBitStream, - int32 neededBits) /* number of bits to read from the bit stream 2 to 9 */ -{ - - uint32 offset; - uint32 bitIndex; - uint8 Elem; /* Needs to be same type as pInput->pBuffer */ - uint8 Elem1; - uint16 returnValue; - - offset = (ptBitStream->usedBits) >> INBUF_ARRAY_INDEX_SHIFT; - - Elem = *(ptBitStream->pBuffer + module(offset , BUFSIZE)); - Elem1 = *(ptBitStream->pBuffer + module(offset + 1, BUFSIZE)); - - - returnValue = (((uint16)(Elem)) << 8) | - ((uint16)(Elem1)); - - /* Remove extra high bits by shifting up */ - bitIndex = module(ptBitStream->usedBits, INBUF_BIT_WIDTH); - - ptBitStream->usedBits += neededBits; - /* This line is faster than to mask off the high bits. */ - returnValue = (returnValue << (bitIndex)); - - /* Move the field down. */ - - return (uint16)(returnValue >> (16 - neededBits)); - -} - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -uint32 getUpTo17bits(tmp3Bits *ptBitStream, - int32 neededBits) /* number of bits to read from the bit stream 2 to 8 */ -{ - - uint32 offset; - uint32 bitIndex; - uint8 Elem; /* Needs to be same type as pInput->pBuffer */ - uint8 Elem1; - uint8 Elem2; - uint32 returnValue; - - offset = (ptBitStream->usedBits) >> INBUF_ARRAY_INDEX_SHIFT; - - Elem = *(ptBitStream->pBuffer + module(offset , BUFSIZE)); - Elem1 = *(ptBitStream->pBuffer + module(offset + 1, BUFSIZE)); - Elem2 = *(ptBitStream->pBuffer + module(offset + 2, BUFSIZE)); - - - returnValue = (((uint32)(Elem)) << 16) | - (((uint32)(Elem1)) << 8) | - ((uint32)(Elem2)); - - /* Remove extra high bits by shifting up */ - bitIndex = module(ptBitStream->usedBits, INBUF_BIT_WIDTH); - - ptBitStream->usedBits += neededBits; - /* This line is faster than to mask off the high bits. */ - returnValue = 0xFFFFFF & (returnValue << (bitIndex)); - - /* Move the field down. */ - - return (uint32)(returnValue >> (24 - neededBits)); - -} - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -uint8 get1bit(tmp3Bits *ptBitStream) /* number of bits to read from the bit stream */ -{ - - uint32 offset; - uint32 bitIndex; - uint8 returnValue; - - offset = (ptBitStream->usedBits) >> INBUF_ARRAY_INDEX_SHIFT; - - returnValue = *(ptBitStream->pBuffer + module(offset , BUFSIZE)); - - /* Remove extra high bits by shifting up */ - bitIndex = module(ptBitStream->usedBits, INBUF_BIT_WIDTH); - ptBitStream->usedBits++; - - /* This line is faster than to mask off the high bits. */ - returnValue = (returnValue << (bitIndex)); - - return (uint8)(returnValue >> 7); - -} - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_getbits.h b/external/android-specific/pvmp3dec/src/pvmp3_getbits.h deleted file mode 100644 index b058b00..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_getbits.h +++ /dev/null @@ -1,112 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_getbits.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_GETBITS_H -#define PVMP3_GETBITS_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_dec_defs.h" -#include "s_mp3bits.h" -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ -#define INBUF_ARRAY_INDEX_SHIFT (3) -#define INBUF_BIT_WIDTH (1<<(INBUF_ARRAY_INDEX_SHIFT)) -#define INBUF_BIT_MODULO_MASK ((INBUF_BIT_WIDTH)-1) - - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - uint32 getNbits(tmp3Bits *pMainData, - int32 neededBits); - - uint16 getUpTo9bits(tmp3Bits *pMainData, - int32 neededBits); - - uint32 getUpTo17bits(tmp3Bits *pMainData, - int32 neededBits); - - uint8 get1bit(tmp3Bits *pMainData); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_huffman_decoding.cpp b/external/android-specific/pvmp3dec/src/pvmp3_huffman_decoding.cpp deleted file mode 100644 index 5d58cd2..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_huffman_decoding.cpp +++ /dev/null @@ -1,304 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_huffman_decoding.cpp - - Funtions: - pvmp3_huffman_quad_decoding - pvmp3_huffman_pair_decoding - pvmp3_huffman_pair_decoding_linbits - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Inputs: - struct huffcodetab *h, pointer to huffman code record - int32 *x, returns decoded x value - int32 *y, returns decoded y value - int32 *v, returns decoded v value (only in quad function) - int32 *w, returns decoded w value (only in quad function) - tbits *pMainData bit stream - - Outputs: - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - These functions are used to decode huffman codewords from the input - bitstream using combined binary search and look-up table approach. - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_dec_defs.h" -#include "pv_mp3_huffman.h" -#include "pvmp3_getbits.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - -void pvmp3_huffman_quad_decoding(struct huffcodetab *h, - int32 *is, - tmp3Bits *pMainData) -{ - - int32 x; - int32 y; - int32 v; - int32 w; - - y = (*h->pdec_huff_tab)(pMainData); - - - if (y) - { - v = (y >> 3); - - if (v) - { - if (get1bit(pMainData)) - { - v = -v; - } - } - w = (y >> 2) & 1; - if (w) - { - if (get1bit(pMainData)) - { - w = -w; - } - } - x = (y >> 1) & 1; - if (x) - { - if (get1bit(pMainData)) - { - x = -x; - } - } - y = y & 1; - if (y) - { - if (get1bit(pMainData)) - { - y = -y; - } - } - - } - else - { - v = 0; - w = 0; - x = 0; - - } - - *is = v; - *(is + 1) = w; - *(is + 2) = x; - *(is + 3) = y; - -} - - - -void pvmp3_huffman_pair_decoding(struct huffcodetab *h, /* pointer to huffman code record */ - int32 *is, - tmp3Bits *pMainData) -{ - /* Lookup in Huffman table. */ - int32 x; - int32 y; - - uint16 cw = (*h->pdec_huff_tab)(pMainData); - - /* Process sign and escape encodings for dual tables. */ - - - if (cw) - { - x = cw >> 4; - - if (x) - { - if (get1bit(pMainData)) - { - x = -x; - } - y = cw & 0xf; - if (y && get1bit(pMainData)) - { - y = -y; - } - - } - else - { - y = cw & 0xf; - if (get1bit(pMainData)) - { - y = -y; - } - } - - *is = x; - *(is + 1) = y; - } - else - { - *is = 0; - *(is + 1) = 0; - } - - - -} - - - - -void pvmp3_huffman_pair_decoding_linbits(struct huffcodetab *h, /* pointer to huffman code record */ - int32 *is, - tmp3Bits *pMainData) -{ - int32 x; - int32 y; - - uint16 cw; - /* Lookup in Huffman table. */ - - - cw = (*h->pdec_huff_tab)(pMainData); - x = cw >> 4; - - /* Process sign and escape encodings for dual tables. */ - - - if (15 == (uint32)x) - { - int32 tmp = getUpTo17bits(pMainData, (h->linbits + 1)); - x += tmp >> 1; - if (tmp&1) - { - x = -x; - } - } - else if (x) - { - if (get1bit(pMainData)) - { - x = -x; - } - } - - y = cw & 0xf; - if (15 == (uint32)y) - { - int32 tmp = getUpTo17bits(pMainData, (h->linbits + 1)); - y += tmp >> 1; - if (tmp&1) - { - y = -y; - } - } - else if (y) - { - if (get1bit(pMainData)) - { - y = -y; - } - } - - *is = x; - *(is + 1) = y; - -} - - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_huffman_parsing.cpp b/external/android-specific/pvmp3dec/src/pvmp3_huffman_parsing.cpp deleted file mode 100644 index ff815dc..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_huffman_parsing.cpp +++ /dev/null @@ -1,328 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ - -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_huffman_decoding.cpp - - Funtions: - pvmp3_huffman_quad_decoding - pvmp3_huffman_pair_decoding - pvmp3_huffman_pair_decoding_linbits - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Inputs: - int32 is[], - granuleInfo *grInfo, information for the given channel and granule - tmp3dec_file *pVars, decoder state structure - int32 part2_start, index to beginning of part 2 data - mp3Header *info mp3 header info - - Outputs: - int32 is[], uncompressed data - - Return: - non zero frequency lines - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - These functions are used to decode huffman codewords from the input - bitstream using combined binary search and look-up table approach. - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pv_mp3_huffman.h" -#include "s_mp3bits.h" -#include "mp3_mem_funcs.h" -#include "pvmp3_tables.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -int32 pvmp3_huffman_parsing(int32 is[SUBBANDS_NUMBER*FILTERBANK_BANDS], - granuleInfo *grInfo, - tmp3dec_file *pVars, - int32 part2_start, - mp3Header *info) - - -{ - int32 i; - int32 region1Start; - int32 region2Start; - int32 sfreq; - uint32 grBits; - void(*pt_huff)(struct huffcodetab *, int32 *, tmp3Bits *); - struct huffcodetab *h; - - tmp3Bits *pMainData = &pVars->mainDataStream; - - - /*int32 bt = (*si).ch[ch].gr[gr].window_switching_flag && ((*si).ch[ch].gr[gr].block_type == 2);*/ - - sfreq = info->sampling_frequency + info->version_x + (info->version_x << 1); - - /* Find region boundary for short block case. */ - - - if ((grInfo->window_switching_flag) && (grInfo->block_type == 2)) - { - if (info->version_x == MPEG_1) - { - /* Region2. */ - region1Start = 12; - } - else - { - /* Region2. */ - i = grInfo->region0_count + 1; - region1Start = mp3_sfBandIndex[sfreq].s[i/3]; - } - - region1Start += region1Start << 1; - region2Start = 576; /* No Region2 for short block case. */ - } - else - { /* Find region boundary for long block case. */ - i = grInfo->region0_count + 1; - region1Start = mp3_sfBandIndex[sfreq].l[i]; - region2Start = mp3_sfBandIndex[sfreq].l[i + grInfo->region1_count + 1]; - } - - /* Read bigvalues area. */ - - - if (grInfo->big_values > (FILTERBANK_BANDS*SUBBANDS_NUMBER >> 1)) - { - grInfo->big_values = (FILTERBANK_BANDS * SUBBANDS_NUMBER >> 1); - } - - if ((grInfo->big_values << 1) > (uint32)region2Start) - { - h = &(pVars->ht[grInfo->table_select[0]]); - if (h->linbits) - { - pt_huff = pvmp3_huffman_pair_decoding_linbits; - } - else - { - pt_huff = pvmp3_huffman_pair_decoding; - } - - for (i = 0; i < region1Start; i += 2) - { - (*pt_huff)(h, &is[i], pMainData); - } - - h = &(pVars->ht[grInfo->table_select[1]]); - if (h->linbits) - { - pt_huff = pvmp3_huffman_pair_decoding_linbits; - } - else - { - pt_huff = pvmp3_huffman_pair_decoding; - } - - for (; i < region2Start; i += 2) - { - (*pt_huff)(h, &is[i], pMainData); - } - - h = &(pVars->ht[grInfo->table_select[2]]); - if (h->linbits) - { - pt_huff = pvmp3_huffman_pair_decoding_linbits; - } - else - { - pt_huff = pvmp3_huffman_pair_decoding; - } - - for (; (uint32)i < (grInfo->big_values << 1); i += 2) - { - (*pt_huff)(h, &is[i], pMainData); - } - } - else if ((grInfo->big_values << 1) > (uint32)region1Start) - { - h = &(pVars->ht[grInfo->table_select[0]]); - if (h->linbits) - { - pt_huff = pvmp3_huffman_pair_decoding_linbits; - } - else - { - pt_huff = pvmp3_huffman_pair_decoding; - } - for (i = 0; i < region1Start; i += 2) - { - (*pt_huff)(h, &is[i], pMainData); - } - - h = &(pVars->ht[grInfo->table_select[1]]); - if (h->linbits) - { - pt_huff = pvmp3_huffman_pair_decoding_linbits; - } - else - { - pt_huff = pvmp3_huffman_pair_decoding; - } - for (; (uint32)i < (grInfo->big_values << 1); i += 2) - { - (*pt_huff)(h, &is[i], pMainData); - } - } - else - { - h = &(pVars->ht[grInfo->table_select[0]]); - if (h->linbits) - { - pt_huff = pvmp3_huffman_pair_decoding_linbits; - } - else - { - pt_huff = pvmp3_huffman_pair_decoding; - } - - for (i = 0; (uint32)i < (grInfo->big_values << 1); i += 2) - { - (*pt_huff)(h, &is[i], pMainData); - } - } - - - - /* Read count1 area. */ - h = &(pVars->ht[grInfo->count1table_select+32]); - - grBits = part2_start + grInfo->part2_3_length; - - while ((pMainData->usedBits < grBits) && - (i < FILTERBANK_BANDS*SUBBANDS_NUMBER - 4)) - { - pvmp3_huffman_quad_decoding(h, &is[i], pMainData); - i += 4; - } - - if ((pMainData->usedBits < grBits) && - (i < FILTERBANK_BANDS*SUBBANDS_NUMBER)) - { - pvmp3_huffman_quad_decoding(h, &is[i], pMainData); - i += 4; - - if ((i - 2) >= FILTERBANK_BANDS*SUBBANDS_NUMBER) - { - i -= 2; - is[i] = 0; - is[(i+1)] = 0; - } - } - - if (pMainData->usedBits > grBits) - { - i -= 4; - - if (i < 0 || i > FILTERBANK_BANDS*SUBBANDS_NUMBER - 4) - { - /* illegal parameters may cause invalid access, set i to 0 */ - i = 0; - } - - is[i] = 0; - is[(i+1)] = 0; - is[(i+2)] = 0; - is[(i+3)] = 0; - - } - - pMainData->usedBits = grBits; - - return (i); - -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_imdct_synth.cpp b/external/android-specific/pvmp3dec/src/pvmp3_imdct_synth.cpp deleted file mode 100644 index 11961d1..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_imdct_synth.cpp +++ /dev/null @@ -1,376 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_imdct_synth.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Input - int32 in[], Pointer to spec values of current channel - int32 overlap[], Pointer to overlap values of current channel - uint32 blk_type, Block type - int16 mx_band, In case of mixed blocks, # of bands with long - blocks (2 or 4) else 0 - int32 *Scratch_mem - Returns - - int32 in[], - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - The frequency lines are preprocessed by the "alias reduction" scheme - and fed into the IMDCT matrix, each 18 into one transform block. - The first half of the output values are added to the stored overlap - values from the last block. These values are new output values and - are input values for the polyphase filterbank. The second half of the - output values is stored for overlap with the next data granule. - The number of windowed samples is 12 for short blocks, and 36 for long - blocks - -Windowing - - Depending on window_switching_flag[gr][ch], block_type[gr][ch] and - mixed_block_flag[gr][ch] different shapes of windows are used. - normal window - start window - stop window - short windows - Each of the three short blocks is windowed separately. - The windowed short blocks must be overlapped and concatenated. - -Overlapping and adding with previous block - - The first half (18 values) of the current block (36 values) has to be - overlapped with the second half of the previous block. The second half - of the current block has to be stored for overlapping with the next block - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_imdct_synth.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_dec_defs.h" -#include "pvmp3_mdct_18.h" -#include "pvmp3_mdct_6.h" -#include "mp3_mem_funcs.h" - - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define LONG 0 -#define START 1 -#define SHORT 2 -#define STOP 3 - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -/* - * sin(pi/36*(k+0.5)),k=0..35 - */ - -const int32 normal_win[36] = -{ - Qfmt_31(0.08723877473068f), Qfmt_31(0.26105238444010f), Qfmt_31(0.43287922787620f), - Qfmt_31(0.60141159900854f), Qfmt_31(0.76536686473018f), Qfmt_31(0.92349722647006f), - Qfmt_31(0.53729960834682f), Qfmt_31(0.60876142900872f), Qfmt_31(0.67559020761566f), - Qfmt_31(-0.73727733681012f), Qfmt_31(-0.79335334029124f), Qfmt_31(0.84339144581289f), - Qfmt_31(0.88701083317822f), Qfmt_31(0.92387953251129f), Qfmt_31(-0.95371695074823f), - Qfmt_31(-0.97629600711993f), Qfmt_31(-0.99144486137381f), Qfmt_31(-0.99904822158186f), - Qfmt_31(0.99904822158186f), Qfmt_31(0.99144486137381f), Qfmt_31(0.97629600711993f), - Qfmt_31(0.95371695074823f), Qfmt_31(0.92387953251129f), Qfmt_31(0.88701083317822f), - Qfmt_31(0.84339144581289f), Qfmt_31(0.79335334029124f), Qfmt_31(0.73727733681012f), - Qfmt_31(0.67559020761566f), Qfmt_31(0.60876142900872f), Qfmt_31(0.53729960834682f), - Qfmt_31(0.46174861323503f), Qfmt_31(0.38268343236509f), Qfmt_31(0.30070579950427f), - Qfmt_31(0.21643961393810f), Qfmt_31(0.13052619222005f), Qfmt_31(0.04361938736534f) -}; - - -const int32 start_win[36] = -{ - /* k=0..17 sin(pi/36*(k+0.5)), */ - Qfmt_31(0.08723877473068f), Qfmt_31(0.26105238444010f), Qfmt_31(0.43287922787620f), - Qfmt_31(0.60141159900854f), Qfmt_31(0.76536686473018f), Qfmt_31(0.92349722647006f), - Qfmt_31(0.53729960834682f), Qfmt_31(0.60876142900872f), Qfmt_31(0.67559020761566f), - Qfmt_31(-0.73727733681012f), Qfmt_31(-0.79335334029124f), Qfmt_31(0.84339144581289f), - Qfmt_31(0.88701083317822f), Qfmt_31(0.92387953251129f), Qfmt_31(-0.95371695074823f), - Qfmt_31(-0.97629600711993f), Qfmt_31(-0.99144486137381f), Qfmt_31(-0.99904822158186f), - - Qfmt_31(0.99999990000000f), Qfmt_31(0.99999990000000f), Qfmt_31(0.99999990000000f), - Qfmt_31(0.99999990000000f), Qfmt_31(0.99999990000000f), Qfmt_31(0.99999990000000f), - /* k=24..29; sin(pi/12*(k-18+0.5)) */ - Qfmt_31(0.99144486137381f), Qfmt_31(0.92387953251129f), Qfmt_31(0.79335334029124f), - Qfmt_31(0.60876142900872f), Qfmt_31(0.38268343236509f), Qfmt_31(0.13052619222005f), - - Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f), - Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f) -}; - - -const int32 stop_win[36] = -{ - Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f), - Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f), Qfmt_31(0.00000000000000f), - /* k=6..11; sin(pi/12*(k-6+0.5)) */ - Qfmt_31(0.13052619222005f), Qfmt_31(0.38268343236509f), Qfmt_31(0.60876142900872f), - Qfmt_31(-0.79335334029124f), Qfmt_31(-0.92387953251129f), Qfmt_31(0.99144486137381f), - - Qfmt_31(0.99999990000000f), Qfmt_31(0.99999990000000f), Qfmt_31(-0.99999990000000f), - Qfmt_31(-0.99999990000000f), Qfmt_31(-0.99999990000000f), Qfmt_31(-0.99999990000000f), - /* k=18..35 sin(pi/36*(k+0.5)), */ - Qfmt_31(0.99904822158186f), Qfmt_31(0.99144486137381f), Qfmt_31(0.97629600711993f), - Qfmt_31(0.95371695074823f), Qfmt_31(0.92387953251129f), Qfmt_31(0.88701083317822f), - Qfmt_31(0.84339144581289f), Qfmt_31(0.79335334029124f), Qfmt_31(0.73727733681012f), - Qfmt_31(0.67559020761566f), Qfmt_31(0.60876142900872f), Qfmt_31(0.53729960834682f), - Qfmt_31(0.46174861323503f), Qfmt_31(0.38268343236509f), Qfmt_31(0.30070579950427f), - Qfmt_31(0.21643961393810f), Qfmt_31(0.13052619222005f), Qfmt_31(0.04361938736534f) -}; - - -const int32 short_win[12] = -{ - /* k=0..11; sin(pi/12*(k+0.5)) */ - Qfmt_31(0.13052619222005f), Qfmt_31(0.38268343236509f), Qfmt_31(0.60876142900872f), - Qfmt_31(0.79335334029124f), Qfmt_31(0.92387953251129f), Qfmt_31(0.99144486137381f), - Qfmt_31(0.99144486137381f), Qfmt_31(0.92387953251129f), Qfmt_31(0.79335334029124f), - Qfmt_31(0.60876142900872f), Qfmt_31(0.38268343236509f), Qfmt_31(0.13052619222005f), -}; -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_imdct_synth(int32 in[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 overlap[SUBBANDS_NUMBER*FILTERBANK_BANDS], - uint32 blk_type, - int16 mx_band, - int32 used_freq_lines, - int32 *Scratch_mem) -{ - - int32 band; - int32 bands2process = used_freq_lines + 2; - - if (bands2process > SUBBANDS_NUMBER) - { - bands2process = SUBBANDS_NUMBER; /* default */ - } - - - /* - * in case of mx_poly_band> 0, do - * long transforms - */ - - - for (band = 0; band < bands2process; band++) - { - uint32 current_blk_type = (band < mx_band) ? LONG : blk_type; - - int32 * out = in + (band * FILTERBANK_BANDS); - int32 * history = overlap + (band * FILTERBANK_BANDS); - - switch (current_blk_type) - { - case LONG: - - pvmp3_mdct_18(out, history, normal_win); - - break; - - case START: - - pvmp3_mdct_18(out, history, start_win); - - break; - - case STOP: - - pvmp3_mdct_18(out, history, stop_win); - - break; - - case SHORT: - { - int32 *tmp_prev_ovr = &Scratch_mem[FILTERBANK_BANDS]; - int32 i; - - for (i = 0; i < 6; i++) - { - Scratch_mem[i ] = out[(i*3)]; - Scratch_mem[6 +i] = out[(i*3) + 1]; - Scratch_mem[12 +i] = out[(i*3) + 2]; - } - - pvmp3_mdct_6(&Scratch_mem[ 0], &tmp_prev_ovr[ 0]); - pvmp3_mdct_6(&Scratch_mem[ 6], &tmp_prev_ovr[ 6]); - pvmp3_mdct_6(&Scratch_mem[12], &tmp_prev_ovr[12]); - - for (i = 0; i < 6; i++) - { - int32 temp = history[i]; - /* next iteration overlap */ - history[i] = fxp_mul32_Q32(tmp_prev_ovr[ 6+i] << 1, short_win[6+i]); - history[i] += fxp_mul32_Q32(Scratch_mem[12+i] << 1, short_win[ i]); - out[i] = temp; - } - - for (i = 0; i < 6; i++) - { - out[i+6] = fxp_mul32_Q32(Scratch_mem[i] << 1, short_win[i]); - out[i+6] += history[i+6]; - /* next iteration overlap */ - history[i+6] = fxp_mul32_Q32(tmp_prev_ovr[12+i] << 1, short_win[6+i]); - - } - for (i = 0; i < 6; i++) - { - out[i+12] = fxp_mul32_Q32(tmp_prev_ovr[ i] << 1, short_win[6+i]); - out[i+12] += fxp_mul32_Q32(Scratch_mem[6+i] << 1, short_win[ i]); - out[i+12] += history[i+12]; - history[12+i] = 0; - } - } - - break; - } - - /* - * Compensation for frequency inversion of polyphase filterbank - * every odd time sample of every odd odd subband is mulitplied by -1 before - * processing by the polyphase filter - */ - - if (band & 1) - { - for (int32 slot = 1; slot < FILTERBANK_BANDS; slot += 6) - { - int32 temp1 = out[slot ]; - int32 temp2 = out[slot+2]; - int32 temp3 = out[slot+4]; - out[slot ] = -temp1; - out[slot+2] = -temp2; - out[slot+4] = -temp3; - } - } - } - - - for (band = bands2process; band < SUBBANDS_NUMBER; band++) - { - int32 * out = in + (band * FILTERBANK_BANDS); - int32 * history = overlap + (band * FILTERBANK_BANDS); - int32 slot; - - if (band & 1) - { - for (slot = 0; slot < FILTERBANK_BANDS; slot += 6) - { - int32 temp1 = history[slot ]; - int32 temp2 = history[slot+1]; - int32 temp3 = history[slot+2]; - out[slot ] = temp1; - out[slot+1] = -temp2; - out[slot+2] = temp3; - - temp1 = history[slot+3]; - temp2 = history[slot+4]; - temp3 = history[slot+5]; - out[slot+3] = -temp1; - out[slot+4] = temp2; - out[slot+5] = -temp3; - } - } - else - { - for (slot = 0; slot < FILTERBANK_BANDS; slot += 3) - { - int32 temp1 = history[slot ]; - int32 temp2 = history[slot+1]; - int32 temp3 = history[slot+2]; - out[slot ] = temp1; - out[slot+1] = temp2; - out[slot+2] = temp3; - } - } - - pv_memset(history, 0, FILTERBANK_BANDS*sizeof(*overlap)); - } -} - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_imdct_synth.h b/external/android-specific/pvmp3dec/src/pvmp3_imdct_synth.h deleted file mode 100644 index ea42e49..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_imdct_synth.h +++ /dev/null @@ -1,102 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_imdct_synth.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- -*/ -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ - -#ifndef PVMP3_IMDCT_SYNTH_H -#define PVMP3_IMDCT_SYNTH_H - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES AND SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_imdct_synth(int32 in[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 overlap[SUBBANDS_NUMBER*FILTERBANK_BANDS], - uint32 blk_type, - int16 mx_band, - int32 used_freq_lines, - int32 *Scratch_mem); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mdct_18.cpp b/external/android-specific/pvmp3dec/src/pvmp3_mdct_18.cpp deleted file mode 100644 index 09a735b..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mdct_18.cpp +++ /dev/null @@ -1,289 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: mdct_18.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - int32 vec[], input vector of length 18 - int32 *history input for overlap and add, vector updated with - next overlap and add values - const int32 *window sine window used in the mdct, three types are allowed - noraml, start and stop -Returns - none mdct computation in-place - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - Returns the mdct of length 18 of the input vector, as well as the overlap - vector for next iteration ( on history[]) - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - -#if ( !defined(PV_ARM_GCC_V5) && !defined(PV_ARM_GCC_V4) && !defined(PV_ARM_V5) && !defined(PV_ARM_V4) ) -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_mdct_18.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -const int32 cosTerms_dct18[9] = -{ - Qfmt(0.50190991877167f), Qfmt(0.51763809020504f), Qfmt(0.55168895948125f), - Qfmt(0.61038729438073f), Qfmt(0.70710678118655f), Qfmt(0.87172339781055f), - Qfmt(1.18310079157625f), Qfmt(1.93185165257814f), Qfmt(5.73685662283493f) -}; - - -const int32 cosTerms_1_ov_cos_phi[18] = -{ - - Qfmt1(0.50047634258166f), Qfmt1(0.50431448029008f), Qfmt1(0.51213975715725f), - Qfmt1(0.52426456257041f), Qfmt1(0.54119610014620f), Qfmt1(0.56369097343317f), - Qfmt1(0.59284452371708f), Qfmt1(0.63023620700513f), Qfmt1(0.67817085245463f), - - Qfmt2(0.74009361646113f), Qfmt2(0.82133981585229f), Qfmt2(0.93057949835179f), - Qfmt2(1.08284028510010f), Qfmt2(1.30656296487638f), Qfmt2(1.66275476171152f), - Qfmt2(2.31011315767265f), Qfmt2(3.83064878777019f), Qfmt2(11.46279281302667f) -}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - - -void pvmp3_mdct_18(int32 vec[], int32 *history, const int32 *window) -{ - int32 i; - int32 tmp; - int32 tmp1; - int32 tmp2; - int32 tmp3; - int32 tmp4; - - - - const int32 *pt_cos_split = cosTerms_dct18; - const int32 *pt_cos = cosTerms_1_ov_cos_phi; - const int32 *pt_cos_x = &cosTerms_1_ov_cos_phi[17]; - int32 *pt_vec = vec; - int32 *pt_vec_o = &vec[17]; - - - for (i = 9; i != 0; i--) - { - tmp = *(pt_vec); - tmp1 = *(pt_vec_o); - tmp = fxp_mul32_Q32(tmp << 1, *(pt_cos++)); - tmp1 = fxp_mul32_Q27(tmp1, *(pt_cos_x--)); - *(pt_vec++) = tmp + tmp1 ; - *(pt_vec_o--) = fxp_mul32_Q28((tmp - tmp1), *(pt_cos_split++)); - } - - - pvmp3_dct_9(vec); // Even terms - pvmp3_dct_9(&vec[9]); // Odd terms - - - tmp3 = vec[16]; // - vec[16] = vec[ 8]; - tmp4 = vec[14]; // - vec[14] = vec[ 7]; - tmp = vec[12]; - vec[12] = vec[ 6]; - tmp2 = vec[10]; // vec[10] - vec[10] = vec[ 5]; - vec[ 8] = vec[ 4]; - vec[ 6] = vec[ 3]; - vec[ 4] = vec[ 2]; - vec[ 2] = vec[ 1]; - vec[ 1] = vec[ 9] - tmp2; // vec[9] + vec[10] - vec[ 3] = vec[11] - tmp2; - vec[ 5] = vec[11] - tmp; - vec[ 7] = vec[13] - tmp; - vec[ 9] = vec[13] - tmp4; - vec[11] = vec[15] - tmp4; - vec[13] = vec[15] - tmp3; - vec[15] = vec[17] - tmp3; - - - /* overlap and add */ - - tmp2 = vec[0]; - tmp3 = vec[9]; - - for (i = 0; i < 6; i++) - { - tmp = history[ i]; - tmp4 = vec[i+10]; - vec[i+10] = tmp3 + tmp4; - tmp1 = vec[i+1]; - vec[ i] = fxp_mac32_Q32(tmp, (vec[i+10]), window[ i]); - tmp3 = tmp4; - history[i ] = -(tmp2 + tmp1); - tmp2 = tmp1; - } - - tmp = history[ 6]; - tmp4 = vec[16]; - vec[16] = tmp3 + tmp4; - tmp1 = vec[7]; - vec[ 6] = fxp_mac32_Q32(tmp, vec[16] << 1, window[ i]); - tmp = history[ 7]; - history[6] = -(tmp2 + tmp1); - history[7] = -(tmp1 + vec[8]); - - tmp1 = history[ 8]; - tmp4 = vec[17] + tmp4; - vec[ 7] = fxp_mac32_Q32(tmp, tmp4 << 1, window[ 7]); - history[8] = -(vec[8] + vec[9]); - vec[ 8] = fxp_mac32_Q32(tmp1, vec[17] << 1, window[ 8]); - - tmp = history[9]; - tmp1 = history[17]; - tmp2 = history[16]; - vec[ 9] = fxp_mac32_Q32(tmp, vec[17] << 1, window[ 9]); - - vec[17] = fxp_mac32_Q32(tmp1, vec[10] << 1, window[17]); - vec[10] = -vec[ 16]; - vec[16] = fxp_mac32_Q32(tmp2, vec[11] << 1, window[16]); - tmp1 = history[15]; - tmp2 = history[14]; - vec[11] = -vec[ 15]; - vec[15] = fxp_mac32_Q32(tmp1, vec[12] << 1, window[15]); - vec[12] = -vec[ 14]; - vec[14] = fxp_mac32_Q32(tmp2, vec[13] << 1, window[14]); - - tmp = history[13]; - tmp1 = history[12]; - tmp2 = history[11]; - tmp3 = history[10]; - vec[13] = fxp_mac32_Q32(tmp, vec[12] << 1, window[13]); - vec[12] = fxp_mac32_Q32(tmp1, vec[11] << 1, window[12]); - vec[11] = fxp_mac32_Q32(tmp2, vec[10] << 1, window[11]); - vec[10] = fxp_mac32_Q32(tmp3, tmp4 << 1, window[10]); - - - /* next iteration overlap */ - - tmp1 = history[ 8]; - tmp3 = history[ 7]; - tmp2 = history[ 1]; - tmp = history[ 0]; - tmp1 <<= 1; - tmp3 <<= 1; - - history[ 0] = fxp_mul32_Q32(tmp1, window[18]); - history[17] = fxp_mul32_Q32(tmp1, window[35]); - history[ 1] = fxp_mul32_Q32(tmp3, window[19]); - history[16] = fxp_mul32_Q32(tmp3, window[34]); - - tmp2 <<= 1; - tmp <<= 1; - history[ 7] = fxp_mul32_Q32(tmp2, window[25]); - history[10] = fxp_mul32_Q32(tmp2, window[28]); - history[ 8] = fxp_mul32_Q32(tmp, window[26]); - history[ 9] = fxp_mul32_Q32(tmp, window[27]); - - tmp1 = history[ 6]; - tmp3 = history[ 5]; - tmp4 = history[ 4]; - tmp2 = history[ 3]; - tmp = history[ 2]; - - tmp1 <<= 1; - tmp3 <<= 1; - tmp4 <<= 1; - - history[ 2] = fxp_mul32_Q32(tmp1, window[20]); - history[15] = fxp_mul32_Q32(tmp1, window[33]); - history[ 3] = fxp_mul32_Q32(tmp3, window[21]); - history[14] = fxp_mul32_Q32(tmp3, window[32]); - history[ 4] = fxp_mul32_Q32(tmp4, window[22]); - history[13] = fxp_mul32_Q32(tmp4, window[31]); - tmp2 <<= 1; - tmp <<= 1; - history[ 5] = fxp_mul32_Q32(tmp2, window[23]); - history[12] = fxp_mul32_Q32(tmp2, window[30]); - history[ 6] = fxp_mul32_Q32(tmp, window[24]); - history[11] = fxp_mul32_Q32(tmp, window[29]); -} - -#endif // If not assembly diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mdct_18.h b/external/android-specific/pvmp3dec/src/pvmp3_mdct_18.h deleted file mode 100644 index e497aee..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mdct_18.h +++ /dev/null @@ -1,109 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Pathname: ./include/pvmp3_mdct_18.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This include file defines function mdct_18, dct9, mdct_6 and dct_6 - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef MDCT_18_H -#define MDCT_18_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ -#define Qfmt(a) (Int32)(a*((Int32)1<<28) ) -#define Qfmt1(a) (Int32)(a*((Int32)0x7FFFFFFF)) -#define Qfmt2(a) (Int32)(a*((Int32)1<<27)) - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_mdct_18(int32 vec[], int32 *history, const int32 *window); - - void pvmp3_dct_9(int32 vec[]); - - void pvmp3_mdct_6(int32 vec[], int32 *overlap); - - void pvmp3_dct_6(int32 vec[]); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mdct_6.cpp b/external/android-specific/pvmp3dec/src/pvmp3_mdct_6.cpp deleted file mode 100644 index 6a72aad..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mdct_6.cpp +++ /dev/null @@ -1,165 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - Filename: mdct_18.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - int32 vec[], input vector of length 6 - int32 *history input for overlap and add, vector updated with - next overlap and add values -Returns - none mdct computation in-place - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - Returns the mdct of length 6 of the input vector, as well as the overlap - vector for next iteration ( on history[]) - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_mdct_6.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define QFORMAT 29 -#define Qfmt29(a) (int32)(a*((int32)1<=0?0.5F:-0.5F)) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -/* - * (1./(2*cos((pi/(2*N))*(2*i+1)))), N = 12, i = [0:N/2-1] - */ - -const int32 cosTerms_1_ov_cos_phi_N6[6] = -{ - - Qfmt29(0.50431448029008f), Qfmt29(0.54119610014620f), - Qfmt29(0.63023620700513f), Qfmt29(0.82133981585229f), - Qfmt29(1.30656296487638f), Qfmt29(3.83064878777019f) -}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - -void pvmp3_mdct_6(int32 vec[], int32 *history) -{ - int32 i; - int32 tmp; - int32 tmp1; - int32 tmp2; - - int32 *pt_vec = vec; - int32 *pt_vec_o = vec; - const int32 *pt_cos = cosTerms_1_ov_cos_phi_N6; - - for (i = 2; i != 0; i--) - { - tmp = *(pt_vec++); - tmp1 = *(pt_vec++); - tmp2 = *(pt_vec++); - *(pt_vec_o++) = fxp_mul32_Q29(tmp, *(pt_cos++)); - *(pt_vec_o++) = fxp_mul32_Q29(tmp1, *(pt_cos++)); - *(pt_vec_o++) = fxp_mul32_Q29(tmp2, *(pt_cos++)); - } - - - pvmp3_dct_6(vec); // Even terms - - - tmp = -(vec[0] + vec[1]); - history[3] = tmp; - history[2] = tmp; - tmp = -(vec[1] + vec[2]); - vec[0] = vec[3] + vec[4]; - vec[1] = vec[4] + vec[5]; - history[4] = tmp; - history[1] = tmp; - tmp = -(vec[2] + vec[3]); - vec[4] = -vec[1]; - history[5] = tmp; - history[0] = tmp; - - vec[2] = vec[5]; - vec[3] = -vec[5]; - vec[5] = -vec[0]; - -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mdct_6.h b/external/android-specific/pvmp3dec/src/pvmp3_mdct_6.h deleted file mode 100644 index 6ba53d7..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mdct_6.h +++ /dev/null @@ -1,106 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Pathname: ./include/pvmp3_mdct_6.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This include file defines function mdct_18, dct9, mdct_6 and dct_6 - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_MDCT_6_H -#define PVMP3_MDCT_6_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ -#define Qfmt(a) (Int32)(a*((Int32)1<<28) ) -#define Qfmt1(a) (Int32)(a*((Int32)0x7FFFFFFF)) -#define Qfmt2(a) (Int32)(a*((Int32)1<<27)) - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - - void pvmp3_mdct_6(int32 vec[], int32 *overlap); - - void pvmp3_dct_6(int32 vec[]); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_data.cpp b/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_data.cpp deleted file mode 100644 index 499672b..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_data.cpp +++ /dev/null @@ -1,247 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_mpeg2_get_scale_data.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - mp3SideInfo *si, side information - int32 gr, granule - int32 ch, channel - mp3Header *info, mp3 header information - uint32 *scalefac_buffer, - uint32 *scalefac_IIP_buffer, - tbits *pMainData bit stream Data - - Returns - - uint32 *scalefac_buffer, acquired scale band data - uint32 *scalefac_IIP_buffer, auxiliary scale data - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - get scale data for mpeg2 layer III LSF extension - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_mpeg2_get_scale_data.h" -#include "pvmp3_getbits.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -const uint32 nr_of_sfb_block[6][3][4] = -{ {{ 6, 5, 5, 5}, { 9, 9, 9, 9}, { 6, 9, 9, 9}}, - {{ 6, 5, 7, 3}, { 9, 9, 12, 6}, { 6, 9, 12, 6}}, - {{11, 10, 0, 0}, { 18, 18, 0, 0}, {15, 18, 0, 0}}, - {{ 7, 7, 7, 0}, { 12, 12, 12, 0}, { 6, 15, 12, 0}}, - {{ 6, 6, 6, 3}, { 12, 9, 9, 6}, { 6, 12, 9, 6}}, - {{ 8, 8, 5, 0}, { 15, 12, 9, 0}, { 6, 18, 9, 0}} -}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_mpeg2_get_scale_data(mp3SideInfo *si, - int32 gr, - int32 ch, - mp3Header *info, - uint32 *scalefac_buffer, - uint32 *scalefac_IIP_buffer, - tmp3Bits *pMainData) -{ - int16 i; - int16 j; - int16 k; - int16 blocktypenumber = 0; - int16 blocknumber = 0; - - granuleInfo *gr_info = &(si->ch[ch].gran[gr]); - uint32 scalefac_comp, int_scalefac_comp, new_slen[4] = { 0,0,0,0 }; - - scalefac_comp = gr_info->scalefac_compress; - - - - if ((((info->mode_ext &1)) && (ch == 1))) - { - /* intensity_scale = scalefac_comp %2; */ - int_scalefac_comp = scalefac_comp >> 1; - - if (int_scalefac_comp < 180) - { - new_slen[0] = int_scalefac_comp / 36; - new_slen[1] = (int_scalefac_comp % 36) / 6; - new_slen[2] = int_scalefac_comp % 6; - blocknumber = 3; - } - else if (int_scalefac_comp < 244) - { - int_scalefac_comp -= 180; - new_slen[0] = (int_scalefac_comp & 63) >> 4; - new_slen[1] = (int_scalefac_comp & 15) >> 2; - new_slen[2] = int_scalefac_comp & 3; - blocknumber = 4; - } - else if (int_scalefac_comp <= 255) - { - int_scalefac_comp -= 244; - new_slen[0] = (int_scalefac_comp) / 3; - new_slen[1] = (int_scalefac_comp) % 3; - new_slen[2] = 0; - blocknumber = 5; - } - new_slen[3] = 0; - si->ch[ch].gran[gr].preflag = 0; - } - else - { - if (scalefac_comp < 400) - { - new_slen[0] = (scalefac_comp >> 4) / 5; - new_slen[1] = (scalefac_comp >> 4) % 5; - new_slen[2] = (scalefac_comp & 15) >> 2 ; - new_slen[3] = (scalefac_comp & 3); - si->ch[ch].gran[gr].preflag = 0; - - blocknumber = 0; - } - else if (scalefac_comp < 500) - { - scalefac_comp -= 400; - new_slen[0] = (scalefac_comp >> 2) / 5; - new_slen[1] = (scalefac_comp >> 2) % 5; - new_slen[2] = scalefac_comp & 3; - new_slen[3] = 0; - si->ch[ch].gran[gr].preflag = 0; - blocknumber = 1; - } - else if (scalefac_comp < 512) - { - scalefac_comp -= 500; - new_slen[0] = scalefac_comp / 3; - new_slen[1] = scalefac_comp % 3; - new_slen[2] = 0 ; - new_slen[3] = 0; - si->ch[ch].gran[gr].preflag = 1; - blocknumber = 2; - } - } - - if (gr_info->block_type == 2) - { - if (gr_info->mixed_block_flag) - { - blocktypenumber = 2; - } - else - { - blocktypenumber = 1; - } - } - - k = 0; - for (i = 0; i < 4; i++) - { - if (new_slen[i]) - { - for (j = 0; j < (int16)nr_of_sfb_block[blocknumber][blocktypenumber][i]; j++) - { - scalefac_buffer[k] = getNbits(pMainData, new_slen[i]); - scalefac_IIP_buffer[k] = (1L << new_slen[i]) - 1; - k++; - } - } - else - { - for (j = 0; j < (int16)nr_of_sfb_block[blocknumber][blocktypenumber][i]; j++) - { - scalefac_buffer[k] = 0; - scalefac_IIP_buffer[k] = 0; - k++; - } - } - } -} diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_data.h b/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_data.h deleted file mode 100644 index 630ed61..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_data.h +++ /dev/null @@ -1,105 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_mpeg2_get_scale_data.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_MPEG2_GET_SCALE_DATA_H -#define PVMP3_MPEG2_GET_SCALE_DATA_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" -#include "s_mp3bits.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_mpeg2_get_scale_data(mp3SideInfo *si, - int32 gr, - int32 ch, - mp3Header *info, - uint32 *scalefac_buffer, - uint32 *scalefac_IIP_buffer, - tmp3Bits *pMainData); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_factors.cpp b/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_factors.cpp deleted file mode 100644 index e4d29d6..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_factors.cpp +++ /dev/null @@ -1,202 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_mpeg2_get_scale_factors.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - - mp3ScaleFactors *scalefac, - mp3SideInfo *si, side information - int32 gr, granule - int32 ch, channel - mp3Header *info, mp3 header information - uint32 *scalefac_IIP_buffer, auxiliary scale data - tbits *pMainData bit stream Data - - Returns - - III_scalefac_t *scalefac, scale factor - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - get scale factor for mpe2 layer III LSF extension - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_mpeg2_get_scale_factors.h" -#include "pvmp3_mpeg2_get_scale_data.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_mpeg2_get_scale_factors(mp3ScaleFactors *scalefac, - mp3SideInfo *si, - int32 gr, - int32 ch, - mp3Header *info, - uint32 *scalefac_IIP_buffer, - tmp3Bits *pMainData) -{ - - int32 sfb; - int32 k = 0; - int32 window; - uint32 *scalefac_buffer = &scalefac_IIP_buffer[56]; - - granuleInfo *gr_info = &(si->ch[ch].gran[gr]); - - pvmp3_mpeg2_get_scale_data(si, - gr, - ch, - info, - (uint32 *)scalefac_buffer, - (uint32 *)scalefac_IIP_buffer, - pMainData); - - - if (gr_info->window_switching_flag && (gr_info->block_type == 2)) - { - if (gr_info->mixed_block_flag) - { - for (sfb = 0; sfb < 6; sfb++) - { - scalefac->l[sfb] = scalefac_buffer[sfb]; - } - - - k = 6; - for (sfb = 3; sfb < 12; sfb++) - { - for (window = 0; window < 3; window++) - { - scalefac->s[window][sfb] = scalefac_buffer[k]; - k++; - } - } - - - /* adjust position of "illegal position" information in scalefac_IIP_buffer[] */ - /* in mixed blocks mode for short sfb, move them 3 places up. efs 3002-07-04 */ - for (sfb = 11; sfb >= 3; sfb--) - { - scalefac_IIP_buffer[3*sfb + 2] = scalefac_IIP_buffer[3*sfb - 1]; - scalefac_IIP_buffer[3*sfb + 1] = scalefac_IIP_buffer[3*sfb - 2]; - scalefac_IIP_buffer[3*sfb ] = scalefac_IIP_buffer[3*sfb - 3]; - - } - } - else - { /* SHORT*/ - for (sfb = 0; sfb < 12; sfb++) - { - for (window = 0; window < 3; window++) - { - scalefac->s[window][sfb] = scalefac_buffer[k]; - k++; - } - } - } - - scalefac->s[0][12] = 0; - scalefac->s[1][12] = 0; - scalefac->s[2][12] = 0; - - } - else - { /* LONG types 0,1,3 */ - for (sfb = 0; sfb < 21; sfb++) - { - scalefac->l[sfb] = scalefac_buffer[sfb]; - } - scalefac->l[21] = 0; - scalefac->l[22] = 0; - - } -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_factors.h b/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_factors.h deleted file mode 100644 index 46d16b3..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_get_scale_factors.h +++ /dev/null @@ -1,105 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_mpeg2_get_scale_factors.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_MPEG2_GET_SCALE_FACTORS_H -#define PVMP3_MPEG2_GET_SCALE_FACTORS_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" -#include "s_mp3bits.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_mpeg2_get_scale_factors(mp3ScaleFactors *scalefac, - mp3SideInfo *si, - int32 gr, - int32 ch, - mp3Header *info, - uint32 *scalefac_IIP_buffer, - tmp3Bits *pMainData); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_stereo_proc.cpp b/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_stereo_proc.cpp deleted file mode 100644 index c79062c..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_stereo_proc.cpp +++ /dev/null @@ -1,700 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_mpeg2_stereo_proc.cpp - - Functions: - - pvmp3_st_intensity_ver2 - pvmp3_mpeg2_stereo_proc - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - - ------------------------------------------------------------------------------- - -pvmp3_st_intensity_ver2 - - INPUT AND OUTPUT DEFINITIONS - -Input - - int32 xr[], input channel - int32 xl[], - int32 m, selecting index: io = 2(1/4) (m=0), io = 2(1/8) (m=1) - int32 is_pos, index on table is_pos_pow_eitgh_root_of_2 - int32 Start, Location of first element where stereo intensity is applied - int32 Number number of elements affected - - Returns - - int32 xl[], generated stereo channel - - - - ------------------------------------------------------------------------------- - -pvmp3_mpeg2_stereo_proc - - INPUT AND OUTPUT DEFINITIONS - -Input - - int32 xr[], input channel - int32 xl[], - mp3ScaleFactors *scalefac, scale factors structure for Right channel - granuleInfo *gr_info_l, granule structure for the left channel - granuleInfo *gr_info_r, granule structure for the rigth channel - uint32 *scalefac_IIP_buffer, auxiliary scale factor vector - mp3Header *info mp3 header info - Returns - - int32 xl[], generated stereo channel - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - stereo processing for mpeg2 layer III LSF extension - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_mpeg2_stereo_proc.h" -#include "pvmp3_stereo_proc.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_tables.h" -#include "mp3_mem_funcs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -#define Q31_fmt(a) (int32(double(0x7FFFFFFF)*a)) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -const int32 is_pos_pow_eitgh_root_of_2[8] = -{ - /* --- 2^(1/8) ----- */ - Q31_fmt(1.00000000000000), Q31_fmt(0.91700404320467), Q31_fmt(0.84089641525371), - Q31_fmt(0.77110541270397), Q31_fmt(0.70710678118655), Q31_fmt(0.64841977732550), - Q31_fmt(0.59460355750136), Q31_fmt(0.54525386633263) -}; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_st_intensity_ver2(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 m, - int32 is_pos, - int32 Start, - int32 Number) -{ - int32 k[2]; - - /* pow(io, ((is_pos + 1)>>1)); io = 2(1/4) (m=0), io = 2(1/8) (m=1) */ - k[0] = is_pos_pow_eitgh_root_of_2[((is_pos+1)&(3+(m<<2)))<<(1-m)] >> ((is_pos + 1) >> (2 + m)); - /* pow(io, (is_pos>>1)); io = 2(1/4) (m=0), io = 2(1/8) (m=1) */ - k[1] = is_pos_pow_eitgh_root_of_2[(is_pos&(3+(m<<2)))<<(1-m)] >> (is_pos >> (2 + m)); - - - int32 *pt_xr = &xr[Start]; - int32 *pt_xl = &xl[Start]; - - if (is_pos == 0) /* 0 < is_pos < 31 */ - { - pv_memcpy(pt_xl, pt_xr, Number*sizeof(*pt_xr)); - } - else if (is_pos & 1) - { - for (int32 i = Number >> 1; i != 0; i--) - { - *(pt_xl++) = (*pt_xr); - *(pt_xr) = fxp_mul32_Q32((*pt_xr) << 1, k[0]); - pt_xr++; - *(pt_xl++) = (*pt_xr); - *(pt_xr) = fxp_mul32_Q32((*pt_xr) << 1, k[0]); - pt_xr++; - } - if (Number&1) - { - *(pt_xl) = (*pt_xr); - *(pt_xr) = fxp_mul32_Q32((*pt_xr) << 1, k[0]); - } - } - else - { - for (int32 i = Number >> 1; i != 0; i--) - { - *(pt_xl++) = fxp_mul32_Q32((*(pt_xr++)) << 1, k[1]); - *(pt_xl++) = fxp_mul32_Q32((*(pt_xr++)) << 1, k[1]); - } - if (Number&1) - { - *(pt_xl) = fxp_mul32_Q32((*pt_xr) << 1, k[1]); - } - } - -} - - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -void pvmp3_mpeg2_stereo_proc(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - mp3ScaleFactors *scalefac_R, - granuleInfo *gr_info_l, - granuleInfo *gr_info_r, - uint32 *scalefac_IIP_buffer, - int32 used_freq_lines, - mp3Header *info) -{ - - int32 sfreq; - int32 sb; - int32 ss; - int32 sfbNo; - int32 sfbStart; - int32 sfb; - int32 sfbTemp; - int32 i; - int32 j; - int32 io; - - - int32 i_stereo = (info->mode == MPG_MD_JOINT_STEREO) && - (info->mode_ext & 0x1); - - int32 ms_stereo = (info->mode == MPG_MD_JOINT_STEREO) && - (info->mode_ext & 0x2); - - - if (i_stereo) - { - if (gr_info_r->scalefac_compress & 1) - { - io = 0; /* 2^(-1/4) */ - } - else - { - io = 1; /* 2^(-1/8) */ - } - - sfreq = info->version_x + (info->version_x << 1); - sfreq += info->sampling_frequency; - - if (gr_info_l->window_switching_flag && (gr_info_l->block_type == 2)) - { - if (gr_info_l->mixed_block_flag) - { - /* - * mixed blocks processing - */ - i = 31; - ss = 17; - sb = -1; - - while (i >= 0) - { - if (xl[(i*FILTERBANK_BANDS) + ss]) - { - sb = (i << 4) + (i << 1) + ss; - i = -1; - } - else - { - ss--; - if (ss < 0) - { - i--; - ss = 17; - } - } - } /* now sb is the number of highest line with value != 0 */ - /* can be between -1 (all lines zero) and 575 (no line zero) */ - - if (sb < 36) /* was (sb <= 36) */ - { - /* - * mixed blocks processing: intensity bound inside long blocks - */ - /* 1. long blocks up to intensity border: Stereo or M/S */ - if (mp3_sfBandIndex[sfreq].l[4] <= sb) - { - i = 4; - } - else - { - i = 0; - } - - while (mp3_sfBandIndex[sfreq].l[i] <= sb) - { - i++; - } - sfbTemp = i; /* from that (long) sfb on we have intensity stereo */ - - sfbNo = mp3_sfBandIndex[sfreq].l[sfbTemp]; /* number of lines to process */ - - /* from sfbStart up sfbNo lines do ms_stereo or normal stereo */ - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, 0, sfbNo); - } - - /* 2. long blocks from intensity border up to sfb band 6: intensity */ - /* calc. MPEG_1_2_Factor[0], MPEG_1_2_Factor[1] */ - - for (sfb = sfbTemp; sfb < 6; sfb++) - { - sfbStart = mp3_sfBandIndex[sfreq].l[sfb]; /* = Start in 0 ... 575 */ - sfbNo = mp3_sfBandIndex[sfreq].l[sfb+1] - mp3_sfBandIndex[sfreq].l[sfb]; /* No of lines to process */ - - if ((uint32)(scalefac_R->l[sfb]) != scalefac_IIP_buffer[sfb]) - { - pvmp3_st_intensity_ver2(xr, xl, io, scalefac_R->l[sfb], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - } - - /* 3. now process all sfb with short blocks (3...12), all in intensity mode */ - - for (j = 0; j < 3; j++) - { - /* first calculate directional factors for intensity stereo, - * for all sfb in intensity mode, but only - * if they do not have "illegal" position: - */ - /* to do this for all sfb we have to get information for last scale factor band: - * here we clearly have more than one sfb in intensity mode, - * so copy factors and legal/illegal information from sfb11 to sfb12 - */ - (scalefac_R->s[j][12]) = (scalefac_R->s[j][11]); - scalefac_IIP_buffer[36 + j] = scalefac_IIP_buffer[33 + j]; /* legal/illegal in sfb 12 same as in sfb 11 */ - - for (sfb = 3; sfb < 13; sfb++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; /* No of lines to process */ - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfb] + j * sfbNo; - - if ((uint32)(scalefac_R->s[j][sfb]) != scalefac_IIP_buffer[3*sfb + j]) - { - pvmp3_st_intensity_ver2(xr, xl, io, scalefac_R->s[j][sfb], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - } - } /* for (j = 0; j < 3; j++) */ - } - else /* else then (sb >= 36) */ - { - /* - * mixed blocks processing: intensity bound outside long blocks - */ - - /* 2. short blocks, do for all 3 */ - /* ------------------------------ */ - for (j = 0; j < 3; j++) - { - int32 sfbcnt = -1; - - for (sfb = 12; sfb >= 3; sfb--) - { - int32 lines = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - - i = 3 * mp3_sfBandIndex[sfreq].s[sfb] + (j + 1) * lines - 1; - - while (lines > 0) - { - if (xl[i]) - { - sfbcnt = sfb; - sfb = -10; - lines = -10; - } - lines--; - i--; - } - } - - sfbcnt += 1; - if (sfbcnt < 3) - { - sfbcnt = 3; /* should not be necessary */ - } - - sfbTemp = sfbcnt; /* from this (short) sfb on we have intensity mode */ - /* can have values between 3 (all short sfb in intensity) */ - /* and 13 (no short sfb in intensity mode) */ - - /* 3. from sfbTemp to last sfb calculate is_ratio values: */ - /* first calculate directional factors for intensity stereo, */ - /* for all sfb in intensity mode, but only */ - /* if they do not have "illegal" position: */ - - /* to do this for all sfb we have to get information for last scale factor band: */ - /* get factors for last scale factor band: */ - /* more than one sfb in intensity mode, - copy factors and legal/illegal information from sfb11 to sfb12 */ - if (sfbTemp < 12) - { - (scalefac_R->s[j][12]) = (scalefac_R->s[j][11]); - scalefac_IIP_buffer[36 + j] = scalefac_IIP_buffer[33 + j]; /* legal/illegal in sfb 12 same as in sfb 11 */ - } - else if (sfbTemp == sfb) - /* only sfb 12 in intensity mode, use factors corresponding to is_pos[12] == 0 */ - { - (scalefac_R->s[j][12]) = 0; - scalefac_IIP_buffer[36 + j] = 1; /* the scf value 0 in sfb12 is "legal" */ - } - /* if sfbTemp > sfb (no sfb in intensity mode): do nothing */ - - - /* 4. do normal stereo or MS stereo from sfb 3 to < sfbTemp: */ - for (sfb = 3; sfb < sfbTemp; sfb++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfb] + j * sfbNo; - - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - } - - /* 5. now intensity stereo processing of the remaining sfb's: */ - - for (sfb = sfbTemp; sfb < 13; sfb++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; /* No of lines to process */ - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfb] + j * sfbNo; - if ((uint32)(scalefac_R->s[j][sfb]) != scalefac_IIP_buffer[3*sfb + j]) - { - pvmp3_st_intensity_ver2(xr, xl, io, scalefac_R->s[j][sfb], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - } - /* end of correction by efs 2003-07-04 */ - } /* for (j = 0; j < 3; j++) */ - - - /* long blocks 0 up to sfb band 6: no intensity */ - - sfbNo = mp3_sfBandIndex[sfreq].l[6]; /* number of lines to process */ - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, 0, sfbNo); - } - - } /* if intensity bound inside or outside long blocks */ - } /* if (gr_info->mixed_block_flag) */ - else - { - /* - * short block processing - */ - for (j = 0; j < 3; j++) - { - int32 sfbcnt = -1; - - for (sfb = 12; sfb >= 0; sfb--) - { - int32 lines = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - i = 3 * mp3_sfBandIndex[sfreq].s[sfb] + (j + 1) * lines - 1; - - while (lines > 0) - { - if (xl[i]) - { - sfbcnt = sfb; - sfb = -10; - lines = -10; - } - lines--; - i--; - } - } - - sfbcnt += 1; - - /* start of corrected version by efs 2003-07-04 */ - sfbTemp = sfbcnt; /* from this (short) sfb on we have intensity mode */ - /* can have values between 3 (all short sfb in intensity) */ - /* and 13 (no short sfb in intensity mode) */ - - /* first calculate directional factors for intensity stereo, - for all sfb in intensity mode, but only - if they do not have "illegal" position: */ - - /* to do this for all sfb we have to get information for last scale factor band: */ - /* get factors for last scale factor band: */ - /* more than one sfb in intensity mode, - copy factors and legal/illegal information from sfb11 to sfb12 */ - if (sfbTemp < 12) - { - (scalefac_R->s[j][12]) = (scalefac_R->s[j][11]); - scalefac_IIP_buffer[36 + j] = scalefac_IIP_buffer[33 + j]; /* legal/illegal in sfb 12 same as in sfb 11 */ - } - else if (sfbTemp == 12) - /* only sfb 12 in intensity mode, use factors corresponding to is_pos[12] == 0 */ - { - (scalefac_R->s[j][12]) = 0; - scalefac_IIP_buffer[36 + j] = 1; /* the scf value 0 in sfb12 is "legal" */ - } - /* if sfbTemp > sfb (no sfb in intensity mode): do nothing */ - - - /* Now process audio samples */ - /* first process lower sfb's not in intensity mode */ - for (sfb = 0; sfb < sfbTemp; sfb++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfb] + j * sfbNo; - - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - } - - /* now intensity stereo processing of the remaining sfb's: */ - for (sfb = sfbTemp; sfb < 13; sfb++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; /* No of lines to process */ - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfb] + j * sfbNo; - - if ((uint32)(scalefac_R->s[j][sfb]) != scalefac_IIP_buffer[3*sfb + j]) - { - pvmp3_st_intensity_ver2(xr, xl, io, scalefac_R->s[j][sfb], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - } - - } /* for (j = 0; j < 3; j++) */ - - } /* end of else ( gr_info->mixed_block_flag) */ - - } /* if (gr_info->window_switching_flag && (gr_info->block_type == 2)) */ - else - { - /* - * long block processing - */ - i = 31; - ss = 17; - sb = 0; - - while (i >= 0) - { - if (xl[(i*FILTERBANK_BANDS) + ss]) - { - sb = (i << 4) + (i << 1) + ss; - /* i = -1 patched RF 24-09-2002 */ - i = -2; - } - else - { - ss--; - if (ss < 0) - { - i--; - ss = 17; - } - } - } - - /* patched RF 24-09-2002 */ - if (sb) - { - if (mp3_sfBandIndex[sfreq].l[14] <= sb) - { - i = 14; - } - else if (mp3_sfBandIndex[sfreq].l[7] <= sb) - { - i = 7; - } - else - { - i = 0; - } - - while (mp3_sfBandIndex[sfreq].l[i] <= sb) - { - i++; - } - } - - else - { - if (i == -1) - { - /* all xr[1][][] are 0: set IS bound sfb to 0 */ - i = 0; - } - else - { - /* xr[1][0][0] is unequal 0 and all others are 0: set IS bound sfb to 1 */ - i = 1; - } - } - /* corrected version by efs 2003-07-04 */ - sfbTemp = i; /* from this (long) sfb on we have intensity mode */ - /* can have values between 0 (all long sfb in intensity) */ - /* and 22 (no long sfb in intensity mode) */ - - /* first calculate directional factors for intensity stereo, - for all sfb in intensity mode, but only if they - do not have "illegal" position: */ - - /* to do this for all sfb we have to get information for last scale factor band: */ - if (sfbTemp < 21) - /* more than one sfb in intensity mode, */ - /* copy factors and legal/illegal information from sfb20 to sfb21 */ - { - (scalefac_R->l[21]) = (scalefac_R->l[20]); - scalefac_IIP_buffer[21] = scalefac_IIP_buffer[20]; /* legal/illegal in sfb 21 same as in sfb 20 */ - } - else if (sfbTemp == 21) - /* only sfb 21 in intensity mode, is_pos[21] = 0 */ - { - (scalefac_R->l[21]) = 0; - scalefac_IIP_buffer[21] = 1; /* the scf value 0 in sfb21 is "legal" */ - } - /* if sfbTemp > 21 (no sfb in intensity mode): do nothing */ - - - /* Now process audio samples */ - /* first process lower sfb's not in intensity mode */ - - sfbNo = mp3_sfBandIndex[sfreq].l[sfbTemp] - mp3_sfBandIndex[sfreq].l[0]; - sfbStart = mp3_sfBandIndex[sfreq].l[0]; - - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - /* now intensity stereo processing of the remaining sfb's: */ - for (sfb = sfbTemp; sfb < 22; sfb++) - { - sfbNo = mp3_sfBandIndex[sfreq].l[sfb+1] - mp3_sfBandIndex[sfreq].l[sfb]; /* number of lines to process */ - sfbStart = mp3_sfBandIndex[sfreq].l[sfb]; /* start of sfb */ - - if ((uint32)(scalefac_R->l[sfb]) != scalefac_IIP_buffer[sfb]) /* "legal" position ? */ - { - pvmp3_st_intensity_ver2(xr, xl, io, scalefac_R->l[sfb], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } /* for (sfb = sfbTemp; sfb < 22; sfb++) */ - - } /* if (gr_info->window_switching_flag && (gr_info->block_type == 2)) */ - - } /* if (i_stereo) */ - else - { - /* - * normal or ms stereo processing - */ - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, 0, used_freq_lines); - } - - } /* if (i_stereo) */ - -} - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_stereo_proc.h b/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_stereo_proc.h deleted file mode 100644 index 7db0c53..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_mpeg2_stereo_proc.h +++ /dev/null @@ -1,112 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_mpeg2_stereo_proc.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_MPEG2_STEREO_PROC_H -#define PVMP3_MPEG2_STEREO_PROC_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_mpeg2_stereo_proc(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - mp3ScaleFactors *scalefac, - granuleInfo *gr_info_l, - granuleInfo *gr_info_r, - uint32 *scalefac_IIP_buffer, - int32 used_freq_lines, - mp3Header *info); - - - void pvmp3_st_intensity_ver2(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 m, - int32 is_pos, - int32 Start, - int32 Number); -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_normalize.cpp b/external/android-specific/pvmp3dec/src/pvmp3_normalize.cpp deleted file mode 100644 index e579bbd..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_normalize.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_normalize.cpp - - Date: 10/02/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -Input - Int32 x 32-bit integer non-zero input -Returns - Int32 i number of leading zeros on x - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - Returns number of leading zeros on the non-zero input - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "pvmp3_normalize.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -#if (defined(PV_ARM_V5)||defined(PV_ARM_V4)) -#elif (defined(PV_ARM_GCC_V5)||defined(PV_ARM_GCC_V4)) - - -/* function is inlined in header file */ - - -#else - -int32 pvmp3_normalize(int32 x) -{ - /*---------------------------------------------------------------------------- - ; Define all local variables - ----------------------------------------------------------------------------*/ - int32 i; - - - if (x > 0x0FFFFFFF) - { - i = 0; /* most likely case */ - } - else if (x > 0x00FFFFFF) - { - i = 3; /* second most likely case */ - } - else if (x > 0x0000FFFF) - { - i = x > 0x000FFFFF ? 7 : 11; - } - else - { - if (x > 0x000000FF) - { - i = x > 0x00000FFF ? 15 : 19; - } - else - { - i = x > 0x0000000F ? 23 : 27; - } - } - - - x <<= i; - - switch (x & 0x78000000) - { - case 0x08000000: - i += 3; - break; - - case 0x18000000: - case 0x10000000: - i += 2; - break; - case 0x28000000: - case 0x20000000: - case 0x38000000: - case 0x30000000: - i++; - - default: - ; - } - - return i; - -} - -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_normalize.h b/external/android-specific/pvmp3dec/src/pvmp3_normalize.h deleted file mode 100644 index 5471771..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_normalize.h +++ /dev/null @@ -1,108 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_normalize.h - - Date: 10/02/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -#ifndef PVMP3_NORMALIZE_H -#define PVMP3_NORMALIZE_H - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES AND SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -#if (defined(PV_ARM_V5)||defined(PV_ARM_V4)) - -__inline int32 pvmp3_normalize(int32 x) -{ - int32 y; - __asm - { - clz y, x; - sub y, y, #1 - } - return (y); -} - - -#elif (defined(PV_ARM_GCC_V5)||defined(PV_ARM_GCC_V4)) - -__inline int32 pvmp3_normalize(int32 x) -{ - register int32 y; - register int32 ra = x; - - - asm volatile( - "clz %0, %1\n\t" - "sub %0, %0, #1" - : "=&r*i"(y) - : "r"(ra)); - return (y); - -} - -#else - -#ifdef __cplusplus -extern "C" -{ -#endif - - int32 pvmp3_normalize(int32 x); - -#ifdef __cplusplus -} -#endif - -#endif - - - -#endif /* PV_NORMALIZE_H */ diff --git a/external/android-specific/pvmp3dec/src/pvmp3_poly_phase_synthesis.cpp b/external/android-specific/pvmp3dec/src/pvmp3_poly_phase_synthesis.cpp deleted file mode 100644 index 33c8e61..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_poly_phase_synthesis.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_poly_phase_synthesis.cpp - - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Input - tmp3dec_chan *pChVars, decoder state structure per channel - int32 numChannels, number of channels - e_equalization equalizerType, equalization mode - int16 *outPcm pointer to the PCM output data - - Output - int16 *outPcm pointer to the PCM output data - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - polyphase synthesis - Each time the subband samples for all 32 polyphase subbands of one - channel have been calculated, they can be applied to the synthesis - subband filter and 32 consecutive audio samples can be calculated - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_poly_phase_synthesis.h" -#include "pvmp3_polyphase_filter_window.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_dec_defs.h" -#include "pvmp3_dct_16.h" -#include "pvmp3_equalizer.h" -#include "mp3_mem_funcs.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_poly_phase_synthesis(tmp3dec_chan *pChVars, - int32 numChannels, - e_equalization equalizerType, - int16 *outPcm) -{ - /* - * Equalizer - */ - pvmp3_equalizer(pChVars->circ_buffer, - equalizerType, - pChVars->work_buf_int32); - - - int16 * ptr_out = outPcm; - - - for (int32 band = 0; band < FILTERBANK_BANDS; band += 2) - { - int32 *inData = &pChVars->circ_buffer[544 - (band<<5)]; - - /* - * DCT 32 - */ - - pvmp3_split(&inData[16]); - - pvmp3_dct_16(&inData[16], 0); - pvmp3_dct_16(inData, 1); // Even terms - - pvmp3_merge_in_place_N32(inData); - - pvmp3_polyphase_filter_window(inData, - ptr_out, - numChannels); - - inData -= SUBBANDS_NUMBER; - - /* - * DCT 32 - */ - - pvmp3_split(&inData[16]); - - pvmp3_dct_16(&inData[16], 0); - pvmp3_dct_16(inData, 1); // Even terms - - pvmp3_merge_in_place_N32(inData); - - pvmp3_polyphase_filter_window(inData, - ptr_out + (numChannels << 5), - numChannels); - - ptr_out += (numChannels << 6); - - inData -= SUBBANDS_NUMBER; - - }/* end band loop */ - - pv_memmove(&pChVars->circ_buffer[576], - pChVars->circ_buffer, - 480*sizeof(*pChVars->circ_buffer)); - -} - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_poly_phase_synthesis.h b/external/android-specific/pvmp3dec/src/pvmp3_poly_phase_synthesis.h deleted file mode 100644 index 166cffd..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_poly_phase_synthesis.h +++ /dev/null @@ -1,102 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_poly_phase_synthesis.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_POLY_PHASE_SYNTHESIS_H -#define PVMP3_POLY_PHASE_SYNTHESIS_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "s_tmp3dec_chan.h" -#include "pvmp3decoder_api.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_poly_phase_synthesis(tmp3dec_chan *pChVars, - int32 numChannels, - e_equalization equalizerType, - int16 *outPcm); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_polyphase_filter_window.cpp b/external/android-specific/pvmp3dec/src/pvmp3_polyphase_filter_window.cpp deleted file mode 100644 index 8380437..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_polyphase_filter_window.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ - -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_polyphase_filter_window.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - -Input - int32 *synth_buffer, synthesis input buffer - int16 *outPcm, generated output ( 32 values) - int32 numChannels number of channels - Returns - - int16 *outPcm - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - apply polyphase filter window - Input 32 subband samples - Calculate 64 values ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - -#if ( !defined(PV_ARM_GCC_V5) && !defined(PV_ARM_GCC_V4) && !defined(PV_ARM_V5) && !defined(PV_ARM_V4) ) -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_polyphase_filter_window.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_dec_defs.h" -#include "pvmp3_tables.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module1 specific macros here -----------------------------------------------------------------------------*/ - - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module1 -----------------------------------------------------------------------------*/ -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module_x -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module_x but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_polyphase_filter_window(int32 *synth_buffer, - int16 *outPcm, - int32 numChannels) -{ - int32 sum1; - int32 sum2; - const int32 *winPtr = pqmfSynthWin; - int32 i; - - - for (int16 j = 1; j < SUBBANDS_NUMBER / 2; j++) - { - sum1 = 0x00000020; - sum2 = 0x00000020; - - - for (i = (SUBBANDS_NUMBER >> 1); - i < HAN_SIZE + (SUBBANDS_NUMBER >> 1); - i += SUBBANDS_NUMBER << 4) - { - int32 *pt_1 = &synth_buffer[ i+j]; - int32 *pt_2 = &synth_buffer[ i-j]; - int32 temp1 = pt_1[ 0]; - int32 temp3 = pt_2[ SUBBANDS_NUMBER*15 ]; - int32 temp2 = pt_2[ SUBBANDS_NUMBER* 1 ]; - int32 temp4 = pt_1[ SUBBANDS_NUMBER*14 ]; - - sum1 = fxp_mac32_Q32(sum1, temp1, winPtr[ 0]); - sum2 = fxp_mac32_Q32(sum2, temp3, winPtr[ 0]); - sum2 = fxp_mac32_Q32(sum2, temp1, winPtr[ 1]); - sum1 = fxp_msb32_Q32(sum1, temp3, winPtr[ 1]); - sum1 = fxp_mac32_Q32(sum1, temp2, winPtr[ 2]); - sum2 = fxp_msb32_Q32(sum2, temp4, winPtr[ 2]); - sum2 = fxp_mac32_Q32(sum2, temp2, winPtr[ 3]); - sum1 = fxp_mac32_Q32(sum1, temp4, winPtr[ 3]); - - temp1 = pt_1[ SUBBANDS_NUMBER* 2]; - temp3 = pt_2[ SUBBANDS_NUMBER*13]; - temp2 = pt_2[ SUBBANDS_NUMBER* 3]; - temp4 = pt_1[ SUBBANDS_NUMBER*12]; - - sum1 = fxp_mac32_Q32(sum1, temp1, winPtr[ 4]); - sum2 = fxp_mac32_Q32(sum2, temp3, winPtr[ 4]); - sum2 = fxp_mac32_Q32(sum2, temp1, winPtr[ 5]); - sum1 = fxp_msb32_Q32(sum1, temp3, winPtr[ 5]); - sum1 = fxp_mac32_Q32(sum1, temp2, winPtr[ 6]); - sum2 = fxp_msb32_Q32(sum2, temp4, winPtr[ 6]); - sum2 = fxp_mac32_Q32(sum2, temp2, winPtr[ 7]); - sum1 = fxp_mac32_Q32(sum1, temp4, winPtr[ 7]); - - temp1 = pt_1[ SUBBANDS_NUMBER* 4 ]; - temp3 = pt_2[ SUBBANDS_NUMBER*11 ]; - temp2 = pt_2[ SUBBANDS_NUMBER* 5 ]; - temp4 = pt_1[ SUBBANDS_NUMBER*10 ]; - - sum1 = fxp_mac32_Q32(sum1, temp1, winPtr[ 8]); - sum2 = fxp_mac32_Q32(sum2, temp3, winPtr[ 8]); - sum2 = fxp_mac32_Q32(sum2, temp1, winPtr[ 9]); - sum1 = fxp_msb32_Q32(sum1, temp3, winPtr[ 9]); - sum1 = fxp_mac32_Q32(sum1, temp2, winPtr[10]); - sum2 = fxp_msb32_Q32(sum2, temp4, winPtr[10]); - sum2 = fxp_mac32_Q32(sum2, temp2, winPtr[11]); - sum1 = fxp_mac32_Q32(sum1, temp4, winPtr[11]); - - temp1 = pt_1[ SUBBANDS_NUMBER*6 ]; - temp3 = pt_2[ SUBBANDS_NUMBER*9 ]; - temp2 = pt_2[ SUBBANDS_NUMBER*7 ]; - temp4 = pt_1[ SUBBANDS_NUMBER*8 ]; - - sum1 = fxp_mac32_Q32(sum1, temp1, winPtr[12]); - sum2 = fxp_mac32_Q32(sum2, temp3, winPtr[12]); - sum2 = fxp_mac32_Q32(sum2, temp1, winPtr[13]); - sum1 = fxp_msb32_Q32(sum1, temp3, winPtr[13]); - sum1 = fxp_mac32_Q32(sum1, temp2, winPtr[14]); - sum2 = fxp_msb32_Q32(sum2, temp4, winPtr[14]); - sum2 = fxp_mac32_Q32(sum2, temp2, winPtr[15]); - sum1 = fxp_mac32_Q32(sum1, temp4, winPtr[15]); - - winPtr += 16; - } - - - - int32 k = j << (numChannels - 1); - outPcm[k] = saturate16(sum1 >> 6); - outPcm[(numChannels<<5) - k] = saturate16(sum2 >> 6); - } - - - - sum1 = 0x00000020; - sum2 = 0x00000020; - - - for (i = 16; i < HAN_SIZE + 16; i += (SUBBANDS_NUMBER << 2)) - { - int32 *pt_synth = &synth_buffer[i]; - int32 temp1 = pt_synth[ 0 ]; - int32 temp2 = pt_synth[ SUBBANDS_NUMBER ]; - int32 temp3 = pt_synth[ SUBBANDS_NUMBER/2]; - - sum1 = fxp_mac32_Q32(sum1, temp1, winPtr[0]) ; - sum1 = fxp_mac32_Q32(sum1, temp2, winPtr[1]) ; - sum2 = fxp_mac32_Q32(sum2, temp3, winPtr[2]) ; - - temp1 = pt_synth[ SUBBANDS_NUMBER<<1 ]; - temp2 = pt_synth[ 3*SUBBANDS_NUMBER ]; - temp3 = pt_synth[ SUBBANDS_NUMBER*5/2]; - - sum1 = fxp_mac32_Q32(sum1, temp1, winPtr[3]) ; - sum1 = fxp_mac32_Q32(sum1, temp2, winPtr[4]) ; - sum2 = fxp_mac32_Q32(sum2, temp3, winPtr[5]) ; - - winPtr += 6; - } - - - outPcm[0] = saturate16(sum1 >> 6); - outPcm[(SUBBANDS_NUMBER/2)<<(numChannels-1)] = saturate16(sum2 >> 6); - - -} - -#endif // If not assembly - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_polyphase_filter_window.h b/external/android-specific/pvmp3dec/src/pvmp3_polyphase_filter_window.h deleted file mode 100644 index b9eccad..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_polyphase_filter_window.h +++ /dev/null @@ -1,138 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_decode_header.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_POLYPHASE_FILTER_WINDOW_H -#define PVMP3_POLYPHASE_FILTER_WINDOW_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_audio_type_defs.h" -#include "s_tmp3dec_chan.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ -#define MAX_16BITS_INT 0x7FFF - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - -#if (defined(PV_ARM_V5)||defined(PV_ARM_V4)) - - - __inline int16 saturate16(int32 sample) - { - int32 a; - int32 b = 31; - __asm - { - mov a, sample, asr#15 - teq a, sample, asr b - eorne sample, MAX_16BITS_INT, sample, asr#31 - } - return sample ; - } - -#else - - inline int16 saturate16(int32 sample) - { - - if ((sample >> 15) ^(sample >> 31)) - { - sample = MAX_16BITS_INT ^(sample >> 31); - } - return sample; - - } -#endif - - - void pvmp3_polyphase_filter_window(int32 *synth_buffer, - int16 *outPcm, - int32 numChannels); - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_reorder.cpp b/external/android-specific/pvmp3dec/src/pvmp3_reorder.cpp deleted file mode 100644 index 286c636..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_reorder.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_reorder.cpp - - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - - Inputs: - - int32 xr[ ], rescaled data - struct gr_info_s *gr_info, granule structure - mp3Header *info, mp3 header info - int32 Scratch_mem[198] for temporary usage - - Outputs: - - int32 xr[ ], reordered data - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - If short blocks are used (block_type[gr][ch]=='10'), the rescaled data - xr[scf_band][window][freq_line] shall be reordered in polyphase subband - order, xr[subband][window][freq_line], prior to the IMDCT operation. - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_dec_defs.h" -#include "pvmp3_reorder.h" -#include "pvmp3_tables.h" -#include "mp3_mem_funcs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_reorder(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - granuleInfo *gr_info, - int32 *used_freq_lines, - mp3Header *info, - int32 Scratch_mem[198]) -{ - int32 sfreq = info->version_x + (info->version_x << 1); - sfreq += info->sampling_frequency; - - if (gr_info->window_switching_flag && (gr_info->block_type == 2)) - { - int32 sfb_lines; - int32 freq; - int32 src_line; - int32 sfb; - if (gr_info->mixed_block_flag) - { - /* REORDERING FOR REST SWITCHED SHORT */ - sfb = 3; /* no reorder for low 2 subbands */ - src_line = 36; - } - else - { /* pure short */ - sfb = 0; - src_line = 0; - } - int16 ct = src_line; - - for (; sfb < 13; sfb++) - { - if (*used_freq_lines > 3*mp3_sfBandIndex[sfreq].s[sfb+1]) - { - sfb_lines = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - - for (freq = 0; freq < 3*sfb_lines; freq += 3) - { - int32 tmp1 = xr[src_line]; - int32 tmp2 = xr[src_line+(sfb_lines)]; - int32 tmp3 = xr[src_line+(sfb_lines<<1)]; - src_line++; - Scratch_mem[freq ] = tmp1; - Scratch_mem[freq+1] = tmp2; - Scratch_mem[freq+2] = tmp3; - } - src_line += (sfb_lines << 1); - - pv_memcpy(&xr[ct], Scratch_mem, sfb_lines*3*sizeof(int32)); - ct += sfb_lines + (sfb_lines << 1); - - } - else - { - - sfb_lines = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - - for (freq = 0; freq < 3*sfb_lines; freq += 3) - { - int32 tmp1 = xr[src_line]; - int32 tmp2 = xr[src_line+(sfb_lines)]; - int32 tmp3 = xr[src_line+(sfb_lines<<1)]; - src_line++; - Scratch_mem[freq ] = tmp1; - Scratch_mem[freq+1] = tmp2; - Scratch_mem[freq+2] = tmp3; - } - - pv_memcpy(&xr[ct], Scratch_mem, sfb_lines*3*sizeof(int32)); - - *used_freq_lines = mp3_sfBandIndex[sfreq].s[sfb+1] * 3; - - sfb = 13; /* force out of the for-loop */ - } - } - } -} - - - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_reorder.h b/external/android-specific/pvmp3dec/src/pvmp3_reorder.h deleted file mode 100644 index 5248951..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_reorder.h +++ /dev/null @@ -1,103 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_reorder.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_REORDER_H -#define PVMP3_REORDER_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - void pvmp3_reorder(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - granuleInfo *gr_info, - int32 *used_freq_lines, - mp3Header *info, - int32 Scratch_mem[198]); - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_seek_synch.cpp b/external/android-specific/pvmp3dec/src/pvmp3_seek_synch.cpp deleted file mode 100644 index 82faafd..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_seek_synch.cpp +++ /dev/null @@ -1,308 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_seek_synch.cpp - - Functions: - pvmp3_seek_synch - pvmp3_header_sync - - - Date: 9/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -pvmp3_frame_synch - -Input - pExt = pointer to the external interface structure. See the file - pvmp3decoder_api.h for a description of each field. - Data type of pointer to a tPVMP3DecoderExternal - structure. - - pMem = void pointer to hide the internal implementation of the library - It is cast back to a tmp3dec_file structure. This structure - contains information that needs to persist between calls to - this function, or is too big to be placed on the stack, even - though the data is only needed during execution of this function - Data type void pointer, internally pointer to a tmp3dec_file - structure. - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - search mp3 sync word, when found, it verifies, based on header parameters, - the locations of the very next sync word, - - if fails, then indicates a false sync, - - otherwise, it confirm synchronization of at least 2 consecutives frames - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_seek_synch.h" -#include "pvmp3_getbits.h" -#include "s_tmp3dec_file.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_tables.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - - -ERROR_CODE pvmp3_frame_synch(tPVMP3DecoderExternal *pExt, - void *pMem) /* bit stream structure */ -{ - uint16 val; - ERROR_CODE err; - - tmp3dec_file *pVars; - - pVars = (tmp3dec_file *)pMem; - - pVars->inputStream.pBuffer = pExt->pInputBuffer; - pVars->inputStream.usedBits = (pExt->inputBufferUsedLength << 3); // in bits - - - pVars->inputStream.inputBufferCurrentLength = (pExt->inputBufferCurrentLength); // in bits - - err = pvmp3_header_sync(&pVars->inputStream); - - if (err == NO_DECODING_ERROR) - { - /* validate synchronization by checking two consecutive sync words */ - - // to avoid multiple bitstream accesses - uint32 temp = getNbits(&pVars->inputStream, 21); - // put back whole header - pVars->inputStream.usedBits -= 21 + SYNC_WORD_LNGTH; - - int32 version; - - switch (temp >> 19) /* 2 */ - { - case 0: - version = MPEG_2_5; - break; - case 2: - version = MPEG_2; - break; - case 3: - version = MPEG_1; - break; - default: - version = INVALID_VERSION; - break; - } - - int32 freq_index = (temp << 20) >> 30; - - if (version != INVALID_VERSION && (freq_index != 3)) - { - int32 numBytes = fxp_mul32_Q28(mp3_bitrate[version][(temp<<16)>>28] << 20, - inv_sfreq[freq_index]); - - numBytes >>= (20 - version); - - if (version != MPEG_1) - { - numBytes >>= 1; - } - if ((temp << 22) >> 31) - { - numBytes++; - } - - if (numBytes > (int32)pVars->inputStream.inputBufferCurrentLength) - { - /* frame should account for padding and 2 bytes to check sync */ - pExt->CurrentFrameLength = numBytes + 3; - return (SYNCH_LOST_ERROR); - } - else if (numBytes == (int32)pVars->inputStream.inputBufferCurrentLength) - { - /* No enough data to validate, but current frame appears to be correct ( EOF case) */ - pExt->inputBufferUsedLength = pVars->inputStream.usedBits >> 3; - return (NO_DECODING_ERROR); - } - else - { - - int32 offset = pVars->inputStream.usedBits + ((numBytes) << 3); - - offset >>= INBUF_ARRAY_INDEX_SHIFT; - uint8 *pElem = pVars->inputStream.pBuffer + offset; - uint16 tmp1 = *(pElem++); - uint16 tmp2 = *(pElem); - - val = (tmp1 << 3); - val |= (tmp2 >> 5); - } - } - else - { - val = 0; // force mismatch - } - - if (val == SYNC_WORD) - { - pExt->inputBufferUsedLength = pVars->inputStream.usedBits >> 3; /// !!!!! - err = NO_DECODING_ERROR; - } - else - { - pExt->inputBufferCurrentLength = 0; - err = SYNCH_LOST_ERROR; - } - } - else - { - pExt->inputBufferCurrentLength = 0; - } - - return(err); - -} - -/* ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - ------------------------------------------------------------------------------- - INPUT AND OUTPUT DEFINITIONS - -pvmp3_header_sync - -Input - tmp3Bits *inputStream, structure holding the input stream parameters - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - search mp3 sync word - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - - -ERROR_CODE pvmp3_header_sync(tmp3Bits *inputStream) -{ - uint16 val; - uint32 availableBits = (inputStream->inputBufferCurrentLength << 3); // in bits - - // byte aligment - inputStream->usedBits = (inputStream->usedBits + 7) & 8; - - val = (uint16)getUpTo17bits(inputStream, SYNC_WORD_LNGTH); - - while (((val&SYNC_WORD) != SYNC_WORD) && (inputStream->usedBits < availableBits)) - { - val <<= 8; - val |= getUpTo9bits(inputStream, 8); - } - - if ((val&SYNC_WORD) == SYNC_WORD && (inputStream->usedBits < availableBits)) - { - return(NO_DECODING_ERROR); - } - else - { - return(SYNCH_LOST_ERROR); - } - -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_seek_synch.h b/external/android-specific/pvmp3dec/src/pvmp3_seek_synch.h deleted file mode 100644 index 8097cee..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_seek_synch.h +++ /dev/null @@ -1,106 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_seek_synch.h - - Date: 09/21/2007 ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_SEEK_SYNCH_H -#define PVMP3_SEEK_SYNCH_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" -#include "pvmp3decoder_api.h" -#include "s_tmp3dec_file.h" -#include "pvmp3_dec_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - ERROR_CODE pvmp3_frame_synch(tPVMP3DecoderExternal *pExt, - void *pMem); - - ERROR_CODE pvmp3_header_sync(tmp3Bits *inputStream); - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif /* DECODE_READ_INPUT_H */ - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_stereo_proc.cpp b/external/android-specific/pvmp3dec/src/pvmp3_stereo_proc.cpp deleted file mode 100644 index d69a46d..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_stereo_proc.cpp +++ /dev/null @@ -1,676 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_stereo_proc.cpp - - Functions: - - pvmp3_st_mid_side - pvmp3_st_intensity - pvmp3_stereo_proc - ------------------------------------------------------------------------------- - -pvmp3_st_mid_side - - INPUT AND OUTPUT DEFINITIONS - -Input - - int32 xr[], input channel - int32 xl[], - int32 Start, Location of first element where stereo intensity is applied - int32 Number number of elements affected - - Returns - - int32 xl[], generated stereo channel - - ------------------------------------------------------------------------------- - -pvmp3_st_intensity - - INPUT AND OUTPUT DEFINITIONS - -Input - - int32 xr[], input channel - int32 xl[], - int32 is_pos, index to table is_ratio_factor[] - int32 Start, Location of first element where stereo intensity is applied - int32 Number number of elements affected - - Returns - - int32 xl[], generated stereo channel - - ------------------------------------------------------------------------------- - -pvmp3_stereo_proc - - INPUT AND OUTPUT DEFINITIONS - -Input - - int32 xr[], input channel - int32 xl[], - mp3ScaleFactors *scalefac, scale factors structure - struct gr_info_s *gr_info, granule structure - mp3Header *info mp3 header info - Returns - - int32 xl[], generated stereo channel - - ------------------------------------------------------------------------------- - FUNCTION DESCRIPTION - - stereo processing for mpeg1 layer III - After requantization, the reconstructed values are processed for ms_stereo - or intensity_stereo modes or both, before passing them to the synthesis - filterbank - - In ms_stereo mode the values of the normalized middle/side channels - M[l] and S[l] are transmitted instead of the left/right channel values - L[l] and R[l]. From here, L[l] and R[l] are reconstructed - - Intensity_stereo is done by specifying the magnitude (via the - scalefactors of the left channel) and a stereo position is_pos[sfb], - which is transmitted instead of scalefactors of the right channel. - The stereo position is used to derive the left and right channel signals - ------------------------------------------------------------------------------- - REQUIREMENTS - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- - PSEUDO-CODE - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_stereo_proc.h" -#include "pv_mp3dec_fxd_op.h" -#include "pvmp3_tables.h" - - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ -#define N31 31 - -#define Q31_fmt(a) (int32(double(0x7FFFFFFF)*a)) - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ -/* - * TmpFac= tan(is_pos * (PI /12)); - * - * TmpFac /= (1 + TmpFac); - * - */ - -const int32 is_ratio_factor[8] = {0, - Q31_fmt(0.21132486540519), Q31_fmt(0.36602540378444), Q31_fmt(0.50000000000000), - Q31_fmt(0.63397459621556), Q31_fmt(0.78867513459481), Q31_fmt(1.00000000000000), - 0 - }; - -/*---------------------------------------------------------------------------- -; EXTERNAL FUNCTION REFERENCES -; Declare functions defined elsewhere and referenced in this module -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_st_mid_side(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 Start, - int32 Number) -{ - - int32 *pt_xr = &xr[Start]; - int32 *pt_xl = &xl[Start]; - - for (int32 i = Number >> 1; i != 0; i--) - { - int32 xxr = *(pt_xr) << 1; - int32 xxl = *(pt_xl) << 1; - *(pt_xr++) = fxp_mul32_Q32((xxr + xxl), Q31_fmt(0.70710678118655)); /* Sum */ - *(pt_xl++) = fxp_mul32_Q32((xxr - xxl), Q31_fmt(0.70710678118655)); /* Diff */ - xxr = *(pt_xr) << 1; - xxl = *(pt_xl) << 1; - *(pt_xr++) = fxp_mul32_Q32((xxr + xxl), Q31_fmt(0.70710678118655)); /* Sum */ - *(pt_xl++) = fxp_mul32_Q32((xxr - xxl), Q31_fmt(0.70710678118655)); /* Diff */ - } - - - if (Number&1) - { - int32 xxr = *(pt_xr) << 1; - int32 xxl = *(pt_xl) << 1; - *(pt_xr) = fxp_mul32_Q32((xxr + xxl), Q31_fmt(0.70710678118655)); /* Sum */ - *(pt_xl) = fxp_mul32_Q32((xxr - xxl), Q31_fmt(0.70710678118655)); /* Diff */ - } - -} - - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ - -void pvmp3_st_intensity(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 is_pos, - int32 Start, - int32 Number) -{ - - int32 TmpFac = is_ratio_factor[ is_pos & 7]; - - int32 *pt_xr = &xr[Start]; - int32 *pt_xl = &xl[Start]; - - for (int32 i = Number >> 1; i != 0; i--) - { - int32 tmp = fxp_mul32_Q32((*pt_xr) << 1, TmpFac); - *(pt_xl++) = (*pt_xr) - tmp; - *(pt_xr++) = tmp; - tmp = fxp_mul32_Q32((*pt_xr) << 1, TmpFac); - *(pt_xl++) = (*pt_xr) - tmp; - *(pt_xr++) = tmp; - } - - if (Number&1) - { - int32 tmp = fxp_mul32_Q32((*pt_xr) << 1, TmpFac); - *(pt_xl) = (*pt_xr) - tmp; - *(pt_xr) = tmp; - } - -} - -/*---------------------------------------------------------------------------- -; FUNCTION CODE -----------------------------------------------------------------------------*/ -void pvmp3_stereo_proc(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - mp3ScaleFactors *scalefac, - granuleInfo *gr_info, - int32 used_freq_lines, - mp3Header *info) -{ - - - int32 sb; - int32 ss; - int32 sfbNo; - int32 sfbStart; - - int32 sfb; - int32 sfbTemp; - int32 i; - int32 j; - - - int32 i_stereo = (info->mode == MPG_MD_JOINT_STEREO) && - (info->mode_ext & 0x1); - - int32 ms_stereo = (info->mode == MPG_MD_JOINT_STEREO) && - (info->mode_ext & 0x2); - - int32 sfreq = info->version_x + (info->version_x << 1); - sfreq += info->sampling_frequency; - - - - - if (i_stereo) - { - if (gr_info->window_switching_flag && (gr_info->block_type == 2)) - { - if (gr_info->mixed_block_flag) - { - /* - * mixed blocks processing - */ - i = 31; - ss = 17; - sb = 0; - while (i >= 0) - { - if (xl[(i*FILTERBANK_BANDS) + ss]) - { - sb = (i << 4) + (i << 1) + ss; - i = -1; - } - else - { - ss--; - if (ss < 0) - { - i--; - ss = 17; - } - } - } - - if (sb < 36) - { - /* - * mixed blocks processing: intensity bound inside long blocks - */ - /* 1. long blocks up to intensity border: not intensity */ - - if (mp3_sfBandIndex[sfreq].l[4] <= sb) - { - sfb = 4; - } - else - { - sfb = 0; - } - - while (mp3_sfBandIndex[sfreq].l[sfb] < sb) - { - sfb++; - } - - /* from that sfb on intensity stereo */ - sfbTemp = sfb; /* save for later use */ - - sfbStart = mp3_sfBandIndex[sfreq].l[sfb]; - - /* from 0 up to sfbStart do ms_stereo or normal stereo */ - - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, 0, sfbStart); - } - - /* 2. long blocks from intensity border up to sfb band 8: intensity */ - /* calc. is_ratio */ - - - /* Start of intensity stereo of remaining sfc bands: */ - for (; sfbTemp < 8; sfbTemp++) - { - sfbStart = mp3_sfBandIndex[sfreq].l[sfbTemp]; /* = Start in 0 ... 575 */ - sfbNo = mp3_sfBandIndex[sfreq].l[sfbTemp+1] - mp3_sfBandIndex[sfreq].l[sfbTemp]; /* No of lines to process */ - - if (scalefac->l[sfbTemp] != 7) - { - pvmp3_st_intensity(xr, xl, scalefac->l[sfbTemp], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } /* for (; sfbTemp < 8; sfbTemp++) */ - - for (j = 0; j < 3; j++) - { - /* 3. short blocks from sfbcnt to last sfb do intensity stereo */ - for (sfbTemp = 3; sfbTemp < 13; sfbTemp++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfbTemp+1] - mp3_sfBandIndex[sfreq].s[sfbTemp]; /* No of lines to process */ - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfbTemp] + j * sfbNo; - - if (scalefac->s[j][sfbTemp] != 7) - { - pvmp3_st_intensity(xr, xl, scalefac->s[j][sfbTemp], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } /* for (; sfbTemp < 22; sfbTemp++) */ - } /* for (j = 0; j < 3; j++) */ - } - else /* else for (sb >= 36) */ - { - /* - * mixed blocks processing: intensity bound outside long blocks - */ - - - /* - * 2. short blocks from sfb band 3 up to intensity border: normal stereo, ms stereo and intensity - */ - for (j = 0; j < 3; j++) - { - int32 sfbcnt; - sfbcnt = -1; - - for (sfb = 12; sfb >= 3; sfb--) - { - int32 lines; - lines = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - i = 3 * mp3_sfBandIndex[sfreq].s[sfb] + (j + 1) * lines - 1; - - while (lines > 0) - { - if (xl[i]) - { - sfbcnt = sfb; - sfb = -10; - lines = -10; - } - lines--; - i--; - } - } - - sfbcnt += 1; - if (sfbcnt < 3) - { - sfbcnt = 3; - } - - sfbTemp = sfbcnt; /* for later use */ - - - /* - * do normal stereo or MS stereo from sfb 3 to < sfbcnt: - */ - for (sb = 3; sb < sfbcnt; sb++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sb+1] - mp3_sfBandIndex[sfreq].s[sb]; - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sb] + j * sfbNo; - - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } - - /* from sfbcnt to last sfb do intensity stereo */ - for (; sfbTemp < 13; sfbTemp++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfbTemp+1] - mp3_sfBandIndex[sfreq].s[sfbTemp]; /* No of lines to process */ - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfbTemp] + j * sfbNo; - - if (scalefac->s[j][sfbTemp] != 7) - { - pvmp3_st_intensity(xr, xl, scalefac->s[j][sfbTemp], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } /* for (; sfbTemp < 22; sfbTemp++) */ - - } /* for (j = 0; j < 3; j++) */ - - /* 1. long blocks up to sfb band 8: not intensity */ - /* from 0 to sfb 8 ms_stereo or normal stereo */ - - sfbStart = mp3_sfBandIndex[sfreq].l[8]; - - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, 0, sfbStart); - } - - } - } /* if (gr_info->mixed_block_flag) */ - else - { - /* - * short block processing - */ - for (j = 0; j < 3; j++) - { - int32 sfbcnt = -1; - - for (sfb = 12; sfb >= 0; sfb--) - { - int32 lines = mp3_sfBandIndex[sfreq].s[sfb+1] - mp3_sfBandIndex[sfreq].s[sfb]; - i = 3 * mp3_sfBandIndex[sfreq].s[sfb] + (j + 1) * lines - 1; - - while (lines > 0) - { - if (xl[i]) - { - sfbcnt = sfb; - sfb = -10; - lines = -10; - } - lines--; - i--; - } - } - - sfbcnt += 1; - sfbTemp = sfbcnt; /* for later use */ - - /* do normal stereo or MS stereo from 0 to sfbcnt */ - for (sb = 0; sb < sfbcnt; sb++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sb+1] - mp3_sfBandIndex[sfreq].s[sb]; - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sb] + j * sfbNo; - - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - } - - - /* from sfbcnt to last sfb do intensity stereo */ - for (; sfbTemp < 13; sfbTemp++) - { - sfbNo = mp3_sfBandIndex[sfreq].s[sfbTemp+1] - mp3_sfBandIndex[sfreq].s[sfbTemp]; /* No of lines to process */ - sfbStart = 3 * mp3_sfBandIndex[sfreq].s[sfbTemp] + j * sfbNo; - - if (scalefac->s[j][sfbTemp] != 7) - { - pvmp3_st_intensity(xr, xl, scalefac->s[j][sfbTemp], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } /* for (; sfbTemp < 22; sfbTemp++) */ - - } /* for (j = 0; j < 3; j++) */ - - } /* if( gr_info->mixed_block_flag) */ - - - - } /* if (gr_info->window_switching_flag && (gr_info->block_type == 2)) */ - else - { - /* - * long block processing - */ - i = 31; - ss = 17; - sb = 0; - - while (i >= 0) - { - if (xl[(i*FILTERBANK_BANDS) + ss] != 0) - { - sb = (i << 4) + (i << 1) + ss; - i = -2; - } - else - { - ss--; - if (ss < 0) - { - i--; - ss = 17; - } - } - } - - if (sb) - { - if (mp3_sfBandIndex[sfreq].l[14] <= sb) - { - sfb = 14; - } - else if (mp3_sfBandIndex[sfreq].l[7] <= sb) - { - sfb = 7; - } - else - { - sfb = 0; - } - - - while (mp3_sfBandIndex[sfreq].l[sfb] <= sb) - { - sfb++; - } - } - else - { - if (i == -1) - { - /* all xr[1][][] are 0: set IS bound sfb to 0 */ - sfb = 0; - } - else - { - /* xr[1][0][0] is unequal 0 and all others are 0: set IS bound sfb to 1 */ - sfb = 1; - } - } - - sfbTemp = sfb; /* save for later use */ - - - sfbStart = mp3_sfBandIndex[sfreq].l[sfb]; - - /* from 0 to sfbStart ms_stereo or normal stereo */ - if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, 0, sfbStart); - } - - /* now intensity stereo of the remaining sfb's: */ - for (; sfb < 21; sfb++) - { - sfbStart = mp3_sfBandIndex[sfreq].l[sfb]; - sfbNo = mp3_sfBandIndex[sfreq].l[sfb+1] - mp3_sfBandIndex[sfreq].l[sfb]; /* No of lines to process */ - - if (scalefac->l[sfb] != 7) - { - pvmp3_st_intensity(xr, xl, scalefac->l[sfb], sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } /* for (; sfbTemp < 22; sfbTemp++) */ - - - - sfbStart = mp3_sfBandIndex[sfreq].l[21]; - sfbNo = mp3_sfBandIndex[sfreq].l[22] - mp3_sfBandIndex[sfreq].l[21]; /* No of lines to process */ - - if (scalefac->l[21] != 7) - { - if (sfbTemp < 21) - { - sfbTemp = scalefac->l[20]; - } - else - { - sfbTemp = 0; /* if scalefac[20] is not an intensity position, is_pos = 0 */ - } - - pvmp3_st_intensity(xr, xl, sfbTemp, sfbStart, sfbNo); - } - else if (ms_stereo) - { - pvmp3_st_mid_side(xr, xl, sfbStart, sfbNo); - } - - } /* if (gr_info->window_switching_flag && (gr_info->block_type == 2)) */ - - - } /* if (i_stereo) */ - else - { - /* - * normal or ms stereo processing - */ - if (ms_stereo) - { - - pvmp3_st_mid_side(xr, xl, 0, used_freq_lines); - - } - - } /* if (i_stereo) */ - -} - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_stereo_proc.h b/external/android-specific/pvmp3dec/src/pvmp3_stereo_proc.h deleted file mode 100644 index bfaf1a1..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_stereo_proc.h +++ /dev/null @@ -1,114 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_stereo_proc.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef PVMP3_STEREO_PROC_H -#define PVMP3_STEREO_PROC_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - - void pvmp3_stereo_proc(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - mp3ScaleFactors *scalefac, - granuleInfo *gr_info, - int32 used_freq_lines, - mp3Header *info); - - void pvmp3_st_intensity(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 is_pos, - int32 Start, - int32 Number); - - void pvmp3_st_mid_side(int32 xr[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 xl[SUBBANDS_NUMBER*FILTERBANK_BANDS], - int32 Start, - int32 Number); -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_tables.cpp b/external/android-specific/pvmp3dec/src/pvmp3_tables.cpp deleted file mode 100644 index 90e524a..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_tables.cpp +++ /dev/null @@ -1,2934 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: pvmp3_tables.cpp - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - - Description: - - ------------------------------------------------------------------------------- - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - ------------------------------------------------------------------------------- -*/ - - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_tables.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. Include conditional -; compile variables also. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; LOCAL STORE/BUFFER/POINTER DEFINITIONS -; Variable declaration - defined here and used outside this module -----------------------------------------------------------------------------*/ - -const int32 mp3_s_freq[4][4] = -{ - {44100, 48000, 32000, 0}, - {22050, 24000, 16000, 0}, - {11025, 12000, 8000, 0} -}; // MPEG-2.5 - - -/* - * 144000./s_freq - */ -const int32 inv_sfreq[4] = -{ - Qfmt_28(3.26530612244898), - Qfmt_28(3.0), - Qfmt_28(4.5), - 0 -}; - - -/* 1: MPEG-1, 0: MPEG-2 LSF, 1995-07-11 shn */ - - -const int16 mp3_bitrate[3][15] = -{ - {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320}, - {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}, - {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160} -}; - - -const mp3_scaleFactorBandIndex mp3_sfBandIndex[9] = -{ - - /* MPEG 1 */ - - {{0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576}, - {0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192}}, - {{0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576}, - {0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192}}, - {{0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576}, - {0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192}}, - - /* MPEG 2 - LSF */ - - {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576}, - {0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192}}, - {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464, 540, 576}, - {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192}}, - {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576}, - {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192}}, - - /* MPEG 2.5 extension */ - - {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576}, - {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192}}, - {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576}, - {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192}}, - {{0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576}, - {0, 8, 16, 24, 36, 52, 72, 96, 124, 160, 162, 164, 166, 192}} - -}; - -#define INV_Q31( x) (int32)(0x7FFFFFFF/(float)x - 1.0f) - -const int32 mp3_shortwindBandWidths[9][13] = -{ - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), - INV_Q31(12), INV_Q31(14), INV_Q31(18), INV_Q31(22), INV_Q31(30), INV_Q31(56)}, - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(6), INV_Q31(10), - INV_Q31(12), INV_Q31(14), INV_Q31(16), INV_Q31(20), INV_Q31(26), INV_Q31(66)}, - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(12), - INV_Q31(16), INV_Q31(20), INV_Q31(26), INV_Q31(34), INV_Q31(42), INV_Q31(12)}, - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(6), INV_Q31(8), INV_Q31(10), - INV_Q31(14), INV_Q31(18), INV_Q31(26), INV_Q31(32), INV_Q31(42), INV_Q31(18)}, - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12), - INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(32), INV_Q31(44), INV_Q31(12)}, - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12), - INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(30), INV_Q31(40), INV_Q31(18)}, - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12), - INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(30), INV_Q31(40), INV_Q31(18)}, - { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12), - INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(30), INV_Q31(40), INV_Q31(18)}, - { INV_Q31(8), INV_Q31(8), INV_Q31(8), INV_Q31(12), INV_Q31(16), INV_Q31(20), INV_Q31(24), - INV_Q31(28), INV_Q31(36), INV_Q31(2), INV_Q31(2), INV_Q31(2), INV_Q31(26)} -}; - - -#define Q30_fmt(a) (int32((0x40000000)*a)) - -const int32 pqmfSynthWin[(HAN_SIZE/2) + 8] = -{ - Q30_fmt(-0.000015259F), Q30_fmt(0.000396729F), Q30_fmt(0.000473022F), Q30_fmt(0.003173828F), - Q30_fmt(0.003326416F), Q30_fmt(0.006118770F), Q30_fmt(0.007919310F), Q30_fmt(0.031478880F), - Q30_fmt(0.030517578F), Q30_fmt(0.073059080F), Q30_fmt(0.084182740F), Q30_fmt(0.108856200F), - Q30_fmt(0.090927124F), Q30_fmt(0.543823240F), Q30_fmt(0.600219727F), Q30_fmt(1.144287109F), - - Q30_fmt(-0.000015259F), Q30_fmt(0.000366211F), Q30_fmt(0.000534058F), Q30_fmt(0.003082275F), - Q30_fmt(0.003387451F), Q30_fmt(0.005294800F), Q30_fmt(0.008865360F), Q30_fmt(0.031738280F), - Q30_fmt(0.029785160F), Q30_fmt(0.067520140F), Q30_fmt(0.089706420F), Q30_fmt(0.116577150F), - Q30_fmt(0.080688480F), Q30_fmt(0.515609740F), Q30_fmt(0.628295900F), Q30_fmt(1.142211914F), - - Q30_fmt(-0.000015259F), Q30_fmt(0.000320435F), Q30_fmt(0.000579834F), Q30_fmt(0.002990723F), - Q30_fmt(0.003433228F), Q30_fmt(0.004486080F), Q30_fmt(0.009841920F), Q30_fmt(0.031845090F), - Q30_fmt(0.028884890F), Q30_fmt(0.061996460F), Q30_fmt(0.095169070F), Q30_fmt(0.123474120F), - Q30_fmt(0.069595340F), Q30_fmt(0.487472530F), Q30_fmt(0.656219480F), Q30_fmt(1.138763428F), - - Q30_fmt(-0.000015259F), Q30_fmt(0.000289917F), Q30_fmt(0.000625610F), Q30_fmt(0.002899170F), - Q30_fmt(0.003463745F), Q30_fmt(0.003723140F), Q30_fmt(0.010849000F), Q30_fmt(0.031814580F), - Q30_fmt(0.027801510F), Q30_fmt(0.056533810F), Q30_fmt(0.100540160F), Q30_fmt(0.129577640F), - Q30_fmt(0.057617190F), Q30_fmt(0.459472660F), Q30_fmt(0.683914180F), Q30_fmt(1.133926392F), - - Q30_fmt(-0.000015259F), Q30_fmt(0.000259399F), Q30_fmt(0.000686646F), Q30_fmt(0.002792358F), - Q30_fmt(0.003479004F), Q30_fmt(0.003005981F), Q30_fmt(0.011886600F), Q30_fmt(0.031661990F), - Q30_fmt(0.026535030F), Q30_fmt(0.051132200F), Q30_fmt(0.105819700F), Q30_fmt(0.134887700F), - Q30_fmt(0.044784550F), Q30_fmt(0.431655880F), Q30_fmt(0.711318970F), Q30_fmt(1.127746582F), - - Q30_fmt(-0.000015259F), Q30_fmt(0.000244141F), Q30_fmt(0.000747681F), Q30_fmt(0.002685547F), - Q30_fmt(0.003479004F), Q30_fmt(0.002334595F), Q30_fmt(0.012939450F), Q30_fmt(0.031387330F), - Q30_fmt(0.025085450F), Q30_fmt(0.045837400F), Q30_fmt(0.110946660F), Q30_fmt(0.139450070F), - Q30_fmt(0.031082153F), Q30_fmt(0.404083250F), Q30_fmt(0.738372800F), Q30_fmt(1.120223999F), - - Q30_fmt(-0.000030518F), Q30_fmt(0.000213623F), Q30_fmt(0.000808716F), Q30_fmt(0.002578735F), - Q30_fmt(0.003463745F), Q30_fmt(0.001693726F), Q30_fmt(0.014022830F), Q30_fmt(0.031005860F), - Q30_fmt(0.023422240F), Q30_fmt(0.040634160F), Q30_fmt(0.115921020F), Q30_fmt(0.143264770F), - Q30_fmt(0.016510010F), Q30_fmt(0.376800540F), Q30_fmt(0.765029907F), Q30_fmt(1.111373901F), - - Q30_fmt(-0.000030518F), Q30_fmt(0.000198364F), Q30_fmt(0.000885010F), Q30_fmt(0.002456665F), - Q30_fmt(0.003417969F), Q30_fmt(0.001098633F), Q30_fmt(0.015121460F), Q30_fmt(0.030532840F), - Q30_fmt(0.021575930F), Q30_fmt(0.035552980F), Q30_fmt(0.120697020F), Q30_fmt(0.146362300F), - Q30_fmt(0.001068120F), Q30_fmt(0.349868770F), Q30_fmt(0.791213990F), Q30_fmt(1.101211548F), - - Q30_fmt(-0.000030518F), Q30_fmt(0.000167847F), Q30_fmt(0.000961304F), Q30_fmt(0.002349854F), - Q30_fmt(0.003372192F), Q30_fmt(0.000549316F), Q30_fmt(0.016235350F), Q30_fmt(0.029937740F), - Q30_fmt(0.019531250F), Q30_fmt(0.030609130F), Q30_fmt(0.125259400F), Q30_fmt(0.148773190F), - Q30_fmt(-0.015228270F), Q30_fmt(0.323318480F), Q30_fmt(0.816864010F), Q30_fmt(1.089782715F), - - Q30_fmt(-0.000030518F), Q30_fmt(0.000152588F), Q30_fmt(0.001037598F), Q30_fmt(0.002243042F), - Q30_fmt(0.003280640F), Q30_fmt(0.000030518F), Q30_fmt(0.017349240F), Q30_fmt(0.029281620F), - Q30_fmt(0.017257690F), Q30_fmt(0.025817870F), Q30_fmt(0.129562380F), Q30_fmt(0.150497440F), - Q30_fmt(-0.032379150F), Q30_fmt(0.297210693F), Q30_fmt(0.841949463F), Q30_fmt(1.077117920F), - - Q30_fmt(-0.000045776F), Q30_fmt(0.000137329F), Q30_fmt(0.001113892F), Q30_fmt(0.002120972F), - Q30_fmt(0.003173828F), Q30_fmt(-0.000442505F), Q30_fmt(0.018463130F), Q30_fmt(0.028533940F), - Q30_fmt(0.014801030F), Q30_fmt(0.021179200F), Q30_fmt(0.133590700F), Q30_fmt(0.151596070F), - Q30_fmt(-0.050354000F), Q30_fmt(0.271591190F), Q30_fmt(0.866363530F), Q30_fmt(1.063217163F), - - Q30_fmt(-0.000045776F), Q30_fmt(0.000122070F), Q30_fmt(0.001205444F), Q30_fmt(0.002014160F), - Q30_fmt(0.003051758F), Q30_fmt(-0.000869751F), Q30_fmt(0.019577030F), Q30_fmt(0.027725220F), - Q30_fmt(0.012115480F), Q30_fmt(0.016708370F), Q30_fmt(0.137298580F), Q30_fmt(0.152069090F), - Q30_fmt(-0.069168090F), Q30_fmt(0.246505740F), Q30_fmt(0.890090940F), Q30_fmt(1.048156738F), - - Q30_fmt(-0.000061035F), Q30_fmt(0.000106812F), Q30_fmt(0.001296997F), Q30_fmt(0.001907349F), - Q30_fmt(0.002883911F), Q30_fmt(-0.001266479F), Q30_fmt(0.020690920F), Q30_fmt(0.026840210F), - Q30_fmt(0.009231570F), Q30_fmt(0.012420650F), Q30_fmt(0.140670780F), Q30_fmt(0.151962280F), - Q30_fmt(-0.088775630F), Q30_fmt(0.221984860F), Q30_fmt(0.913055420F), Q30_fmt(1.031936646F), - - Q30_fmt(-0.000061035F), Q30_fmt(0.000106812F), Q30_fmt(0.001388550F), Q30_fmt(0.001785278F), - Q30_fmt(0.002700806F), Q30_fmt(-0.001617432F), Q30_fmt(0.021789550F), Q30_fmt(0.025909420F), - Q30_fmt(0.006134030F), Q30_fmt(0.008316040F), Q30_fmt(0.143676760F), Q30_fmt(0.151306150F), - Q30_fmt(-0.109161380F), Q30_fmt(0.198059080F), Q30_fmt(0.935195920F), Q30_fmt(1.014617920F), - - Q30_fmt(-0.000076294F), Q30_fmt(0.000091553F), Q30_fmt(0.001480103F), Q30_fmt(0.001693726F), - Q30_fmt(0.002487183F), Q30_fmt(-0.001937866F), Q30_fmt(0.022857670F), Q30_fmt(0.024932860F), - Q30_fmt(0.002822880F), Q30_fmt(0.004394530F), Q30_fmt(0.146255490F), Q30_fmt(0.150115970F), - Q30_fmt(-0.130310060F), Q30_fmt(0.174789430F), Q30_fmt(0.956481930F), Q30_fmt(0.996246338F), - - Q30_fmt(0.000000000F), Q30_fmt(0.000442505F), Q30_fmt(0.001586910F), Q30_fmt(0.003250122F), - Q30_fmt(0.007003780F), Q30_fmt(0.023910525F), Q30_fmt(0.031082153F), Q30_fmt(0.078628545F), - Q30_fmt(0.148422240F), Q30_fmt(0.100311279F), Q30_fmt(0.572036740F), Q30_fmt(0.976852417F), - Q30_fmt(1.144989014F), Q30_fmt(-0.572036745F), Q30_fmt(-0.152206421F), Q30_fmt(0.100311279F), - - Q30_fmt(-0.078628540F), Q30_fmt(-0.000686646F), Q30_fmt(0.031082153F), Q30_fmt(-0.007003785F), - Q30_fmt(0.002227783F), Q30_fmt(0.003250122F), Q30_fmt(-0.000442500F), Q30_fmt(-0.000076294F), -}; - - - - - -const uint16 huffTable_1[8] = -{ - 0x1103, 0x0103, 0x1002, 0x1002, - 0x0001, 0x0001, 0x0001, 0x0001 -}; - -const uint16 huffTable_2[15] = -{ - 0x1103, 0x0103, 0x1003, 0x0001, - 0x0001, 0x0001, 0x0001, 0x2206, - 0x0206, 0x1205, 0x1205, 0x2105, - 0x2105, 0x2005, 0x2005 -}; - -const uint16 huffTable_3[15] = -{ - - 0x1003, 0x1102, 0x1102, 0x0102, - 0x0102, 0x0002, 0x0002, 0x2206, - 0x0206, 0x1205, 0x1205, 0x2105, - 0x2105, 0x2005, 0x2005 -}; - -const uint16 huffTable_5[25] = -{ - - 0x1103, 0x0103, 0x1003, 0x0001, - 0x0001, 0x0001, 0x0001, 0x3106, - 0x3106, 0x1307, 0x0307, 0x3007, - 0x2207, 0x1206, 0x1206, 0x2106, - 0x2106, 0x0206, 0x0206, 0x2006, - 0x2006, 0x3308, 0x2308, 0x3207, - 0x3207 -}; - - -const uint16 huffTable_6[26] = -{ - - 0x1204, 0x2104, 0x2004, 0x0103, - 0x0103, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1003, 0x1003, 0x0003, - 0x0003, 0x2306, 0x3206, 0x3006, - 0x1305, 0x1305, 0x3105, 0x3105, - 0x2205, 0x2205, 0x0205, 0x0205, - 0x3307, 0x0307 -}; - - - -const uint16 huffTable_7[73] = -{ - 0x0103, - 0x1003, - 0x0001, - 0x0001, - 0x0001, - 0x0001, - 0x1206, - 0x2105, - 0x2105, - 0x0206, - 0x2006, - 0x1104, - 0x1104, - 0x1104, - 0x1104, - 0x3509, - 0x4409, - 0x2509, - 0x5209, - 0x1508, - 0x1508, - 0x5108, - 0x5108, - 0x0509, - 0x3409, - 0x5008, - 0x5008, - 0x4309, - 0x3309, - 0x2408, - 0x2408, - 0x4208, - 0x4208, - 0x1407, - 0x1407, - 0x1407, - 0x1407, - 0x4107, - 0x4107, - 0x4107, - 0x4107, - 0x4007, - 0x4007, - 0x4007, - 0x4007, - 0x0408, - 0x0408, - 0x2308, - 0x2308, - 0x3208, - 0x3208, - 0x0308, - 0x0308, - 0x1307, - 0x1307, - 0x1307, - 0x1307, - 0x3107, - 0x3107, - 0x3107, - 0x3107, - 0x3007, - 0x3007, - 0x3007, - 0x3007, - 0x2207, - 0x2207, - 0x2207, - 0x2207, - 0x550a, - 0x450a, - 0x540a, - 0x530a -}; - -const uint16 huffTable_8[66] = -{ - 0x1204, - 0x2104, - 0x1102, - 0x1102, - 0x1102, - 0x1102, - 0x0103, - 0x0103, - 0x1003, - 0x1003, - 0x0002, - 0x0002, - 0x0002, - 0x0002, - 0x2206, - 0x0206, - 0x2006, - 0x2509, - 0x5209, - 0x0509, - 0x1508, - 0x1508, - 0x5108, - 0x5108, - 0x3409, - 0x4309, - 0x5009, - 0x3309, - 0x2408, - 0x2408, - 0x4208, - 0x4208, - 0x1408, - 0x1408, - 0x4107, - 0x4107, - 0x4107, - 0x4107, - 0x0408, - 0x0408, - 0x4008, - 0x4008, - 0x2308, - 0x2308, - 0x3208, - 0x3208, - 0x1308, - 0x1308, - 0x3108, - 0x3108, - 0x0308, - 0x0308, - 0x3008, - 0x3008, - 0x550b, - 0x540b, - 0x450a, - 0x450a, - 0x5309, - 0x5309, - 0x5309, - 0x5309, - 0x350a, - 0x350a, - 0x440a, - 0x440a - -}; - - -const uint16 huffTable_9[53] = -{ - 0x1204, - 0x2104, - 0x2004, - 0x1103, - 0x1103, - 0x0103, - 0x0103, - 0x1003, - 0x1003, - 0x0003, - 0x0003, - 0x1406, - 0x4106, - 0x2306, - 0x3206, - 0x1305, - 0x1305, - 0x3105, - 0x3105, - 0x0306, - 0x3006, - 0x2205, - 0x2205, - 0x0205, - 0x0205, - 0x4408, - 0x2508, - 0x5208, - 0x1508, - 0x5107, - 0x5107, - 0x3407, - 0x3407, - 0x4307, - 0x4307, - 0x5008, - 0x0408, - 0x2407, - 0x2407, - 0x4207, - 0x4207, - 0x3307, - 0x3307, - 0x4007, - 0x4007, - 0x5509, - 0x4509, - 0x3508, - 0x3508, - 0x5308, - 0x5308, - 0x5409, - 0x0509 - -}; - - -const uint16 huffTable_10[96] = -{ - 0x0001, - 0x1104, - 0x0103, - 0x0103, - 0x1003, - 0x1003, - 0x1206, - 0x2106, - 0x0206, - 0x2006, - 0x1408, - 0x4108, - 0x4008, - 0x2308, - 0x3208, - 0x0308, - 0x1307, - 0x1307, - 0x3107, - 0x3107, - 0x3007, - 0x3007, - 0x2207, - 0x2207, - 0x1608, - 0x1608, - 0x6108, - 0x6108, - 0x6008, - 0x6008, - 0x0509, - 0x5009, - 0x2409, - 0x4209, - 0x3309, - 0x0409, - 0x2709, - 0x2709, - 0x7209, - 0x7209, - 0x640a, - 0x070a, - 0x7009, - 0x7009, - 0x6209, - 0x6209, - 0x450a, - 0x350a, - 0x0609, - 0x0609, - 0x530a, - 0x440a, - 0x1708, - 0x1708, - 0x1708, - 0x1708, - 0x7108, - 0x7108, - 0x7108, - 0x7108, - 0x3609, - 0x3609, - 0x2609, - 0x2609, - 0x250a, - 0x520a, - 0x1509, - 0x1509, - 0x5109, - 0x5109, - 0x340a, - 0x430a, - 0x770b, - 0x670b, - 0x760b, - 0x570b, - 0x750b, - 0x660b, - 0x470a, - 0x470a, - 0x740a, - 0x740a, - 0x560a, - 0x560a, - 0x650a, - 0x650a, - 0x370a, - 0x370a, - 0x730a, - 0x730a, - 0x460a, - 0x460a, - 0x550b, - 0x540b, - 0x630a, - 0x630a -}; - - -const uint16 huffTable_11[116] = -{ - 0x1103, - 0x0103, - 0x1003, - 0x0002, - 0x0002, - 0x2105, - 0x1204, /* 0100 */ - 0x1204, /* 010 */ - 0x0205, /* 01010 */ - 0x2005, /* 01011 */ - 0x1408, /* 10 */ - 0x4108, /* 00 */ - 0x0408, /* 0 0 */ - 0x4008, /* 0 1 */ - 0x2307, /* 0 */ - 0x2307, /* */ - 0x3207, /* 1 */ - 0x3207, /* */ - 0x1306, /* 010 */ - 0x1306, /* 01 */ - 0x1306, /* 01 */ - 0x1306, /* 01 */ - 0x3106, /* 011 */ - 0x3106, /* 01 */ - 0x3106, /* 01 */ - 0x3106, /* 01 */ - 0x0307, /* 1000 */ - 0x0307, /* 100 */ - 0x3007, /* 1 */ - 0x3007, /* 100 */ - 0x2206, /* 101 */ - 0x2206, /* 10 */ - 0x2206, /* 10 */ - 0x2206, /* 10 */ - 0x2708, - 0x2708, /* 000 0 */ - 0x7208, /* 000 10 */ - 0x7208, /* 000 1 */ - 0x6409, /* 000 110 */ - 0x0709, - 0x7107, - 0x7107, - 0x7107, /* 00 0 */ - 0x7107, /* 00 0 */ - 0x1708, - 0x1708, /* 00 01 */ - 0x7008, - 0x7008, - 0x3608, - 0x3608, /* 00 10 */ - 0x6308, /* 00 101 */ - 0x6308, /* 00 10 */ - 0x6008, - 0x6008, /* 00 11 */ - 0x4409, - 0x2509, - 0x5209, /* 0 */ - 0x0509, /* 0 00 */ - 0x1508, /* 0 0 */ - 0x1508, /* 0 000 */ - 0x6207, /* 0 */ - 0x6207, /* 0 00 */ - 0x6207, /* 0 00 */ - 0x6207, /* 0 00 */ - 0x2608, - 0x2608, /* 0 010 */ - 0x0608, - 0x0608, - 0x1607, - 0x1607, - 0x1607, - 0x1607, - 0x6107, - 0x6107, - 0x6107, - 0x6107, - 0x5108, - 0x5108, - 0x3408, - 0x3408, - 0x5008, - 0x5008, - 0x4309, - 0x3309, - 0x2408, - 0x2408, /* 0 111 */ - 0x4208, /* 0 1111 */ - 0x4208, /* 0 111 */ - 0x560a, - 0x650a, - 0x3709, - 0x3709, - 0x7309, - 0x7309, - 0x4609, - 0x4609, - 0x450a, - 0x540a, /* 000 0 */ - 0x350a, /* 000 0 */ - 0x530a, /* 000 1 */ - 0x770a, - 0x770a, - 0x670a, - 0x670a, - 0x760a, /* 0 */ - 0x760a, /* */ - 0x750a, /* 1 */ - 0x750a, /* */ - 0x660a, /* 00 */ - 0x660a, /* 0 */ - 0x470a, /* 01 */ - 0x470a, /* 0 */ - 0x740a, /* 10 */ - 0x740a, /* 1 */ - 0x570b, /* 110 */ - 0x550b /* 111 */ - -}; - -const uint16 huffTable_12[134] = -{ - - 0x1103, /* 101 */ - 0x0103, /* 110 */ - 0x1003, /* 111 */ - 0x1204, - 0x1204, /* 011 */ - 0x2104, /* 0111 */ - 0x2104, /* 011 */ - 0x0205, /* 10000 */ - 0x2005, /* 10 */ - 0x0004, /* 1 */ - 0x0004, /* 100 */ - 0x3006, - 0x1305, /* 01 */ - 0x1305, /* 0100 */ - 0x3105, - 0x3105, - 0x2205, - 0x2205, /* 0101 */ - 0x1507, - 0x1507, /* 000 */ - 0x5107, /* 0 */ - 0x5107, /* 000 */ - 0x3407, /* 0 */ - 0x3407, /* */ - 0x4307, /* 1 */ - 0x4307, /* */ - 0x5008, - 0x0408, - 0x2407, - 0x2407, /* 010 */ - 0x4207, - 0x4207, - 0x1407, /* 0111 */ - 0x1407, /* 011 */ - 0x3306, - 0x3306, - 0x3306, - 0x3306, - 0x4106, - 0x4106, - 0x4106, - 0x4106, - 0x2306, - 0x2306, - 0x2306, - 0x2306, - 0x3206, - 0x3206, - 0x3206, - 0x3206, - 0x4007, - 0x4007, - 0x0307, - 0x0307, /* 010000 */ - 0x7208, - 0x7208, /* 00 00 */ - 0x4608, /* 00 */ - 0x4608, /* 00 00 */ - 0x6408, - 0x6408, /* 00 01 */ - 0x1708, /* 00 011 */ - 0x1708, - 0x7108, /* 00 100 */ - 0x7108, - 0x0709, - 0x7009, - 0x3608, - 0x3608, /* 00 11 */ - 0x6308, - 0x6308, - 0x4508, - 0x4508, - 0x5408, /* 0 0 */ - 0x5408, /* 0 000 */ - 0x4408, /* 0 0 */ - 0x4408, /* 0 */ - 0x0609, /* 0 10 */ - 0x0509, /* 0 11 */ - 0x2607, - 0x2607, - 0x2607, - 0x2607, - 0x6207, - 0x6207, - 0x6207, - 0x6207, - 0x6107, - 0x6107, - 0x6107, - 0x6107, - 0x1608, /* 0 1010 */ - 0x1608, /* 0 101 */ - 0x6008, /* 0 1011 */ - 0x6008, /* 0 101 */ - 0x3508, - 0x3508, /* 0 110 */ - 0x5308, /* 0 1101 */ - 0x5308, /* 0 110 */ - 0x2508, - 0x2508, /* 0 111 */ - 0x5208, /* 0 1111 */ - 0x5208, /* 0 111 */ - 0x770a, - 0x670a, - 0x7609, /* */ - 0x7609, - 0x5709, /* 0 */ - 0x5709, /* */ - 0x7509, /* 1 */ - 0x7509, /* */ - 0x6609, - 0x6609, - 0x4709, /* 0000 01 */ - 0x4709, /* 0000 0 */ - 0x7409, - 0x7409, /* 0000 1 */ - 0x6509, - 0x6509, /* 0000 1 */ - 0x5608, - 0x5608, - 0x5608, - 0x5608, - 0x3708, - 0x3708, - 0x3708, - 0x3708, - 0x7309, /* 000 100 */ - 0x7309, /* 000 10 */ - 0x5509, - 0x5509, /* 000 10 */ - 0x2708, - 0x2708, - 0x2708, - 0x2708, -}; - - - -const uint16 huffTable_13[491] = -{ - 0x0001, - 0x1104, - 0x0104, - 0x1003, - 0x1003, - 0x4107, - 0x4107, - 0x0408, - 0x4008, - 0x2308, - 0x3208, - 0x1307, - 0x1307, - 0x3107, - 0x3107, - 0x0307, - 0x0307, - 0x3007, - 0x3007, - 0x2207, - 0x2207, - 0x1206, - 0x1206, - 0x1206, - 0x1206, - 0x2106, - 0x2106, - 0x2106, - 0x2106, - 0x0206, - 0x0206, - 0x0206, - 0x0206, - 0x2006, - 0x2006, - 0x2006, - 0x2006, - 0x370a, - 0x270a, /* 0 000 */ - 0x1709, /* 0 00 */ - 0x1709, - 0x7109, - 0x7109, /* 0 0 */ - 0x550a, - 0x070a, /* 0 0 11 */ - 0x700a, - 0x360a, /* 0 */ - 0x630a, - 0x450a, /* 0 011 */ - 0x540a, - 0x260a, /* 0 101 */ - 0x620a, - 0x350a, /* 0 111 */ - 0x8108, - 0x8108, /* 0 010 */ - 0x8108, - 0x8108, /* 0 010 */ - 0x0809, - 0x0809, /* 0 0101 */ - 0x8009, - 0x8009, /* 0 0101 */ - 0x1609, - 0x1609, /* 0 0110 */ - 0x6109, - 0x6109, /* 0 0110 */ - 0x0609, - 0x0609, /* 0 0111 */ - 0x6009, - 0x6009, /* 0 0111 */ - 0x530a, - 0x440a, /* 0 100 */ - 0x2509, - 0x2509, /* 0 1000 */ - 0x5209, - 0x5209, /* 0 1 */ - 0x0509, - 0x0509, /* 0 1 */ - 0x1508, - 0x1508, /* 0 101 */ - 0x1508, - 0x1508, /* 0 101 */ - 0x5108, - 0x5108, /* 0 101 */ - 0x5108, - 0x5108, /* 0 101 */ - 0x3409, - 0x3409, /* 0 1100 */ - 0x4309, - 0x4309, /* 0 1100 */ - 0x5009, - 0x5009, /* 0 1101 */ - 0x2409, - 0x2409, /* 0 1101 */ - 0x4209, - 0x4209, /* 0 1110 */ - 0x3309, - 0x3309, /* 0 1110 */ - 0x1408, - 0x1408, /* 0 111 */ - 0x1408, - 0x1408, /* 0 111 */ - 0x1a0a, - 0x1a0a, - 0xa10a, /* 00 00 */ - 0xa10a, - 0x0a0b, - 0x680b, - 0xa00a, - 0xa00a, - 0x860b, - 0x490b, - 0x930a, - 0x930a, - 0x390b, - 0x580b, - 0x850b, - 0x670b, - 0x290a, - 0x290a, - 0x920a, - 0x920a, - 0x570b, - 0x750b, - 0x380a, - 0x380a, - 0x830a, - 0x830a, - 0x660b, - 0x470b, - 0x740b, - 0x560b, - 0x650b, - 0x730b, - 0x1909, - 0x1909, - 0x1909, - 0x1909, - 0x9109, - 0x9109, - 0x9109, - 0x9109, - 0x090a, /* 00 10100 */ - 0x090a, - 0x900a, /* 00 10101 */ - 0x900a, - 0x480a, /* 00 10110 */ - 0x480a, - 0x840a, /* 00 10111 */ - 0x840a, - 0x720a, /* 00 11000 */ - 0x720a, - 0x460b, /* 00 11 0 */ - 0x640b, - 0x2809, - 0x2809, - 0x2809, - 0x2809, - 0x8209, - 0x8209, - 0x8209, - 0x8209, - 0x1809, - 0x1809, - 0x1809, - 0x1809, - 0xc10b, - 0xc10b, /* 000 0000 */ - 0x980c, - 0x0c0c, /* 000 00 1 */ - 0xc00b, - 0xc00b, /* 000 0 */ - 0xb40c, - 0x6a0c, /* 000 0 11 */ - 0xa60c, - 0x790c, /* 000 */ - 0x3b0b, - 0x3b0b, /* 000 0 */ - 0xb30b, - 0xb30b, /* 000 1 */ - 0x880c, - 0x5a0c, /* 000 111 */ - 0x2b0b, - 0x2b0b, /* 000 0100 */ - 0xa50c, - 0x690c, /* 000 01 1 */ - 0xa40b, - 0xa40b, /* 000 0101 */ - 0x780c, - 0x870c, - 0x940b, - 0x940b, /* 000 0110 */ - 0x770c, - 0x760c, /* 000 011011 */ - 0xb20a, - 0xb20a, /* 000 011 */ - 0xb20a, - 0xb20a, /* 000 011 */ - 0x1b0a, - 0x1b0a, /* 000 100 */ - 0x1b0a, - 0x1b0a, /* 000 100 */ - 0xb10a, - 0xb10a, - 0xb10a, /* 000 100 */ - 0xb10a, /* 000 100 */ - 0x0b0b, /* 000 10100 */ - 0x0b0b, /* 000 1010 */ - 0xb00b, - 0xb00b, /* 000 1010 */ - 0x960b, /* 000 10110 */ - 0x960b, /* 000 1011 */ - 0x4a0b, - 0x4a0b, /* 000 1011 */ - 0x3a0b, /* 000 11000 */ - 0x3a0b, /* 000 1100 */ - 0xa30b, /* 000 11 */ - 0xa30b, /* 000 1100 */ - 0x590b, - 0x590b, /* 000 1101 */ - 0x950b, /* 000 11011 */ - 0x950b, /* 000 1101 */ - 0x2a0a, - 0x2a0a, - 0x2a0a, - 0x2a0a, - 0xa20a, - 0xa20a, - 0xa20a, - 0xa20a, - 0xf00c, - 0xf00c, /* 000 */ - 0xba0d, - 0xe50d, /* 0 1 */ - 0xe40d, - 0x8c0d, /* 01 */ - 0x6d0d, - 0xe30d, /* 11 */ - 0xe20c, /* 0100 */ - 0xe20c, - 0x2e0d, /* 01010 */ - 0x0e0d, - 0x1e0c, /* 0110 */ - 0x1e0c, - 0xe10c, /* 0111 */ - 0xe10c, - 0xe00d, /* 10000 */ - 0x5d0d, - 0xd50d, /* 1 0 */ - 0x7c0d, - 0xc70d, - 0x4d0d, - 0x8b0d, - 0xb80d, - 0xd40d, - 0x9a0d, - 0xa90d, - 0x6c0d, - 0xc60c, - 0xc60c, - 0x3d0c, - 0x3d0c, /* 111 */ - 0xd30d, /* 0000 */ - 0x7b0d, - 0x2d0c, - 0x2d0c, - 0xd20c, - 0xd20c, - 0x1d0c, - 0x1d0c, - 0xb70c, - 0xb70c, /* 0000 0 */ - 0x5c0d, - 0xc50d, /* 0000 011 */ - 0x990d, - 0x7a0d, - 0xc30c, - 0xc30c, /* 0000 1 */ - 0xa70d, - 0x970d, - 0x4b0c, - 0x4b0c, - 0xd10b, - 0xd10b, - 0xd10b, /* 0000 010 */ - 0xd10b, - 0x0d0c, - 0x0d0c, - 0xd00c, - 0xd00c, - 0x8a0c, - 0x8a0c, - 0xa80c, - 0xa80c, - 0x4c0c, - 0x4c0c, - 0xc40c, - 0xc40c, - 0x6b0c, - 0x6b0c, /* 0000 1 */ - 0xb60c, /* 0000 1 1 */ - 0xb60c, /* 0000 1 */ - 0x3c0b, - 0x3c0b, - 0x3c0b, - 0x3c0b, - 0x2c0b, /* 0000 1011 */ - 0x2c0b, /* 0000 101 */ - 0x2c0b, /* 0000 101 */ - 0x2c0b, /* 0000 101 */ - 0xc20b, - 0xc20b, - 0xc20b, - 0xc20b, - 0x5b0b, /* 0000 1101 */ - 0x5b0b, - 0x5b0b, /* 0000 110 */ - 0x5b0b, /* 0000 110 */ - 0xb50c, - 0xb50c, - 0x890c, - 0x890c, /* 0000 1110 */ - 0x1c0b, - 0x1c0b, - 0x1c0b, - 0x1c0b, - 0x2f0d, - 0x2f0d, /* 000 */ - 0xf20d, /* 0 */ - 0xf20d, /* 000 */ - 0x6e0e, /* 00 */ - 0x9c0e, /* 01 */ - 0x0f0d, /* 1 */ - 0x0f0d, /* */ - 0xc90e, - 0x5e0e, /* 01 */ - 0xab0d, /* 0101 */ - 0xab0d, - 0x7d0e, /* 01100 */ - 0xd70e, - 0x4e0d, /* 0111 */ - 0x4e0d, - 0xc80e, - 0xd60e, /* 10 */ - 0x3e0d, - 0x3e0d, /* 100 */ - 0xb90d, - 0xb90d, /* 101 */ - 0x9b0e, - 0xaa0e, /* 10111 */ - 0x1f0c, - 0x1f0c, /* 11 */ - 0x1f0c, /* 11 */ - 0x1f0c, - 0xf10c, /* 111 */ - 0xf10c, /* 11 */ - 0xf10c, /* 11 */ - 0xf10c, /* 11 */ - 0xe80e, - 0xe80e, - 0x5f0e, - 0x5f0e, - 0x9d0e, - 0x9d0e, - 0xd90e, - 0xd90e, /* 0000000 */ - 0xf50e, - 0xf50e, - 0xe70e, - 0xe70e, - 0xac0e, - 0xac0e, - 0xbb0e, - 0xbb0e, - 0x4f0e, - 0x4f0e, - 0xf40e, /* 0000000 1 */ - 0xf40e, - 0xca0f, - 0xe60f, - 0xf30e, - 0xf30e, /* 0000000 101 */ - 0x3f0d, - 0x3f0d, /* 0000000 11 */ - 0x3f0d, - 0x3f0d, /* 0000000 11 */ - 0x8d0e, - 0x8d0e, - 0xd80e, /* 0000000 1111 */ - 0xd80e, - 0x8f0f, - 0x8f0f, /* 00000000 000 */ - 0xf80f, /* 00000000 0 */ - 0xf80f, - 0xcc0f, /* 00000000 0 */ - 0xcc0f, - 0xae10, - 0x9e10, /* 00000000 11 */ - 0x8e0f, - 0x8e0f, - 0x7f10, - 0x7e10, - 0xf70e, /* 00000000 011 */ - 0xf70e, - 0xf70e, - 0xf70e, /* 00000000 01 */ - 0xda0e, - 0xda0e, /* 00000000 10 */ - 0xda0e, - 0xda0e, /* 00000000 10 */ - 0xad0f, - 0xad0f, /* 00000000 101 */ - 0xbc0f, - 0xbc0f, /* 00000000 101 */ - 0xcb0f, - 0xcb0f, /* 00000000 110 */ - 0xf60f, - 0xf60f, /* 00000000 110 */ - 0x6f0e, - 0x6f0e, /* 00000000 11 */ - 0x6f0e, /* 00000000 11 */ - 0x6f0e, /* 00000000 11 */ - 0xff10, - 0xff10, - 0xef10, - 0xef10, /* 000000000000 */ - 0xdf10, /* 000000000000 1 */ - 0xdf10, /* 000000000000 */ - 0xee10, /* 00000000000 00 */ - 0xee10, /* 00000000000 0 */ - 0xcf10, /* 00000000000 01 */ - 0xcf10, - 0xde10, /* 00000000000 10 */ - 0xde10, - 0xbf10, /* 00000000000 11 */ - 0xbf10, /* 00000000000 1 */ - 0xfb10, - 0xfb10, - 0xce10, - 0xce10, /* 0000000000 00 */ - 0xdc10, /* 0000000000 010 */ - 0xdc10, - 0xaf11, - 0xe911, - 0xec0f, /* 0000000000 10 */ - 0xec0f, /* 0000000000 1 */ - 0xec0f, /* 0000000000 1 */ - 0xec0f, /* 0000000000 1 */ - 0xdd0f, /* 0000000000 11 */ - 0xdd0f, /* 0000000000 1 */ - 0xdd0f, /* 0000000000 1 */ - 0xdd0f, /* 0000000000 1 */ - 0xfa10, /* 000000000 0000 */ - 0xfa10, /* 000000000 000 */ - 0xcd10, /* 000000000 0 */ - 0xcd10, /* 000000000 000 */ - 0xbe0f, /* 000000000 */ - 0xbe0f, - 0xbe0f, - 0xbe0f, - 0xeb0f, - 0xeb0f, - 0xeb0f, - 0xeb0f, /* 000000000 01 */ - 0x9f0f, /* 000000000 011 */ - 0x9f0f, /* 000000000 01 */ - 0x9f0f, - 0x9f0f, - 0xf90f, /* 000000000 100 */ - 0xf90f, /* 000000000 10 */ - 0xf90f, /* 000000000 10 */ - 0xf90f, /* 000000000 10 */ - 0xea0f, /* 000000000 101 */ - 0xea0f, /* 000000000 10 */ - 0xea0f, /* 000000000 10 */ - 0xea0f, /* 000000000 10 */ - 0xbd0f, /* 000000000 110 */ - 0xbd0f, /* 000000000 11 */ - 0xbd0f, /* 000000000 11 */ - 0xbd0f, /* 000000000 11 */ - 0xdb0f, /* 000000000 111 */ - 0xdb0f, /* 000000000 11 */ - 0xdb0f, /* 000000000 11 */ - 0xdb0f, /* 000000000 11 */ - 0xfe13, - 0xfc13, - 0xfd12, - 0xfd12, - 0xed11, - 0xed11, - 0xed11, - 0xed11 - -}; - - - -const uint16 huffTable_15[421] = -{ - 0x1103, - 0x1103, - 0x0104, - 0x1004, - 0x0003, /* 111 */ - 0x0003, /* 11 */ - 0x3407, - 0x4307, - 0x2407, /* 0101 */ - 0x4207, /* 0101010 */ - 0x3307, - 0x4106, /* 010110 */ - 0x4106, - 0x1407, /* 0101110 */ - 0x0407, - 0x2306, /* 011000 */ - 0x2306, - 0x3206, /* 011 */ - 0x3206, - 0x4007, - 0x0307, - 0x1306, /* 011011 */ - 0x1306, /* 01101 */ - 0x3106, /* 011100 */ - 0x3106, /* 01110 */ - 0x3006, /* 011101 */ - 0x3006, /* 01110 */ - 0x2205, /* 01111 */ - 0x2205, /* 0111 */ - 0x2205, /* 0111 */ - 0x2205, /* 0111 */ - 0x1205, /* 10000 */ - 0x1205, /* 1000 */ - 0x1205, /* 1000 */ - 0x1205, /* 1000 */ - 0x2105, /* 10 */ - 0x2105, /* 1000 */ - 0x2105, /* 1000 */ - 0x2105, /* 1000 */ - 0x0205, - 0x0205, /* 1 */ - 0x0205, /* 1 */ - 0x0205, /* 1 */ - 0x2005, /* 1 1 */ - 0x2005, /* 1 */ - 0x2005, /* 1 */ - 0x2005, /* 1 */ - 0x5809, - 0x8509, - 0x2909, /* */ - 0x6709, /* 000 */ - 0x7609, /* 00 0 */ - 0x9209, /* 00 1 */ - 0x9108, /* 0 0 */ - 0x9108, /* 0 */ - 0x1909, /* 0 10 */ - 0x9009, /* 0 11 */ - 0x4809, /* 000 */ - 0x8409, /* */ - 0x5709, /* 010 */ - 0x7509, /* 011 */ - 0x3809, /* 100 */ - 0x8309, /* 101 */ - 0x6609, /* 110 */ - 0x4709, /* 111 */ - 0x2808, - 0x2808, /* 0100 */ - 0x8208, /* 01 */ - 0x8208, /* 0100 */ - 0x1808, /* 01010 */ - 0x1808, /* 0101 */ - 0x8108, /* 01011 */ - 0x8108, /* 0101 */ - 0x7409, - 0x0809, /* 011 */ - 0x8009, /* 011010 */ - 0x5609, - 0x6509, /* 011100 */ - 0x3709, - 0x7309, /* 011110 */ - 0x4609, - 0x2708, /* 10000 */ - 0x2708, /* 1000 */ - 0x7208, /* 10 */ - 0x7208, /* 1000 */ - 0x6408, /* 1 0 */ - 0x6408, /* 1 */ - 0x1708, /* 1 1 */ - 0x1708, /* 1 */ - 0x5508, /* 10100 */ - 0x5508, - 0x7108, /* 10101 */ - 0x7108, - 0x0709, /* 101100 */ - 0x7009, /* 101101 */ - 0x3608, /* 10111 */ - 0x3608, /* 1011 */ - 0x6308, /* 11000 */ - 0x6308, /* 1100 */ - 0x4508, /* 11 */ - 0x4508, /* 1100 */ - 0x5408, /* 11010 */ - 0x5408, /* 1101 */ - 0x2608, /* 11011 */ - 0x2608, /* 1101 */ - 0x6208, /* 11100 */ - 0x6208, /* 1110 */ - 0x1608, /* 11101 */ - 0x1608, /* 1110 */ - 0x0609, /* 111100 */ - 0x6009, /* 111101 */ - 0x3508, /* 11111 */ - 0x3508, /* 1111 */ - 0x6107, - 0x6107, - 0x6107, - 0x6107, - 0x5308, /* 0100 0 */ - 0x5308, /* 0100 */ - 0x4408, /* 0100 1 */ - 0x4408, /* 0100 */ - 0x2507, /* 010 0 */ - 0x2507, /* 010 */ - 0x2507, /* 010 */ - 0x2507, /* 010 */ - 0x5207, /* 010 1 */ - 0x5207, /* 010 */ - 0x5207, /* 010 */ - 0x5207, /* 010 */ - 0x1507, /* 01 00 */ - 0x1507, /* 01 0 */ - 0x1507, /* 01 0 */ - 0x1507, /* 01 0 */ - 0x5107, /* 01 01 */ - 0x5107, /* 01 0 */ - 0x5107, /* 01 0 */ - 0x5107, /* 01 0 */ - 0x0508, /* 01 100 */ - 0x0508, /* 01 10 */ - 0x5008, /* 01 101 */ - 0x5008, /* 01 10 */ - 0xc209, - 0xc209, - 0x2c0a, /* 00 11110 */ - 0x5b0a, - 0xb50a, /* 0 */ - 0x1c0a, /* 0 000 */ - 0x890a, /* 0 00 0 */ - 0x980a, - 0xc10a, /* 0 0 00 */ - 0x4b0a, /* 0 0 01 */ - 0xb40a, /* 0 0 10 */ - 0x6a0a, /* 0 0 11 */ - 0x3b0a, /* 0 000 */ - 0x790a, /* 0 */ - 0xb309, /* 0 01 */ - 0xb309, /* 0 0 */ - 0x970a, /* 0 100 */ - 0x880a, /* 0 101 */ - 0x2b0a, /* 0 110 */ - 0x5a0a, /* 0 111 */ - 0xb209, /* 0 01000 */ - 0xb209, /* 0 0100 */ - 0xa50a, /* 0 01 0 */ - 0x1b0a, /* 0 01 1 */ - 0xb109, /* 0 01010 */ - 0xb109, /* 0 0101 */ - 0xb00a, /* 0 010110 */ - 0x690a, /* 0 010111 */ - 0x960a, /* 0 011000 */ - 0x4a0a, /* 0 011 */ - 0xa40a, /* 0 011010 */ - 0x780a, /* 0 011011 */ - 0x870a, /* 0 011100 */ - 0x3a0a, /* 0 011101 */ - 0xa309, /* 0 01111 */ - 0xa309, /* 0 0111 */ - 0x5909, /* 0 10000 */ - 0x5909, /* 0 1000 */ - 0x9509, /* 0 10 */ - 0x9509, /* 0 1000 */ - 0x2a09, /* 0 1 0 */ - 0x2a09, /* 0 1 */ - 0xa209, /* 0 1 1 */ - 0xa209, /* 0 1 */ - 0x1a09, /* 0 10100 */ - 0x1a09, /* 0 1010 */ - 0xa109, /* 0 10101 */ - 0xa109, /* 0 1010 */ - 0x0a0a, /* 0 101100 */ - 0xa00a, /* 0 101101 */ - 0x6809, /* 0 10111 */ - 0x6809, /* 0 1011 */ - 0x8609, /* 0 11000 */ - 0x8609, /* 0 1100 */ - 0x4909, /* 0 11 */ - 0x4909, /* 0 1100 */ - 0x9409, /* 0 11010 */ - 0x9409, /* 0 1101 */ - 0x3909, /* 0 11011 */ - 0x3909, /* 0 1101 */ - 0x9309, /* 0 11100 */ - 0x9309, /* 0 1110 */ - 0x770a, /* 0 111010 */ - 0x090a, /* 0 111011 */ - 0x7c0b, - 0xc70b, /* 00 000 */ - 0x4d0b, /* 00 00 0 */ - 0x8b0b, /* 00 00 1 */ - 0xd40a, /* 00 0 0 */ - 0xd40a, /* 00 0 */ - 0xb80b, /* 00 0 10 */ - 0x9a0b, /* 00 0 11 */ - 0xa90b, /* 00 000 */ - 0x6c0b, /* 00 */ - 0xc60b, /* 00 010 */ - 0x3d0b, /* 00 011 */ - 0xd30a, /* 00 10 */ - 0xd30a, /* 00 1 */ - 0xd20a, /* 00 11 */ - 0xd20a, /* 00 1 */ - 0x2d0b, /* 00 010000 */ - 0x0d0b, /* 00 010 */ - 0x1d0a, /* 00 01 */ - 0x1d0a, /* 00 0100 */ - 0x7b0a, /* 00 01010 */ - 0x7b0a, /* 00 0101 */ - 0xb70a, /* 00 01011 */ - 0xb70a, /* 00 0101 */ - 0xd10a, /* 00 01100 */ - 0xd10a, /* 00 0110 */ - 0x5c0b, /* 00 011010 */ - 0xd00b, /* 00 011011 */ - 0xc50a, /* 00 01110 */ - 0xc50a, /* 00 0111 */ - 0x8a0a, /* 00 01111 */ - 0x8a0a, /* 00 0111 */ - 0xa80a, /* 00 10000 */ - 0xa80a, /* 00 1000 */ - 0x4c0a, /* 00 10 */ - 0x4c0a, /* 00 1000 */ - 0xc40a, /* 00 1 0 */ - 0xc40a, /* 00 1 */ - 0x6b0a, /* 00 1 1 */ - 0x6b0a, /* 00 1 */ - 0xb60a, /* 00 10100 */ - 0xb60a, /* 00 1010 */ - 0x990b, /* 00 101010 */ - 0x0c0b, /* 00 101011 */ - 0x3c0a, /* 00 10110 */ - 0x3c0a, /* 00 1011 */ - 0xc30a, /* 00 10111 */ - 0xc30a, /* 00 1011 */ - 0x7a0a, /* 00 11000 */ - 0x7a0a, /* 00 1100 */ - 0xa70a, /* 00 11 */ - 0xa70a, /* 00 1100 */ - 0xa60a, /* 00 11010 */ - 0xa60a, /* 00 1101 */ - 0xc00b, /* 00 110110 */ - 0x0b0b, /* 00 110111 */ - 0xcb0b, - 0xcb0b, /* 0000 000 */ - 0xf60b, /* 0000 0 */ - 0xf60b, /* 0000 000 */ - 0x8e0c, /* 0000 00 */ - 0xe80c, /* 0000 01 */ - 0x5f0c, /* 0000 10 */ - 0x9d0c, /* 0000 11 */ - 0xf50b, /* 0000 0100 */ - 0xf50b, /* 0000 010 */ - 0x7e0b, /* 0000 0101 */ - 0x7e0b, /* 0000 010 */ - 0xe70b, /* 0000 0110 */ - 0xe70b, /* 0000 011 */ - 0xac0b, /* 0000 0111 */ - 0xac0b, /* 0000 011 */ - 0xca0b, /* 0000 1000 */ - 0xca0b, /* 0000 100 */ - 0xbb0b, /* 0000 1 */ - 0xbb0b, /* 0000 100 */ - 0xd90c, /* 0000 10100 */ - 0x8d0c, /* 0000 10101 */ - 0x4f0b, /* 0000 1011 */ - 0x4f0b, /* 0000 101 */ - 0xf40b, /* 0000 1100 */ - 0xf40b, /* 0000 110 */ - 0x3f0b, /* 0000 1101 */ - 0x3f0b, /* 0000 110 */ - 0xf30b, /* 0000 1110 */ - 0xf30b, /* 0000 111 */ - 0xd80b, /* 0000 1111 */ - 0xd80b, /* 0000 111 */ - 0xe60b, /* 000 */ - 0xe60b, /* 000 0000 */ - 0x2f0b, /* 000 00 */ - 0x2f0b, /* 000 0000 */ - 0xf20b, /* 000 0 0 */ - 0xf20b, /* 000 0 */ - 0x6e0c, /* 000 0 10 */ - 0xf00c, /* 000 0 11 */ - 0x1f0b, /* 000 00 */ - 0x1f0b, /* 000 0 */ - 0xf10b, /* 000 01 */ - 0xf10b, /* 000 0 */ - 0x9c0b, /* 000 10 */ - 0x9c0b, /* 000 1 */ - 0xc90b, /* 000 11 */ - 0xc90b, /* 000 1 */ - 0x5e0b, /* 000 01000 */ - 0x5e0b, /* 000 0100 */ - 0xab0b, /* 000 01 */ - 0xab0b, /* 000 0100 */ - 0xba0b, /* 000 01010 */ - 0xba0b, /* 000 0101 */ - 0xe50b, /* 000 01011 */ - 0xe50b, /* 000 0101 */ - 0x7d0b, /* 000 01100 */ - 0x7d0b, /* 000 0110 */ - 0xd70b, /* 000 01101 */ - 0xd70b, - 0x4e0b, /* 000 01110 */ - 0x4e0b, - 0xe40b, /* 000 01111 */ - 0xe40b, /* 000 0111 */ - 0x8c0b, - 0x8c0b, /* 000 1000 */ - 0xc80b, /* 000 10 */ - 0xc80b, - 0x3e0b, /* 000 1 0 */ - 0x3e0b, /* 000 1 */ - 0x6d0b, - 0x6d0b, /* 000 1 */ - 0xd60b, /* 000 10100 */ - 0xd60b, /* 000 1010 */ - 0xe30b, - 0xe30b, /* 000 1010 */ - 0x9b0b, /* 000 10110 */ - 0x9b0b, /* 000 1011 */ - 0xb90b, - 0xb90b, /* 000 1011 */ - 0x2e0b, /* 000 11000 */ - 0x2e0b, /* 000 1100 */ - 0xaa0b, - 0xaa0b, /* 000 1100 */ - 0xe20b, - 0xe20b, /* 000 1101 */ - 0x1e0b, - 0x1e0b, /* 000 1101 */ - 0xe10b, - 0xe10b, /* 000 1110 */ - 0x0e0c, - 0xe00c, /* 000 111011 */ - 0x5d0b, - 0x5d0b, /* 000 1111 */ - 0xd50b, - 0xd50b, /* 000 1111 */ - 0xff0d, - 0xef0d, - 0xfe0d, - 0xdf0d, - 0xee0c, - 0xee0c, - 0xfd0d, - 0xcf0d, - 0xfc0d, - 0xde0d, - 0xed0d, - 0xbf0d, - 0xfb0c, - 0xfb0c, - 0xce0d, - 0xec0d, - 0xdd0c, /* 000 */ - 0xdd0c, /* 00 */ - 0xaf0c, /* */ - 0xaf0c, /* 00 */ - 0xfa0c, /* 010 */ - 0xfa0c, /* 01 */ - 0xbe0c, /* 011 */ - 0xbe0c, /* 01 */ - 0xeb0c, /* 100 */ - 0xeb0c, /* 10 */ - 0xcd0c, /* 101 */ - 0xcd0c, /* 10 */ - 0xdc0c, /* 110 */ - 0xdc0c, /* 11 */ - 0x9f0c, /* 111 */ - 0x9f0c, /* 11 */ - 0xf90c, /* 0000 */ - 0xf90c, /* 000 */ - 0xea0c, /* 0 */ - 0xea0c, /* 000 */ - 0xbd0c, /* 0 */ - 0xbd0c, /* */ - 0xdb0c, /* 1 */ - 0xdb0c, /* */ - 0x8f0c, /* 0100 */ - 0x8f0c, /* 010 */ - 0xf80c, /* 0101 */ - 0xf80c, /* 010 */ - 0xcc0c, - 0xcc0c, /* 011 */ - 0x9e0c, /* 0111 */ - 0x9e0c, /* 011 */ - 0xe90c, /* 1000 */ - 0xe90c, /* 100 */ - 0x7f0c, /* 1 */ - 0x7f0c, - 0xf70c, /* 1010 */ - 0xf70c, /* 101 */ - 0xad0c, /* 1011 */ - 0xad0c, /* 101 */ - 0xda0c, /* 1100 */ - 0xda0c, /* 110 */ - 0xbc0c, - 0xbc0c, /* 110 */ - 0x6f0c, /* 1110 */ - 0x6f0c, /* 111 */ - 0xae0d, /* 11110 */ - 0x0f0d -}; - -const uint16 huffTable_16[465] = -{ - 0x0001, - 0x1104, - 0x0104, - 0x1003, - 0x1003, - 0x2308, - 0x3208, /* 11 */ - 0x1307, /* 0100 */ - 0x1307, /* 010 */ - 0x3107, - 0x3107, - 0x0308, - 0x3008, - 0x2207, /* 0111 */ - 0x2207, /* 011 */ - 0x1206, /* 100 */ - 0x1206, /* 10 */ - 0x1206, /* 10 */ - 0x1206, /* 10 */ - 0x2106, /* 101 */ - 0x2106, /* 10 */ - 0x2106, /* 10 */ - 0x2106, /* 10 */ - 0x0206, - 0x0206, - 0x0206, - 0x0206, - 0x2006, - 0x2006, - 0x2006, - 0x2006, - 0x1709, - 0x1709, /* 0 0111 */ - 0x7109, /* 0 10000 */ - 0x7109, /* 0 1000 */ - 0x700a, /* 0 10 0 */ - 0x360a, /* 0 10 1 */ - 0x630a, /* 0 1 00 */ - 0x450a, /* 0 1 01 */ - 0x540a, /* 0 1 10 */ - 0x260a, /* 0 1 11 */ - 0x6209, /* 0 10100 */ - 0x6209, /* 0 1010 */ - 0x1609, - 0x1609, - 0x6109, /* 0 10110 */ - 0x6109, /* 0 1011 */ - 0x060a, /* 0 101110 */ - 0x600a, - 0x5309, - 0x5309, /* 0 1100 */ - 0x350a, /* 0 11 0 */ - 0x440a, /* 0 11 1 */ - 0x2509, /* 0 11010 */ - 0x2509, /* 0 1101 */ - 0x5209, /* 0 11011 */ - 0x5209, /* 0 1101 */ - 0x5108, - 0x5108, - 0x5108, - 0x5108, - 0x1509, - 0x1509, /* 0 1111 */ - 0x0509, /* 0 11111 */ - 0x0509, /* 0 1111 */ - 0x3409, /* */ - 0x3409, /* */ - 0x4309, /* 000 */ - 0x4309, /* */ - 0x5009, /* 00 0 */ - 0x5009, /* 00 */ - 0x2409, /* 00 1 */ - 0x2409, /* 00 */ - 0x4209, /* 0 00 */ - 0x4209, /* 0 0 */ - 0x3309, /* 0 01 */ - 0x3309, /* 0 0 */ - 0x1408, /* 0 1 */ - 0x1408, /* 0 */ - 0x1408, /* 0 */ - 0x1408, /* 0 */ - 0x4108, /* 00 */ - 0x4108, /* 0 */ - 0x4108, /* 0 */ - 0x4108, /* 0 */ - 0x0409, /* 010 */ - 0x0409, /* 01 */ - 0x4009, /* 011 */ - 0x4009, /* 01 */ - 0x1d0b, - 0x1d0b, /* 00 10101 */ - 0xc40c, /* 00 1011000 */ - 0x6b0c, /* 00 1011 */ - 0xc30c, /* 00 1011010 */ - 0xa70c, /* 00 1011011 */ - 0x2c0b, /* 00 101110 */ - 0x2c0b, /* 00 10111 */ - 0xc20c, /* 00 1011110 */ - 0xb50c, /* 00 1011111 */ - 0xc10c, /* 00 1100000 */ - 0x0c0c, /* 00 1100 */ - 0x4b0c, /* 00 110 0 */ - 0xb40c, /* 00 110 1 */ - 0x6a0c, /* 00 11 00 */ - 0xa60c, /* 00 11 01 */ - 0xb30b, /* 00 11 1 */ - 0xb30b, /* 00 11 */ - 0x5a0c, /* 00 1101000 */ - 0xa50c, /* 00 1101 */ - 0x2b0b, /* 00 110101 */ - 0x2b0b, /* 00 11010 */ - 0xb20b, /* 00 110110 */ - 0xb20b, /* 00 11011 */ - 0x1b0b, /* 00 110111 */ - 0x1b0b, /* 00 11011 */ - 0xb10b, /* 00 111000 */ - 0xb10b, /* 00 11100 */ - 0x0b0c, /* 00 111 0 */ - 0xb00c, /* 00 111 1 */ - 0x690c, /* 00 1110100 */ - 0x960c, /* 00 1110101 */ - 0x4a0c, /* 00 1110110 */ - 0xa40c, /* 00 1110111 */ - 0x780c, /* 00 1111000 */ - 0x870c, /* 00 1111 */ - 0xa30b, /* 00 111101 */ - 0xa30b, /* 00 11110 */ - 0x3a0c, /* 00 1111100 */ - 0x590c, /* 00 1111101 */ - 0x2a0b, /* 00 111111 */ - 0x2a0b, /* 00 11111 */ - 0x950c, /* 0 00000000 */ - 0x680c, /* 0 */ - 0xa10b, /* 0 0000 */ - 0xa10b, /* 0 */ - 0x860c, /* 0 000 00 */ - 0x770c, /* 0 000 01 */ - 0x940b, /* 0 000 1 */ - 0x940b, /* 0 000 */ - 0x490c, /* 0 00 000 */ - 0x570c, /* 0 00 */ - 0x670b, /* 0 00 01 */ - 0x670b, /* 0 00 0 */ - 0xa20a, /* 0 00 1 */ - 0xa20a, /* 0 00 */ - 0xa20a, /* 0 00 */ - 0xa20a, /* 0 00 */ - 0x1a0a, /* 0 0 00 */ - 0x1a0a, /* 0 0 0 */ - 0x1a0a, /* 0 0 0 */ - 0x1a0a, /* 0 0 0 */ - 0x0a0b, /* 0 0 010 */ - 0x0a0b, /* 0 0 01 */ - 0xa00b, /* 0 0 011 */ - 0xa00b, /* 0 0 01 */ - 0x390b, /* 0 0 100 */ - 0x390b, /* 0 0 10 */ - 0x930b, /* 0 0 101 */ - 0x930b, /* 0 0 10 */ - 0x580b, /* 0 0 110 */ - 0x580b, /* 0 0 11 */ - 0x850b, /* 0 0 111 */ - 0x850b, /* 0 0 11 */ - 0x290a, /* 0 000 */ - 0x290a, /* 0 00 */ - 0x290a, /* 0 00 */ - 0x290a, /* 0 00 */ - 0x920a, /* 0 */ - 0x920a, /* 0 00 */ - 0x920a, /* 0 00 */ - 0x920a, /* 0 00 */ - 0x760b, /* 0 0100 */ - 0x760b, /* 0 010 */ - 0x090b, /* 0 0101 */ - 0x090b, /* 0 010 */ - 0x190a, /* 0 011 */ - 0x190a, /* 0 01 */ - 0x190a, /* 0 01 */ - 0x190a, /* 0 01 */ - 0x910a, /* 0 100 */ - 0x910a, /* 0 10 */ - 0x910a, /* 0 10 */ - 0x910a, /* 0 10 */ - 0x900b, /* 0 1010 */ - 0x900b, /* 0 101 */ - 0x480b, /* 0 1011 */ - 0x480b, /* 0 101 */ - 0x840b, /* 0 1100 */ - 0x840b, /* 0 110 */ - 0x750b, /* 0 1101 */ - 0x750b, /* 0 110 */ - 0x380b, /* 0 1110 */ - 0x380b, /* 0 111 */ - 0x830b, /* 0 1111 */ - 0x830b, /* 0 111 */ - 0x660b, /* 0 0100000 */ - 0x660b, /* 0 010000 */ - 0x280b, /* 0 0100 */ - 0x280b, /* 0 010000 */ - 0x820a, /* 0 010 */ - 0x820a, /* 0 01000 */ - 0x820a, /* 0 01000 */ - 0x820a, /* 0 01000 */ - 0x470b, /* 0 01 00 */ - 0x470b, /* 0 01 0 */ - 0x740b, /* 0 01 01 */ - 0x740b, /* 0 01 0 */ - 0x180a, /* 0 01 1 */ - 0x180a, /* 0 01 */ - 0x180a, /* 0 01 */ - 0x180a, /* 0 01 */ - 0x810a, /* 0 010100 */ - 0x810a, /* 0 01010 */ - 0x810a, /* 0 01010 */ - 0x810a, /* 0 01010 */ - 0x800a, /* 0 010101 */ - 0x800a, /* 0 01010 */ - 0x800a, /* 0 01010 */ - 0x800a, /* 0 01010 */ - 0x080b, /* 0 0101100 */ - 0x080b, /* 0 010110 */ - 0x560b, /* 0 0101101 */ - 0x560b, /* 0 010110 */ - 0x370a, /* 0 010111 */ - 0x370a, /* 0 01011 */ - 0x370a, /* 0 01011 */ - 0x370a, /* 0 01011 */ - 0x730a, /* 0 011000 */ - 0x730a, /* 0 01100 */ - 0x730a, /* 0 01100 */ - 0x730a, /* 0 01100 */ - 0x650b, /* 0 011 0 */ - 0x650b, /* 0 011 */ - 0x460b, /* 0 011 1 */ - 0x460b, /* 0 011 */ - 0x270a, /* 0 011010 */ - 0x270a, /* 0 01101 */ - 0x270a, /* 0 01101 */ - 0x270a, /* 0 01101 */ - 0x720a, /* 0 011011 */ - 0x720a, /* 0 01101 */ - 0x720a, /* 0 01101 */ - 0x720a, /* 0 01101 */ - 0x640b, /* 0 0111000 */ - 0x640b, /* 0 011100 */ - 0x550b, /* 0 0111 */ - 0x550b, /* 0 011100 */ - 0x070a, /* 0 011101 */ - 0x070a, /* 0 01110 */ - 0x070a, /* 0 01110 */ - 0x070a, /* 0 01110 */ - 0x9e0d, - 0x9e0d, /* 00 0110000 */ - 0xbc0e, /* 00 01100 0 */ - 0xcb0e, /* 00 01100 1 */ - 0x8e0e, /* 00 0110 00 */ - 0xe80e, /* 00 0110 01 */ - 0x9d0e, /* 00 0110 10 */ - 0xe70e, /* 00 0110 11 */ - 0xbb0e, /* 00 011 000 */ - 0x8d0e, /* 00 011 */ - 0xd80e, /* 00 011 010 */ - 0x6e0e, /* 00 011 011 */ - 0xe60d, /* 00 011 10 */ - 0xe60d, /* 00 011 1 */ - 0x9c0d, /* 00 011 11 */ - 0x9c0d, /* 00 011 1 */ - 0xab0e, /* 00 011010000 */ - 0xba0e, /* 00 011010 */ - 0xe50e, /* 00 01101 0 */ - 0xd70e, /* 00 01101 1 */ - 0x4e0d, /* 00 01101010 */ - 0x4e0d, /* 00 0110101 */ - 0xe40e, /* 00 011010110 */ - 0x8c0e, /* 00 011010111 */ - 0xc80d, /* 00 01101100 */ - 0xc80d, /* 00 0110110 */ - 0x3e0d, /* 00 01101101 */ - 0x3e0d, /* 00 0110110 */ - 0x6d0d, /* 00 01101110 */ - 0x6d0d, /* 00 0110111 */ - 0xd60e, /* 00 011011110 */ - 0x9b0e, /* 00 011011111 */ - 0xb90e, /* 00 011100000 */ - 0xaa0e, /* 00 011100 */ - 0xe10d, /* 00 01110 */ - 0xe10d, /* 00 0111000 */ - 0xd40d, /* 00 0111 0 */ - 0xd40d, /* 00 0111 */ - 0xb80e, /* 00 0111 10 */ - 0xa90e, /* 00 0111 11 */ - 0x7b0d, /* 00 01110100 */ - 0x7b0d, /* 00 0111010 */ - 0xb70e, /* 00 011101010 */ - 0xd00e, /* 00 011101011 */ - 0xe30c, /* 00 0111011 */ - 0xe30c, /* 00 011101 */ - 0xe30c, /* 00 011101 */ - 0xe30c, /* 00 011101 */ - 0x0e0d, /* 00 01111000 */ - 0x0e0d, /* 00 0111100 */ - 0xe00d, /* 00 01111 */ - 0xe00d, /* 00 0111100 */ - 0x5d0d, /* 00 01111010 */ - 0x5d0d, /* 00 0111101 */ - 0xd50d, /* 00 01111011 */ - 0xd50d, /* 00 0111101 */ - 0x7c0d, /* 00 01111100 */ - 0x7c0d, /* 00 0111110 */ - 0xc70d, /* 00 01111101 */ - 0xc70d, /* 00 0111110 */ - 0x4d0d, /* 00 01111110 */ - 0x4d0d, /* 00 0111111 */ - 0x8b0d, /* 00 01111111 */ - 0x8b0d, /* 00 0111111 */ - 0x9a0d, - 0x6c0d, /* 00 10000 */ - 0xc60d, /* 00 1000 0 */ - 0x3d0d, /* 00 1000 1 */ - 0x5c0d, /* 00 100 00 */ - 0xc50d, /* 00 100 01 */ - 0x0d0c, /* 00 100 1 */ - 0x0d0c, /* 00 100 */ - 0x8a0d, /* 00 10 000 */ - 0xa80d, /* 00 10 */ - 0x990d, /* 00 10 010 */ - 0x4c0d, /* 00 10 011 */ - 0xb60d, /* 00 10 100 */ - 0x7a0d, /* 00 10 101 */ - 0x3c0c, /* 00 10 11 */ - 0x3c0c, /* 00 10 1 */ - 0x5b0d, /* 00 1 0000 */ - 0x890d, /* 00 1 0 */ - 0x1c0c, /* 00 1 */ - 0x1c0c, /* 00 1 00 */ - 0xc00c, /* 00 1 010 */ - 0xc00c, /* 00 1 01 */ - 0x980d, /* 00 1 0110 */ - 0x790d, /* 00 1 0111 */ - 0xe20b, /* 00 1 10 */ - 0xe20b, /* 00 1 1 */ - 0xe20b, /* 00 1 1 */ - 0xe20b, /* 00 1 1 */ - 0x2e0c, /* 00 1 110 */ - 0x2e0c, /* 00 1 11 */ - 0x1e0c, /* 00 1 111 */ - 0x1e0c, /* 00 1 11 */ - 0xd30c, /* 00 1010000 */ - 0xd30c, /* 00 101000 */ - 0x2d0c, /* 00 1010 */ - 0x2d0c, /* 00 101000 */ - 0xd20c, /* 00 101 0 */ - 0xd20c, /* 00 101 */ - 0xd10c, /* 00 101 1 */ - 0xd10c, /* 00 101 */ - 0x3b0c, /* 00 1010100 */ - 0x3b0c, /* 00 101010 */ - 0x970d, /* 00 10101010 */ - 0x880d, /* 00 10101011 */ - 0xf208, - 0xf208, /* 000 1 */ - 0x2f09, /* 00 0000 */ - 0x0f09, /* 00 0 */ - 0x1f08, /* 00 */ - 0x1f08, /* 00 00 */ - 0xf108, /* 00 010 */ - 0xf108, /* 00 01 */ - 0xce10, - 0xce10, /* 000 101100000 */ - 0xec11, /* 000 1011000 0 */ - 0xdd11, /* 000 1011000 1 */ - 0xde0f, /* 000 101100 */ - 0xde0f, /* 000 10110000 */ - 0xde0f, /* 000 10110000 */ - 0xde0f, /* 000 10110000 */ - 0xe90f, /* 000 10110 0 */ - 0xe90f, /* 000 10110 */ - 0xe90f, /* 000 10110 */ - 0xe90f, /* 000 10110 */ - 0xea10, /* 000 10110 10 */ - 0xea10, /* 000 10110 1 */ - 0xd910, /* 000 10110 11 */ - 0xd910, /* 000 10110 1 */ - 0xee0e, - 0xee0e, /* 000 1011 */ - 0xed0f, /* 000 1011 10 */ - 0xeb0f, /* 000 1011 11 */ - 0xbe0e, /* 000 10110100 */ - 0xbe0e, /* 000 1011010 */ - 0xcd0e, /* 000 10110101 */ - 0xcd0e, /* 000 1011010 */ - 0xdc0f, /* 000 101101100 */ - 0xdb0f, /* 000 101101101 */ - 0xae0e, /* 000 10110111 */ - 0xae0e, /* 000 1011011 */ - 0xcc0e, /* 000 10111000 */ - 0xcc0e, /* 000 1011100 */ - 0xad0f, /* 000 10111 0 */ - 0xda0f, /* 000 10111 1 */ - 0x7e0f, /* 000 101110100 */ - 0xac0f, /* 000 101110101 */ - 0xca0e, /* 000 10111011 */ - 0xca0e, /* 000 1011101 */ - 0xc90f, /* 000 101111000 */ - 0x7d0f, /* 000 101111 */ - 0x5e0e, /* 000 10111101 */ - 0x5e0e, /* 000 1011110 */ - 0xbd0d, /* 000 1011111 */ - 0xbd0d, /* 000 101111 */ - 0xbd0d, /* 000 101111 */ - 0xbd0d, /* 000 101111 */ - 0xef0b, - 0xfe0b, /* 00000000 */ - 0xdf0b, /* 0000000 0 */ - 0xfd0b, /* 0000000 1 */ - 0xcf0b, /* 00 */ - 0xfc0b, /* 01 */ - 0xbf0b, /* 10 */ - 0xfb0b, /* 11 */ - 0xaf0a, /* 00 */ - 0xaf0a, /* 0 */ - 0xfa0b, /* 010 */ - 0x9f0b, /* 011 */ - 0xf90b, /* 100 */ - 0xf80b, /* 101 */ - 0x8f0a, /* 11 */ - 0x8f0a, /* 1 */ - 0x7f0a, /* 0000 000 */ - 0x7f0a, /* 0000 00 */ - 0xf70a, /* 0000 */ - 0xf70a, /* 0000 00 */ - 0x6f0a, /* 0000 010 */ - 0x6f0a, /* 0000 01 */ - 0xf60a, /* 0000 011 */ - 0xf60a, /* 0000 01 */ - 0xff08, /* 0000 1 */ - 0xff08, /* 0000 */ - 0xff08, /* 0000 */ - 0xff08, /* 0000 */ - 0xff08, /* 0000 */ - 0xff08, /* 0000 */ - 0xff08, /* 0000 */ - 0xff08, /* 0000 */ - 0x5f0a, /* 000 0000 */ - 0x5f0a, /* 000 000 */ - 0xf50a, /* 000 0 */ - 0xf50a, /* 000 000 */ - 0x4f09, /* 000 */ - 0x4f09, /* 000 00 */ - 0x4f09, /* 000 00 */ - 0x4f09, /* 000 00 */ - 0xf409, /* 000 010 */ - 0xf409, /* 000 01 */ - 0xf409, /* 000 01 */ - 0xf409, /* 000 01 */ - 0xf309, /* 000 011 */ - 0xf309, /* 000 01 */ - 0xf309, /* 000 01 */ - 0xf309, /* 000 01 */ - 0xf009, /* 000 100 */ - 0xf009, /* 000 10 */ - 0xf009, /* 000 10 */ - 0xf009, /* 000 10 */ - 0x3f0a, - 0x3f0a -}; - - - -const uint16 huffTable_24[478] = -{ - - 0x2206, /* 101 */ - 0x1205, /* 10101 */ - 0x1205, /* 1010 */ - 0x2105, /* 10110 */ - 0x2105, /* 1011 */ - 0x0206, /* 101110 */ - 0x2006, /* 101111 */ - 0x1104, - 0x1104, - 0x1104, - 0x1104, - 0x0104, - 0x0104, - 0x0104, - 0x0104, - 0x1004, - 0x1004, - 0x1004, - 0x1004, - 0x0004, - 0x0004, - 0x0004, - 0x0004, - 0x7308, - 0x7308, - 0x3709, - 0x2709, - 0x7208, - 0x7208, - 0x4608, /* 01110000 */ - 0x4608, /* 0111000 */ - 0x6408, /* 01110 */ - 0x6408, /* 0111000 */ - 0x5508, /* 0111 0 */ - 0x5508, /* 0111 */ - 0x7108, /* 0111 1 */ - 0x7108, /* 0111 */ - 0x3608, /* 01110100 */ - 0x3608, /* 0111010 */ - 0x6308, /* 01110101 */ - 0x6308, /* 0111010 */ - 0x4508, /* 01110110 */ - 0x4508, /* 0111011 */ - 0x5408, /* 01110111 */ - 0x5408, /* 0111011 */ - 0x2608, /* 01111000 */ - 0x2608, /* 0111100 */ - 0x6208, /* 01111 */ - 0x6208, /* 0111100 */ - 0x1608, /* 01111010 */ - 0x1608, /* 0111101 */ - 0x6108, /* 01111011 */ - 0x6108, /* 0111101 */ - 0x0609, /* 011111000 */ - 0x6009, /* 011111 */ - 0x3508, /* 01111101 */ - 0x3508, /* 0111110 */ - 0x5308, /* 01111110 */ - 0x5308, /* 0111111 */ - 0x4408, /* 01111111 */ - 0x4408, /* 0111111 */ - 0x2508, /* 10000000 */ - 0x2508, /* 1000000 */ - 0x5208, /* 10000 */ - 0x5208, /* 1000000 */ - 0x1508, /* 1000 0 */ - 0x1508, /* 1000 */ - 0x0509, /* 1000 10 */ - 0x5009, /* 1000 11 */ - 0x5107, /* 100 0 */ - 0x5107, /* 100 */ - 0x5107, /* 100 */ - 0x5107, /* 100 */ - 0x3408, /* 100 10 */ - 0x3408, /* 100 1 */ - 0x4308, /* 100 11 */ - 0x4308, /* 100 1 */ - 0x2407, /* 10 00 */ - 0x2407, /* 10 0 */ - 0x2407, /* 10 0 */ - 0x2407, /* 10 0 */ - 0x4207, /* 10 01 */ - 0x4207, /* 10 0 */ - 0x4207, /* 10 0 */ - 0x4207, /* 10 0 */ - 0x3307, /* 10 10 */ - 0x3307, /* 10 1 */ - 0x3307, /* 10 1 */ - 0x3307, /* 10 1 */ - 0x1407, /* 10 11 */ - 0x1407, /* 10 1 */ - 0x1407, /* 10 1 */ - 0x1407, /* 10 1 */ - 0x4107, /* 1 000 */ - 0x4107, /* 1 00 */ - 0x4107, /* 1 00 */ - 0x4107, /* 1 00 */ - 0x0408, /* 1 0 */ - 0x0408, /* 1 */ - 0x4008, /* 1 1 */ - 0x4008, /* 1 */ - 0x2307, /* 1 010 */ - 0x2307, /* 1 01 */ - 0x2307, /* 1 01 */ - 0x2307, /* 1 01 */ - 0x3207, /* 1 011 */ - 0x3207, /* 1 01 */ - 0x3207, /* 1 01 */ - 0x3207, /* 1 01 */ - 0x1306, /* 1 10 */ - 0x1306, /* 1 1 */ - 0x1306, /* 1 1 */ - 0x1306, /* 1 1 */ - 0x1306, /* 1 1 */ - 0x1306, /* 1 1 */ - 0x1306, /* 1 1 */ - 0x1306, /* 1 1 */ - 0x3106, /* 1 11 */ - 0x3106, /* 1 1 */ - 0x3106, /* 1 1 */ - 0x3106, /* 1 1 */ - 0x3106, /* 1 1 */ - 0x3106, /* 1 1 */ - 0x3106, /* 1 1 */ - 0x3106, /* 1 1 */ - 0x0307, /* 1010000 */ - 0x0307, /* 101000 */ - 0x0307, /* 101000 */ - 0x0307, /* 101000 */ - 0x3007, /* 1010 */ - 0x3007, /* 101000 */ - 0x3007, /* 101000 */ - 0x3007, /* 101000 */ - 0xb309, - 0xb309, - 0x8809, /* 010101 */ - 0x8809, /* 01010100 */ - 0x2b0a, /* 0101010100 */ - 0x5a0a, /* 0101010101 */ - 0xb209, /* 010101011 */ - 0xb209, /* 01010101 */ - 0xa50a, /* 0101011000 */ - 0x1b0a, /* 0101011 */ - 0xb10a, /* 0101011010 */ - 0x690a, /* 0101011011 */ - 0x9609, /* 010101110 */ - 0x9609, /* 01010111 */ - 0xa409, /* 010101111 */ - 0xa409, /* 01010111 */ - 0x4a0a, /* 0101100000 */ - 0x780a, /* 0101100 */ - 0x8709, /* 010110 */ - 0x8709, /* 01011000 */ - 0x3a09, /* 01011 0 */ - 0x3a09, /* 01011 */ - 0xa309, /* 01011 1 */ - 0xa309, /* 01011 */ - 0x5909, /* 010110100 */ - 0x5909, /* 01011010 */ - 0x9509, /* 010110101 */ - 0x9509, /* 01011010 */ - 0x2a09, /* 010110110 */ - 0x2a09, /* 01011011 */ - 0xa209, /* 010110111 */ - 0xa209, /* 01011011 */ - 0xa109, /* 010111000 */ - 0xa109, /* 01011100 */ - 0x6809, /* 010111 */ - 0x6809, /* 01011100 */ - 0x8609, /* 010111010 */ - 0x8609, /* 01011101 */ - 0x7709, /* 010111011 */ - 0x7709, /* 01011101 */ - 0x4909, /* 010111100 */ - 0x4909, /* 01011110 */ - 0x9409, /* 010111101 */ - 0x9409, /* 01011110 */ - 0x3909, /* 010111110 */ - 0x3909, /* 01011111 */ - 0x9309, /* 010111111 */ - 0x9309, /* 01011111 */ - 0x5809, /* 011000000 */ - 0x5809, /* 01100000 */ - 0x8509, /* 011000 */ - 0x8509, /* 01100000 */ - 0x2909, /* 01100 0 */ - 0x2909, /* 01100 */ - 0x6709, /* 01100 1 */ - 0x6709, /* 01100 */ - 0x7609, /* 0110 00 */ - 0x7609, /* 0110 0 */ - 0x9209, /* 0110 01 */ - 0x9209, /* 0110 0 */ - 0x1909, /* 0110 10 */ - 0x1909, /* 0110 1 */ - 0x9109, /* 0110 11 */ - 0x9109, /* 0110 1 */ - 0x4809, /* 011 000 */ - 0x4809, /* 011 00 */ - 0x8409, /* 011 */ - 0x8409, /* 011 00 */ - 0x5709, /* 011 010 */ - 0x5709, /* 011 01 */ - 0x7509, /* 011 011 */ - 0x7509, /* 011 01 */ - 0x3809, /* 011 100 */ - 0x3809, /* 011 10 */ - 0x8309, /* 011 101 */ - 0x8309, /* 011 10 */ - 0x6609, /* 011 110 */ - 0x6609, /* 011 11 */ - 0x2809, /* 011 111 */ - 0x2809, /* 011 11 */ - 0x8209, /* 011010000 */ - 0x8209, /* 01101000 */ - 0x1809, /* 011010 */ - 0x1809, /* 01101000 */ - 0x4709, /* 01101 0 */ - 0x4709, /* 01101 */ - 0x7409, /* 01101 1 */ - 0x7409, /* 01101 */ - 0x8109, /* 011010100 */ - 0x8109, /* 01101010 */ - 0x080a, /* 0110101010 */ - 0x800a, /* 0110101011 */ - 0x5609, /* 011010110 */ - 0x5609, /* 01101011 */ - 0x6509, /* 011010111 */ - 0x6509, /* 01101011 */ - 0x1709, /* 011011000 */ - 0x1709, /* 01101100 */ - 0x070a, /* 011011 0 */ - 0x700a, /* 011011 1 */ - 0x6e0b, - 0x9c0b, - 0xc90a, /* 01000 01 */ - 0xc90a, /* 01000 0 */ - 0x5e0a, /* 01000 10 */ - 0x5e0a, /* 01000 1 */ - 0xba0a, /* 01000 11 */ - 0xba0a, /* 01000 1 */ - 0xe50a, /* 0100 000 */ - 0xe50a, /* 0100 00 */ - 0xab0b, /* 0100 0 */ - 0x7d0b, /* 0100 1 */ - 0xd70a, /* 0100 010 */ - 0xd70a, /* 0100 01 */ - 0xe40a, /* 0100 011 */ - 0xe40a, /* 0100 01 */ - 0x8c0a, /* 0100 100 */ - 0x8c0a, - 0xc80a, - 0xc80a, - 0x4e0b, /* 0100 1100 */ - 0x2e0b, /* 0100 1101 */ - 0x3e0a, /* 0100 111 */ - 0x3e0a, /* 0100 11 */ - 0x6d0a, /* 010 0000 */ - 0x6d0a, /* 010 000 */ - 0xd60a, /* 010 0 */ - 0xd60a, /* 010 000 */ - 0xe30a, /* 010 0 */ - 0xe30a, /* 010 */ - 0x9b0a, /* 010 1 */ - 0x9b0a, /* 010 */ - 0xb90a, /* 010 0100 */ - 0xb90a, /* 010 010 */ - 0xaa0a, /* 010 0101 */ - 0xaa0a, - 0xe20a, - 0xe20a, - 0x1e0a, - 0x1e0a, - 0xe10a, - 0xe10a, - 0x5d0a, - 0x5d0a, - 0xd50a, - 0xd50a, - 0x7c0a, - 0x7c0a, - 0xc70a, - 0xc70a, - 0x4d0a, - 0x4d0a, - 0x8b0a, - 0x8b0a, - 0xb80a, - 0xb80a, - 0xd40a, - 0xd40a, - 0x9a0a, - 0x9a0a, - 0xa90a, /* 01 0 0 */ - 0xa90a, /* 01 0 */ - 0x6c0a, /* 01 0 1 */ - 0x6c0a, /* 01 0 */ - 0xc60a, /* 01 00 */ - 0xc60a, /* 01 0 */ - 0x3d0a, /* 01 01 */ - 0x3d0a, /* 01 0 */ - 0xd30a, /* 01 10 */ - 0xd30a, /* 01 1 */ - 0x2d0a, /* 01 11 */ - 0x2d0a, /* 01 1 */ - 0xd20a, - 0xd20a, - 0x1d0a, /* 01 01 */ - 0x1d0a, /* 01 0100 */ - 0x7b0a, /* 01 01010 */ - 0x7b0a, /* 01 0101 */ - 0xb70a, /* 01 01011 */ - 0xb70a, - 0xd10a, - 0xd10a, /* 01 0110 */ - 0x5c0a, /* 01 01101 */ - 0x5c0a, /* 01 0110 */ - 0xc50a, /* 01 01110 */ - 0xc50a, /* 01 0111 */ - 0x8a0a, /* 01 01111 */ - 0x8a0a, /* 01 0111 */ - 0xa80a, /* 01 10000 */ - 0xa80a, /* 01 1000 */ - 0x990a, /* 01 10 */ - 0x990a, /* 01 1000 */ - 0x4c0a, /* 01 1 0 */ - 0x4c0a, /* 01 1 */ - 0xc40a, /* 01 1 1 */ - 0xc40a, /* 01 1 */ - 0x6b0a, /* 01 10100 */ - 0x6b0a, /* 01 1010 */ - 0xb60a, /* 01 10101 */ - 0xb60a, /* 01 1010 */ - 0xd00b, /* 01 101100 */ - 0x0c0b, /* 01 101101 */ - 0x3c0a, /* 01 10111 */ - 0x3c0a, /* 01 1011 */ - 0xc30a, /* 01 11000 */ - 0xc30a, /* 01 1100 */ - 0x7a0a, /* 01 11 */ - 0x7a0a, /* 01 1100 */ - 0xa70a, /* 01 11010 */ - 0xa70a, /* 01 1101 */ - 0x2c0a, /* 01 11011 */ - 0x2c0a, /* 01 1101 */ - 0xc20a, /* 01 11100 */ - 0xc20a, /* 01 1110 */ - 0x5b0a, /* 01 11101 */ - 0x5b0a, /* 01 1110 */ - 0xb50a, /* 01 11110 */ - 0xb50a, /* 01 1111 */ - 0x1c0a, - 0x1c0a, - 0x890a, - 0x890a, - 0x980a, - 0x980a, - 0xc10a, /* 010100 0 */ - 0xc10a, /* 010100 */ - 0x4b0a, /* 010100 1 */ - 0x4b0a, /* 010100 */ - 0xc00b, /* 01010 000 */ - 0x0b0b, /* 01010 */ - 0x3b0a, /* 01010 01 */ - 0x3b0a, /* 01010 0 */ - 0xb00b, /* 01010 100 */ - 0x0a0b, /* 01010 101 */ - 0x1a0a, /* 01010 11 */ - 0x1a0a, /* 01010 1 */ - 0xb409, /* 0101 00 */ - 0xb409, /* 0101 0 */ - 0xb409, /* 0101 0 */ - 0xb409, /* 0101 0 */ - 0x6a0a, /* 0101 010 */ - 0x6a0a, /* 0101 01 */ - 0xa60a, /* 0101 011 */ - 0xa60a, /* 0101 01 */ - 0x790a, /* 0101 100 */ - 0x790a, /* 0101 10 */ - 0x970a, /* 0101 101 */ - 0x970a, /* 0101 10 */ - 0xa00b, /* 0101 1100 */ - 0x090b, /* 0101 1101 */ - 0x900a, /* 0101 111 */ - 0x900a, /* 0101 11 */ - 0xca0b, - 0xca0b, - 0xbb0b, - 0xbb0b, - 0x8d0b, - 0x8d0b, /* 0100000 */ - 0xd80b, /* 0100000 1 */ - 0xd80b, /* 0100000 */ - 0x0e0c, /* 010000 000 */ - 0xe00c, /* 010000 */ - 0x0d0b, /* 010000 01 */ - 0x0d0b, /* 010000 0 */ - 0xe60a, /* 010000 1 */ - 0xe60a, /* 010000 */ - 0xe60a, /* 010000 */ - 0xe60a, /* 010000 */ - 0x0f09, /* 011000 401 */ - 0x0f09, /* 01100 */ - 0x0f09, /* 01100 */ - 0x0f09, /* 01100 */ - 0xee0b, /* 011 00 */ - 0xde0b, /* 011 01 */ - 0xed0b, /* 011 10 */ - 0xce0b, /* 011 11 */ - 0xec0b, /* 01101000 */ - 0xdd0b, /* 01101 */ - 0xbe0b, /* 01101010 */ - 0xeb0b, /* 01101011 */ - 0xcd0b, /* 01101100 */ - 0xdc0b, /* 01101101 */ - 0xae0b, /* 01101110 */ - 0xea0b, /* 01101111 */ - 0xbd0b, /* 01110000 */ - 0xdb0b, /* 01110 */ - 0xcc0b, /* 0111 0 */ - 0x9e0b, /* 0111 1 */ - 0xe90b, /* 01110100 */ - 0xad0b, /* 01110101 */ - 0xda0b, /* 01110110 */ - 0xbc0b, /* 01110111 */ - 0xcb0b, /* 01111000 */ - 0x8e0b, - 0xe80b, - 0x9d0b, - 0xd90b, - 0x7e0b, - 0xe70b, - 0xac0b, - 0xff04, - 0xef08, - 0xfe08, - 0xdf08, /* 0000 0 */ - 0xfd08, /* 0000 1 */ - 0xcf08, /* 000 00 */ - 0xfc08, /* 000 01 */ - 0xbf08, /* 000 10 */ - 0xfb08, /* 000 11 */ - 0xfa07, /* 00 00 */ - 0xfa07, /* 00 0 */ - 0xaf08, /* 00 010 */ - 0x9f08, /* 00 011 */ - 0xf907, /* 00 10 */ - 0xf907, /* 00 1 */ - 0xf807, /* 00 11 */ - 0xf807, /* 00 1 */ - 0x8f08, - 0x7f08, /* 0 0 */ - 0xf707, /* 0 */ - 0xf707, /* 0 00 */ - 0x6f07, /* 0 010 */ - 0x6f07, /* 0 01 */ - 0xf607, /* 0 011 */ - 0xf607, /* 0 01 */ - 0x5f07, - 0x5f07, /* 0 10 */ - 0xf507, /* 0 101 */ - 0xf507, /* 0 10 */ - 0x4f07, /* 0 110 */ - 0x4f07, /* 0 11 */ - 0xf407, /* 0 111 */ - 0xf407, /* 0 11 */ - 0x3f07, - 0x3f07, - 0xf307, /* 0 */ - 0xf307, - 0x2f07, /* 0 */ - 0x2f07, /* */ - 0xf207, /* 1 */ - 0xf207, /* */ - 0xf107, - 0xf107, - 0x1f08, - 0xf008 - -}; - - -const uint16 huffTable_32[33] = -{ - - 0x0b06, - 0x0f06, - 0x0d06, - 0x0e06, - 0x0706, - 0x0506, - 0x0905, - 0x0905, - 0x0605, - 0x0605, - 0x0305, - 0x0305, - 0x0a05, - 0x0a05, - 0x0c05, - 0x0c05, - 0x0204, - 0x0204, - 0x0204, - 0x0204, - 0x0104, - 0x0104, - 0x0104, - 0x0104, - 0x0404, - 0x0404, - 0x0404, - 0x0404, - 0x0804, - 0x0804, - 0x0804, - 0x0804, - 0x0001 - -}; - - -/* - * MM = 512; z = [0:(MM)]; a = z.^(1/3); - * Table is in Q27 - */ -const int32 power_one_third[513] = -{ - - 0x00000000, 0x08000000, 0x0A14517D, 0x0B89BA25, - 0x0CB2FF53, 0x0DAE07DE, 0x0E897685, 0x0F4DAEDD, - 0x10000000, 0x10A402FD, 0x113C4841, 0x11CAB613, - 0x1250BFE2, 0x12CF8890, 0x1347F8AB, 0x13BACD65, - 0x1428A2FA, 0x1491FC15, 0x14F74744, 0x1558E2F7, - 0x15B72095, 0x161246D7, 0x166A9399, 0x16C03D55, - 0x17137449, 0x17646369, 0x17B33124, 0x18000000, - 0x184AEF29, 0x18941AD8, 0x18DB9CB7, 0x19218C2E, - 0x1965FEA5, 0x19A907C2, 0x19EAB998, 0x1A2B24D0, - 0x1A6A58D5, 0x1AA863EE, 0x1AE5535D, 0x1B213377, - 0x1B5C0FBD, 0x1B95F2EC, 0x1BCEE70F, 0x1C06F590, - 0x1C3E2745, 0x1C74847A, 0x1CAA1501, 0x1CDEE035, - 0x1D12ED0B, 0x1D464212, 0x1D78E582, 0x1DAADD3A, - 0x1DDC2ECF, 0x1E0CDF8C, 0x1E3CF476, 0x1E6C7257, - 0x1E9B5DBA, 0x1EC9BAF6, 0x1EF78E2C, 0x1F24DB4E, - 0x1F51A620, 0x1F7DF23C, 0x1FA9C314, 0x1FD51BF2, - 0x20000000, 0x202A7244, 0x205475A6, 0x207E0CEE, - 0x20A73ACA, 0x20D001CC, 0x20F8646D, 0x2120650E, - 0x214805FA, 0x216F4963, 0x2196316C, 0x21BCC020, - 0x21E2F77A, 0x2208D961, 0x222E67AD, 0x2253A425, - 0x22789082, 0x229D2E6E, 0x22C17F82, 0x22E5854F, - 0x23094155, 0x232CB509, 0x234FE1D5, 0x2372C918, - 0x23956C26, 0x23B7CC47, 0x23D9EABB, 0x23FBC8B9, - 0x241D676E, 0x243EC7FF, 0x245FEB86, 0x2480D319, - 0x24A17FC3, 0x24C1F28B, 0x24E22C6C, 0x25022E5F, - 0x2521F954, 0x25418E33, 0x2560EDE2, 0x2580193E, - 0x259F111F, 0x25BDD657, 0x25DC69B4, 0x25FACBFE, - 0x2618FDF8, 0x26370060, 0x2654D3EF, 0x2672795C, - 0x268FF156, 0x26AD3C8A, 0x26CA5BA2, 0x26E74F41, - 0x27041808, 0x2720B695, 0x273D2B81, 0x27597762, - 0x27759ACB, 0x2791964B, 0x27AD6A6F, 0x27C917C0, - 0x27E49EC5, 0x28000000, 0x281B3BF3, 0x2836531B, - 0x285145F3, 0x286C14F5, 0x2886C096, 0x28A1494B, - 0x28BBAF85, 0x28D5F3B3, 0x28F01641, 0x290A179B, - 0x2923F82A, 0x293DB854, 0x2957587E, 0x2970D90A, - 0x298A3A59, 0x29A37CCA, 0x29BCA0BB, 0x29D5A687, - 0x29EE8E87, 0x2A075914, 0x2A200684, 0x2A38972C, - 0x2A510B5F, 0x2A696370, 0x2A819FAE, 0x2A99C069, - 0x2AB1C5ED, 0x2AC9B088, 0x2AE18085, 0x2AF9362C, - 0x2B10D1C6, 0x2B28539B, 0x2B3FBBEF, 0x2B570B09, - 0x2B6E412B, 0x2B855E97, 0x2B9C6390, 0x2BB35056, - 0x2BCA2527, 0x2BE0E242, 0x2BF787E4, 0x2C0E1649, - 0x2C248DAD, 0x2C3AEE4A, 0x2C513859, 0x2C676C13, - 0x2C7D89AF, 0x2C939164, 0x2CA98368, 0x2CBF5FF1, - 0x2CD52731, 0x2CEAD95E, 0x2D0076A9, 0x2D15FF45, - 0x2D2B7363, 0x2D40D332, 0x2D561EE4, 0x2D6B56A7, - 0x2D807AAA, 0x2D958B19, 0x2DAA8823, 0x2DBF71F4, - 0x2DD448B7, 0x2DE90C98, 0x2DFDBDC0, 0x2E125C5C, - 0x2E26E892, 0x2E3B628D, 0x2E4FCA75, 0x2E642070, - 0x2E7864A8, 0x2E8C9741, 0x2EA0B862, 0x2EB4C831, - 0x2EC8C6D3, 0x2EDCB46C, 0x2EF09121, 0x2F045D14, - 0x2F18186A, 0x2F2BC345, 0x2F3F5DC7, 0x2F52E812, - 0x2F666247, 0x2F79CC88, 0x2F8D26F4, 0x2FA071AC, - 0x2FB3ACD0, 0x2FC6D87F, 0x2FD9F4D7, 0x2FED01F8, - 0x30000000, 0x3012EF0C, 0x3025CF39, 0x3038A0A6, - 0x304B636D, 0x305E17AD, 0x3070BD81, 0x30835504, - 0x3095DE51, 0x30A85985, 0x30BAC6B9, 0x30CD2609, - 0x30DF778D, 0x30F1BB60, 0x3103F19C, 0x31161A59, - 0x312835B0, 0x313A43BA, 0x314C4490, 0x315E3849, - 0x31701EFD, 0x3181F8C4, 0x3193C5B4, 0x31A585E6, - 0x31B7396F, 0x31C8E066, 0x31DA7AE1, 0x31EC08F6, - 0x31FD8ABC, 0x320F0047, 0x322069AC, 0x3231C702, - 0x3243185C, 0x32545DCF, 0x32659770, 0x3276C552, - 0x3287E78A, 0x3298FE2C, 0x32AA094A, 0x32BB08F9, - 0x32CBFD4A, 0x32DCE652, 0x32EDC423, 0x32FE96D0, - 0x330F5E6A, 0x33201B04, 0x3330CCB0, 0x33417380, - 0x33520F85, 0x3362A0D0, 0x33732774, 0x3383A380, - 0x33941506, 0x33A47C17, 0x33B4D8C4, 0x33C52B1B, - 0x33D5732F, 0x33E5B10F, 0x33F5E4CA, 0x34060E71, - 0x34162E14, 0x342643C1, 0x34364F88, 0x34465178, - 0x345649A1, 0x34663810, 0x34761CD6, 0x3485F800, - 0x3495C99D, 0x34A591BB, 0x34B55069, 0x34C505B4, - 0x34D4B1AB, 0x34E4545B, 0x34F3EDD2, 0x35037E1D, - 0x3513054B, 0x35228367, 0x3531F881, 0x354164A3, - 0x3550C7DC, 0x35602239, 0x356F73C5, 0x357EBC8E, - 0x358DFCA0, 0x359D3408, 0x35AC62D1, 0x35BB8908, - 0x35CAA6B9, 0x35D9BBF0, 0x35E8C8B9, 0x35F7CD20, - 0x3606C92F, 0x3615BCF3, 0x3624A878, 0x36338BC8, - 0x364266EE, 0x365139F6, 0x366004EC, 0x366EC7D9, - 0x367D82C9, 0x368C35C6, 0x369AE0DC, 0x36A98414, - 0x36B81F7A, 0x36C6B317, 0x36D53EF7, 0x36E3C323, - 0x36F23FA5, 0x3700B488, 0x370F21D5, 0x371D8797, - 0x372BE5D7, 0x373A3CA0, 0x37488BF9, 0x3756D3EF, - 0x37651489, 0x37734DD1, 0x37817FD1, 0x378FAA92, - 0x379DCE1D, 0x37ABEA7C, 0x37B9FFB7, 0x37C80DD7, - 0x37D614E6, 0x37E414EC, 0x37F20DF1, 0x38000000, - 0x380DEB20, 0x381BCF5A, 0x3829ACB6, 0x3837833D, - 0x384552F8, 0x38531BEE, 0x3860DE28, 0x386E99AF, - 0x387C4E89, 0x3889FCC0, 0x3897A45B, 0x38A54563, - 0x38B2DFDF, 0x38C073D7, 0x38CE0152, 0x38DB885A, - 0x38E908F4, 0x38F68329, 0x3903F701, 0x39116483, - 0x391ECBB6, 0x392C2CA1, 0x3939874D, 0x3946DBC0, - 0x39542A01, 0x39617218, 0x396EB40C, 0x397BEFE4, - 0x398925A7, 0x3996555C, 0x39A37F09, 0x39B0A2B7, - 0x39BDC06A, 0x39CAD82B, 0x39D7EA01, 0x39E4F5F0, - 0x39F1FC01, 0x39FEFC3A, 0x3A0BF6A2, 0x3A18EB3E, - 0x3A25DA16, 0x3A32C32F, 0x3A3FA691, 0x3A4C8441, - 0x3A595C46, 0x3A662EA6, 0x3A72FB67, 0x3A7FC28F, - 0x3A8C8425, 0x3A99402E, 0x3AA5F6B1, 0x3AB2A7B3, - 0x3ABF533A, 0x3ACBF94D, 0x3AD899F1, 0x3AE5352C, - 0x3AF1CB03, 0x3AFE5B7D, 0x3B0AE6A0, 0x3B176C70, - 0x3B23ECF3, 0x3B306830, 0x3B3CDE2C, 0x3B494EEB, - 0x3B55BA74, 0x3B6220CC, 0x3B6E81F9, 0x3B7ADE00, - 0x3B8734E5, 0x3B9386B0, 0x3B9FD364, 0x3BAC1B07, - 0x3BB85D9E, 0x3BC49B2F, 0x3BD0D3BE, 0x3BDD0751, - 0x3BE935ED, 0x3BF55F97, 0x3C018453, 0x3C0DA427, - 0x3C19BF17, 0x3C25D52A, 0x3C31E662, 0x3C3DF2C6, - 0x3C49FA5B, 0x3C55FD24, 0x3C61FB27, 0x3C6DF468, - 0x3C79E8ED, 0x3C85D8B9, 0x3C91C3D2, 0x3C9DAA3C, - 0x3CA98BFC, 0x3CB56915, 0x3CC1418E, 0x3CCD156A, - 0x3CD8E4AE, 0x3CE4AF5E, 0x3CF0757F, 0x3CFC3714, - 0x3D07F423, 0x3D13ACB0, 0x3D1F60BF, 0x3D2B1055, - 0x3D36BB75, 0x3D426224, 0x3D4E0466, 0x3D59A23F, - 0x3D653BB4, 0x3D70D0C8, 0x3D7C6180, 0x3D87EDE0, - 0x3D9375EC, 0x3D9EF9A8, 0x3DAA7918, 0x3DB5F43F, - 0x3DC16B23, 0x3DCCDDC7, 0x3DD84C2E, 0x3DE3B65D, - 0x3DEF1C58, 0x3DFA7E22, 0x3E05DBC0, 0x3E113535, - 0x3E1C8A85, 0x3E27DBB3, 0x3E3328C4, 0x3E3E71BB, - 0x3E49B69C, 0x3E54F76B, 0x3E60342B, 0x3E6B6CE0, - 0x3E76A18D, 0x3E81D237, 0x3E8CFEE0, 0x3E98278D, - 0x3EA34C40, 0x3EAE6CFE, 0x3EB989CA, 0x3EC4A2A8, - 0x3ECFB79A, 0x3EDAC8A5, 0x3EE5D5CB, 0x3EF0DF10, - 0x3EFBE478, 0x3F06E606, 0x3F11E3BE, 0x3F1CDDA2, - 0x3F27D3B6, 0x3F32C5FD, 0x3F3DB47B, 0x3F489F32, - 0x3F538627, 0x3F5E695C, 0x3F6948D5, 0x3F742494, - 0x3F7EFC9D, 0x3F89D0F3, 0x3F94A19A, 0x3F9F6E94, - 0x3FAA37E4, 0x3FB4FD8E, 0x3FBFBF94, 0x3FCA7DFB, - 0x3FD538C4, 0x3FDFEFF3, 0x3FEAA38A, 0x3FF5538E, - 0x40000000 -}; - - diff --git a/external/android-specific/pvmp3dec/src/pvmp3_tables.h b/external/android-specific/pvmp3dec/src/pvmp3_tables.h deleted file mode 100644 index b54c5bf..0000000 --- a/external/android-specific/pvmp3dec/src/pvmp3_tables.h +++ /dev/null @@ -1,124 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* - Filename: pvmp3_tables.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - ------------------------------------------------------------------------------- -*/ - -#ifndef PVMP3_TABLES_H -#define PVMP3_TABLES_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ - -#include "pvmp3_dec_defs.h" -#include "pv_mp3_huffman.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES AND SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ -#define Qfmt_28(a) (int32(double(0x10000000)*a)) - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -typedef struct -{ - int16 l[23]; - int16 s[14]; -} mp3_scaleFactorBandIndex; - - - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -{ -#endif - - extern const int32 mp3_s_freq[4][4]; - extern const int32 inv_sfreq[4]; - extern const int16 mp3_bitrate[3][15]; - extern const int32 power_one_third[513]; - - extern const mp3_scaleFactorBandIndex mp3_sfBandIndex[9]; - extern const int32 mp3_shortwindBandWidths[9][13]; - extern const int32 pqmfSynthWin[(HAN_SIZE/2) + 8]; - - - extern const uint16 huffTable_1[]; - extern const uint16 huffTable_2[]; - extern const uint16 huffTable_3[]; - extern const uint16 huffTable_5[]; - extern const uint16 huffTable_6[]; - extern const uint16 huffTable_7[]; - extern const uint16 huffTable_8[]; - extern const uint16 huffTable_9[]; - extern const uint16 huffTable_10[]; - extern const uint16 huffTable_11[]; - extern const uint16 huffTable_12[]; - extern const uint16 huffTable_13[]; - extern const uint16 huffTable_15[]; - extern const uint16 huffTable_16[]; - extern const uint16 huffTable_24[]; - extern const uint16 huffTable_32[]; - extern const uint16 huffTable_33[]; - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif diff --git a/external/android-specific/pvmp3dec/src/s_huffcodetab.h b/external/android-specific/pvmp3dec/src/s_huffcodetab.h deleted file mode 100644 index 874943d..0000000 --- a/external/android-specific/pvmp3dec/src/s_huffcodetab.h +++ /dev/null @@ -1,98 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - - PacketVideo Corp. - MP3 Decoder Library - - Filename: s_huffcodetab.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - ------------------------------------------------------------------------------- - REFERENCES - - [1] ISO MPEG Audio Subgroup Software Simulation Group (1996) - ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension - -----------------------------------------------------------------------------*/ -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef S_HUFFCODETAB_H -#define S_HUFFCODETAB_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ -#define HUFF_TBL 34 - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ - -struct huffcodetab -{ - uint32 linbits; /*number of linbits */ - uint16(*pdec_huff_tab)(tmp3Bits *); -}; - - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/s_mp3bits.h b/external/android-specific/pvmp3dec/src/s_mp3bits.h deleted file mode 100644 index b905b9a..0000000 --- a/external/android-specific/pvmp3dec/src/s_mp3bits.h +++ /dev/null @@ -1,107 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: s_mp3bits.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This include file defines the structure, BITS - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef S_MP3BITS_H -#define S_MP3BITS_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ -/* - * Name: BITS - * Description: Holds information for processing the input data buffer - * as a "stream". The data is in packed format. - * Fields: - * pBuffer - pointer to the beginning of the buffer. If the data type of - * this changes, make sure to update the constants in ibstream.h - * usedBits - number of bits read thus far from the buffer. Bit 0 is - * the LSB of pBuffer[0]. - */ - - -typedef struct -{ - uint8 *pBuffer; - uint32 usedBits; - uint32 inputBufferCurrentLength; - uint32 offset; -} tmp3Bits; - - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ -#endif - diff --git a/external/android-specific/pvmp3dec/src/s_tmp3dec_chan.h b/external/android-specific/pvmp3dec/src/s_tmp3dec_chan.h deleted file mode 100644 index 6eb8835..0000000 --- a/external/android-specific/pvmp3dec/src/s_tmp3dec_chan.h +++ /dev/null @@ -1,110 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: s_tmp3dec_chan.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This include file defines the structure, tmp3dec_chan. - This structure contains information per channel that needs to persist - between calls - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef S_TMP3DEC_CHAN_H -#define S_TMP3DEC_CHAN_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "pvmp3_audio_type_defs.h" -#include "pvmp3_dec_defs.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - typedef struct - { - int32 used_freq_lines; - int32 overlap[SUBBANDS_NUMBER*FILTERBANK_BANDS]; - int32 work_buf_int32[SUBBANDS_NUMBER*FILTERBANK_BANDS]; /* working buffer */ - int32 circ_buffer[480 + 576]; - - } tmp3dec_chan; - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - - diff --git a/external/android-specific/pvmp3dec/src/s_tmp3dec_file.h b/external/android-specific/pvmp3dec/src/s_tmp3dec_file.h deleted file mode 100644 index 611e08f..0000000 --- a/external/android-specific/pvmp3dec/src/s_tmp3dec_file.h +++ /dev/null @@ -1,118 +0,0 @@ -/* ------------------------------------------------------------------ - * Copyright (C) 1998-2009 PacketVideo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the License for the specific language governing permissions - * and limitations under the License. - * ------------------------------------------------------------------- - */ -/* ------------------------------------------------------------------------------- - PacketVideo Corp. - MP3 Decoder Library - - Filename: s_tmp3dec_file.h - - Date: 09/21/2007 - ------------------------------------------------------------------------------- - REVISION HISTORY - - Description: - ------------------------------------------------------------------------------- - INCLUDE DESCRIPTION - - This include file defines the structure, tmp3dec_file. - This structure contains information that needs to persist between calls - ------------------------------------------------------------------------------- -*/ - -/*---------------------------------------------------------------------------- -; CONTINUE ONLY IF NOT ALREADY DEFINED -----------------------------------------------------------------------------*/ -#ifndef S_TMP3DEC_FILE_H -#define S_TMP3DEC_FILE_H - -/*---------------------------------------------------------------------------- -; INCLUDES -----------------------------------------------------------------------------*/ -#include "s_tmp3dec_chan.h" -#include "s_mp3bits.h" -#include "s_huffcodetab.h" - -/*---------------------------------------------------------------------------- -; MACROS -; Define module specific macros here -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; DEFINES -; Include all pre-processor statements here. -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; EXTERNAL VARIABLES REFERENCES -; Declare variables used in this module but defined elsewhere -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; SIMPLE TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; ENUMERATED TYPEDEF'S -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; STRUCTURES TYPEDEF'S -----------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" -{ -#endif - - typedef struct - { - int32 num_channels; - int32 predicted_frame_size; - int32 frame_start; - int32 Scratch_mem[198]; - tmp3dec_chan perChan[CHAN]; - mp3ScaleFactors scaleFactors[CHAN]; - mp3SideInfo sideInfo; - tmp3Bits mainDataStream; - uint8 mainDataBuffer[BUFSIZE]; - tmp3Bits inputStream; - huffcodetab ht[HUFF_TBL]; - } tmp3dec_file; - - -#ifdef __cplusplus -} -#endif - -/*---------------------------------------------------------------------------- -; GLOBAL FUNCTION DEFINITIONS -; Function Prototype declaration -----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- -; END -----------------------------------------------------------------------------*/ - -#endif - - - - diff --git a/external/android-specific/tremolo/CMakeLists.txt b/external/android-specific/tremolo/CMakeLists.txt deleted file mode 100644 index d64102f..0000000 --- a/external/android-specific/tremolo/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -cmake_minimum_required(VERSION 3.6) - -set(lib_name tremolo) -set(target_name ext_${lib_name}) - -project(${lib_name}) - -set(${target_name}_src - ./Tremolo/bitwise.c - ./Tremolo/codebook.c - ./Tremolo/dsp.c - ./Tremolo/floor0.c - ./Tremolo/floor1.c - ./Tremolo/floor_lookup.c - ./Tremolo/framing.c - ./Tremolo/mapping0.c - ./Tremolo/mdct.c - ./Tremolo/misc.c - ./Tremolo/res012.c - ./Tremolo/treminfo.c - ./Tremolo/vorbisfile.c -) - -add_library(${target_name} STATIC - ${${target_name}_src} -) - -target_compile_definitions(${target_name} PRIVATE ONLY_C) - -target_include_directories(${target_name} PUBLIC .) -set_target_properties(${target_name} - PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" - LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" - FOLDER "External" - LINKER_LANGUAGE C -) - diff --git a/external/android-specific/tremolo/CleanSpec.mk b/external/android-specific/tremolo/CleanSpec.mk deleted file mode 100644 index b84e1b6..0000000 --- a/external/android-specific/tremolo/CleanSpec.mk +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (C) 2007 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# If you don't need to do a full clean build but would like to touch -# a file or delete some intermediate files, add a clean step to the end -# of the list. These steps will only be run once, if they haven't been -# run before. -# -# E.g.: -# $(call add-clean-step, touch -c external/sqlite/sqlite3.h) -# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) -# -# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with -# files that are missing or have been moved. -# -# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. -# Use $(OUT_DIR) to refer to the "out" directory. -# -# If you need to re-do something that's already mentioned, just copy -# the command and add it to the bottom of the list. E.g., if a change -# that you made last week required touching a file and a change you -# made today requires touching the same file, just copy the old -# touch step and add it to the end of the list. -# -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ - -# For example: -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) -#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) -#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) - -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ diff --git a/external/android-specific/tremolo/MODULE_LICENSE_BSD_LIKE b/external/android-specific/tremolo/MODULE_LICENSE_BSD_LIKE deleted file mode 100644 index e69de29..0000000 diff --git a/external/android-specific/tremolo/NOTICE b/external/android-specific/tremolo/NOTICE deleted file mode 100644 index e4fd53f..0000000 --- a/external/android-specific/tremolo/NOTICE +++ /dev/null @@ -1,30 +0,0 @@ -Copyright (C) 2002-2009, Xiph.org Foundation -Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the names of the Xiph.org Foundation nor Pinknoise -Productions Ltd nor the names of its contributors may be used to -endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/external/android-specific/tremolo/README b/external/android-specific/tremolo/README deleted file mode 100644 index f1a1151..0000000 --- a/external/android-specific/tremolo/README +++ /dev/null @@ -1,8 +0,0 @@ -This version of Tremolo is derived from Tremolo library version -0.07. It has been patched against publicly known vulnerabilities -with sample files available here: - - http://static.dataspill.org/releases/ogg/examples/ - -When syncing with svn, please ensure that these defects are not -reintroduced. diff --git a/external/android-specific/tremolo/README.version b/external/android-specific/tremolo/README.version deleted file mode 100644 index fe58e9d..0000000 --- a/external/android-specific/tremolo/README.version +++ /dev/null @@ -1,3 +0,0 @@ -URL: http://wss.co.uk/pinknoise/tremolo/Tremolo007.zip -Version: 0.07 -BugComponent: 99142 diff --git a/external/android-specific/tremolo/Tremolo/asm_arm.h b/external/android-specific/tremolo/Tremolo/asm_arm.h deleted file mode 100644 index 6303b87..0000000 --- a/external/android-specific/tremolo/Tremolo/asm_arm.h +++ /dev/null @@ -1,265 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: arm7 and later wide math functions - - ************************************************************************/ - -#ifdef _ARM_ASSEM_ - -#if !defined(_V_WIDE_MATH) && !defined(_LOW_ACCURACY_) -#define _V_WIDE_MATH - -static inline ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) { - int lo,hi; - asm volatile("smull\t%0, %1, %2, %3" - : "=&r"(lo),"=&r"(hi) - : "%r"(x),"r"(y) - : "cc"); - return(hi); -} - -static inline ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) { - return MULT32(x,y)<<1; -} - -static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) { - int lo,hi; - asm volatile("smull %0, %1, %2, %3\n\t" - "movs %0, %0, lsr #15\n\t" - "adc %1, %0, %1, lsl #17\n\t" - : "=&r"(lo),"=&r"(hi) - : "%r"(x),"r"(y) - : "cc"); - return(hi); -} - -#define MB() asm volatile ("" : : : "memory") - -static inline void XPROD32(ogg_int32_t a, ogg_int32_t b, - ogg_int32_t t, ogg_int32_t v, - ogg_int32_t *x, ogg_int32_t *y) -{ - int x1, y1, l; - asm( "smull %0, %1, %4, %6\n\t" - "smlal %0, %1, %5, %7\n\t" - "rsb %3, %4, #0\n\t" - "smull %0, %2, %5, %6\n\t" - "smlal %0, %2, %3, %7" - : "=&r" (l), "=&r" (x1), "=&r" (y1), "=r" (a) - : "3" (a), "r" (b), "r" (t), "r" (v) - : "cc" ); - *x = x1; - MB(); - *y = y1; -} - -/* x = (a*t + b*v)>>31, y = (b*t - a*v)>>31 */ -static inline void XPROD31(ogg_int32_t a, ogg_int32_t b, - ogg_int32_t t, ogg_int32_t v, - ogg_int32_t *x, ogg_int32_t *y) -{ - int x1, y1, l; - asm( "smull %0, %1, %4, %6\n\t" - "smlal %0, %1, %5, %7\n\t" - "rsb %3, %4, #0\n\t" - "smull %0, %2, %5, %6\n\t" - "smlal %0, %2, %3, %7" - : "=&r" (l), "=&r" (x1), "=&r" (y1), "=r" (a) - : "3" (a), "r" (b), "r" (t), "r" (v) - : "cc" ); - *x = x1 << 1; - MB(); - *y = y1 << 1; -} - -/* x = (a*t - b*v)>>31, y = (b*t + a*v)>>31 */ -static inline void XNPROD31(ogg_int32_t a, ogg_int32_t b, - ogg_int32_t t, ogg_int32_t v, - ogg_int32_t *x, ogg_int32_t *y) -{ - int x1, y1, l; - asm( "rsb %2, %4, #0\n\t" - "smull %0, %1, %3, %5\n\t" - "smlal %0, %1, %2, %6\n\t" - "smull %0, %2, %4, %5\n\t" - "smlal %0, %2, %3, %6" - : "=&r" (l), "=&r" (x1), "=&r" (y1) - : "r" (a), "r" (b), "r" (t), "r" (v) - : "cc" ); - *x = x1 << 1; - MB(); - *y = y1 << 1; -} - -#endif - -#ifndef _V_CLIP_MATH -#define _V_CLIP_MATH - -static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) { - int tmp; - asm volatile("subs %1, %0, #32768\n\t" - "movpl %0, #0x7f00\n\t" - "orrpl %0, %0, #0xff\n" - "adds %1, %0, #32768\n\t" - "movmi %0, #0x8000" - : "+r"(x),"=r"(tmp) - : - : "cc"); - return(x); -} - -#endif - -#ifndef _V_LSP_MATH_ASM -#define _V_LSP_MATH_ASM - -static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, - ogg_int32_t *qexpp, - ogg_int32_t *ilsp,ogg_int32_t wi, - ogg_int32_t m){ - - ogg_uint32_t qi=*qip,pi=*pip; - ogg_int32_t qexp=*qexpp; - - asm("mov r0,%3;" - "mov r1,%5,asr#1;" - "add r0,r0,r1,lsl#3;" - "1:" - - "ldmdb r0!,{r1,r3};" - "subs r1,r1,%4;" //ilsp[j]-wi - "rsbmi r1,r1,#0;" //labs(ilsp[j]-wi) - "umull %0,r2,r1,%0;" //qi*=labs(ilsp[j]-wi) - - "subs r1,r3,%4;" //ilsp[j+1]-wi - "rsbmi r1,r1,#0;" //labs(ilsp[j+1]-wi) - "umull %1,r3,r1,%1;" //pi*=labs(ilsp[j+1]-wi) - - "cmn r2,r3;" // shift down 16? - "beq 0f;" - "add %2,%2,#16;" - "mov %0,%0,lsr #16;" - "orr %0,%0,r2,lsl #16;" - "mov %1,%1,lsr #16;" - "orr %1,%1,r3,lsl #16;" - "0:" - "cmp r0,%3;\n" - "bhi 1b;\n" - - // odd filter assymetry - "ands r0,%5,#1;\n" - "beq 2f;\n" - "add r0,%3,%5,lsl#2;\n" - - "ldr r1,[r0,#-4];\n" - "mov r0,#0x4000;\n" - - "subs r1,r1,%4;\n" //ilsp[j]-wi - "rsbmi r1,r1,#0;\n" //labs(ilsp[j]-wi) - "umull %0,r2,r1,%0;\n" //qi*=labs(ilsp[j]-wi) - "umull %1,r3,r0,%1;\n" //pi*=labs(ilsp[j+1]-wi) - - "cmn r2,r3;\n" // shift down 16? - "beq 2f;\n" - "add %2,%2,#16;\n" - "mov %0,%0,lsr #16;\n" - "orr %0,%0,r2,lsl #16;\n" - "mov %1,%1,lsr #16;\n" - "orr %1,%1,r3,lsl #16;\n" - - //qi=(pi>>shift)*labs(ilsp[j]-wi); - //pi=(qi>>shift)*labs(ilsp[j+1]-wi); - //qexp+=shift; - - //} - - /* normalize to max 16 sig figs */ - "2:" - "mov r2,#0;" - "orr r1,%0,%1;" - "tst r1,#0xff000000;" - "addne r2,r2,#8;" - "movne r1,r1,lsr #8;" - "tst r1,#0x00f00000;" - "addne r2,r2,#4;" - "movne r1,r1,lsr #4;" - "tst r1,#0x000c0000;" - "addne r2,r2,#2;" - "movne r1,r1,lsr #2;" - "tst r1,#0x00020000;" - "addne r2,r2,#1;" - "movne r1,r1,lsr #1;" - "tst r1,#0x00010000;" - "addne r2,r2,#1;" - "mov %0,%0,lsr r2;" - "mov %1,%1,lsr r2;" - "add %2,%2,r2;" - - : "+r"(qi),"+r"(pi),"+r"(qexp) - : "r"(ilsp),"r"(wi),"r"(m) - : "r0","r1","r2","r3","cc"); - - *qip=qi; - *pip=pi; - *qexpp=qexp; -} - -static inline void lsp_norm_asm(ogg_uint32_t *qip,ogg_int32_t *qexpp){ - - ogg_uint32_t qi=*qip; - ogg_int32_t qexp=*qexpp; - - asm("tst %0,#0x0000ff00;" - "moveq %0,%0,lsl #8;" - "subeq %1,%1,#8;" - "tst %0,#0x0000f000;" - "moveq %0,%0,lsl #4;" - "subeq %1,%1,#4;" - "tst %0,#0x0000c000;" - "moveq %0,%0,lsl #2;" - "subeq %1,%1,#2;" - "tst %0,#0x00008000;" - "moveq %0,%0,lsl #1;" - "subeq %1,%1,#1;" - : "+r"(qi),"+r"(qexp) - : - : "cc"); - *qip=qi; - *qexpp=qexp; -} - -#endif -#endif - diff --git a/external/android-specific/tremolo/Tremolo/bitwise.c b/external/android-specific/tremolo/Tremolo/bitwise.c deleted file mode 100644 index c991ca1..0000000 --- a/external/android-specific/tremolo/Tremolo/bitwise.c +++ /dev/null @@ -1,871 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: packing variable sized words into an octet stream - - ************************************************************************/ - -/* We're 'LSb' endian; if we write a word but read individual bits, - then we'll read the lsb first */ - -#include -#include -#include "misc.h" -#include "ogg.h" - -#include - - -#if !defined(ARM_LITTLE_ENDIAN) || defined(_V_BIT_TEST) -static unsigned long mask[]= -{0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f, - 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff, - 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff, - 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff, - 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff, - 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff, - 0x3fffffff,0x7fffffff,0xffffffff }; -#endif - -#ifdef ARM_LITTLE_ENDIAN - -#ifdef DEBUGGING_BITWISE -extern void oggpack_readinitARM(oggpack_buffer *b,ogg_reference *r); - -void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){ - oggpack_readinitARM(b,r); - //fprintf(stderr, "Init: buffer=(%d,%x,%d,%d) %08x%08x\n", - // b->bitsLeftInSegment, b->ptr, b->bitsLeftInWord, b->count, - // b->ptr[1], b->ptr[0]); - //fflush(stderr); -} - -extern long oggpack_lookARM(oggpack_buffer *b,int bits); - -long oggpack_look(oggpack_buffer *b,int bits){ - long l; - - //fprintf(stderr, "PreLook: buffer=(%x,%x,%x) %08x%08x (%d bits)\n", - // b->bitsLeftInSegment, b->ptr, b->bitsLeftInWord, - // b->ptr[1], b->ptr[0], bits); - //fflush(stderr); - l = oggpack_lookARM(b,bits); - //fprintf(stderr, "Look: buffer=(%d,%x,%d,%d) %08x%08x (%d bits) (result=%x)\n", - // b->bitsLeftInSegment, b->ptr, b->bitsLeftInWord, b->count, - // b->ptr[1], b->ptr[0], bits, l); - //fflush(stderr); - - return l; -} - -extern void oggpack_advARM(oggpack_buffer *b,int bits); - -void oggpack_adv(oggpack_buffer *b,int bits){ - //fprintf(stderr, "Adv before: buffer=(%x,%x,%x) %08x%08x (%d bits)\n", - // b->bitsLeftInSegment, b->ptr, b->bitsLeftInWord, - // b->ptr[1], b->ptr[0],bits); - //fflush(stderr); - oggpack_advARM(b,bits); - //fprintf(stderr, "Adv: buffer=(%d,%x,%d,%d) %08x%08x\n", - // b->bitsLeftInSegment, b->ptr, b->bitsLeftInWord, b->count, - // b->ptr[1], b->ptr[0]); - //fflush(stderr); -} - -extern long oggpack_readARM(oggpack_buffer *b,int bits); - -/* bits <= 32 */ -long oggpack_read(oggpack_buffer *b,int bits){ - long l; - - //fprintf(stderr, "PreRead: buffer=(%d,%x,%d,%d) %08x%08x (%d bits)\n", - // b->bitsLeftInSegment, b->ptr, b->bitsLeftInWord, b->count, - // b->ptr[1], b->ptr[0], bits); - //fflush(stderr); - l = oggpack_readARM(b,bits); - //fprintf(stderr, "Read: buffer=(%d,%x,%d,%d) %08x%08x (%d bits) (result=%x)\n", - // b->bitsLeftInSegment, b->ptr, b->bitsLeftInWord, b->count, - // b->ptr[1], b->ptr[0], bits, l); - //fflush(stderr); - - return l; -} -#endif - -int oggpack_eop(oggpack_buffer *b){ - int ret; - if(b->bitsLeftInSegment<0)ret= -1; - else ret = 0; - //fprintf(stderr, "EOP %d\n", ret); - //fflush(stderr); - return ret; -} - -long oggpack_bytes(oggpack_buffer *b){ - long ret; - if(b->bitsLeftInSegment<0) ret = b->count+b->head->length; - else ret = b->count + b->head->length - (b->bitsLeftInSegment)/8; - //fprintf(stderr, "count=%d length=%d bitsLeftInSegment=%d\n", - // b->count, b->head->length, b->bitsLeftInSegment); - //fflush(stderr); - return ret; -} - -long oggpack_bits(oggpack_buffer *b){ - long ret; - if(b->bitsLeftInSegment<0) ret=(b->count+b->head->length)*8; - else ret = b->count*8 + b->head->length*8 - b->bitsLeftInSegment; - //fprintf(stderr, "count=%d length=%d bitsLeftInSegment=%d\n", - // b->count, b->head->length, b->bitsLeftInSegment); - //fflush(stderr); - return ret; -} - -#else - -/* spans forward, skipping as many bytes as headend is negative; if - headend is zero, simply finds next byte. If we're up to the end - of the buffer, leaves headend at zero. If we've read past the end, - halt the decode process. */ - -static void _span(oggpack_buffer *b){ - while(b->headend-(b->headbit>>3)<1){ - b->headend-=b->headbit>>3; - b->headbit&=0x7; - - if(b->head && b->head->next){ - b->count+=b->head->length; - b->head=b->head->next; - - if(b->headend+b->head->length>0) - b->headptr=b->head->buffer->data+b->head->begin-b->headend; - - b->headend+=b->head->length; - }else{ - /* we've either met the end of decode, or gone past it. halt - only if we're past */ - if(b->headend*8headbit) - /* read has fallen off the end */ - b->headend=-1; - break; - } - } -} - -void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){ - memset(b,0,sizeof(*b)); - - b->tail=b->head=r; - b->count=0; - if (b->head && r->length) { - b->headptr=b->head->buffer->data+b->head->begin; - b->headend=b->head->length; - } else { - b->headptr=0; - b->headend=0; - } - _span(b); - - //fprintf(stderr, - // "Init: buffer=(%d,%x,%d,%d) %02x%02x%02x%02x%02x%02x%02x%02x\n", - // b->headbit, b->headptr, b->headend, b->count, - // b->headptr[7], b->headptr[6], b->headptr[5], b->headptr[4], - // b->headptr[3], b->headptr[2], b->headptr[1], b->headptr[0]); - //fflush(stderr); -} - -#define _lookspan() while(!end){\ - head=head->next;\ - if(!head) return -1;\ - ptr=head->buffer->data + head->begin;\ - end=head->length;\ - } - -/* Read in bits without advancing the bitptr; bits <= 32 */ -long oggpack_look(oggpack_buffer *b,int bits){ - unsigned long m=mask[bits]; - unsigned long ret = 0; - int BITS = bits; - - if (!b->headptr) return 0; - - bits+=b->headbit; - - if(bits >= b->headend<<3){ - int end=b->headend; - unsigned char *ptr=b->headptr; - ogg_reference *head=b->head; - - if(end<0)return 0; - if (!head || !end)return 0; - - if(bits){ - _lookspan(); - ret=*ptr++>>b->headbit; - if(bits>8){ - --end; - _lookspan(); - ret|=*ptr++<<(8-b->headbit); - if(bits>16){ - --end; - _lookspan(); - ret|=*ptr++<<(16-b->headbit); - if(bits>24){ - --end; - _lookspan(); - ret|=*ptr++<<(24-b->headbit); - if(bits>32 && b->headbit){ - --end; - _lookspan(); - ret|=*ptr<<(32-b->headbit); - } - } - } - } - } - - }else{ - - /* make this a switch jump-table */ - ret=b->headptr[0]>>b->headbit; - if(bits>8){ - ret|=b->headptr[1]<<(8-b->headbit); - if(bits>16){ - ret|=b->headptr[2]<<(16-b->headbit); - if(bits>24){ - ret|=b->headptr[3]<<(24-b->headbit); - if(bits>32 && b->headbit) - ret|=b->headptr[4]<<(32-b->headbit); - } - } - } - } - - ret&=m; - //fprintf(stderr, - // "Look: buffer=(%d,%x,%d,%d) %02x%02x%02x%02x%02x%02x%02x%02x (%d bits) return=%x\n", - // b->headbit, b->headptr, b->headend, b->count, - // b->headptr[7], b->headptr[6], b->headptr[5], b->headptr[4], - // b->headptr[3], b->headptr[2], b->headptr[1], b->headptr[0], - // BITS, ret); - //fflush(stderr); - return ret; -} - -/* limited to 32 at a time */ -void oggpack_adv(oggpack_buffer *b,int bits){ - int BITS=bits; - bits+=b->headbit; - b->headbit=bits&7; - b->headend-=(bits>>3); - b->headptr+=(bits>>3); - if(b->headend<1)_span(b); - //fprintf(stderr, "Adv: buffer=(%d,%x,%d,%d) %02x%02x%02x%02x%02x%02x%02x%02x (%d bits)\n", - // b->headbit, b->headptr, b->headend,b->count, - // b->headptr[7], b->headptr[6], b->headptr[5], b->headptr[4], - // b->headptr[3], b->headptr[2], b->headptr[1], b->headptr[0], - // BITS); - //fflush(stderr); -} - -int oggpack_eop(oggpack_buffer *b){ - int ret; - if(b->headend<0)ret= -1; - else ret = 0; - //fprintf(stderr, "EOP %d\n", ret); - //fflush(stderr); - return ret; -} - -long oggpack_bytes(oggpack_buffer *b){ - long ret; - if(b->headend<0) ret = b->count+b->head->length; - ret = b->count + b->head->length-b->headend + (b->headbit+7)/8; - //fprintf(stderr, "Bytes: buffer=(%d,%x,%d,%d) %02x%02x%02x%02x%02x%02x%02x%02x (%d bytes)\n", - // b->headbit, b->headptr, b->headend, b->count, - // b->headptr[7], b->headptr[6], b->headptr[5], b->headptr[4], - // b->headptr[3], b->headptr[2], b->headptr[1], b->headptr[0], - // ret); - //fflush(stderr); - return ret; -} - -long oggpack_bits(oggpack_buffer *b){ - long ret; - if(b->headend<0) ret = (b->count+b->head->length)*8; - else ret = (b->count + b->head->length-b->headend)*8 + b->headbit; - //fprintf(stderr, "Bits: buffer=(%x,%x,%x) %02x%02x%02x%02x%02x%02x%02x%02x (%d bits)\n", - // b->headbit, b->headptr, b->headend, - // b->headptr[7], b->headptr[6], b->headptr[5], b->headptr[4], - // b->headptr[3], b->headptr[2], b->headptr[1], b->headptr[0], - // ret); - //fflush(stderr); - return ret; -} - -/* bits <= 32 */ -long oggpack_read(oggpack_buffer *b,int bits){ - long ret=oggpack_look(b,bits); - oggpack_adv(b,bits); - return(ret); -} - -#endif - -/* Self test of the bitwise routines; everything else is based on - them, so they damned well better be solid. */ - -#ifdef _V_BIT_TEST -#include -#include -#include -#include "framing.c" - -static int ilog(unsigned long v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -oggpack_buffer r; -oggpack_buffer o; -ogg_buffer_state *bs; -ogg_reference *or; -#define TESTWORDS 256 - -void report(char *in){ - fprintf(stderr,"%s",in); - exit(1); -} - -int getbyte(ogg_reference *or,int position){ - while(or && position>=or->length){ - position-=or->length; - or=or->next; - if(or==NULL){ - fprintf(stderr,"\n\tERROR: getbyte ran off end of buffer.\n"); - exit(1); - } - } - - if((position+or->begin)&1) - return (or->buffer->data[(position+or->begin)>>1])&0xff; - else - return (or->buffer->data[(position+or->begin)>>1]>>8)&0xff; -} - -void cliptest(unsigned long *b,int vals,int bits,int *comp,int compsize){ - long i,bitcount=0; - ogg_reference *or=ogg_buffer_alloc(bs,64); - for(i=0;ibuffer->data[i]= comp[i]; - or->length=i; - - oggpack_readinit(&r,or); - for(i=0;i7) - report("\nERROR: too many bits reported left over.\n"); - - /* does reading to exactly byte alignment *not* trip EOF? */ - if(oggpack_read(&o,leftover)==-1) - report("\nERROR: read to but not past exact end tripped EOF.\n"); - if(oggpack_bits(&o)!=count*8) - report("\nERROR: read to but not past exact end reported bad bitcount.\n"); - - /* does EOF trip properly after a single additional bit? */ - if(oggpack_read(&o,1)!=-1) - report("\nERROR: read past exact end did not trip EOF.\n"); - if(oggpack_bits(&o)!=count*8) - report("\nERROR: read past exact end reported bad bitcount.\n"); - - /* does EOF stay set over additional bit reads? */ - for(i=0;i<=32;i++){ - if(oggpack_read(&o,i)!=-1) - report("\nERROR: EOF did not stay set on stream.\n"); - if(oggpack_bits(&o)!=count*8) - report("\nERROR: read past exact end reported bad bitcount.\n"); - } -} - -void _end_verify2(int count){ - int i; - - /* are the proper number of bits left over? */ - int leftover=count*8-oggpack_bits(&o); - if(leftover>7) - report("\nERROR: too many bits reported left over.\n"); - - /* does reading to exactly byte alignment *not* trip EOF? */ - oggpack_adv(&o,leftover); -#ifdef ARM_LITTLE_ENDIAN - if(o.bitsLeftInSegment!=0) -#else - if(o.headend!=0) -#endif - report("\nERROR: read to but not past exact end tripped EOF.\n"); - if(oggpack_bits(&o)!=count*8) - report("\nERROR: read to but not past exact end reported bad bitcount.\n"); - - /* does EOF trip properly after a single additional bit? */ - oggpack_adv(&o,1); -#ifdef ARM_LITTLE_ENDIAN - if(o.bitsLeftInSegment>=0) -#else - if(o.headend>=0) -#endif - report("\nERROR: read past exact end did not trip EOF.\n"); - if(oggpack_bits(&o)!=count*8) - report("\nERROR: read past exact end reported bad bitcount.\n"); - - /* does EOF stay set over additional bit reads? */ - for(i=0;i<=32;i++){ - oggpack_adv(&o,i); -#ifdef ARM_LITTLE_ENDIAN - if(o.bitsLeftInSegment>=0) -#else - if(o.headend>=0) -#endif - report("\nERROR: EOF did not stay set on stream.\n"); - if(oggpack_bits(&o)!=count*8) - report("\nERROR: read past exact end reported bad bitcount.\n"); - } -} - -long ogg_buffer_length(ogg_reference *or){ - int count=0; - while(or){ - count+=or->length; - or=or->next; - } - return count; -} - -ogg_reference *ogg_buffer_extend(ogg_reference *or,long bytes){ - if(or){ - while(or->next){ - or=or->next; - } - or->next=ogg_buffer_alloc(or->buffer->ptr.owner,bytes); - return(or->next); - } - return 0; -} - -void ogg_buffer_posttruncate(ogg_reference *or,long pos){ - /* walk to the point where we want to begin truncate */ - while(or && pos>or->length){ - pos-=or->length; - or=or->next; - } - if(or){ - ogg_buffer_release(or->next); - or->next=0; - or->length=pos; - } -} - -int main(void){ - long i; - static unsigned long testbuffer1[]= - {18,12,103948,4325,543,76,432,52,3,65,4,56,32,42,34,21,1,23,32,546,456,7, - 567,56,8,8,55,3,52,342,341,4,265,7,67,86,2199,21,7,1,5,1,4}; - int test1size=43; - - static unsigned long testbuffer2[]= - {216531625L,1237861823,56732452,131,3212421,12325343,34547562,12313212, - 1233432,534,5,346435231,14436467,7869299,76326614,167548585, - 85525151,0,12321,1,349528352}; - int test2size=21; - - static unsigned long testbuffer3[]= - {1,0,14,0,1,0,12,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,1,1,1,1,0,0,1, - 0,1,30,1,1,1,0,0,1,0,0,0,12,0,11,0,1,0,0,1}; - int test3size=56; - - static unsigned long large[]= - {2136531625L,2137861823,56732452,131,3212421,12325343,34547562,12313212, - 1233432,534,5,2146435231,14436467,7869299,76326614,167548585, - 85525151,0,12321,1,2146528352}; - - int onesize=33; - static int one[33]={146,25,44,151,195,15,153,176,233,131,196,65,85,172,47,40, - 34,242,223,136,35,222,211,86,171,50,225,135,214,75,172, - 223,4}; - - int twosize=6; - static int two[6]={61,255,255,251,231,29}; - - int threesize=54; - static int three[54]={169,2,232,252,91,132,156,36,89,13,123,176,144,32,254, - 142,224,85,59,121,144,79,124,23,67,90,90,216,79,23,83, - 58,135,196,61,55,129,183,54,101,100,170,37,127,126,10, - 100,52,4,14,18,86,77,1}; - - int foursize=38; - static int four[38]={18,6,163,252,97,194,104,131,32,1,7,82,137,42,129,11,72, - 132,60,220,112,8,196,109,64,179,86,9,137,195,208,122,169, - 28,2,133,0,1}; - - int fivesize=45; - static int five[45]={169,2,126,139,144,172,30,4,80,72,240,59,130,218,73,62, - 241,24,210,44,4,20,0,248,116,49,135,100,110,130,181,169, - 84,75,159,2,1,0,132,192,8,0,0,18,22}; - - int sixsize=7; - static int six[7]={17,177,170,242,169,19,148}; - - /* Test read/write together */ - /* Later we test against pregenerated bitstreams */ - bs=ogg_buffer_create(); - - fprintf(stderr,"\nSmall preclipped packing (LSb): "); - cliptest(testbuffer1,test1size,0,one,onesize); - fprintf(stderr,"ok."); - - fprintf(stderr,"\nNull bit call (LSb): "); - cliptest(testbuffer3,test3size,0,two,twosize); - fprintf(stderr,"ok."); - - fprintf(stderr,"\nLarge preclipped packing (LSb): "); - cliptest(testbuffer2,test2size,0,three,threesize); - fprintf(stderr,"ok."); - - fprintf(stderr,"\n32 bit preclipped packing (LSb): "); - - or=ogg_buffer_alloc(bs,128); - for(i=0;ibuffer->data[i*4] = large[i]&0xff; - or->buffer->data[i*4+1] = (large[i]>>8)&0xff; - or->buffer->data[i*4+2] = (large[i]>>16)&0xff; - or->buffer->data[i*4+3] = (large[i]>>24)&0xff; - } - or->length=test2size*4; - oggpack_readinit(&r,or); - for(i=0;i>k)&0x1)<7){ - bit=0; - word++; - } - } - } - } - count2=(bitcount+7)>>3; - - /* construct random-length buffer chain from flat vector; random - byte starting offset within the length of the vector */ - { - ogg_reference *or=NULL,*orl=NULL; - long pos=0; - - /* build buffer chain */ - while(count2){ - int ilen=(rand()%32),k; - int ibegin=(rand()%32); - - - if(ilen>count2)ilen=count2; - - if(or) - orl=ogg_buffer_extend(orl,64); - else - or=orl=ogg_buffer_alloc(bs,64); - - orl->length=ilen; - orl->begin=ibegin; - - for(k=0;kbuffer->data[ibegin++]= flat[pos++]; - - count2-=ilen; - } - - if(ogg_buffer_length(or)!=(bitcount+7)/8){ - fprintf(stderr,"\nERROR: buffer length incorrect after build.\n"); - exit(1); - } - - - { - int begin=0; //=(rand()%TESTWORDS); - int ilen=(rand()%(TESTWORDS-begin)); - int bitoffset,bitcount=0; - unsigned long temp; - - for(j=0;j>(32-bitsLeftInWord) - ADDLE r12,r12,#32 @ r12= bitsLeftInWord += 32 - RSB r14,r14,#32 @ r14= 32-bitsLeftInWord - ORRLT r10,r10,r11,LSL r14 @ r10= Next 32 bits. - MOV r14,#1 - RSB r14,r14,r14,LSL r1 - AND r0,r10,r14 - LDMFD r13!,{r10,r11,PC} - -look_slow: - STMFD r13!,{r5,r6} - ADDS r10,r2,r1 @ r10= bitsLeftInSegment + bits (i.e. - @ the initial value of bitsLeftInSeg) - @ r10 = bitsLeftInSegment (initial) - @ r12 = bitsLeftInWord - RSB r14,r12,#32 @ r14= 32-bitsLeftInWord - MOV r5,r10 @ r5 = bitsLeftInSegment (initial) - BLT look_overrun - BEQ look_next_segment @ r10= r12 = 0, if we branch - CMP r12,r10 @ If bitsLeftInWord < bitsLeftInSeg - @ there must be more in the next word - LDR r10,[r3],#4 @ r10= ptr[0] - LDRLT r6,[r3] @ r6 = ptr[1] - MOV r11,#1 - MOV r10,r10,LSR r14 @ r10= first bitsLeftInWord bits - ORRLT r10,r10,r6,LSL r12 @ r10= first bitsLeftInSeg bits+crap - RSB r11,r11,r11,LSL r5 @ r11= mask - AND r10,r10,r11 @ r10= first r5 bits - @ Load the next segments data -look_next_segment: - @ At this point, r10 contains the first r5 bits of the result - LDR r11,[r0,#12] @ r11= head = b->head - @ Stall - @ Stall -look_next_segment_2: - LDR r11,[r11,#12] @ r11= head = head->next - @ Stall - @ Stall - CMP r11,#0 - BEQ look_out_of_data - LDMIA r11,{r6,r12,r14} @ r6 = buffer - @ r12= begin - @ r14= length - LDR r6,[r6] @ r6 = buffer->data - CMP r14,#0 - BEQ look_next_segment_2 - ADD r6,r6,r12 @ r6 = buffer->data+begin -look_slow_loop: - LDRB r12,[r6],#1 @ r12= *buffer - SUBS r14,r14,#1 @ r14= length - @ Stall - ORR r10,r10,r12,LSL r5 @ r10= first r5+8 bits - ADD r5,r5,#8 - BLE look_really_slow - CMP r5,r1 - BLT look_slow_loop - MOV r14,#1 - RSB r14,r14,r14,LSL r1 - AND r0,r10,r14 - LDMFD r13!,{r5,r6,r10,r11,PC} - - -look_really_slow: - CMP r5,r1 - BLT look_next_segment_2 - MOV r14,#1 - RSB r14,r14,r14,LSL r1 - AND r0,r10,r14 - LDMFD r13!,{r5,r6,r10,r11,PC} - -look_out_of_data: - @MVN r0,#0 ; return -1 - MOV r0,#0 - LDMFD r13!,{r5,r6,r10,r11,PC} - -look_overrun: - @ We had overrun when we started, so we need to skip -r10 bits. - LDR r11,[r0,#12] @ r11 = head = b->head - @ stall - @ stall -look_overrun_next_segment: - LDR r11,[r11,#12] @ r11 = head->next - @ stall - @ stall - CMP r11,#0 - BEQ look_out_of_data - LDMIA r11,{r6,r7,r14} @ r6 = buffer - @ r7 = begin - @ r14= length - LDR r6,[r6] @ r6 = buffer->data - @ stall - @ stall - ADD r6,r6,r7 @ r6 = buffer->data+begin - MOV r14,r14,LSL #3 @ r14= length in bits - ADDS r14,r14,r10 @ r14= length in bits-bits to skip - MOVLE r10,r14 - BLE look_overrun_next_segment - RSB r10,r10,#0 @ r10= bits to skip - ADD r6,r10,r10,LSR #3 @ r6 = pointer to data - MOV r10,#0 - B look_slow_loop - -oggpack_adv: - @ r0 = oggpack_buffer *b - @ r1 = bits - LDMIA r0,{r2,r3,r12} - @ r2 = bitsLeftInSegment - @ r3 = ptr - @ r12= bitsLeftInWord - SUBS r2,r2,r1 @ Does this run us out of bits in the - BLE adv_slow @ segment? If so, do it slowly - SUBS r12,r12,r1 - ADDLE r12,r12,#32 - ADDLE r3,r3,#4 - STMIA r0,{r2,r3,r12} - BX LR -adv_slow: - STMFD r13!,{r10,r14} - - LDR r14,[r0,#12] @ r14= head - @ stall -adv_slow_loop: - LDR r1,[r0,#20] @ r1 = count - LDR r10,[r14,#8] @ r10= head->length - LDR r14,[r14,#12] @ r14= head->next - @ stall - ADD r1,r1,r10 @ r1 = count += head->length - CMP r14,#0 - BEQ adv_end - STR r1,[r0,#20] @ b->count = count - STR r14,[r0,#12] @ b->head = head - LDMIA r14,{r3,r10,r12} @ r3 = buffer - @ r10= begin - @ r12= length - LDR r3,[r3] @ r3 = buffer->data - ADD r3,r3,r10 @ r3 = Pointer to start (byte) - AND r10,r3,#3 @ r10= bytes to backtrk to word align - MOV r10,r10,LSL #3 @ r10= bits to backtrk to word align - RSB r10,r10,#32 @ r10= bits left in word - ADDS r10,r10,r2 @ r10= bits left in word after skip - ADDLE r10,r10,#32 - ADDLE r3,r3,#4 - BIC r3,r3,#3 @ r3 = Pointer to start (word) - ADDS r2,r2,r12,LSL #3 @ r2 = length in bits after advance - BLE adv_slow_loop - STMIA r0,{r2,r3,r10} - - LDMFD r13!,{r10,PC} -adv_end: - MOV r2, #0 - MOV r12,#0 - STMIA r0,{r2,r3,r12} - - LDMFD r13!,{r10,PC} - -oggpack_readinit: - @ r0 = oggpack_buffer *b - @ r1 = oggreference *r - STR r1,[r0,#12] @ b->head = r1 - STR r1,[r0,#16] @ b->tail = r1 - LDMIA r1,{r2,r3,r12} @ r2 = b->head->buffer - @ r3 = b->head->begin - @ r12= b->head->length - LDR r2,[r2] @ r2 = b->head->buffer->data - MOV r1,r12,LSL #3 @ r1 = BitsInSegment - MOV r12,#0 - ADD r3,r2,r3 @ r3 = r2+b->head->begin - BIC r2,r3,#3 @ r2 = b->headptr (word) - AND r3,r3,#3 - MOV r3,r3,LSL #3 - RSB r3,r3,#32 @ r3 = BitsInWord - STMIA r0,{r1,r2,r3} - STR r12,[r0,#20] - BX LR - -oggpack_read: - @ r0 = oggpack_buffer *b - @ r1 = int bits - STMFD r13!,{r10,r11,r14} - LDMIA r0,{r2,r3,r12} - @ r2 = bitsLeftInSegment - @ r3 = ptr - @ r12= bitsLeftInWord - SUBS r2,r2,r1 @ bitsLeftinSegment -= bits - BLT read_slow @ Not enough bits in this segment for - @ this request. Do it slowly. - LDR r10,[r3] @ r10= ptr[0] - RSB r14,r12,#32 @ r14= 32-bitsLeftInWord - SUBS r12,r12,r1 @ r12= bitsLeftInWord -= bits - ADDLE r3,r3,#4 - LDRLT r11,[r3] @ r11= ptr[1] - MOV r10,r10,LSR r14 @ r10= ptr[0]>>(32-bitsLeftInWord) - ADDLE r12,r12,#32 @ r12= bitsLeftInWord += 32 - RSB r14,r14,#32 @ r14= 32-bitsLeftInWord - ORRLT r10,r10,r11,LSL r14 @ r10= Next 32 bits. - STMIA r0,{r2,r3,r12} - MOV r14,#1 - RSB r14,r14,r14,LSL r1 - AND r0,r10,r14 - LDMFD r13!,{r10,r11,PC} - -read_slow: - STMFD r13!,{r5,r6} - ADDS r10,r2,r1 @ r10= bitsLeftInSegment + bits (i.e. - @ the initial value of bitsLeftInSeg) - @ r10 = bitsLeftInSegment (initial) - @ r12 = bitsLeftInWord - RSB r14,r12,#32 @ r14= 32-bitsLeftInWord - MOV r5,r10 @ r5 = bitsLeftInSegment (initial) - BLT read_overrun - BEQ read_next_segment @ r10= r12 = 0, if we branch - CMP r12,r10 @ If bitsLeftInWord < bitsLeftInSeg - @ there must be more in the next word - LDR r10,[r3],#4 @ r10= ptr[0] - LDRLT r6,[r3] @ r6 = ptr[1] - MOV r11,#1 - MOV r10,r10,LSR r14 @ r10= first bitsLeftInWord bits - ORRLT r10,r10,r6,LSL r12 @ r10= first bitsLeftInSeg bits+crap - RSB r11,r11,r11,LSL r5 @ r11= mask - AND r10,r10,r11 @ r10= first r5 bits - @ Load the next segments data -read_next_segment: - @ At this point, r10 contains the first r5 bits of the result - LDR r11,[r0,#12] @ r11= head = b->head - @ Stall -read_next_segment_2: - @ r11 = head - LDR r6,[r0,#20] @ r6 = count - LDR r12,[r11,#8] @ r12= length - LDR r11,[r11,#12] @ r11= head = head->next - @ Stall - ADD r6,r6,r12 @ count += length - CMP r11,#0 - BEQ read_out_of_data - STR r11,[r0,#12] - STR r6,[r0,#20] @ b->count = count - LDMIA r11,{r6,r12,r14} @ r6 = buffer - @ r12= begin - @ r14= length - LDR r6,[r6] @ r6 = buffer->data - CMP r14,#0 - BEQ read_next_segment_2 - ADD r6,r6,r12 @ r6 = buffer->data+begin -read_slow_loop: - LDRB r12,[r6],#1 @ r12= *buffer - SUBS r14,r14,#1 @ r14= length - @ Stall - ORR r10,r10,r12,LSL r5 @ r10= first r5+8 bits - ADD r5,r5,#8 - BLE read_really_slow - CMP r5,r1 - BLT read_slow_loop -read_end: - MOV r12,#1 - RSB r12,r12,r12,LSL r1 - - @ Store back the new position - @ r2 = -number of bits to go from this segment - @ r6 = ptr - @ r14= bytesLeftInSegment - @ r11= New head value - LDMIA r11,{r3,r6,r14} @ r3 = buffer - @ r6 = begin - @ r14= length - LDR r3,[r3] @ r3 = buffer->data - ADD r1,r2,r14,LSL #3 @ r1 = bitsLeftInSegment - @ stall - ADD r6,r3,r6 @ r6 = pointer - AND r3,r6,#3 @ r3 = bytes used in first word - RSB r3,r2,r3,LSL #3 @ r3 = bits used in first word - BIC r2,r6,#3 @ r2 = word ptr - RSBS r3,r3,#32 @ r3 = bitsLeftInWord - ADDLE r3,r3,#32 - ADDLE r2,r2,#4 - STMIA r0,{r1,r2,r3} - - AND r0,r10,r12 - LDMFD r13!,{r5,r6,r10,r11,PC} - - -read_really_slow: - CMP r5,r1 - BGE read_end - LDR r14,[r11,#8] @ r14= length of segment just done - @ stall - @ stall - ADD r2,r2,r14,LSL #3 @ r2 = -bits to use from next seg - B read_next_segment_2 - -read_out_of_data: - @ Store back the new position - @ r2 = -number of bits to go from this segment - @ r6 = ptr - @ r14= bytesLeftInSegment - @ RJW: This may be overkill - we leave the buffer empty, with -1 - @ bits left in it. We might get away with just storing the - @ bitsLeftInSegment as -1. - LDR r11,[r0,#12] @ r11=head - - LDMIA r11,{r3,r6,r14} @ r3 = buffer - @ r6 = begin - @ r14= length - LDR r3,[r3] @ r3 = buffer->data - ADD r6,r3,r6 @ r6 = pointer - ADD r6,r6,r14 - AND r3,r6,#3 @ r3 = bytes used in first word - MOV r3,r3,LSL #3 @ r3 = bits used in first word - BIC r2,r6,#3 @ r2 = word ptr - RSBS r3,r3,#32 @ r3 = bitsLeftInWord - MVN r1,#0 @ r1 = -1 = bitsLeftInSegment - STMIA r0,{r1,r2,r3} - @MVN r0,#0 ; return -1 - MOV r0,#0 - LDMFD r13!,{r5,r6,r10,r11,PC} - -read_overrun: - @ We had overrun when we started, so we need to skip -r10 bits. - LDR r11,[r0,#12] @ r11 = head = b->head - @ stall - @ stall -read_overrun_next_segment: - LDR r11,[r11,#12] @ r11 = head->next - @ stall - @ stall - CMP r11,#0 - BEQ read_out_of_data - LDMIA r11,{r6,r7,r14} @ r6 = buffer - @ r7 = begin - @ r14= length - LDR r6,[r6] @ r6 = buffer->data - @ stall - @ stall - ADD r6,r6,r7 @ r6 = buffer->data+begin - MOV r14,r14,LSL #3 @ r14= length in bits - ADDS r14,r14,r10 @ r14= length in bits-bits to skip - MOVLE r10,r14 - BLE read_overrun_next_segment - RSB r10,r10,#0 @ r10= bits to skip - ADD r6,r10,r10,LSR #3 @ r6 = pointer to data - MOV r10,#0 - B read_slow_loop - - @ END diff --git a/external/android-specific/tremolo/Tremolo/codebook.c b/external/android-specific/tremolo/Tremolo/codebook.c deleted file mode 100644 index 0dbcacc..0000000 --- a/external/android-specific/tremolo/Tremolo/codebook.c +++ /dev/null @@ -1,920 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: basic codebook pack/unpack/code/decode operations - - ************************************************************************/ - -#include -#include -#include -#include -// #include -#include "ogg.h" -#include "ivorbiscodec.h" -#include "codebook.h" -#include "misc.h" -#include "os.h" - -#define MARKER_SIZE 33 - -/**** pack/unpack helpers ******************************************/ -int _ilog(unsigned int v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -static ogg_uint32_t decpack(long entry,long used_entry,long quantvals, - codebook *b,oggpack_buffer *opb,int maptype){ - ogg_uint32_t ret=0; - int j; - - switch(b->dec_type){ - - case 0: - return (ogg_uint32_t)entry; - - case 1: - if(maptype==1){ - /* vals are already read into temporary column vector here */ - for(j=0;jdim;j++){ - ogg_uint32_t off=entry%quantvals; - entry/=quantvals; - ret|=((ogg_uint16_t *)(b->q_val))[off]<<(b->q_bits*j); - } - }else{ - for(j=0;jdim;j++) - ret|=oggpack_read(opb,b->q_bits)<<(b->q_bits*j); - } - return ret; - - case 2: - for(j=0;jdim;j++){ - ogg_uint32_t off=entry%quantvals; - entry/=quantvals; - ret|=off<<(b->q_pack*j); - } - return ret; - - case 3: - return (ogg_uint32_t)used_entry; - - } - return 0; /* silence compiler */ -} - -/* 32 bit float (not IEEE; nonnormalized mantissa + - biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm - Why not IEEE? It's just not that important here. */ - -static ogg_int32_t _float32_unpack(long val,int *point){ - long mant=val&0x1fffff; - int sign=val&0x80000000; - - *point=((val&0x7fe00000L)>>21)-788; - - if(mant){ - while(!(mant&0x40000000)){ - mant<<=1; - *point-=1; - } - if(sign)mant= -mant; - }else{ - *point=-9999; - } - return mant; -} - -/* choose the smallest supported node size that fits our decode table. - Legal bytewidths are 1/1 1/2 2/2 2/4 4/4 */ -static int _determine_node_bytes(long used, int leafwidth){ - - /* special case small books to size 4 to avoid multiple special - cases in repack */ - if(used<2) - return 4; - - if(leafwidth==3)leafwidth=4; - if(_ilog(3*used-6)+1 <= leafwidth*4) - return leafwidth/2?leafwidth/2:1; - return leafwidth; -} - -/* convenience/clarity; leaves are specified as multiple of node word - size (1 or 2) */ -static int _determine_leaf_words(int nodeb, int leafwidth){ - if(leafwidth>nodeb)return 2; - return 1; -} - -/* given a list of word lengths, number of used entries, and byte - width of a leaf, generate the decode table */ -static int _make_words(char *l,long n,ogg_uint32_t *r,long quantvals, - codebook *b, oggpack_buffer *opb,int maptype){ - long i,j,count=0; - long top=0; - ogg_uint32_t marker[MARKER_SIZE]; - - if (n<1) - return 1; - - if(n<2){ - r[0]=0x80000000; - }else{ - memset(marker,0,sizeof(marker)); - - for(i=0;i= MARKER_SIZE) { - //cjh ALOGE("b/23881715"); - return 1; - } - ogg_uint32_t entry=marker[length]; - long chase=0; - if(count && !entry)return -1; /* overpopulated tree! */ - - /* chase the tree as far as it's already populated, fill in past */ - for(j=0;j>(length-j-1))&1; - if(chase>=top){ - if (chase < 0 || chase >= n) return 1; - top++; - r[chase*2]=top; - r[chase*2+1]=0; - }else - if (chase < 0 || chase >= n || chase*2+bit > n*2+1) return 1; - if(!r[chase*2+bit]) - r[chase*2+bit]=top; - chase=r[chase*2+bit]; - if (chase < 0 || chase >= n) return 1; - } - { - int bit=(entry>>(length-j-1))&1; - if(chase>=top){ - top++; - r[chase*2+1]=0; - } - r[chase*2+bit]= decpack(i,count++,quantvals,b,opb,maptype) | - 0x80000000; - } - - /* Look to see if the next shorter marker points to the node - above. if so, update it and repeat. */ - for(j=length;j>0;j--){ - if(marker[j]&1){ - marker[j]=marker[j-1]<<1; - break; - } - marker[j]++; - } - - /* prune the tree; the implicit invariant says all the longer - markers were dangling from our just-taken node. Dangle them - from our *new* node. */ - for(j=length+1;j>1) == entry){ - entry=marker[j]; - marker[j]=marker[j-1]<<1; - }else - break; - } - } - } - - // following sanity check copied from libvorbis - /* sanity check the huffman tree; an underpopulated tree must be - rejected. The only exception is the one-node pseudo-nil tree, - which appears to be underpopulated because the tree doesn't - really exist; there's only one possible 'codeword' or zero bits, - but the above tree-gen code doesn't mark that. */ - if(b->used_entries != 1){ - for(i=1;i>(32-i))){ - return 1; - } - } - - - return 0; -} - -static int _make_decode_table(codebook *s,char *lengthlist,long quantvals, - oggpack_buffer *opb,int maptype){ - int i; - ogg_uint32_t *work; - - if (!lengthlist) return 1; - if(s->dec_nodeb==4){ - /* Over-allocate by using s->entries instead of used_entries. - * This means that we can use s->entries to enforce size in - * _make_words without messing up length list looping. - * This probably wastes a bit of space, but it shouldn't - * impact behavior or size too much. - */ - s->dec_table=_ogg_malloc((s->entries*2+1)*sizeof(*work)); - if (!s->dec_table) return 1; - /* +1 (rather than -2) is to accommodate 0 and 1 sized books, - which are specialcased to nodeb==4 */ - if(_make_words(lengthlist,s->entries, - s->dec_table,quantvals,s,opb,maptype))return 1; - - return 0; - } - - if (s->used_entries > INT_MAX/2 || - s->used_entries*2 > INT_MAX/((long) sizeof(*work)) - 1) return 1; - /* Overallocate as above */ - work=calloc((s->entries*2+1),sizeof(*work)); - if (!work) return 1; - if(_make_words(lengthlist,s->entries,work,quantvals,s,opb,maptype)) goto error_out; - if (s->used_entries > INT_MAX/(s->dec_leafw+1)) goto error_out; - if (s->dec_nodeb && s->used_entries * (s->dec_leafw+1) > INT_MAX/s->dec_nodeb) goto error_out; - s->dec_table=_ogg_malloc((s->used_entries*(s->dec_leafw+1)-2)* - s->dec_nodeb); - if (!s->dec_table) goto error_out; - - if(s->dec_leafw==1){ - switch(s->dec_nodeb){ - case 1: - for(i=0;iused_entries*2-2;i++) - ((unsigned char *)s->dec_table)[i]=(unsigned char) - (((work[i] & 0x80000000UL) >> 24) | work[i]); - break; - case 2: - for(i=0;iused_entries*2-2;i++) - ((ogg_uint16_t *)s->dec_table)[i]=(ogg_uint16_t) - (((work[i] & 0x80000000UL) >> 16) | work[i]); - break; - } - - }else{ - /* more complex; we have to do a two-pass repack that updates the - node indexing. */ - long top=s->used_entries*3-2; - if(s->dec_nodeb==1){ - unsigned char *out=(unsigned char *)s->dec_table; - - for(i=s->used_entries*2-4;i>=0;i-=2){ - if(work[i]&0x80000000UL){ - if(work[i+1]&0x80000000UL){ - top-=4; - out[top]=(work[i]>>8 & 0x7f)|0x80; - out[top+1]=(work[i+1]>>8 & 0x7f)|0x80; - out[top+2]=work[i] & 0xff; - out[top+3]=work[i+1] & 0xff; - }else{ - top-=3; - out[top]=(work[i]>>8 & 0x7f)|0x80; - out[top+1]=work[work[i+1]*2]; - out[top+2]=work[i] & 0xff; - } - }else{ - if(work[i+1]&0x80000000UL){ - top-=3; - out[top]=work[work[i]*2]; - out[top+1]=(work[i+1]>>8 & 0x7f)|0x80; - out[top+2]=work[i+1] & 0xff; - }else{ - top-=2; - out[top]=work[work[i]*2]; - out[top+1]=work[work[i+1]*2]; - } - } - work[i]=top; - } - }else{ - ogg_uint16_t *out=(ogg_uint16_t *)s->dec_table; - for(i=s->used_entries*2-4;i>=0;i-=2){ - if(work[i]&0x80000000UL){ - if(work[i+1]&0x80000000UL){ - top-=4; - out[top]=(work[i]>>16 & 0x7fff)|0x8000; - out[top+1]=(work[i+1]>>16 & 0x7fff)|0x8000; - out[top+2]=work[i] & 0xffff; - out[top+3]=work[i+1] & 0xffff; - }else{ - top-=3; - out[top]=(work[i]>>16 & 0x7fff)|0x8000; - out[top+1]=work[work[i+1]*2]; - out[top+2]=work[i] & 0xffff; - } - }else{ - if(work[i+1]&0x80000000UL){ - top-=3; - out[top]=work[work[i]*2]; - out[top+1]=(work[i+1]>>16 & 0x7fff)|0x8000; - out[top+2]=work[i+1] & 0xffff; - }else{ - top-=2; - out[top]=work[work[i]*2]; - out[top+1]=work[work[i+1]*2]; - } - } - work[i]=top; - } - } - } - - free(work); - return 0; -error_out: - free(work); - return 1; -} - -/* most of the time, entries%dimensions == 0, but we need to be - well defined. We define that the possible vales at each - scalar is values == entries/dim. If entries%dim != 0, we'll - have 'too few' values (values*dimentries); - int vals=b->entries>>((bits-1)*(b->dim-1)/b->dim); - - while(1){ - long acc=1; - long acc1=1; - int i; - for(i=0;idim;i++){ - acc*=vals; - acc1*=vals+1; - } - if(acc<=b->entries && acc1>b->entries){ - return(vals); - }else{ - if(acc>b->entries){ - vals--; - }else{ - vals++; - } - } - } -} - -void vorbis_book_clear(codebook *b){ - /* static book is not cleared; we're likely called on the lookup and - the static codebook belongs to the info struct */ - if(b->q_val)_ogg_free(b->q_val); - if(b->dec_table)_ogg_free(b->dec_table); - if(b->dec_buf)_ogg_free(b->dec_buf); - - memset(b,0,sizeof(*b)); -} - -int vorbis_book_unpack(oggpack_buffer *opb,codebook *s){ - char *lengthlist=NULL; - int quantvals=0; - long i,j; - int maptype; - - memset(s,0,sizeof(*s)); - - /* make sure alignment is correct */ - if(oggpack_read(opb,24)!=0x564342)goto _eofout; - - /* first the basic parameters */ - s->dim=oggpack_read(opb,16); - s->dec_buf=_ogg_malloc(sizeof(ogg_int32_t)*s->dim); - if (s->dec_buf == NULL) - goto _errout; - s->entries=oggpack_read(opb,24); - if(s->entries<=0)goto _eofout; - if(s->dim<=0)goto _eofout; - if(_ilog(s->dim)+_ilog(s->entries)>24)goto _eofout; - if (s->dim > INT_MAX/s->entries) goto _eofout; - - /* codeword ordering.... length ordered or unordered? */ - switch((int)oggpack_read(opb,1)){ - case 0: - /* unordered */ - lengthlist=(char *)calloc(s->entries, sizeof(*lengthlist)); - if(!lengthlist) goto _eofout; - - /* allocated but unused entries? */ - if(oggpack_read(opb,1)){ - /* yes, unused entries */ - - for(i=0;ientries;i++){ - if(oggpack_read(opb,1)){ - long num=oggpack_read(opb,5); - if(num==-1)goto _eofout; - lengthlist[i]=(char)(num+1); - s->used_entries++; - if(num+1>s->dec_maxlength)s->dec_maxlength=num+1; - }else - lengthlist[i]=0; - } - }else{ - /* all entries used; no tagging */ - s->used_entries=s->entries; - for(i=0;ientries;i++){ - long num=oggpack_read(opb,5); - if(num==-1)goto _eofout; - lengthlist[i]=(char)(num+1); - if(num+1>s->dec_maxlength)s->dec_maxlength=num+1; - } - } - - break; - case 1: - /* ordered */ - { - long length=oggpack_read(opb,5)+1; - - s->used_entries=s->entries; - lengthlist=(char *)calloc(s->entries, sizeof(*lengthlist)); - if (!lengthlist) goto _eofout; - - for(i=0;ientries;){ - long num=oggpack_read(opb,_ilog(s->entries-i)); - if(num<0)goto _eofout; - for(j=0;jentries;j++,i++) - lengthlist[i]=(char)length; - s->dec_maxlength=length; - length++; - } - } - break; - default: - /* EOF */ - goto _eofout; - } - - - /* Do we have a mapping to unpack? */ - - if((maptype=oggpack_read(opb,4))>0){ - s->q_min=_float32_unpack(oggpack_read(opb,32),&s->q_minp); - s->q_del=_float32_unpack(oggpack_read(opb,32),&s->q_delp); - s->q_bits=oggpack_read(opb,4)+1; - s->q_seq=oggpack_read(opb,1); - - s->q_del>>=s->q_bits; - s->q_delp+=s->q_bits; - } - - switch(maptype){ - case 0: - - /* no mapping; decode type 0 */ - - /* how many bytes for the indexing? */ - /* this is the correct boundary here; we lose one bit to - node/leaf mark */ - s->dec_nodeb=_determine_node_bytes(s->used_entries,_ilog(s->entries)/8+1); - s->dec_leafw=_determine_leaf_words(s->dec_nodeb,_ilog(s->entries)/8+1); - s->dec_type=0; - - if(_make_decode_table(s,lengthlist,quantvals,opb,maptype)) goto _errout; - break; - - case 1: - - /* mapping type 1; implicit values by lattice position */ - quantvals=_book_maptype1_quantvals(s); - - /* dec_type choices here are 1,2; 3 doesn't make sense */ - { - /* packed values */ - long total1=(s->q_bits*s->dim+8)/8; /* remember flag bit */ - if (s->dim > (INT_MAX-8)/s->q_bits) goto _eofout; - /* vector of column offsets; remember flag bit */ - long total2=(_ilog(quantvals-1)*s->dim+8)/8+(s->q_bits+7)/8; - - - if(total1<=4 && total1<=total2){ - /* use dec_type 1: vector of packed values */ - - /* need quantized values before */ - s->q_val=calloc(sizeof(ogg_uint16_t), quantvals); - if (!s->q_val) goto _eofout; - for(i=0;iq_val)[i]=(ogg_uint16_t)oggpack_read(opb,s->q_bits); - - if(oggpack_eop(opb)){ - goto _eofout; - } - - s->dec_type=1; - s->dec_nodeb=_determine_node_bytes(s->used_entries, - (s->q_bits*s->dim+8)/8); - s->dec_leafw=_determine_leaf_words(s->dec_nodeb, - (s->q_bits*s->dim+8)/8); - if(_make_decode_table(s,lengthlist,quantvals,opb,maptype)){ - goto _errout; - } - - free(s->q_val); - s->q_val=0; - - }else{ - /* use dec_type 2: packed vector of column offsets */ - - /* need quantized values before */ - if(s->q_bits<=8){ - s->q_val=_ogg_malloc(quantvals); - if (!s->q_val) goto _eofout; - for(i=0;iq_val)[i]=(unsigned char)oggpack_read(opb,s->q_bits); - }else{ - s->q_val=_ogg_malloc(quantvals*2); - if (!s->q_val) goto _eofout; - for(i=0;iq_val)[i]=(ogg_uint16_t)oggpack_read(opb,s->q_bits); - } - - if(oggpack_eop(opb))goto _eofout; - - s->q_pack=_ilog(quantvals-1); - s->dec_type=2; - s->dec_nodeb=_determine_node_bytes(s->used_entries, - (_ilog(quantvals-1)*s->dim+8)/8); - s->dec_leafw=_determine_leaf_words(s->dec_nodeb, - (_ilog(quantvals-1)*s->dim+8)/8); - if(_make_decode_table(s,lengthlist,quantvals,opb,maptype))goto _errout; - - } - } - break; - case 2: - - /* mapping type 2; explicit array of values */ - quantvals=s->entries*s->dim; - /* dec_type choices here are 1,3; 2 is not possible */ - - if( (s->q_bits*s->dim+8)/8 <=4){ /* remember flag bit */ - /* use dec_type 1: vector of packed values */ - - s->dec_type=1; - s->dec_nodeb=_determine_node_bytes(s->used_entries,(s->q_bits*s->dim+8)/8); - s->dec_leafw=_determine_leaf_words(s->dec_nodeb,(s->q_bits*s->dim+8)/8); - if(_make_decode_table(s,lengthlist,quantvals,opb,maptype))goto _errout; - - }else{ - /* use dec_type 3: scalar offset into packed value array */ - - s->dec_type=3; - s->dec_nodeb=_determine_node_bytes(s->used_entries,_ilog(s->used_entries-1)/8+1); - s->dec_leafw=_determine_leaf_words(s->dec_nodeb,_ilog(s->used_entries-1)/8+1); - if(_make_decode_table(s,lengthlist,quantvals,opb,maptype))goto _errout; - - /* get the vals & pack them */ - s->q_pack=(s->q_bits+7)/8*s->dim; - s->q_val=_ogg_malloc(s->q_pack*s->used_entries); - - if(s->q_bits<=8){ - for(i=0;iused_entries*s->dim;i++) - ((unsigned char *)(s->q_val))[i]=(unsigned char)oggpack_read(opb,s->q_bits); - }else{ - for(i=0;iused_entries*s->dim;i++) - ((ogg_uint16_t *)(s->q_val))[i]=(ogg_uint16_t)oggpack_read(opb,s->q_bits); - } - } - break; - default: - goto _errout; - } - - if (s->dec_nodeb==1) - if (s->dec_leafw == 1) - s->dec_method = 0; - else - s->dec_method = 1; - else if (s->dec_nodeb==2) - if (s->dec_leafw == 1) - s->dec_method = 2; - else - s->dec_method = 3; - else - s->dec_method = 4; - - if(oggpack_eop(opb))goto _eofout; - - free(lengthlist); - return 0; - _errout: - _eofout: - vorbis_book_clear(s); - free(lengthlist); - free(s->q_val); - return -1; -} - -#ifndef ONLY_C -ogg_uint32_t decode_packed_entry_number(codebook *book, - oggpack_buffer *b); -#else -static inline ogg_uint32_t decode_packed_entry_number(codebook *book, - oggpack_buffer *b){ - ogg_uint32_t chase=0; - int read=book->dec_maxlength; - long lok = oggpack_look(b,read),i; - - while(lok<0 && read>1) - lok = oggpack_look(b, --read); - - if(lok<0){ - oggpack_adv(b,1); /* force eop */ - return -1; - } - - /* chase the tree with the bits we got */ - switch (book->dec_method) - { - case 0: - { - /* book->dec_nodeb==1, book->dec_leafw==1 */ - /* 8/8 - Used */ - unsigned char *t=(unsigned char *)book->dec_table; - - for(i=0;i>i)&1)]; - if(chase&0x80UL)break; - } - chase&=0x7fUL; - break; - } - case 1: - { - /* book->dec_nodeb==1, book->dec_leafw!=1 */ - /* 8/16 - Used by infile2 */ - unsigned char *t=(unsigned char *)book->dec_table; - for(i=0;i>i)&1; - int next=t[chase+bit]; - if(next&0x80){ - chase= (next<<8) | t[chase+bit+1+(!bit || t[chase]&0x80)]; - break; - } - chase=next; - } - //chase&=0x7fffUL; - chase&=~0x8000UL; - break; - } - case 2: - { - /* book->dec_nodeb==2, book->dec_leafw==1 */ - /* 16/16 - Used */ - for(i=0;idec_table))[chase*2+((lok>>i)&1)]; - if(chase&0x8000UL)break; - } - //chase&=0x7fffUL; - chase&=~0x8000UL; - break; - } - case 3: - { - /* book->dec_nodeb==2, book->dec_leafw!=1 */ - /* 16/32 - Used by infile2 */ - ogg_uint16_t *t=(ogg_uint16_t *)book->dec_table; - for(i=0;i>i)&1; - int next=t[chase+bit]; - if(next&0x8000){ - chase= (next<<16) | t[chase+bit+1+(!bit || t[chase]&0x8000)]; - break; - } - chase=next; - } - //chase&=0x7fffffffUL; - chase&=~0x80000000UL; - break; - } - case 4: - { - //Output("32/32"); - for(i=0;idec_table))[chase*2+((lok>>i)&1)]; - if(chase&0x80000000UL)break; - } - //chase&=0x7fffffffUL; - chase&=~0x80000000UL; - break; - } - } - - if(idec_type)return -1; - return decode_packed_entry_number(book,b); -} - -#ifndef ONLY_C -int decode_map(codebook *s, oggpack_buffer *b, ogg_int32_t *v, int point); -#else -static int decode_map(codebook *s, oggpack_buffer *b, ogg_int32_t *v, int point){ - ogg_uint32_t entry = decode_packed_entry_number(s,b); - int i; - if(oggpack_eop(b))return(-1); - - /* 1 used by test file 0 */ - - /* according to decode type */ - switch(s->dec_type){ - case 1:{ - /* packed vector of values */ - int mask=(1<q_bits)-1; - for(i=0;idim;i++){ - v[i]=entry&mask; - entry>>=s->q_bits; - } - break; - } - case 2:{ - /* packed vector of column offsets */ - int mask=(1<q_pack)-1; - for(i=0;idim;i++){ - if(s->q_bits<=8) - v[i]=((unsigned char *)(s->q_val))[entry&mask]; - else - v[i]=((ogg_uint16_t *)(s->q_val))[entry&mask]; - entry>>=s->q_pack; - } - break; - } - case 3:{ - /* offset into array */ - void *ptr=((char *)s->q_val)+entry*s->q_pack; - - if(s->q_bits<=8){ - for(i=0;idim;i++) - v[i]=((unsigned char *)ptr)[i]; - }else{ - for(i=0;idim;i++) - v[i]=((ogg_uint16_t *)ptr)[i]; - } - break; - } - default: - return -1; - } - - /* we have the unpacked multiplicands; compute final vals */ - { - int shiftM = point-s->q_delp; - ogg_int32_t add = point-s->q_minp; - int mul = s->q_del; - - if(add>0) - add= s->q_min >> add; - else - add= s->q_min << -add; - if (shiftM<0) - { - mul <<= -shiftM; - shiftM = 0; - } - add <<= shiftM; - - for(i=0;idim;i++) - v[i]= ((add + v[i] * mul) >> shiftM); - - if(s->q_seq) - for(i=1;idim;i++) - v[i]+=v[i-1]; - } - - return 0; -} -#endif - -/* returns 0 on OK or -1 on eof *************************************/ -long vorbis_book_decodevs_add(codebook *book,ogg_int32_t *a, - oggpack_buffer *b,int n,int point){ - if(book->used_entries>0){ - int step=n/book->dim; - ogg_int32_t *v = book->dec_buf;//(ogg_int32_t *)alloca(sizeof(*v)*book->dim); - int i,j,o; - if (!v) return -1; - - for (j=0;jdim;i++,o+=step) - a[o]+=v[i]; - } - } - return 0; -} - -long vorbis_book_decodev_add(codebook *book,ogg_int32_t *a, - oggpack_buffer *b,int n,int point){ - if(book->used_entries>0){ - ogg_int32_t *v = book->dec_buf;//(ogg_int32_t *)alloca(sizeof(*v)*book->dim); - int i,j; - - if (!v) return -1; - for(i=0;idim;j++) - a[i++]+=v[j]; - } - } - return 0; -} - -long vorbis_book_decodev_set(codebook *book,ogg_int32_t *a, - oggpack_buffer *b,int n,int point){ - if(book->used_entries>0){ - ogg_int32_t *v = book->dec_buf;//(ogg_int32_t *)alloca(sizeof(*v)*book->dim); - int i,j; - - if (!v) return -1; - for(i=0;idim;j++) - a[i++]=v[j]; - } - }else{ - int i,j; - - for(i=0;idim;j++) - a[i++]=0; - } - } - - return 0; -} - -#ifndef ONLY_C -long vorbis_book_decodevv_add(codebook *book,ogg_int32_t **a, - long offset,int ch, - oggpack_buffer *b,int n,int point); -#else -long vorbis_book_decodevv_add(codebook *book,ogg_int32_t **a, - long offset,int ch, - oggpack_buffer *b,int n,int point){ - if(book->used_entries>0){ - - ogg_int32_t *v = book->dec_buf;//(ogg_int32_t *)alloca(sizeof(*v)*book->dim); - long i,j; - int chptr=0; - - if (!v) return -1; - for(i=offset;idim;j++){ - a[chptr++][i]+=v[j]; - if(chptr==ch){ - chptr=0; - i++; - } - } - } - } - - return 0; -} -#endif diff --git a/external/android-specific/tremolo/Tremolo/codebook.h b/external/android-specific/tremolo/Tremolo/codebook.h deleted file mode 100644 index 7aff26b..0000000 --- a/external/android-specific/tremolo/Tremolo/codebook.h +++ /dev/null @@ -1,89 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: basic shared codebook operations - - ************************************************************************/ - -#ifndef _V_CODEBOOK_H_ -#define _V_CODEBOOK_H_ - -#include "ogg.h" - -typedef struct codebook{ - /* Top 15 used in ARM code */ - int dec_maxlength; - void *dec_table; - int dec_method; - int dec_type; /* 0 = entry number - 1 = packed vector of values - 2 = packed vector of column offsets, maptype 1 - 3 = scalar offset into value array, maptype 2 */ - int q_bits; - long dim; /* codebook dimensions (elements per vector) */ - int q_delp; - int q_minp; - ogg_int32_t q_del; - ogg_int32_t q_min; - int q_seq; - int q_pack; - void *q_val; - long used_entries; /* populated codebook entries */ - ogg_int32_t *dec_buf; - - /* C only */ - int dec_nodeb; - int dec_leafw; - - long entries; /* codebook entries */ - -} codebook; - -extern void vorbis_book_clear(codebook *b); -extern int vorbis_book_unpack(oggpack_buffer *b,codebook *c); - -extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); -extern long vorbis_book_decodevs_add(codebook *book, ogg_int32_t *a, - oggpack_buffer *b,int n,int point); -extern long vorbis_book_decodev_set(codebook *book, ogg_int32_t *a, - oggpack_buffer *b,int n,int point); -extern long vorbis_book_decodev_add(codebook *book, ogg_int32_t *a, - oggpack_buffer *b,int n,int point); -extern long vorbis_book_decodevv_add(codebook *book, ogg_int32_t **a, - long off,int ch, - oggpack_buffer *b,int n,int point); - -extern int _ilog(unsigned int v); - - -#endif diff --git a/external/android-specific/tremolo/Tremolo/codec_internal.h b/external/android-specific/tremolo/Tremolo/codec_internal.h deleted file mode 100644 index c94db5f..0000000 --- a/external/android-specific/tremolo/Tremolo/codec_internal.h +++ /dev/null @@ -1,235 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: libvorbis codec headers - - ************************************************************************/ - -#ifndef _V_CODECI_H_ -#define _V_CODECI_H_ - -#define CHUNKSIZE 1024 - -#include "codebook.h" -#include "ivorbiscodec.h" - -#define VI_TRANSFORMB 1 -#define VI_WINDOWB 1 -#define VI_TIMEB 1 -#define VI_FLOORB 2 -#define VI_RESB 3 -#define VI_MAPB 1 - -typedef void vorbis_info_floor; - -/* vorbis_dsp_state buffers the current vorbis audio - analysis/synthesis state. The DSP state belongs to a specific - logical bitstream ****************************************************/ -struct vorbis_dsp_state{ - vorbis_info *vi; - oggpack_buffer opb; - - ogg_int32_t **work; - ogg_int32_t **mdctright; - int out_begin; - int out_end; - - long lW; - long W; - - ogg_int64_t granulepos; - ogg_int64_t sequence; - ogg_int64_t sample_count; - -}; - - -/* Floor backend generic *****************************************/ - -extern vorbis_info_floor *floor0_info_unpack(vorbis_info *,oggpack_buffer *); -extern void floor0_free_info(vorbis_info_floor *); -extern int floor0_memosize(vorbis_info_floor *); -extern ogg_int32_t *floor0_inverse1(struct vorbis_dsp_state *, - vorbis_info_floor *,ogg_int32_t *); -extern int floor0_inverse2 (struct vorbis_dsp_state *,vorbis_info_floor *, - ogg_int32_t *buffer,ogg_int32_t *); - -extern vorbis_info_floor *floor1_info_unpack(vorbis_info *,oggpack_buffer *); -extern void floor1_free_info(vorbis_info_floor *); -extern int floor1_memosize(vorbis_info_floor *); -extern ogg_int32_t *floor1_inverse1(struct vorbis_dsp_state *, - vorbis_info_floor *,ogg_int32_t *); -extern int floor1_inverse2 (struct vorbis_dsp_state *,vorbis_info_floor *, - ogg_int32_t *buffer,ogg_int32_t *); - -typedef struct{ - int order; - long rate; - long barkmap; - - int ampbits; - int ampdB; - - int numbooks; /* <= 16 */ - char books[16]; - -} vorbis_info_floor0; - -typedef struct{ - char class_dim; /* 1 to 8 */ - char class_subs; /* 0,1,2,3 (bits: 1<max_length - @ r6 = book->dec_table - @ r7 = book->dec_method - MOV r5,r1 @ r5 = b - - MOV r0,r5 @ r0 = b - MOV r1,r4 @ r1 = read - BL oggpack_look -dpen_read_return: - CMP r0,#0 - BLT dpen_readfailed - - @ r0 = lok - @ r4 = read - @ r5 = b - @ r6 = dec_table - @ r7 = dec_method - - CMP r7, #3 - BGT meth4 - BEQ meth3 - CMP r7, #1 - BGT meth2 - BEQ meth1 -meth0: - RSB r1, r4, #0 @ r1 = i-read = 0-read - MOV r7, #0 @ r7 = chase -m0_loop: - MOVS r0, r0, LSR #1 @ r0 = lok>>1 C = bottom bit - ADC r2, r6, r7, LSL #1 @ r8 = &t[chase*2+C] - LDRB r7, [r2] - ADDS r1, r1, #1 @ r1 = i-read++ (i-read<0 => i= 0) === (i >= read) - MVNGT r7, #0 @ if (i >= read) value to return = -1 - ADD r1, r1, r4 @ r1 = i-read+read+1 = i +1 - MOV r0, r5 @ r0 = b - BL oggpack_adv @ oggpack_adv(b, i+1); - MOV r0, r7 @ return chase - LDMFD r13!,{r4-r8,r10,PC} - -meth1: - @ r0 = lok - @ r4 = read - @ r5 = b - @ r6 = dec_table - RSB r1, r4, #0 @ r1 = i = -read - MOV r10,#0 @ r10= next = 0 -m1_loop: - MOV r7, r10 @ r7 = chase=next - MOVS r0, r0, LSR #1 @ r0 = lok>>1 C = bottom bit - ADC r8, r6, r7 @ r8 = t+chase+bit - LDRB r10,[r8], -r6 @ r10= next=t[chase+bit] r8=chase+bit - ADDS r1, r1, #1 @ r1 = i++ - @ stall Xscale - CMPLT r10,#0x80 @ if (next & 0x80) == 0 - BLT m1_loop - - ADD r1, r1, r4 @ r1 = i+read - MOV r0, r5 @ r0 = b - BL oggpack_adv @ oggpack_adv(b, i) - - CMP r10,#0x80 - BLT duff - - CMP r8, r7 @ if bit==0 (chase+bit==chase) (sets C) - LDRNEB r14,[r6, r7] @ r14= t[chase] - MOVEQ r14,#128 - ADC r12,r8, r6 @ r12= chase+bit+1+t - LDRB r14,[r12,r14,LSR #7] @ r14= t[chase+bit+1+(!bit || t[chase]0x0x80)] - BIC r10,r10,#0x80 @ r3 = next &= ~0x80 - @ stall Xscale - ORR r0, r14,r10,LSL #8 @ r7 = chase = (next<<8) | r14 - - LDMFD r13!,{r4-r8,r10,PC} - - -meth2: - RSB r1, r4, #0 @ r1 = i-read = 0-read - MOV r7, #0 @ r7 = chase - MOV r6, r6, LSR #1 -m2_loop: - MOVS r0, r0, LSR #1 @ r0 = lok>>1 C = bottom bit - ADC r2, r6, r7, LSL #1 @ r8 = &t[chase*2+C] - LDRH r7, [r2, r2] - ADDS r1, r1, #1 @ r1 = i-read++ (i-read<0 => i= 0) === (i >= read) - MVNGT r7, #0 @ if (i >= read) value to return = -1 - ADD r1, r1, r4 @ r1 = i-read+read+1 = i +1 - MOV r0, r5 @ r0 = b - BL oggpack_adv @ oggpack_adv(b, i+1); - MOV r0, r7 @ return chase - LDMFD r13!,{r4-r8,r10,PC} - -meth3: - @ r0 = lok - @ r4 = read - @ r5 = b - @ r6 = dec_table - RSB r1, r4, #0 @ r1 = i = -read - MOV r10,#0 @ r10= next = 0 -m3_loop: - MOV r7, r10 @ r7 = chase=next - MOVS r0, r0, LSR #1 @ r0 = lok>>1 C = bottom bit - ADC r8, r7, #0 @ r8 = chase+bit - MOV r8, r8, LSL #1 @ r8 = (chase+bit)<<1 - LDRH r10,[r6, r8] @ r10= next=t[chase+bit] - ADDS r1, r1, #1 @ r1 = i++ - @ stall Xscale - CMPLT r10,#0x8000 @ if (next & 0x8000) == 0 - BLT m3_loop - - ADD r1, r1, r4 @ r1 = i+read - MOV r0, r5 @ r0 = b - BL oggpack_adv @ oggpack_adv(b, i) - - CMP r10,#0x8000 - BLT duff - - MOV r7, r7, LSL #1 - CMP r8, r7 @ if bit==0 (chase+bit==chase) sets C - LDRNEH r14,[r6, r7] @ r14= t[chase] - MOVEQ r14,#0x8000 - ADC r12,r8, r14,LSR #15 @ r12= 1+((chase+bit)<<1)+(!bit || t[chase]0x0x8000) - ADC r12,r12,r14,LSR #15 @ r12= t + (1+chase+bit+(!bit || t[chase]0x0x8000))<<1 - LDRH r14,[r6, r12] @ r14= t[chase+bit+1 - BIC r10,r10,#0x8000 @ r3 = next &= ~0x8000 - @ stall Xscale - ORR r0, r14,r10,LSL #16 @ r7 = chase = (next<<16) | r14 - - LDMFD r13!,{r4-r8,r10,PC} - -meth4: - RSB r1, r4, #0 @ r1 = i-read = 0-read - MOV r7, #0 @ r7 = chase -m4_loop: - MOVS r0, r0, LSR #1 @ r0 = lok>>1 C = bottom bit - ADC r2, r7, r7 @ r8 = chase*2+C - LDR r7, [r6, r2, LSL #2] - ADDS r1, r1, #1 @ r1 = i-read++ (i-read<0 => i= 0) === (i >= read) - MVNGT r7, #0 @ if (i >= read) value to return = -1 - ADD r1, r1, r4 @ r1 = i-read+read+1 = i +1 - MOV r0, r5 @ r0 = b - BL oggpack_adv @ oggpack_adv(b, i+1); - MOV r0, r7 @ return chase - LDMFD r13!,{r4-r8,r10,PC} - -decode_map: - @ r0 = codebook *s - @ r1 = oggpack_buffer *b - @ r2 = int v - @ r3 = int point - STMFD r13!,{r4-r11,r14} - - MOV r4, r0 @ r4 = s - MOV r5, r1 @ r5 = b - MOV r6, r2 @ r6 = v - MOV r7, r3 @ r7 = point - BL decode_packed_entry_number - MOV r8, r0 - - MOV r0, r5 - BL oggpack_eop - CMP r0, #0 - BNE dm_duff - - @ r4 = s - @ r5 = b - @ r6 = v - @ r7 = point - @ r8 = entry - - LDR r1, [r4,#12] @ r1 = s->dec_type - LDR r2, [r4,#16] @ r2 = s->q_bits - LDR r3, [r4,#20] @ r3 = s->dim - LDR r5, [r4,#24] @ r5 = s->q_delp - LDR r11,[r4,#28] @ r11= s->q_minp - LDR r12,[r4,#32] @ r12= s->q_del = mul - LDR r14,[r4,#36] @ r14= s->q_min - SUBS r11,r7, r11 @ r11= add = point - s->q_minp - - MOVGT r14,r14,ASR r11 @ r14= add = s->q_min >> add (if add >0) - RSBLT r11,r11,#0 - MOVLT r14,r14,LSL r11 @ r14= add = s->q_min << -add (if add < 0) - - SUBS r5, r7, r5 @ r5 = shiftM = point - s->q_delp - LDR r7, [r4,#40] @ r7 = s->q_seq - RSBLT r5, r5, #0 @ if (shiftM<0) r5 =-shiftM - MOVLT r12,r12,LSL r5 @ r12=mul<<-shiftM - MOVLT r5, #0 @ r5 =shiftM = 0 - MOVGT r14,r14,LSL r5 @ add <<= shiftM - - CMP r7,#0 @ seqMask = (s->q_seq?-1:0) - MVNNE r7,#0 - - CMP r1, #2 - BEQ dm2 - BGT dm3 - CMP r1,#0 @ probably never happens - BLE dm_duff -dm1: - @ r1 = s->dec_type - @ r2 = s->q_bits - @ r3 = s->dim - @ r5 = shiftM - @ r6 = v - @ r7 = seqMask - @ r8 = entry - @ r12= mul - @ r14= add - MOV r0, #1 - RSB r0, r0, r0, LSL r2 @ r0 = mask = (1<q_bits)-1 - MOV r11,#0 @ r11= prev = 0 -dm1_loop: - AND r1, r8, r0 @ r1 = v = entry & mask - MLA r1, r12, r1, r14 @ r1 = (add + mul*v) - MOV r8, r8, LSR r2 @ r8 = entry>>s->q_bits - SUBS r3, r3, #1 - ADD r1, r11,r1, ASR r5 @ r1 = v = prev+((add+mul*v)>>shiftM) - AND r11,r1, r7 @ r11= prev = seqMask & v - STR r1, [r6], #4 @ *v++ = v - BGT dm1_loop - - MOV r0, #0 - LDMFD r13!,{r4-r11,PC} -dm2: - @ r1 = s->dec_type - @ r2 = s->q_bits - @ r3 = s->dim - @ r4 = s - @ r5 = shiftM - @ r6 = v - @ r7 = seqMask - @ r8 = entry - @ r12= mul - @ r14= add - LDR r1, [r4,#44] @ r1 = s->q_pack - LDR r4, [r4,#48] @ r4 = s->q_val - MOV r11,#0 @ r11= prev - MOV r0, #1 - RSB r0, r0, r0, LSL r1 @ r8 = mask = (1<q_pack)-1 - CMP r2,#8 - BGT dm2_hword -dm2_loop: - AND r2, r8, r0 @ r2 = entry & mask - LDRB r2, [r4, r2] @ r2 = v = q->val[entry & mask] - MOV r8, r8, LSR r1 @ r8 = entry>>q_pack - MLA r2, r12,r2, r14 @ r2 = (add+mul*v) - SUBS r3, r3, #1 - ADD r2, r11,r2, ASR r5 @ r2 = v = prev+(add+mul*v)>>shiftM - AND r11,r2, r7 @ r11= prev = seqMask & v - STR r2, [r6], #4 @ *v++ = v - BGT dm2_loop - MOV r0, #0 - LDMFD r13!,{r4-r11,PC} - -dm2_hword: - AND r2, r8, r0 @ r2 = entry & mask - MOV r2, r2, LSL #1 @ r2 = 2*r2 - LDRH r2, [r4, r2] @ r2 = v = q->val[entry & mask] - MOV r8, r8, LSR r1 @ r8 = entry>>q_pack - MLA r2, r12,r2, r14 @ r2 = (add+mul*v) - SUBS r3, r3, #1 - ADD r2, r11,r2, ASR r5 @ r2 = v = prev+(add+mul*v)>>shiftM - AND r11,r2, r7 @ r11= prev = seqMask & v - STR r2, [r6], #4 @ *v++ = v - BGT dm2_hword - MOV r0, #0 - LDMFD r13!,{r4-r11,PC} - -dm3: - @ r1 = s->dec_type - @ r2 = s->q_bits - @ r3 = s->dim - @ r4 = s - @ r5 = shiftM - @ r6 = v - @ r7 = seqMask - @ r8 = entry - @ r12= mul - @ r14= add - LDR r1, [r4,#44] @ r1 = s->q_pack - LDR r4, [r4,#52] @ r4 = s->q_val - CMP r2,#8 - MOV r11,#0 @ r11= prev - MLA r4,r1,r8,r4 @ r4 = ptr = s->q_val+entry*s->q_pack - - BGT dm3_hword -dm3_loop: - LDRB r2, [r4], #1 @ r2 = v = *ptr++ - SUBS r3, r3, #1 - MLA r2, r12,r2, r14 @ r2 = (add+mul*v) - ADD r2, r11,r2, ASR r5 @ r2 = v = prev+(add+mul*v)>>shiftM - AND r11,r2, r7 @ r11= prev = seqMask & v - STR r2, [r6], #4 @ *v++ = v - BGT dm3_loop - MOV r0, #0 - LDMFD r13!,{r4-r11,PC} - -dm3_hword: - LDRH r2, [r4], #2 @ r2 = *ptr++ - SUBS r3, r3, #1 - MLA r2, r12,r2, r14 @ r2 = (add+mul*v) - ADD r2, r11,r2, ASR r5 @ r2 = v = prev+(add+mul*v)>>shiftM - AND r11,r2, r7 @ r11= prev = seqMask & v - STR r2, [r6], #4 @ *v++ = v - BGT dm3_hword - MOV r0, #0 - LDMFD r13!,{r4-r11,PC} - -dm_duff: - MVN r0,#0 - LDMFD r13!,{r4-r11,PC} - -vorbis_book_decodevv_add: - @ r0 = codebook *book - @ r1 = ogg_int32_t **a - @ r2 = long offset - @ r3 = int ch - @ <> = b - @ <> = n - @ <> = point - STMFD r13!,{r4-r11,R14} - LDR r7, [r0, #13*4] @ r7 = used_entries - MOV r9, r0 @ r9 = book - MOV r10,r1 @ r10= 0xa[chptr] chptr=0 - MOV r6, r3 @ r6 = ch - ADD r8, r10,r3, LSL #2 @ r8 = 0xa[ch] - MOV r11,r2 @ r11= offset - CMP r7, #0 @ if (used_entries <= 0) - BLE vbdvva_exit @ exit - LDR r5, [r13,#10*4] @ r5 = n -vbdvva_loop1: - @ r5 = n - @ r6 = ch - @ r8 = 0xa[ch] - @ r9 = book - @ r10= 0xa[chptr] - @ r11= offset - MOV r0, r9 @ r0 = book - LDR r1, [r13,# 9*4] @ r1 = b - LDR r2, [r9, #14*4] @ r2 = v = dec_buf - LDR r3, [r13,#11*4] @ r3 = point - BL decode_map - CMP r0, #0 - BNE vbdvva_fail - - LDR r0, [r9, # 5*4] @ r0 = book->dim - LDR r1, [r9, #14*4] @ r1 = v = dec_buf -vbdvva_loop2: - LDR r2, [r10],#4 @ r2 = a[chptr++] - LDR r12,[r1], #4 @ r1 = v[j++] - CMP r10,r8 @ if (chptr == ch) - SUBEQ r10,r10,r6, LSL #2 @ chptr = 0 - LDR r14,[r2, r11,LSL #2]! @ r2 = 0xa[chptr++][i] r14=[r12] - ADDEQ r11,r11,#1 @ i++ - SUBEQ r5, r5, #1 @ n-- - SUBS r0, r0, #1 @ r0-- - ADD r12,r12,r14 @ r12= a[chptr++][i]+ v[j] - STR r12,[r2] @ r12= a[chptr++][i]+=v[j] - BGT vbdvva_loop2 - CMP r5,#0 - BGT vbdvva_loop1 -vbdvva_exit: - MOV r0, #0 @ return 0 - LDMFD r13!,{r4-r11,PC} -vbdvva_fail: - MVN r0, #0 @ return -1 - LDMFD r13!,{r4-r11,PC} - -_checksum: - @ r0 = ogg_reference *or - @ r1 = bytes - STMFD r13!,{r5-r6,r14} - - ADR r6,.Lcrc_lookup - LDR r5,[r6] - ADD r5,r6 - MOV r14,#0 @ r14= crc_reg = 0 - MOVS r12,r0 - BEQ _cs_end -_cs_loop1: - LDMIA r12,{r0,r2,r3,r12} @ r0 = or->buffer - @ r2 = or->begin - @ r3 = or->length - @ r12= or->next - LDR r0,[r0] @ r0 = or->buffer->data - CMP r1,r3 @ r3 = post = (bytes < or->length ? - MOVLT r3,r1 @ bytes : or->length) - MOVS r6,r3 @ r6 = j = post - BEQ _cs_no_bytes - ADD r0,r0,r2 @ r0 = or->buffer->data + or->begin -_cs_loop2: - LDRB r2, [r0],#1 @ r2 = data[j] - @ stall - @ stall Xscale - EOR r2, r2, r14,LSR #24 @ r2 = (crc_reg>>24)^data[j] - LDR r2, [r5, r2, LSL #2] @ r2 = crc_lkp[(crc_reg>>24)^data[j]] - SUBS r6, r6, #1 @ j-- - @ stall Xscale - EOR r14,r2, r14,LSL #8 @ r14= crc_reg = (crc_reg<<8)^r2 - BGT _cs_loop2 -_cs_no_bytes: - SUBS r1, r1, r3 - CMPNE r12,#0 - BNE _cs_loop1 -_cs_end: - MOV r0,r14 - LDMFD r13!,{r5-r6,PC} - -.Lcrc_lookup: - .WORD crc_lookup-.Lcrc_lookup - - @ END diff --git a/external/android-specific/tremolo/Tremolo/dsp.c b/external/android-specific/tremolo/Tremolo/dsp.c deleted file mode 100644 index db809de..0000000 --- a/external/android-specific/tremolo/Tremolo/dsp.c +++ /dev/null @@ -1,326 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: PCM data vector blocking, windowing and dis/reassembly - - ************************************************************************/ - -#include -#include "ogg.h" -#include "mdct.h" -#include "ivorbiscodec.h" -#include "codec_internal.h" -#include "misc.h" -#include "window_lookup.h" - -int vorbis_dsp_restart(vorbis_dsp_state *v){ - if(!v)return -1; - { - vorbis_info *vi=v->vi; - codec_setup_info *ci; - - if(!vi)return -1; - ci=vi->codec_setup; - if(!ci)return -1; - - v->out_end=-1; - v->out_begin=-1; - - v->granulepos=-1; - v->sequence=-1; - v->sample_count=-1; - } - return 0; -} - -int vorbis_dsp_init(vorbis_dsp_state *v,vorbis_info *vi){ - int i; - - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - - v->vi=vi; - - v->work=(ogg_int32_t **)_ogg_malloc(vi->channels*sizeof(*v->work)); - v->mdctright=(ogg_int32_t **)_ogg_malloc(vi->channels*sizeof(*v->mdctright)); - for(i=0;ichannels;i++){ - v->work[i]=(ogg_int32_t *)_ogg_calloc(1,(ci->blocksizes[1]>>1)* - sizeof(*v->work[i])); - v->mdctright[i]=(ogg_int32_t *)_ogg_calloc(1,(ci->blocksizes[1]>>2)* - sizeof(*v->mdctright[i])); - } - - v->lW=0; /* previous window size */ - v->W=0; /* current window size */ - - vorbis_dsp_restart(v); - return 0; -} - -vorbis_dsp_state *vorbis_dsp_create(vorbis_info *vi){ - vorbis_dsp_state *v=_ogg_calloc(1,sizeof(*v)); - vorbis_dsp_init(v,vi); - return v; -} - -void vorbis_dsp_clear(vorbis_dsp_state *v){ - int i; - if(v){ - vorbis_info *vi=v->vi; - - if(v->work){ - for(i=0;ichannels;i++) - if(v->work[i])_ogg_free(v->work[i]); - _ogg_free(v->work); - } - if(v->mdctright){ - for(i=0;ichannels;i++) - if(v->mdctright[i])_ogg_free(v->mdctright[i]); - _ogg_free(v->mdctright); - } - } -} - -void vorbis_dsp_destroy(vorbis_dsp_state *v){ - vorbis_dsp_clear(v); - _ogg_free(v); -} - -static LOOKUP_T *_vorbis_window(int left){ - switch(left){ - case 32: - return vwin64; - case 64: - return vwin128; - case 128: - return vwin256; - case 256: - return vwin512; - case 512: - return vwin1024; - case 1024: - return vwin2048; - case 2048: - return vwin4096; -#ifndef LIMIT_TO_64kHz - case 4096: - return vwin8192; -#endif - default: - return(0); - } -} - -/* pcm==0 indicates we just want the pending samples, no more */ -int vorbis_dsp_pcmout(vorbis_dsp_state *v,ogg_int16_t *pcm,int samples){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - if(v->out_begin>-1 && v->out_beginout_end){ - int n=v->out_end-v->out_begin; - if(pcm){ - int i; - if(n>samples)n=samples; - for(i=0;ichannels;i++) - mdct_unroll_lap(ci->blocksizes[0],ci->blocksizes[1], - v->lW,v->W,v->work[i],v->mdctright[i], - _vorbis_window(ci->blocksizes[0]>>1), - _vorbis_window(ci->blocksizes[1]>>1), - pcm+i,vi->channels, - v->out_begin,v->out_begin+n); - } - return(n); - } - return(0); -} - -int vorbis_dsp_read(vorbis_dsp_state *v,int s){ - if(s && v->out_begin+s>v->out_end)return(OV_EINVAL); - v->out_begin+=s; - return(0); -} - -long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){ - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - oggpack_buffer opb; - int mode; - int modebits=0; - int v=ci->modes; - - oggpack_readinit(&opb,op->packet); - - /* Check the packet type */ - if(oggpack_read(&opb,1)!=0){ - /* Oops. This is not an audio data packet */ - return(OV_ENOTAUDIO); - } - - while(v>1){ - modebits++; - v>>=1; - } - - /* read our mode and pre/post windowsize */ - mode=oggpack_read(&opb,modebits); - if(mode==-1)return(OV_EBADPACKET); - return(ci->blocksizes[ci->mode_param[mode].blockflag]); -} - - -static int ilog(ogg_uint32_t v){ - int ret=0; - if(v)--v; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -int vorbis_dsp_synthesis(vorbis_dsp_state *vd,ogg_packet *op,int decodep){ - vorbis_info *vi=vd->vi; - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - int mode,i; - - oggpack_readinit(&vd->opb,op->packet); - - /* Check the packet type */ - if(oggpack_read(&vd->opb,1)!=0){ - /* Oops. This is not an audio data packet */ - return OV_ENOTAUDIO ; - } - - /* read our mode and pre/post windowsize */ - mode=oggpack_read(&vd->opb,ilog(ci->modes)); - if(mode==-1 || mode>=ci->modes) return OV_EBADPACKET; - - /* shift information we still need from last window */ - vd->lW=vd->W; - vd->W=ci->mode_param[mode].blockflag; - for(i=0;ichannels;i++) - mdct_shift_right(ci->blocksizes[vd->lW],vd->work[i],vd->mdctright[i]); - - if(vd->W){ - int temp; - oggpack_read(&vd->opb,1); - temp=oggpack_read(&vd->opb,1); - if(temp==-1) return OV_EBADPACKET; - } - - /* packet decode and portions of synthesis that rely on only this block */ - if(decodep){ - mapping_inverse(vd,ci->map_param+ci->mode_param[mode].mapping); - - if(vd->out_begin==-1){ - vd->out_begin=0; - vd->out_end=0; - }else{ - vd->out_begin=0; - vd->out_end=ci->blocksizes[vd->lW]/4+ci->blocksizes[vd->W]/4; - } - } - - /* track the frame number... This is for convenience, but also - making sure our last packet doesn't end with added padding. - - This is not foolproof! It will be confused if we begin - decoding at the last page after a seek or hole. In that case, - we don't have a starting point to judge where the last frame - is. For this reason, vorbisfile will always try to make sure - it reads the last two marked pages in proper sequence */ - - /* if we're out of sequence, dump granpos tracking until we sync back up */ - if(vd->sequence==-1 || vd->sequence+1 != op->packetno-3){ - /* out of sequence; lose count */ - vd->granulepos=-1; - vd->sample_count=-1; - } - - vd->sequence=op->packetno; - vd->sequence=vd->sequence-3; - - if(vd->sample_count==-1){ - vd->sample_count=0; - }else{ - vd->sample_count+= - ci->blocksizes[vd->lW]/4+ci->blocksizes[vd->W]/4; - } - - if(vd->granulepos==-1){ - if(op->granulepos!=-1){ /* only set if we have a - position to set to */ - - vd->granulepos=op->granulepos; - - /* is this a short page? */ - if(vd->sample_count>vd->granulepos){ - /* corner case; if this is both the first and last audio page, - then spec says the end is cut, not beginning */ - if(op->e_o_s){ - /* trim the end */ - /* no preceeding granulepos; assume we started at zero (we'd - have to in a short single-page stream) */ - /* granulepos could be -1 due to a seek, but that would result - in a long coun t, not short count */ - - vd->out_end-=(int)(vd->sample_count-vd->granulepos); - }else{ - /* trim the beginning */ - vd->out_begin+=(int)(vd->sample_count-vd->granulepos); - if(vd->out_begin>vd->out_end) - vd->out_begin=vd->out_end; - } - - } - - } - }else{ - vd->granulepos+= - ci->blocksizes[vd->lW]/4+ci->blocksizes[vd->W]/4; - if(op->granulepos!=-1 && vd->granulepos!=op->granulepos){ - - if(vd->granulepos>op->granulepos){ - long extra=(long)(vd->granulepos-op->granulepos); - - if(extra) - if(op->e_o_s){ - /* partial last frame. Strip the extra samples off */ - vd->out_end-=extra; - } /* else {Shouldn't happen *unless* the bitstream is out of - spec. Either way, believe the bitstream } */ - } /* else {Shouldn't happen *unless* the bitstream is out of - spec. Either way, believe the bitstream } */ - vd->granulepos=op->granulepos; - } - } - - return(0); -} diff --git a/external/android-specific/tremolo/Tremolo/floor0.c b/external/android-specific/tremolo/Tremolo/floor0.c deleted file mode 100644 index 581efcb..0000000 --- a/external/android-specific/tremolo/Tremolo/floor0.c +++ /dev/null @@ -1,448 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: floor backend 0 implementation - - ************************************************************************/ - -#include -#include -#include -#include "ogg.h" -#include "ivorbiscodec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "misc.h" -#include "os.h" - -#define LSP_FRACBITS 14 -extern const ogg_int32_t FLOOR_fromdB_LOOKUP[]; - -/*************** LSP decode ********************/ - -#include "lsp_lookup.h" - -/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in - 16.16 format - returns in m.8 format */ - -static long ADJUST_SQRT2[2]={8192,5792}; -static inline ogg_int32_t vorbis_invsqlook_i(long a,long e){ - long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); - long d=a&INVSQ_LOOKUP_I_MASK; /* 0.10 */ - long val=INVSQ_LOOKUP_I[i]- /* 1.16 */ - ((INVSQ_LOOKUP_IDel[i]*d)>>INVSQ_LOOKUP_I_SHIFT); /* result 1.16 */ - val*=ADJUST_SQRT2[e&1]; - e=(e>>1)+21; - return(val>>e); -} - -/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ -/* a is in n.12 format */ -#ifdef _LOW_ACCURACY_ -static inline ogg_int32_t vorbis_fromdBlook_i(long a){ - if(a>0) return 0x7fffffff; - if(a<(int)(((unsigned)-140)<<12)) return 0; - return FLOOR_fromdB_LOOKUP[((a+140)*467)>>20]<<9; -} -#else -static inline ogg_int32_t vorbis_fromdBlook_i(long a){ - if(a>0) return 0x7fffffff; - if(a<(int)(((unsigned)-140)<<12)) return 0; - return FLOOR_fromdB_LOOKUP[((a+(140<<12))*467)>>20]; -} -#endif - -/* interpolated lookup based cos function, domain 0 to PI only */ -/* a is in 0.16 format, where 0==0, 2^^16-1==PI, return 0.14 */ -static inline ogg_int32_t vorbis_coslook_i(long a){ - int i=a>>COS_LOOKUP_I_SHIFT; - int d=a&COS_LOOKUP_I_MASK; - return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>> - COS_LOOKUP_I_SHIFT); -} - -/* interpolated half-wave lookup based cos function */ -/* a is in 0.16 format, where 0==0, 2^^16==PI, return .LSP_FRACBITS */ -static inline ogg_int32_t vorbis_coslook2_i(long a){ - int i=a>>COS_LOOKUP_I_SHIFT; - int d=a&COS_LOOKUP_I_MASK; - return ((COS_LOOKUP_I[i]<> - (COS_LOOKUP_I_SHIFT-LSP_FRACBITS+14); -} - -static const ogg_uint16_t barklook[54]={ - 0,51,102,154, 206,258,311,365, - 420,477,535,594, 656,719,785,854, - 926,1002,1082,1166, 1256,1352,1454,1564, - 1683,1812,1953,2107, 2276,2463,2670,2900, - 3155,3440,3756,4106, 4493,4919,5387,5901, - 6466,7094,7798,8599, 9528,10623,11935,13524, - 15453,17775,20517,23667, 27183,31004 -}; - -/* used in init only; interpolate the long way */ -static inline ogg_int32_t toBARK(int n){ - int i; - for(i=0;i<54;i++) - if(n>=barklook[i] && n>17); - } -} - -static const unsigned char MLOOP_1[64]={ - 0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13, - 14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, -}; - -static const unsigned char MLOOP_2[64]={ - 0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7, - 8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8, - 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, - 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, -}; - -static const unsigned char MLOOP_3[8]={0,1,2,2,3,3,3,3}; - -void vorbis_lsp_to_curve(ogg_int32_t *curve,int n,int ln, - ogg_int32_t *lsp,int m, - ogg_int32_t amp, - ogg_int32_t ampoffset, - ogg_int32_t nyq){ - - /* 0 <= m < 256 */ - - /* set up for using all int later */ - int i; - int ampoffseti=ampoffset*4096; - int ampi=amp; - ogg_int32_t *ilsp=(ogg_int32_t *)alloca(m*sizeof(*ilsp)); - - ogg_uint32_t inyq= (1UL<<31) / toBARK(nyq); - ogg_uint32_t imap= (1UL<<31) / ln; - ogg_uint32_t tBnyq1 = toBARK(nyq)<<1; - - /* Besenham for frequency scale to avoid a division */ - int f=0; - int fdx=n; - int fbase=nyq/fdx; - int ferr=0; - int fdy=nyq-fbase*fdx; - int map=0; - -#ifdef _LOW_ACCURACY_ - ogg_uint32_t nextbark=((tBnyq1<<11)/ln)>>12; -#else - ogg_uint32_t nextbark=MULT31(imap>>1,tBnyq1); -#endif - int nextf=barklook[nextbark>>14]+(((nextbark&0x3fff)* - (barklook[(nextbark>>14)+1]-barklook[nextbark>>14]))>>14); - - /* lsp is in 8.24, range 0 to PI; coslook wants it in .16 0 to 1*/ - for(i=0;i>10)*0x517d)>>14; -#endif - - /* safeguard against a malicious stream */ - if(val<0 || (val>>COS_LOOKUP_I_SHIFT)>=COS_LOOKUP_I_SZ){ - memset(curve,0,sizeof(*curve)*n); - return; - } - - ilsp[i]=vorbis_coslook_i(val); - } - - i=0; - while(i>15); - - -#ifdef _V_LSP_MATH_ASM - lsp_loop_asm(&qi,&pi,&qexp,ilsp,wi,m); - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - - if(m&1){ - qexp= qexp*2-28*((m+1)>>1)+m; - pi*=(1<<14)-((wi*wi)>>14); - qi+=pi>>14; - }else{ - qexp= qexp*2-13*m; - - pi*=(1<<14)-wi; - qi*=(1<<14)+wi; - - qi=(qi+pi)>>14; - } - - if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ - qi>>=1; qexp++; - }else - lsp_norm_asm(&qi,&qexp); - -#else - - qi*=labs(ilsp[0]-wi); - pi*=labs(ilsp[1]-wi); - - for(j=3;j>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - - qi=(qi>>shift)*labs(ilsp[j-1]-wi); - pi=(pi>>shift)*labs(ilsp[j]-wi); - qexp+=shift; - } - if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - - /* pi,qi normalized collectively, both tracked using qexp */ - - if(m&1){ - /* odd order filter; slightly assymetric */ - /* the last coefficient */ - qi=(qi>>shift)*labs(ilsp[j-1]-wi); - pi=(pi>>shift)<<14; - qexp+=shift; - - if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - - pi>>=shift; - qi>>=shift; - qexp+=shift-14*((m+1)>>1); - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - qexp=qexp*2+m; - - pi*=(1<<14)-((wi*wi)>>14); - qi+=pi>>14; - - }else{ - /* even order filter; still symmetric */ - - /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't - worth tracking step by step */ - - pi>>=shift; - qi>>=shift; - qexp+=shift-7*m; - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - qexp=qexp*2+m; - - pi*=(1<<14)-wi; - qi*=(1<<14)+wi; - qi=(qi+pi)>>14; - - } - - - /* we've let the normalization drift because it wasn't important; - however, for the lookup, things must be normalized again. We - need at most one right shift or a number of left shifts */ - - if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ - qi>>=1; qexp++; - }else - while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/ - qi<<=1; qexp--; - } - -#endif - - amp=vorbis_fromdBlook_i(ampi* /* n.4 */ - vorbis_invsqlook_i(qi,qexp)- - /* m.8, m+n<=8 */ - ampoffseti); /* 8.12[0] */ - -#ifdef _LOW_ACCURACY_ - amp>>=9; -#endif - curve[i]= MULT31_SHIFT15(curve[i],amp); - - while(++i=fdx){ - ferr-=fdx; - f++; - } - f+=fbase; - - if(f>=nextf)break; - - curve[i]= MULT31_SHIFT15(curve[i],amp); - } - - while(1){ - map++; - - if(map+1>12; -#else - nextbark=MULT31((map+1)*(imap>>1),tBnyq1); -#endif - nextf=barklook[nextbark>>14]+ - (((nextbark&0x3fff)* - (barklook[(nextbark>>14)+1]-barklook[nextbark>>14]))>>14); - if(f<=nextf)break; - - }else{ - nextf=9999999; - break; - } - } - if(map>=ln){ - map=ln-1; /* guard against the approximation */ - nextf=9999999; - } - } -} - -/*************** vorbis decode glue ************/ - -void floor0_free_info(vorbis_info_floor *i){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - if(info)_ogg_free(info); -} - -vorbis_info_floor *floor0_info_unpack (vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - int j; - - vorbis_info_floor0 *info=(vorbis_info_floor0 *)_ogg_malloc(sizeof(*info)); - info->order=oggpack_read(opb,8); - info->rate=oggpack_read(opb,16); - info->barkmap=oggpack_read(opb,16); - info->ampbits=oggpack_read(opb,6); - info->ampdB=oggpack_read(opb,8); - info->numbooks=oggpack_read(opb,4)+1; - - if(info->order<1)goto err_out; - if(info->rate<1)goto err_out; - if(info->barkmap<1)goto err_out; - - for(j=0;jnumbooks;j++){ - info->books[j]=(char)oggpack_read(opb,8); - if(info->books[j]>=ci->books)goto err_out; - } - - if(oggpack_eop(opb))goto err_out; - return(info); - - err_out: - floor0_free_info(info); - return(NULL); -} - -int floor0_memosize(vorbis_info_floor *i){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - return info->order+1; -} - -ogg_int32_t *floor0_inverse1(vorbis_dsp_state *vd,vorbis_info_floor *i, - ogg_int32_t *lsp){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - int j,k; - - int ampraw=oggpack_read(&vd->opb,info->ampbits); - if(ampraw>0){ /* also handles the -1 out of data case */ - long maxval=(1<ampbits)-1; - int amp=((ampraw*info->ampdB)<<4)/maxval; - int booknum=oggpack_read(&vd->opb,_ilog(info->numbooks)); - - if(booknum!=-1 && booknumnumbooks){ /* be paranoid */ - codec_setup_info *ci=(codec_setup_info *)vd->vi->codec_setup; - codebook *b=ci->book_param+info->books[booknum]; - ogg_int32_t last=0; - - for(j=0;jorder;j+=b->dim) - if(vorbis_book_decodev_set(b,lsp+j,&vd->opb,b->dim,-24)==-1)goto eop; - for(j=0;jorder;){ - for(k=0;kdim;k++,j++)lsp[j]+=last; - last=lsp[j-1]; - } - - lsp[info->order]=amp; - return(lsp); - } - } - eop: - return(NULL); -} - -int floor0_inverse2(vorbis_dsp_state *vd,vorbis_info_floor *i, - ogg_int32_t *lsp,ogg_int32_t *out){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - codec_setup_info *ci=(codec_setup_info *)vd->vi->codec_setup; - - if(lsp){ - ogg_int32_t amp=lsp[info->order]; - - /* take the coefficients back to a spectral envelope curve */ - vorbis_lsp_to_curve(out,ci->blocksizes[vd->W]/2,info->barkmap, - lsp,info->order,amp,info->ampdB, - info->rate>>1); - return(1); - } - memset(out,0,sizeof(*out)*ci->blocksizes[vd->W]/2); - return(0); -} - diff --git a/external/android-specific/tremolo/Tremolo/floor1.c b/external/android-specific/tremolo/Tremolo/floor1.c deleted file mode 100644 index 3799f50..0000000 --- a/external/android-specific/tremolo/Tremolo/floor1.c +++ /dev/null @@ -1,407 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: floor backend 1 implementation - - ************************************************************************/ - -#include -#include -#include -#include "ogg.h" -#include "ivorbiscodec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "misc.h" - -extern const ogg_int32_t FLOOR_fromdB_LOOKUP[]; -#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */ -#define VIF_POSIT 63 - -/***********************************************/ - -void floor1_free_info(vorbis_info_floor *i){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; - if(info){ - if(info->klass)_ogg_free(info->klass); - if(info->partitionclass)_ogg_free(info->partitionclass); - if(info->postlist)_ogg_free(info->postlist); - if(info->forward_index)_ogg_free(info->forward_index); - if(info->hineighbor)_ogg_free(info->hineighbor); - if(info->loneighbor)_ogg_free(info->loneighbor); - memset(info,0,sizeof(*info)); - _ogg_free(info); - } -} - -static int ilog(unsigned int v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -static void floor1_mergesort(ogg_uint8_t *index,ogg_uint16_t *vals,ogg_uint16_t n){ - ogg_uint16_t i,j; - ogg_uint8_t *temp,*A=index,*B=_ogg_malloc(n*sizeof(*B)); - - for(i=1;icodec_setup; - int j,k,count=0,maxclass=-1,rangebits; - - vorbis_info_floor1 *info=(vorbis_info_floor1 *)_ogg_calloc(1,sizeof(*info)); - /* read partitions */ - info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */ - info->partitionclass= - (ogg_uint8_t *)_ogg_malloc(info->partitions*sizeof(*info->partitionclass)); - for(j=0;jpartitions;j++){ - info->partitionclass[j]=(char)oggpack_read(opb,4); /* only 0 to 15 legal */ - if(maxclasspartitionclass[j])maxclass=info->partitionclass[j]; - } - - /* read partition classes */ - info->klass= - (floor1class *)_ogg_malloc((maxclass+1)*sizeof(*info->klass)); - for(j=0;jklass[j].class_dim=(char)oggpack_read(opb,3)+1; /* 1 to 8 */ - info->klass[j].class_subs=(char)oggpack_read(opb,2); /* 0,1,2,3 bits */ - if(oggpack_eop(opb)<0) goto err_out; - if(info->klass[j].class_subs) - info->klass[j].class_book=(unsigned char)oggpack_read(opb,8); - else - info->klass[j].class_book=0; - if(info->klass[j].class_book>=ci->books)goto err_out; - for(k=0;k<(1<klass[j].class_subs);k++){ - info->klass[j].class_subbook[k]=(unsigned char)(oggpack_read(opb,8)-1); - if(info->klass[j].class_subbook[k]>=ci->books && - info->klass[j].class_subbook[k]!=0xff)goto err_out; - } - } - - /* read the post list */ - info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */ - rangebits=oggpack_read(opb,4); - - for(j=0,k=0;jpartitions;j++) - count+=info->klass[info->partitionclass[j]].class_dim; - info->postlist= - (ogg_uint16_t *)_ogg_malloc((count+2)*sizeof(*info->postlist)); - info->forward_index= - (ogg_uint8_t *)_ogg_malloc((count+2)*sizeof(*info->forward_index)); - info->loneighbor= - (ogg_uint8_t *)_ogg_malloc(count*sizeof(*info->loneighbor)); - info->hineighbor= - (ogg_uint8_t *)_ogg_malloc(count*sizeof(*info->hineighbor)); - - count=0; - for(j=0,k=0;jpartitions;j++){ - count+=info->klass[info->partitionclass[j]].class_dim; - for(;kpostlist[k+2]=(ogg_uint16_t)oggpack_read(opb,rangebits); - if(t>=(1<postlist[0]=0; - info->postlist[1]=1<posts=count+2; - - /* also store a sorted position index */ - for(j=0;jposts;j++)info->forward_index[j]=j; - floor1_mergesort(info->forward_index,info->postlist,info->posts); - - /* discover our neighbors for decode where we don't use fit flags - (that would push the neighbors outward) */ - for(j=0;jposts-2;j++){ - int lo=0; - int hi=1; - int lx=0; - int hx=info->postlist[1]; - int currentx=info->postlist[j+2]; - for(k=0;kpostlist[k]; - if(x>lx && xcurrentx){ - hi=k; - hx=x; - } - } - info->loneighbor[j]=lo; - info->hineighbor[j]=hi; - } - - return(info); - - err_out: - floor1_free_info(info); - return(NULL); -} - -#ifdef ONLY_C -static -#endif -int render_point(int x0,int x1,int y0,int y1,int x){ - y0&=0x7fff; /* mask off flag */ - y1&=0x7fff; - - { - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int err=ady*(x-x0); - - int off=err/adx; - if(dy<0)return(y0-off); - return(y0+off); - } -} - -#ifndef ONLY_C -void render_lineARM(int n, ogg_int32_t *d,const ogg_int32_t *floor, int base, int err, int adx, int ady); -#endif - -static void render_line(int n,int x0,int x1,int y0,int y1,ogg_int32_t *d){ - int dy; - int adx; - int ady; - int base; - int err; - const ogg_int32_t *floor; - - if(n>x1)n=x1; - n -= x0; - if (n <= 0 || y0 < 0 || y0 > 255 || y1 < 0 || y1 > 255) { - return; - } - dy=y1-y0; - adx=x1-x0; - ady=abs(dy); - base=dy/adx; - err=adx-1; - floor=&FLOOR_fromdB_LOOKUP[y0]; - d += x0; - ady-=abs(base*adx); - - /* We should add base each time, and then: - * if dy >=0 we occasionally add 1 - * else occasionally subtract 1. - * As an optimisation we say that if dy <0 we make base 1 smaller. - * Then we need to add 1 occassionally, rather than subtract 1 - but we - * need to add 1 in all the cases when we wouldn't have done so before. - * Previously we'd have added 1 (100*ady/adx)% of the time. Now we want - * to do so (100*(adx-ady)/adx)% of the time. - */ - if (dy < 0){ - base--; - ady = adx-ady; - err = 0; - } - - //if(x0); -#else - render_lineARM(n,d,floor,base,err,adx,ady); -#endif -} - -int floor1_memosize(vorbis_info_floor *i){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; - return info->posts; -} - -static int quant_look[4]={256,128,86,64}; - -ogg_int32_t *floor1_inverse1(vorbis_dsp_state *vd,vorbis_info_floor *in, - ogg_int32_t *fit_value){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)in; - codec_setup_info *ci=(codec_setup_info *)vd->vi->codec_setup; - - int i,j,k; - codebook *books=ci->book_param; - int quant_q=quant_look[info->mult-1]; - - /* unpack wrapped/predicted values from stream */ - if(oggpack_read(&vd->opb,1)==1){ - fit_value[0]=oggpack_read(&vd->opb,ilog(quant_q-1)); - fit_value[1]=oggpack_read(&vd->opb,ilog(quant_q-1)); - - /* partition by partition */ - /* partition by partition */ - for(i=0,j=2;ipartitions;i++){ - int classv=info->partitionclass[i]; - int cdim=info->klass[classv].class_dim; - int csubbits=info->klass[classv].class_subs; - int csub=1<klass[classv].class_book,&vd->opb); - - if(cval==-1)goto eop; - } - - for(k=0;kklass[classv].class_subbook[cval&(csub-1)]; - cval>>=csubbits; - if(book!=0xff){ - if((fit_value[j+k]=vorbis_book_decode(books+book,&vd->opb))==-1) - goto eop; - }else{ - fit_value[j+k]=0; - } - } - j+=cdim; - } - - /* unwrap positive values and reconsitute via linear interpolation */ - for(i=2;iposts;i++){ - int predicted=render_point(info->postlist[info->loneighbor[i-2]], - info->postlist[info->hineighbor[i-2]], - fit_value[info->loneighbor[i-2]], - fit_value[info->hineighbor[i-2]], - info->postlist[i]); - int hiroom=quant_q-predicted; - int loroom=predicted; - int room=(hiroom=room){ - if(hiroom>loroom){ - val = val-loroom; - }else{ - val = -1-(val-hiroom); - } - }else{ - if(val&1){ - val= -((val+1)>>1); - }else{ - val>>=1; - } - } - - fit_value[i]=val+predicted; - fit_value[info->loneighbor[i-2]]&=0x7fff; - fit_value[info->hineighbor[i-2]]&=0x7fff; - - }else{ - fit_value[i]=predicted|0x8000; - } - - } - - return(fit_value); - } - eop: - return(NULL); -} - -int floor1_inverse2(vorbis_dsp_state *vd,vorbis_info_floor *in, - ogg_int32_t *fit_value,ogg_int32_t *out){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)in; - - codec_setup_info *ci=(codec_setup_info *)vd->vi->codec_setup; - int n=ci->blocksizes[vd->W]/2; - int j; - - if(fit_value){ - /* render the lines */ - int hx=0; - int lx=0; - int ly=fit_value[0]*info->mult; - for(j=1;jposts;j++){ - int current=info->forward_index[j]; - int hy=fit_value[current]&0x7fff; - if(hy==fit_value[current]){ - - hy*=info->mult; - hx=info->postlist[current]; - - render_line(n,lx,hx,ly,hy,out); - - lx=hx; - ly=hy; - } - } - for(j=hx;j = err - @ <> = adx - @ <> = ady - MOV r12,r13 - STMFD r13!,{r4-r6,r11,r14} - LDMFD r12,{r11,r12,r14} @ r11 = err - @ r12 = adx - @ r14 = ady -rl_loop: - LDR r4,[r1] @ r4 = *d - LDR r5,[r2],r3,LSL #2 @ r5 = *floor r2 = floor+base - SUBS r11,r11,r14 @ err -= ady - ADDLT r11,r11,r12 @ if (err < 0) err+=adx - SMULL r6, r5, r4, r5 @ (r6,r5) = *d * *floor - ADDLT r2, r2, #4 @ floor+=1 - MOVS r6, r6, LSR #15 - ADC r5, r6, r5, LSL #17 @ r5 = MULT31_SHIFT15 - STR r5,[r1],#4 - SUBS r0, r0, #1 - BGT rl_loop - - LDMFD r13!,{r4-r6,r11,PC} - - @ END diff --git a/external/android-specific/tremolo/Tremolo/floor1LARM.s b/external/android-specific/tremolo/Tremolo/floor1LARM.s deleted file mode 100644 index 48b794c..0000000 --- a/external/android-specific/tremolo/Tremolo/floor1LARM.s +++ /dev/null @@ -1,66 +0,0 @@ -@ Tremolo library -@----------------------------------------------------------------------- -@ Copyright (C) 2002-2009, Xiph.org Foundation -@ Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd -@ All rights reserved. - -@ Redistribution and use in source and binary forms, with or without -@ modification, are permitted provided that the following conditions -@ are met: - -@ * Redistributions of source code must retain the above copyright -@ notice, this list of conditions and the following disclaimer. -@ * Redistributions in binary form must reproduce the above -@ copyright notice, this list of conditions and the following disclaimer -@ in the documentation and/or other materials provided with the -@ distribution. -@ * Neither the names of the Xiph.org Foundation nor Pinknoise -@ Productions Ltd nor the names of its contributors may be used to -@ endorse or promote products derived from this software without -@ specific prior written permission. -@ -@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -@ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -@ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -@ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -@ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -@ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -@ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ ---------------------------------------------------------------------- - - .text - - .global render_lineARM - -render_lineARM: - @ r0 = n - @ r1 = d - @ r2 = floor - @ r3 = base - @ <> = err - @ <> = adx - @ <> = ady - MOV r12,r13 - STMFD r13!,{r4-r6,r11,r14} - LDMFD r12,{r11,r12,r14} @ r11 = err - @ r12 = adx - @ r14 = ady -rl_loop: - LDR r4, [r1] @ r4 = *d - LDR r5, [r2], r3,LSL #2 @ r5 = *floor r2 = floor+base - SUBS r11,r11,r14 @ err -= ady - MOV r4, r4, ASR #6 - MUL r5, r4, r5 @ r5 = MULT31_SHIFT15 - ADDLT r11,r11,r12 @ if (err < 0) err+=adx - ADDLT r2, r2, #4 @ floor+=1 - SUBS r0, r0, #1 - STR r5, [r1], #4 - BGT rl_loop - - LDMFD r13!,{r4-r6,r11,PC} - - @ END diff --git a/external/android-specific/tremolo/Tremolo/floor_lookup.c b/external/android-specific/tremolo/Tremolo/floor_lookup.c deleted file mode 100644 index 91c585c..0000000 --- a/external/android-specific/tremolo/Tremolo/floor_lookup.c +++ /dev/null @@ -1,112 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: floor dB lookup - - ************************************************************************/ - -#include "os.h" - -#ifdef _LOW_ACCURACY_ -# define XdB(n) ((((n)>>8)+1)>>1) -#else -# define XdB(n) (n) -#endif - -const ogg_int32_t FLOOR_fromdB_LOOKUP[256]={ - XdB(0x000000e5), XdB(0x000000f4), XdB(0x00000103), XdB(0x00000114), - XdB(0x00000126), XdB(0x00000139), XdB(0x0000014e), XdB(0x00000163), - XdB(0x0000017a), XdB(0x00000193), XdB(0x000001ad), XdB(0x000001c9), - XdB(0x000001e7), XdB(0x00000206), XdB(0x00000228), XdB(0x0000024c), - XdB(0x00000272), XdB(0x0000029b), XdB(0x000002c6), XdB(0x000002f4), - XdB(0x00000326), XdB(0x0000035a), XdB(0x00000392), XdB(0x000003cd), - XdB(0x0000040c), XdB(0x00000450), XdB(0x00000497), XdB(0x000004e4), - XdB(0x00000535), XdB(0x0000058c), XdB(0x000005e8), XdB(0x0000064a), - XdB(0x000006b3), XdB(0x00000722), XdB(0x00000799), XdB(0x00000818), - XdB(0x0000089e), XdB(0x0000092e), XdB(0x000009c6), XdB(0x00000a69), - XdB(0x00000b16), XdB(0x00000bcf), XdB(0x00000c93), XdB(0x00000d64), - XdB(0x00000e43), XdB(0x00000f30), XdB(0x0000102d), XdB(0x0000113a), - XdB(0x00001258), XdB(0x0000138a), XdB(0x000014cf), XdB(0x00001629), - XdB(0x0000179a), XdB(0x00001922), XdB(0x00001ac4), XdB(0x00001c82), - XdB(0x00001e5c), XdB(0x00002055), XdB(0x0000226f), XdB(0x000024ac), - XdB(0x0000270e), XdB(0x00002997), XdB(0x00002c4b), XdB(0x00002f2c), - XdB(0x0000323d), XdB(0x00003581), XdB(0x000038fb), XdB(0x00003caf), - XdB(0x000040a0), XdB(0x000044d3), XdB(0x0000494c), XdB(0x00004e10), - XdB(0x00005323), XdB(0x0000588a), XdB(0x00005e4b), XdB(0x0000646b), - XdB(0x00006af2), XdB(0x000071e5), XdB(0x0000794c), XdB(0x0000812e), - XdB(0x00008993), XdB(0x00009283), XdB(0x00009c09), XdB(0x0000a62d), - XdB(0x0000b0f9), XdB(0x0000bc79), XdB(0x0000c8b9), XdB(0x0000d5c4), - XdB(0x0000e3a9), XdB(0x0000f274), XdB(0x00010235), XdB(0x000112fd), - XdB(0x000124dc), XdB(0x000137e4), XdB(0x00014c29), XdB(0x000161bf), - XdB(0x000178bc), XdB(0x00019137), XdB(0x0001ab4a), XdB(0x0001c70e), - XdB(0x0001e4a1), XdB(0x0002041f), XdB(0x000225aa), XdB(0x00024962), - XdB(0x00026f6d), XdB(0x000297f0), XdB(0x0002c316), XdB(0x0002f109), - XdB(0x000321f9), XdB(0x00035616), XdB(0x00038d97), XdB(0x0003c8b4), - XdB(0x000407a7), XdB(0x00044ab2), XdB(0x00049218), XdB(0x0004de23), - XdB(0x00052f1e), XdB(0x0005855c), XdB(0x0005e135), XdB(0x00064306), - XdB(0x0006ab33), XdB(0x00071a24), XdB(0x0007904b), XdB(0x00080e20), - XdB(0x00089422), XdB(0x000922da), XdB(0x0009bad8), XdB(0x000a5cb6), - XdB(0x000b091a), XdB(0x000bc0b1), XdB(0x000c8436), XdB(0x000d5471), - XdB(0x000e3233), XdB(0x000f1e5f), XdB(0x001019e4), XdB(0x001125c1), - XdB(0x00124306), XdB(0x001372d5), XdB(0x0014b663), XdB(0x00160ef7), - XdB(0x00177df0), XdB(0x001904c1), XdB(0x001aa4f9), XdB(0x001c603d), - XdB(0x001e384f), XdB(0x00202f0f), XdB(0x0022467a), XdB(0x002480b1), - XdB(0x0026dff7), XdB(0x002966b3), XdB(0x002c1776), XdB(0x002ef4fc), - XdB(0x0032022d), XdB(0x00354222), XdB(0x0038b828), XdB(0x003c67c2), - XdB(0x004054ae), XdB(0x004482e8), XdB(0x0048f6af), XdB(0x004db488), - XdB(0x0052c142), XdB(0x005821ff), XdB(0x005ddc33), XdB(0x0063f5b0), - XdB(0x006a74a7), XdB(0x00715faf), XdB(0x0078bdce), XdB(0x0080967f), - XdB(0x0088f1ba), XdB(0x0091d7f9), XdB(0x009b5247), XdB(0x00a56a41), - XdB(0x00b02a27), XdB(0x00bb9ce2), XdB(0x00c7ce12), XdB(0x00d4ca17), - XdB(0x00e29e20), XdB(0x00f15835), XdB(0x0101074b), XdB(0x0111bb4e), - XdB(0x01238531), XdB(0x01367704), XdB(0x014aa402), XdB(0x016020a7), - XdB(0x017702c3), XdB(0x018f6190), XdB(0x01a955cb), XdB(0x01c4f9cf), - XdB(0x01e269a8), XdB(0x0201c33b), XdB(0x0223265a), XdB(0x0246b4ea), - XdB(0x026c9302), XdB(0x0294e716), XdB(0x02bfda13), XdB(0x02ed9793), - XdB(0x031e4e09), XdB(0x03522ee4), XdB(0x03896ed0), XdB(0x03c445e2), - XdB(0x0402efd6), XdB(0x0445ac4b), XdB(0x048cbefc), XdB(0x04d87013), - XdB(0x05290c67), XdB(0x057ee5ca), XdB(0x05da5364), XdB(0x063bb204), - XdB(0x06a36485), XdB(0x0711d42b), XdB(0x0787710e), XdB(0x0804b299), - XdB(0x088a17ef), XdB(0x0918287e), XdB(0x09af747c), XdB(0x0a50957e), - XdB(0x0afc2f19), XdB(0x0bb2ef7f), XdB(0x0c759034), XdB(0x0d44d6ca), - XdB(0x0e2195bc), XdB(0x0f0cad0d), XdB(0x10070b62), XdB(0x1111aeea), - XdB(0x122da66c), XdB(0x135c120f), XdB(0x149e24d9), XdB(0x15f525b1), - XdB(0x176270e3), XdB(0x18e7794b), XdB(0x1a85c9ae), XdB(0x1c3f06d1), - XdB(0x1e14f07d), XdB(0x200963d7), XdB(0x221e5ccd), XdB(0x2455f870), - XdB(0x26b2770b), XdB(0x29363e2b), XdB(0x2be3db5c), XdB(0x2ebe06b6), - XdB(0x31c7a55b), XdB(0x3503ccd4), XdB(0x3875c5aa), XdB(0x3c210f44), - XdB(0x4009632b), XdB(0x4432b8cf), XdB(0x48a149bc), XdB(0x4d59959e), - XdB(0x52606733), XdB(0x57bad899), XdB(0x5d6e593a), XdB(0x6380b298), - XdB(0x69f80e9a), XdB(0x70dafda8), XdB(0x78307d76), XdB(0x7fffffff), -}; - diff --git a/external/android-specific/tremolo/Tremolo/framing.c b/external/android-specific/tremolo/Tremolo/framing.c deleted file mode 100644 index 4aca8ba..0000000 --- a/external/android-specific/tremolo/Tremolo/framing.c +++ /dev/null @@ -1,1169 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: decode Ogg streams back into raw packets - - note: The CRC code is directly derived from public domain code by - Ross Williams (ross@guest.adelaide.edu.au). See docs/framing.html - for details. - - ************************************************************************/ - -#include -#include -#include "ogg.h" -#include "misc.h" - - -/* A complete description of Ogg framing exists in docs/framing.html */ - -/* basic, centralized Ogg memory management based on linked lists of - references to refcounted memory buffers. References and buffers - are both recycled. Buffers are passed around and consumed in - reference form. */ - -static ogg_buffer_state *ogg_buffer_create(void){ - ogg_buffer_state *bs=_ogg_calloc(1,sizeof(*bs)); - return bs; -} - -/* destruction is 'lazy'; there may be memory references outstanding, - and yanking the buffer state out from underneath would be - antisocial. Dealloc what is currently unused and have - _release_one watch for the stragglers to come in. When they do, - finish destruction. */ - -/* call the helper while holding lock */ -static void _ogg_buffer_destroy(ogg_buffer_state *bs){ - ogg_buffer *bt; - ogg_reference *rt; - - if(bs->shutdown){ - - bt=bs->unused_buffers; - rt=bs->unused_references; - - while(bt){ - ogg_buffer *b=bt; - bt=b->ptr.next; - if(b->data)_ogg_free(b->data); - _ogg_free(b); - } - bs->unused_buffers=0; - while(rt){ - ogg_reference *r=rt; - rt=r->next; - _ogg_free(r); - } - bs->unused_references=0; - - if(!bs->outstanding) - _ogg_free(bs); - - } -} - -static void ogg_buffer_destroy(ogg_buffer_state *bs){ - bs->shutdown=1; - _ogg_buffer_destroy(bs); -} - -static ogg_buffer *_fetch_buffer(ogg_buffer_state *bs,long bytes){ - ogg_buffer *ob; - bs->outstanding++; - - /* do we have an unused buffer sitting in the pool? */ - if(bs->unused_buffers){ - ob=bs->unused_buffers; - bs->unused_buffers=ob->ptr.next; - - /* if the unused buffer is too small, grow it */ - if(ob->sizedata=_ogg_realloc(ob->data,bytes); - ob->size=bytes; - } - }else{ - /* allocate a new buffer */ - ob=_ogg_malloc(sizeof(*ob)); - ob->data=_ogg_malloc(bytes<16?16:bytes); - ob->size=bytes; - } - - ob->refcount=1; - ob->ptr.owner=bs; - return ob; -} - -static ogg_reference *_fetch_ref(ogg_buffer_state *bs){ - ogg_reference *or; - bs->outstanding++; - - /* do we have an unused reference sitting in the pool? */ - if(bs->unused_references){ - or=bs->unused_references; - bs->unused_references=or->next; - }else{ - /* allocate a new reference */ - or=_ogg_malloc(sizeof(*or)); - } - - or->begin=0; - or->length=0; - or->next=0; - return or; -} - -/* fetch a reference pointing to a fresh, initially continguous buffer - of at least [bytes] length */ -static ogg_reference *ogg_buffer_alloc(ogg_buffer_state *bs,long bytes){ - ogg_buffer *ob=_fetch_buffer(bs,bytes); - ogg_reference *or=_fetch_ref(bs); - or->buffer=ob; - return or; -} - -/* enlarge the data buffer in the current link */ -static void ogg_buffer_realloc(ogg_reference *or,long bytes){ - ogg_buffer *ob=or->buffer; - - /* if the unused buffer is too small, grow it */ - if(ob->sizedata=_ogg_realloc(ob->data,bytes); - ob->size=bytes; - } -} - -static void _ogg_buffer_mark_one(ogg_reference *or){ - or->buffer->refcount++; -} - -/* increase the refcount of the buffers to which the reference points */ -static void ogg_buffer_mark(ogg_reference *or){ - while(or){ - _ogg_buffer_mark_one(or); - or=or->next; - } -} - -/* duplicate a reference (pointing to the same actual buffer memory) - and increment buffer refcount. If the desired segment is zero - length, a zero length ref is returned. */ -static ogg_reference *ogg_buffer_sub(ogg_reference *or,long length){ - ogg_reference *ret=0,*head=0; - - /* duplicate the reference chain; increment refcounts */ - while(or && length){ - ogg_reference *temp=_fetch_ref(or->buffer->ptr.owner); - if(head) - head->next=temp; - else - ret=temp; - head=temp; - head->buffer=or->buffer; - head->begin=or->begin; - head->length=length; - if(head->length>or->length) - head->length=or->length; - - length-=head->length; - or=or->next; - } - - ogg_buffer_mark(ret); - return ret; -} - -ogg_reference *ogg_buffer_dup(ogg_reference *or){ - ogg_reference *ret=0,*head=0; - /* duplicate the reference chain; increment refcounts */ - while(or){ - ogg_reference *temp=_fetch_ref(or->buffer->ptr.owner); - if(head) - head->next=temp; - else - ret=temp; - head=temp; - head->buffer=or->buffer; - head->begin=or->begin; - head->length=or->length; - or=or->next; - } - - ogg_buffer_mark(ret); - return ret; -} - -/* split a reference into two references; 'return' is a reference to - the buffer preceeding pos and 'head'/'tail' are the buffer past the - split. If pos is at or past the end of the passed in segment, - 'head/tail' are NULL */ -static ogg_reference *ogg_buffer_split(ogg_reference **tail, - ogg_reference **head,long pos){ - - /* walk past any preceeding fragments to one of: - a) the exact boundary that seps two fragments - b) the fragment that needs split somewhere in the middle */ - ogg_reference *ret=*tail; - ogg_reference *or=*tail; - - while(or && pos>or->length){ - pos-=or->length; - or=or->next; - } - - if(!or || pos==0){ - - return 0; - - }else{ - - if(pos>=or->length){ - /* exact split, or off the end? */ - if(or->next){ - - /* a split */ - *tail=or->next; - or->next=0; - - }else{ - - /* off or at the end */ - *tail=*head=0; - - } - }else{ - - /* split within a fragment */ - long lengthA=pos; - long beginB=or->begin+pos; - long lengthB=or->length-pos; - - /* make a new reference to tail the second piece */ - *tail=_fetch_ref(or->buffer->ptr.owner); - - (*tail)->buffer=or->buffer; - (*tail)->begin=beginB; - (*tail)->length=lengthB; - (*tail)->next=or->next; - _ogg_buffer_mark_one(*tail); - if(head && or==*head)*head=*tail; - - /* update the first piece */ - or->next=0; - or->length=lengthA; - - } - } - return ret; -} - -static void ogg_buffer_release_one(ogg_reference *or){ - ogg_buffer *ob=or->buffer; - ogg_buffer_state *bs=ob->ptr.owner; - - ob->refcount--; - if(ob->refcount==0){ - bs->outstanding--; /* for the returned buffer */ - ob->ptr.next=bs->unused_buffers; - bs->unused_buffers=ob; - } - - bs->outstanding--; /* for the returned reference */ - or->next=bs->unused_references; - bs->unused_references=or; - - _ogg_buffer_destroy(bs); /* lazy cleanup (if needed) */ - -} - -/* release the references, decrease the refcounts of buffers to which - they point, release any buffers with a refcount that drops to zero */ -static void ogg_buffer_release(ogg_reference *or){ - while(or){ - ogg_reference *next=or->next; - ogg_buffer_release_one(or); - or=next; - } -} - -static ogg_reference *ogg_buffer_pretruncate(ogg_reference *or,long pos){ - /* release preceeding fragments we don't want */ - while(or && pos>=or->length){ - ogg_reference *next=or->next; - pos-=or->length; - ogg_buffer_release_one(or); - or=next; - } - if (or) { - or->begin+=pos; - or->length-=pos; - } - return or; -} - -static ogg_reference *ogg_buffer_walk(ogg_reference *or){ - if(!or)return NULL; - while(or->next){ - or=or->next; - } - return(or); -} - -/* *head is appended to the front end (head) of *tail; both continue to - be valid pointers, with *tail at the tail and *head at the head */ -static ogg_reference *ogg_buffer_cat(ogg_reference *tail, ogg_reference *head){ - if(!tail)return head; - - while(tail->next){ - tail=tail->next; - } - tail->next=head; - return ogg_buffer_walk(head); -} - -static void _positionB(oggbyte_buffer *b,int pos){ - if(pospos){ - /* start at beginning, scan forward */ - b->ref=b->baseref; - b->pos=0; - b->end=b->pos+b->ref->length; - b->ptr=b->ref->buffer->data+b->ref->begin; - } -} - -static void _positionF(oggbyte_buffer *b,int pos){ - /* scan forward for position */ - while(pos>=b->end){ - /* just seek forward */ - b->pos+=b->ref->length; - b->ref=b->ref->next; - b->end=b->ref->length+b->pos; - b->ptr=b->ref->buffer->data+b->ref->begin; - } -} - -static int oggbyte_init(oggbyte_buffer *b,ogg_reference *or){ - memset(b,0,sizeof(*b)); - if(or){ - b->ref=b->baseref=or; - b->pos=0; - b->end=b->ref->length; - b->ptr=b->ref->buffer->data+b->ref->begin; - return 0; - }else - return -1; -} - -static void oggbyte_set4(oggbyte_buffer *b,ogg_uint32_t val,int pos){ - int i; - _positionB(b,pos); - for(i=0;i<4;i++){ - _positionF(b,pos); - b->ptr[pos-b->pos]=val; - val>>=8; - ++pos; - } -} - -static unsigned char oggbyte_read1(oggbyte_buffer *b,int pos){ - _positionB(b,pos); - _positionF(b,pos); - return b->ptr[pos-b->pos]; -} - -static ogg_uint32_t oggbyte_read4(oggbyte_buffer *b,int pos){ - ogg_uint32_t ret; - _positionB(b,pos); - _positionF(b,pos); - ret=b->ptr[pos-b->pos]; - _positionF(b,++pos); - ret|=b->ptr[pos-b->pos]<<8; - _positionF(b,++pos); - ret|=b->ptr[pos-b->pos]<<16; - _positionF(b,++pos); - ret|=b->ptr[pos-b->pos]<<24; - return ret; -} - -static ogg_int64_t oggbyte_read8(oggbyte_buffer *b,int pos){ - ogg_int64_t ret; - unsigned char t[7]; - int i; - _positionB(b,pos); - for(i=0;i<7;i++){ - _positionF(b,pos); - t[i]=b->ptr[pos++ -b->pos]; - } - - _positionF(b,pos); - ret=b->ptr[pos-b->pos]; - - for(i=6;i>=0;--i) - ret= ret<<8 | t[i]; - - return ret; -} - -/* Now we get to the actual framing code */ - -int ogg_page_version(ogg_page *og){ - oggbyte_buffer ob; - if(oggbyte_init(&ob,og->header))return -1; - return oggbyte_read1(&ob,4); -} - -int ogg_page_continued(ogg_page *og){ - oggbyte_buffer ob; - if(oggbyte_init(&ob,og->header))return -1; - return oggbyte_read1(&ob,5)&0x01; -} - -int ogg_page_bos(ogg_page *og){ - oggbyte_buffer ob; - if(oggbyte_init(&ob,og->header))return -1; - return oggbyte_read1(&ob,5)&0x02; -} - -int ogg_page_eos(ogg_page *og){ - oggbyte_buffer ob; - if(oggbyte_init(&ob,og->header))return -1; - return oggbyte_read1(&ob,5)&0x04; -} - -ogg_int64_t ogg_page_granulepos(ogg_page *og){ - oggbyte_buffer ob; - if(oggbyte_init(&ob,og->header))return -1; - return oggbyte_read8(&ob,6); -} - -ogg_uint32_t ogg_page_serialno(ogg_page *og){ - oggbyte_buffer ob; - if(oggbyte_init(&ob,og->header)) return 0xffffffffUL; - return oggbyte_read4(&ob,14); -} - -ogg_uint32_t ogg_page_pageno(ogg_page *og){ - oggbyte_buffer ob; - if(oggbyte_init(&ob,og->header))return 0xffffffffUL; - return oggbyte_read4(&ob,18); -} - -/* returns the number of packets that are completed on this page (if - the leading packet is begun on a previous page, but ends on this - page, it's counted */ - -/* NOTE: -If a page consists of a packet begun on a previous page, and a new -packet begun (but not completed) on this page, the return will be: - ogg_page_packets(page) ==1, - ogg_page_continued(page) !=0 - -If a page happens to be a single packet that was begun on a -previous page, and spans to the next page (in the case of a three or -more page packet), the return will be: - ogg_page_packets(page) ==0, - ogg_page_continued(page) !=0 -*/ - -int ogg_page_packets(ogg_page *og){ - int i; - int n; - int count=0; - oggbyte_buffer ob; - oggbyte_init(&ob,og->header); - - n=oggbyte_read1(&ob,26); - for(i=0;ibufferpool=ogg_buffer_create(); -} - -ogg_sync_state *ogg_sync_create(void){ - ogg_sync_state *oy=_ogg_calloc(1,sizeof(*oy)); - memset(oy,0,sizeof(*oy)); - oy->bufferpool=ogg_buffer_create(); - return oy; -} - -int ogg_sync_clear(ogg_sync_state *oy){ - if(oy){ - ogg_sync_reset(oy); - ogg_buffer_destroy(oy->bufferpool); - memset(oy,0,sizeof(*oy)); - } - return OGG_SUCCESS; -} - -int ogg_sync_destroy(ogg_sync_state *oy){ - if(oy){ - ogg_sync_reset(oy); - ogg_buffer_destroy(oy->bufferpool); - memset(oy,0,sizeof(*oy)); - _ogg_free(oy); - } - return OGG_SUCCESS; -} - -unsigned char *ogg_sync_bufferin(ogg_sync_state *oy, long bytes){ - - /* [allocate and] expose a buffer for data submission. - - If there is no head fragment - allocate one and expose it - else - if the current head fragment has sufficient unused space - expose it - else - if the current head fragment is unused - resize and expose it - else - allocate new fragment and expose it - */ - - /* base case; fifo uninitialized */ - if(!oy->fifo_head){ - oy->fifo_head=oy->fifo_tail=ogg_buffer_alloc(oy->bufferpool,bytes); - return oy->fifo_head->buffer->data; - } - - /* space left in current fragment case */ - if(oy->fifo_head->buffer->size- - oy->fifo_head->length- - oy->fifo_head->begin >= bytes) - return oy->fifo_head->buffer->data+ - oy->fifo_head->length+oy->fifo_head->begin; - - /* current fragment is unused, but too small */ - if(!oy->fifo_head->length){ - ogg_buffer_realloc(oy->fifo_head,bytes); - return oy->fifo_head->buffer->data+oy->fifo_head->begin; - } - - /* current fragment used/full; get new fragment */ - { - ogg_reference *new=ogg_buffer_alloc(oy->bufferpool,bytes); - oy->fifo_head->next=new; - oy->fifo_head=new; - } - return oy->fifo_head->buffer->data; -} - -int ogg_sync_wrote(ogg_sync_state *oy, long bytes){ - if(!oy->fifo_head)return OGG_EINVAL; - if(oy->fifo_head->buffer->size-oy->fifo_head->length-oy->fifo_head->begin < - bytes)return OGG_EINVAL; - oy->fifo_head->length+=bytes; - oy->fifo_fill+=bytes; - return OGG_SUCCESS; -} - -#ifndef ONLY_C -ogg_uint32_t _checksum(ogg_reference *or, int bytes); -#else -static ogg_uint32_t _checksum(ogg_reference *or, int bytes){ - ogg_uint32_t crc_reg=0; - int j,post; - - while(or){ - unsigned char *data=or->buffer->data+or->begin; - post=(byteslength?bytes:or->length); - for(j=0;j> 24)&0xff)^data[j]]; - bytes-=j; - or=or->next; - } - - return crc_reg; -} -#endif - -/* sync the stream. This is meant to be useful for finding page - boundaries. - - return values for this: - -n) skipped n bytes - 0) page not ready; more data (no bytes skipped) - n) page synced at current location; page length n bytes - -*/ - -long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){ - oggbyte_buffer page; - long bytes,ret=0; - - ogg_page_release(og); - - bytes=oy->fifo_fill; - oggbyte_init(&page,oy->fifo_tail); - - if(oy->headerbytes==0){ - if(bytes<27)goto sync_out; /* not enough for even a minimal header */ - - /* verify capture pattern */ - if(oggbyte_read1(&page,0)!=(int)'O' || - oggbyte_read1(&page,1)!=(int)'g' || - oggbyte_read1(&page,2)!=(int)'g' || - oggbyte_read1(&page,3)!=(int)'S' ) goto sync_fail; - - oy->headerbytes=oggbyte_read1(&page,26)+27; - } - if(bytesheaderbytes)goto sync_out; /* not enough for header + - seg table */ - if(oy->bodybytes==0){ - int i; - /* count up body length in the segment table */ - for(i=0;iheaderbytes-27;i++) - oy->bodybytes+=oggbyte_read1(&page,27+i); - } - - if(oy->bodybytes+oy->headerbytes>bytes)goto sync_out; - - /* we have what appears to be a complete page; last test: verify - checksum */ - { - ogg_uint32_t chksum=oggbyte_read4(&page,22); - oggbyte_set4(&page,0,22); - - /* Compare checksums; memory continues to be common access */ - if(chksum!=_checksum(oy->fifo_tail,oy->bodybytes+oy->headerbytes)){ - - /* D'oh. Mismatch! Corrupt page (or miscapture and not a page - at all). replace the computed checksum with the one actually - read in; remember all the memory is common access */ - - oggbyte_set4(&page,chksum,22); - goto sync_fail; - } - oggbyte_set4(&page,chksum,22); - } - - /* We have a page. Set up page return. */ - if(og){ - /* set up page output */ - og->header=ogg_buffer_split(&oy->fifo_tail,&oy->fifo_head,oy->headerbytes); - og->header_len=oy->headerbytes; - og->body=ogg_buffer_split(&oy->fifo_tail,&oy->fifo_head,oy->bodybytes); - og->body_len=oy->bodybytes; - }else{ - /* simply advance */ - oy->fifo_tail= - ogg_buffer_pretruncate(oy->fifo_tail,oy->headerbytes+oy->bodybytes); - if(!oy->fifo_tail)oy->fifo_head=0; - } - - ret=oy->headerbytes+oy->bodybytes; - oy->unsynced=0; - oy->headerbytes=0; - oy->bodybytes=0; - oy->fifo_fill-=ret; - - return ret; - - sync_fail: - - oy->headerbytes=0; - oy->bodybytes=0; - oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,1); - ret--; - - /* search forward through fragments for possible capture */ - while(oy->fifo_tail){ - /* invariant: fifo_cursor points to a position in fifo_tail */ - unsigned char *now=oy->fifo_tail->buffer->data+oy->fifo_tail->begin; - unsigned char *next=memchr(now, 'O', oy->fifo_tail->length); - - if(next){ - /* possible capture in this segment */ - long bytes=next-now; - oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,bytes); - ret-=bytes; - break; - }else{ - /* no capture. advance to next segment */ - long bytes=oy->fifo_tail->length; - ret-=bytes; - oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,bytes); - } - } - if(!oy->fifo_tail)oy->fifo_head=0; - oy->fifo_fill+=ret; - - sync_out: - return ret; -} - -/* sync the stream and get a page. Keep trying until we find a page. - Supress 'sync errors' after reporting the first. - - return values: - OGG_HOLE) recapture (hole in data) - 0) need more data - 1) page returned - - Returns pointers into buffered data; invalidated by next call to - _stream, _clear, _init, or _buffer */ - -int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og){ - - /* all we need to do is verify a page at the head of the stream - buffer. If it doesn't verify, we look for the next potential - frame */ - - while(1){ - long ret=ogg_sync_pageseek(oy,og); - if(ret>0){ - /* have a page */ - return 1; - } - if(ret==0){ - /* need more data */ - return 0; - } - - /* head did not start a synced page... skipped some bytes */ - if(!oy->unsynced){ - oy->unsynced=1; - return OGG_HOLE; - } - - /* loop. keep looking */ - - } -} - -/* clear things to an initial state. Good to call, eg, before seeking */ -int ogg_sync_reset(ogg_sync_state *oy){ - - ogg_buffer_release(oy->fifo_tail); - oy->fifo_tail=0; - oy->fifo_head=0; - oy->fifo_fill=0; - - oy->unsynced=0; - oy->headerbytes=0; - oy->bodybytes=0; - return OGG_SUCCESS; -} - -void ogg_stream_init(ogg_stream_state *os, int serialno){ - memset(os, 0, sizeof(*os)); - os->serialno=serialno; - os->pageno=-1; -} - -ogg_stream_state *ogg_stream_create(int serialno){ - ogg_stream_state *os=_ogg_calloc(1,sizeof(*os)); - os->serialno=serialno; - os->pageno=-1; - return os; -} - -int ogg_stream_clear(ogg_stream_state *os){ - if(os){ - ogg_buffer_release(os->header_tail); - ogg_buffer_release(os->body_tail); - memset(os,0,sizeof(*os)); - } - return OGG_SUCCESS; -} - -int ogg_stream_destroy(ogg_stream_state *os){ - if(os){ - ogg_buffer_release(os->header_tail); - ogg_buffer_release(os->body_tail); - memset(os,0,sizeof(*os)); - _ogg_free(os); - } - return OGG_SUCCESS; -} - - -#define FINFLAG 0x80000000UL -#define FINMASK 0x7fffffffUL - -static void _next_lace(oggbyte_buffer *ob,ogg_stream_state *os){ - /* search ahead one lace */ - os->body_fill_next=0; - while(os->laceptrlacing_fill){ - int val=oggbyte_read1(ob,27+os->laceptr++); - os->body_fill_next+=val; - if(val<255){ - os->body_fill_next|=FINFLAG; - os->clearflag=1; - break; - } - } -} - -static void _span_queued_page(ogg_stream_state *os){ - while( !(os->body_fill&FINFLAG) ){ - - if(!os->header_tail)break; - - /* first flush out preceeding page header (if any). Body is - flushed as it's consumed, so that's not done here. */ - - if(os->lacing_fill>=0) - os->header_tail=ogg_buffer_pretruncate(os->header_tail, - os->lacing_fill+27); - os->lacing_fill=0; - os->laceptr=0; - os->clearflag=0; - - if(!os->header_tail){ - os->header_head=0; - break; - }else{ - - /* process/prepare next page, if any */ - - long pageno; - oggbyte_buffer ob; - ogg_page og; /* only for parsing header values */ - og.header=os->header_tail; /* only for parsing header values */ - pageno=ogg_page_pageno(&og); - - oggbyte_init(&ob,os->header_tail); - os->lacing_fill=oggbyte_read1(&ob,26); - - /* are we in sequence? */ - if(pageno!=os->pageno){ - if(os->pageno==-1) /* indicates seek or reset */ - os->holeflag=1; /* set for internal use */ - else - os->holeflag=2; /* set for external reporting */ - - os->body_tail=ogg_buffer_pretruncate(os->body_tail, - os->body_fill); - if(os->body_tail==0)os->body_head=0; - os->body_fill=0; - - } - - if(ogg_page_continued(&og)){ - if(os->body_fill==0){ - /* continued packet, but no preceeding data to continue */ - /* dump the first partial packet on the page */ - _next_lace(&ob,os); - os->body_tail= - ogg_buffer_pretruncate(os->body_tail,os->body_fill_next&FINMASK); - if(os->body_tail==0)os->body_head=0; - /* set span flag */ - if(!os->spanflag && !os->holeflag)os->spanflag=2; - } - }else{ - if(os->body_fill>0){ - /* preceeding data to continue, but not a continued page */ - /* dump body_fill */ - os->body_tail=ogg_buffer_pretruncate(os->body_tail, - os->body_fill); - if(os->body_tail==0)os->body_head=0; - os->body_fill=0; - - /* set espan flag */ - if(!os->spanflag && !os->holeflag)os->spanflag=2; - } - } - - if(os->laceptrlacing_fill){ - os->granulepos=ogg_page_granulepos(&og); - - /* get current packet size & flag */ - _next_lace(&ob,os); - os->body_fill+=os->body_fill_next; /* addition handles the flag fine; - unsigned on purpose */ - /* ...and next packet size & flag */ - _next_lace(&ob,os); - - } - - os->pageno=pageno+1; - os->e_o_s=ogg_page_eos(&og); - os->b_o_s=ogg_page_bos(&og); - - } - } -} - -/* add the incoming page to the stream state; we decompose the page - into packet segments here as well. */ - -int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){ - - int serialno=ogg_page_serialno(og); - int version=ogg_page_version(og); - - /* check the serial number */ - if(serialno!=os->serialno){ - //ogg_page_release(og); - return OGG_ESERIAL; - } - if(version>0){ - //ogg_page_release(og); - return OGG_EVERSION; - } - - /* add to fifos */ - if(!os->body_tail){ - os->body_tail=og->body; - os->body_head=ogg_buffer_walk(og->body); - }else{ - os->body_head=ogg_buffer_cat(os->body_head,og->body); - } - if(!os->header_tail){ - os->header_tail=og->header; - os->header_head=ogg_buffer_walk(og->header); - os->lacing_fill=-27; - }else{ - os->header_head=ogg_buffer_cat(os->header_head,og->header); - } - - memset(og,0,sizeof(*og)); - return OGG_SUCCESS; -} - -int ogg_stream_reset(ogg_stream_state *os){ - - ogg_buffer_release(os->header_tail); - ogg_buffer_release(os->body_tail); - os->header_tail=os->header_head=0; - os->body_tail=os->body_head=0; - - os->e_o_s=0; - os->b_o_s=0; - os->pageno=-1; - os->packetno=0; - os->granulepos=0; - - os->body_fill=0; - os->lacing_fill=0; - - os->holeflag=0; - os->spanflag=0; - os->clearflag=0; - os->laceptr=0; - os->body_fill_next=0; - - return OGG_SUCCESS; -} - -int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){ - ogg_stream_reset(os); - os->serialno=serialno; - return OGG_SUCCESS; -} - -static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ - - ogg_packet_release(op); - _span_queued_page(os); - - if(os->holeflag){ - int temp=os->holeflag; - if(os->clearflag) - os->holeflag=0; - else - os->holeflag=1; - if(temp==2){ - os->packetno++; - return OGG_HOLE; - } - } - if(os->spanflag){ - int temp=os->spanflag; - if(os->clearflag) - os->spanflag=0; - else - os->spanflag=1; - if(temp==2){ - os->packetno++; - return OGG_SPAN; - } - } - - if(!(os->body_fill&FINFLAG)) return 0; - if(!op && !adv)return 1; /* just using peek as an inexpensive way - to ask if there's a whole packet - waiting */ - if(op){ - op->b_o_s=os->b_o_s; - if(os->e_o_s && os->body_fill_next==0) - op->e_o_s=os->e_o_s; - else - op->e_o_s=0; - if( (os->body_fill&FINFLAG) && !(os->body_fill_next&FINFLAG) ) - op->granulepos=os->granulepos; - else - op->granulepos=-1; - op->packetno=os->packetno; - } - - if(adv){ - oggbyte_buffer ob; - oggbyte_init(&ob,os->header_tail); - - /* split the body contents off */ - if(op){ - op->packet=ogg_buffer_split(&os->body_tail,&os->body_head, - os->body_fill&FINMASK); - op->bytes=os->body_fill&FINMASK; - }else{ - os->body_tail=ogg_buffer_pretruncate(os->body_tail, - os->body_fill&FINMASK); - if(os->body_tail==0)os->body_head=0; - } - - /* update lacing pointers */ - os->body_fill=os->body_fill_next; - _next_lace(&ob,os); - }else{ - if(op){ - op->packet=ogg_buffer_sub(os->body_tail,os->body_fill&FINMASK); - op->bytes=os->body_fill&FINMASK; - } - } - - if(adv){ - os->packetno++; - os->b_o_s=0; - } - - return 1; -} - -int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op){ - return _packetout(os,op,1); -} - -int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op){ - return _packetout(os,op,0); -} - -int ogg_packet_release(ogg_packet *op) { - if(op){ - ogg_buffer_release(op->packet); - memset(op, 0, sizeof(*op)); - } - return OGG_SUCCESS; -} - -int ogg_page_release(ogg_page *og) { - if(og){ - ogg_buffer_release(og->header); - ogg_buffer_release(og->body); - memset(og, 0, sizeof(*og)); - } - return OGG_SUCCESS; -} - -void ogg_page_dup(ogg_page *dup,ogg_page *orig){ - dup->header_len=orig->header_len; - dup->body_len=orig->body_len; - dup->header=ogg_buffer_dup(orig->header); - dup->body=ogg_buffer_dup(orig->body); -} - diff --git a/external/android-specific/tremolo/Tremolo/ivorbiscodec.h b/external/android-specific/tremolo/Tremolo/ivorbiscodec.h deleted file mode 100644 index 5d1bf95..0000000 --- a/external/android-specific/tremolo/Tremolo/ivorbiscodec.h +++ /dev/null @@ -1,124 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: libvorbis codec headers - - ************************************************************************/ - -#ifndef _vorbis_codec_h_ -#define _vorbis_codec_h_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "ogg.h" - -struct vorbis_dsp_state; -typedef struct vorbis_dsp_state vorbis_dsp_state; - -typedef struct vorbis_info{ - int version; - int channels; - long rate; - - /* The below bitrate declarations are *hints*. - Combinations of the three values carry the following implications: - - all three set to the same value: - implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard - upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal - may also be set to give a nominal rate. - none set: - the coder does not care to speculate. - */ - - long bitrate_upper; - long bitrate_nominal; - long bitrate_lower; - long bitrate_window; - - void *codec_setup; -} vorbis_info; - -typedef struct vorbis_comment{ - char **user_comments; - int *comment_lengths; - int comments; - char *vendor; - -} vorbis_comment; - - -/* Vorbis PRIMITIVES: general ***************************************/ - -extern void vorbis_info_init(vorbis_info *vi); -extern void vorbis_info_clear(vorbis_info *vi); -extern int vorbis_info_blocksize(vorbis_info *vi,int zo); -extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - char *tag, char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag); -extern void vorbis_comment_clear(vorbis_comment *vc); - -/* Vorbis ERRORS and return codes ***********************************/ - -#define OV_FALSE -1 -#define OV_EOF -2 -#define OV_HOLE -3 - -#define OV_EREAD -128 -#define OV_EFAULT -129 -#define OV_EIMPL -130 -#define OV_EINVAL -131 -#define OV_ENOTVORBIS -132 -#define OV_EBADHEADER -133 -#define OV_EVERSION -134 -#define OV_ENOTAUDIO -135 -#define OV_EBADPACKET -136 -#define OV_EBADLINK -137 -#define OV_ENOSEEK -138 - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/external/android-specific/tremolo/Tremolo/ivorbisfile.h b/external/android-specific/tremolo/Tremolo/ivorbisfile.h deleted file mode 100644 index 8c4fe77..0000000 --- a/external/android-specific/tremolo/Tremolo/ivorbisfile.h +++ /dev/null @@ -1,142 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: stdio-based convenience library for opening/seeking/decoding - - ************************************************************************/ - -#ifndef _OV_FILE_H_ -#define _OV_FILE_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include -#include "ivorbiscodec.h" - -/* The function prototypes for the callbacks are basically the same as for - * the stdio functions fread, fseek, fclose, ftell. - * The one difference is that the FILE * arguments have been replaced with - * a void * - this is to be used as a pointer to whatever internal data these - * functions might need. In the stdio case, it's just a FILE * cast to a void * - * - * If you use other functions, check the docs for these functions and return - * the right values. For seek_func(), you *MUST* return -1 if the stream is - * unseekable - */ -typedef struct { - size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); - int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); - int (*close_func) (void *datasource); - long (*tell_func) (void *datasource); -} ov_callbacks; - -typedef struct OggVorbis_File { - void *datasource; /* Pointer to a FILE *, etc. */ - int seekable; - ogg_int64_t offset; - ogg_int64_t end; - ogg_sync_state *oy; - - /* If the FILE handle isn't seekable (eg, a pipe), only the current - stream appears */ - int links; - ogg_int64_t *offsets; - ogg_int64_t *dataoffsets; - ogg_uint32_t *serialnos; - ogg_int64_t *pcmlengths; - vorbis_info vi; - vorbis_comment vc; - - /* Decoding working state local storage */ - ogg_int64_t pcm_offset; - int ready_state; - ogg_uint32_t current_serialno; - int current_link; - - ogg_int64_t bittrack; - ogg_int64_t samptrack; - - ogg_stream_state *os; /* take physical pages, weld into a logical - stream of packets */ - vorbis_dsp_state *vd; /* central working state for the packet->PCM decoder */ - - ov_callbacks callbacks; - -} OggVorbis_File; - -extern int ov_clear(OggVorbis_File *vf); -extern int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes); -extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, - char *initial, long ibytes, ov_callbacks callbacks); - -extern int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes); -extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, - char *initial, long ibytes, ov_callbacks callbacks); -extern int ov_test_open(OggVorbis_File *vf); - -extern long ov_bitrate(OggVorbis_File *vf,int i); -extern long ov_bitrate_instant(OggVorbis_File *vf); -extern long ov_streams(OggVorbis_File *vf); -extern long ov_seekable(OggVorbis_File *vf); -extern long ov_serialnumber(OggVorbis_File *vf,int i); - -extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); -extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); -extern ogg_int64_t ov_time_total(OggVorbis_File *vf,int i); - -extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek_page(OggVorbis_File *vf,ogg_int64_t pos); - -extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); -extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); -extern ogg_int64_t ov_time_tell(OggVorbis_File *vf); - -extern vorbis_info *ov_info(OggVorbis_File *vf,int link); -extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); - -extern long ov_read(OggVorbis_File *vf,void *buffer,int length, - int *bitstream); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - - diff --git a/external/android-specific/tremolo/Tremolo/lsp_lookup.h b/external/android-specific/tremolo/Tremolo/lsp_lookup.h deleted file mode 100644 index 8338251..0000000 --- a/external/android-specific/tremolo/Tremolo/lsp_lookup.h +++ /dev/null @@ -1,128 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: lookup data - - ************************************************************************/ - -#ifndef _V_LOOKUP_DATA_H_ -#define _V_LOOKUP_DATA_H_ - -#include "os_types.h" - -#define INVSQ_LOOKUP_I_SHIFT 10 -#define INVSQ_LOOKUP_I_MASK 1023 -static const long INVSQ_LOOKUP_I[64+1]={ - 92682, 91966, 91267, 90583, - 89915, 89261, 88621, 87995, - 87381, 86781, 86192, 85616, - 85051, 84497, 83953, 83420, - 82897, 82384, 81880, 81385, - 80899, 80422, 79953, 79492, - 79039, 78594, 78156, 77726, - 77302, 76885, 76475, 76072, - 75674, 75283, 74898, 74519, - 74146, 73778, 73415, 73058, - 72706, 72359, 72016, 71679, - 71347, 71019, 70695, 70376, - 70061, 69750, 69444, 69141, - 68842, 68548, 68256, 67969, - 67685, 67405, 67128, 66855, - 66585, 66318, 66054, 65794, - 65536, -}; - -static const long INVSQ_LOOKUP_IDel[64]={ - 716, 699, 684, 668, - 654, 640, 626, 614, - 600, 589, 576, 565, - 554, 544, 533, 523, - 513, 504, 495, 486, - 477, 469, 461, 453, - 445, 438, 430, 424, - 417, 410, 403, 398, - 391, 385, 379, 373, - 368, 363, 357, 352, - 347, 343, 337, 332, - 328, 324, 319, 315, - 311, 306, 303, 299, - 294, 292, 287, 284, - 280, 277, 273, 270, - 267, 264, 260, 258, -}; - -#define COS_LOOKUP_I_SHIFT 9 -#define COS_LOOKUP_I_MASK 511 -#define COS_LOOKUP_I_SZ 128 -static const ogg_int32_t COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={ - 16384, 16379, 16364, 16340, - 16305, 16261, 16207, 16143, - 16069, 15986, 15893, 15791, - 15679, 15557, 15426, 15286, - 15137, 14978, 14811, 14635, - 14449, 14256, 14053, 13842, - 13623, 13395, 13160, 12916, - 12665, 12406, 12140, 11866, - 11585, 11297, 11003, 10702, - 10394, 10080, 9760, 9434, - 9102, 8765, 8423, 8076, - 7723, 7366, 7005, 6639, - 6270, 5897, 5520, 5139, - 4756, 4370, 3981, 3590, - 3196, 2801, 2404, 2006, - 1606, 1205, 804, 402, - 0, -401, -803, -1204, - -1605, -2005, -2403, -2800, - -3195, -3589, -3980, -4369, - -4755, -5138, -5519, -5896, - -6269, -6638, -7004, -7365, - -7722, -8075, -8422, -8764, - -9101, -9433, -9759, -10079, - -10393, -10701, -11002, -11296, - -11584, -11865, -12139, -12405, - -12664, -12915, -13159, -13394, - -13622, -13841, -14052, -14255, - -14448, -14634, -14810, -14977, - -15136, -15285, -15425, -15556, - -15678, -15790, -15892, -15985, - -16068, -16142, -16206, -16260, - -16304, -16339, -16363, -16378, - -16383, -}; - -#endif - - - - - diff --git a/external/android-specific/tremolo/Tremolo/mapping0.c b/external/android-specific/tremolo/Tremolo/mapping0.c deleted file mode 100644 index ccc84da..0000000 --- a/external/android-specific/tremolo/Tremolo/mapping0.c +++ /dev/null @@ -1,261 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: channel mapping 0 implementation - - ************************************************************************/ - -#include -#include -#include -#include -#include "ogg.h" -#include "os.h" -#include "ivorbiscodec.h" -#include "mdct.h" -#include "codec_internal.h" -#include "codebook.h" -#include "misc.h" - -void mapping_clear_info(vorbis_info_mapping *info){ - if(info){ - if(info->chmuxlist)_ogg_free(info->chmuxlist); - if(info->submaplist)_ogg_free(info->submaplist); - if(info->coupling)_ogg_free(info->coupling); - memset(info,0,sizeof(*info)); - } -} - -static int ilog(unsigned int v){ - int ret=0; - if(v)--v; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -/* also responsible for range checking */ -int mapping_info_unpack(vorbis_info_mapping *info,vorbis_info *vi, - oggpack_buffer *opb){ - int i; - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - memset(info,0,sizeof(*info)); - - if(oggpack_read(opb,1)) - info->submaps=oggpack_read(opb,4)+1; - else - info->submaps=1; - - if(oggpack_read(opb,1)){ - info->coupling_steps=oggpack_read(opb,8)+1; - info->coupling= - _ogg_malloc(info->coupling_steps*sizeof(*info->coupling)); - - for(i=0;icoupling_steps;i++){ - int testM=info->coupling[i].mag=(unsigned char)(oggpack_read(opb,ilog(vi->channels))); - int testA=info->coupling[i].ang=(unsigned char)(oggpack_read(opb,ilog(vi->channels))); - - if(testM<0 || - testA<0 || - testM==testA || - testM>=vi->channels || - testA>=vi->channels) goto err_out; - } - - } - - if(oggpack_read(opb,2)>0)goto err_out; /* 2,3:reserved */ - - if(info->submaps>1){ - info->chmuxlist=_ogg_malloc(sizeof(*info->chmuxlist)*vi->channels); - for(i=0;ichannels;i++){ - info->chmuxlist[i]=(unsigned char)(oggpack_read(opb,4)); - if(info->chmuxlist[i]>=info->submaps)goto err_out; - } - } - - info->submaplist=_ogg_malloc(sizeof(*info->submaplist)*info->submaps); - for(i=0;isubmaps;i++){ - int temp=oggpack_read(opb,8); - info->submaplist[i].floor=(char)oggpack_read(opb,8); - if(info->submaplist[i].floor>=ci->floors)goto err_out; - info->submaplist[i].residue=(char)oggpack_read(opb,8); - if(info->submaplist[i].residue>=ci->residues)goto err_out; - } - - return 0; - - err_out: - mapping_clear_info(info); - return -1; -} - -int mapping_inverse(vorbis_dsp_state *vd,vorbis_info_mapping *info){ - vorbis_info *vi=vd->vi; - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - - int i,j; - long n=ci->blocksizes[vd->W]; - - ogg_int32_t **pcmbundle= - alloca(sizeof(*pcmbundle)*vi->channels); - int *zerobundle= - alloca(sizeof(*zerobundle)*vi->channels); - int *nonzero= - alloca(sizeof(*nonzero)*vi->channels); - ogg_int32_t **floormemo= - alloca(sizeof(*floormemo)*vi->channels); - - /* recover the spectral envelope; store it in the PCM vector for now */ - for(i=0;ichannels;i++){ - int submap=0; - int floorno; - - if(info->submaps>1) - submap=info->chmuxlist[i]; - floorno=info->submaplist[submap].floor; - - if(ci->floor_type[floorno]){ - /* floor 1 */ - floormemo[i]=alloca(sizeof(*floormemo[i])* - floor1_memosize(ci->floor_param[floorno])); - floormemo[i]=floor1_inverse1(vd,ci->floor_param[floorno],floormemo[i]); - }else{ - /* floor 0 */ - floormemo[i]=alloca(sizeof(*floormemo[i])* - floor0_memosize(ci->floor_param[floorno])); - floormemo[i]=floor0_inverse1(vd,ci->floor_param[floorno],floormemo[i]); - } - - if(floormemo[i]) - nonzero[i]=1; - else - nonzero[i]=0; - memset(vd->work[i],0,sizeof(*vd->work[i])*n/2); - } - - /* channel coupling can 'dirty' the nonzero listing */ - for(i=0;icoupling_steps;i++){ - if(nonzero[info->coupling[i].mag] || - nonzero[info->coupling[i].ang]){ - nonzero[info->coupling[i].mag]=1; - nonzero[info->coupling[i].ang]=1; - } - } - - /* recover the residue into our working vectors */ - for(i=0;isubmaps;i++){ - int ch_in_bundle=0; - for(j=0;jchannels;j++){ - if(!info->chmuxlist || info->chmuxlist[j]==i){ - if(nonzero[j]) - zerobundle[ch_in_bundle]=1; - else - zerobundle[ch_in_bundle]=0; - pcmbundle[ch_in_bundle++]=vd->work[j]; - } - } - - res_inverse(vd,ci->residue_param+info->submaplist[i].residue, - pcmbundle,zerobundle,ch_in_bundle); - } - - //for(j=0;jchannels;j++) - //_analysis_output("coupled",seq+j,vb->pcm[j],-8,n/2,0,0); - - /* channel coupling */ - for(i=info->coupling_steps-1;i>=0;i--){ - ogg_int32_t *pcmM=vd->work[info->coupling[i].mag]; - ogg_int32_t *pcmA=vd->work[info->coupling[i].ang]; - - for(j=0;j0) - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag-ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag+ang; - } - else - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag+ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag-ang; - } - } - } - - //for(j=0;jchannels;j++) - //_analysis_output("residue",seq+j,vb->pcm[j],-8,n/2,0,0); - - /* compute and apply spectral envelope */ - for(i=0;ichannels;i++){ - ogg_int32_t *pcm=vd->work[i]; - int submap=0; - int floorno; - - if(info->submaps>1) - submap=info->chmuxlist[i]; - floorno=info->submaplist[submap].floor; - - if(ci->floor_type[floorno]){ - /* floor 1 */ - floor1_inverse2(vd,ci->floor_param[floorno],floormemo[i],pcm); - }else{ - /* floor 0 */ - floor0_inverse2(vd,ci->floor_param[floorno],floormemo[i],pcm); - } - } - - //for(j=0;jchannels;j++) - //_analysis_output("mdct",seq+j,vb->pcm[j],-24,n/2,0,1); - - /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */ - /* only MDCT right now.... */ - for(i=0;ichannels;i++) - mdct_backward(n,vd->work[i]); - - //for(j=0;jchannels;j++) - //_analysis_output("imdct",seq+j,vb->pcm[j],-24,n,0,0); - - /* all done! */ - return(0); -} diff --git a/external/android-specific/tremolo/Tremolo/mdct.c b/external/android-specific/tremolo/Tremolo/mdct.c deleted file mode 100644 index 32b3525..0000000 --- a/external/android-specific/tremolo/Tremolo/mdct.c +++ /dev/null @@ -1,582 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: normalized modified discrete cosine transform - power of two length transform only [64 <= n ] - last mod: $Id: mdct.c,v 1.9.6.5 2003/04/29 04:03:27 xiphmont Exp $ - - Original algorithm adapted long ago from _The use of multirate filter - banks for coding of high quality digital audio_, by T. Sporer, - K. Brandenburg and B. Edler, collection of the European Signal - Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp - 211-214 - - The below code implements an algorithm that no longer looks much like - that presented in the paper, but the basic structure remains if you - dig deep enough to see it. - - This module DOES NOT INCLUDE code to generate/apply the window - function. Everybody has their own weird favorite including me... I - happen to like the properties of y=sin(.5PI*sin^2(x)), but others may - vehemently disagree. - - ************************************************************************/ - -#include "ivorbiscodec.h" -#include "os.h" -#include "misc.h" -#include "mdct.h" -#include "mdct_lookup.h" - -#include - -#if defined(ONLY_C) -STIN void presymmetry(DATA_TYPE *in,int n2,int step){ - DATA_TYPE *aX; - DATA_TYPE *bX; - LOOKUP_T *T; - int n4=n2>>1; - - aX = in+n2-3; - T = sincos_lookup0; - - do{ - REG_TYPE s0= aX[0]; - REG_TYPE s2= aX[2]; - XPROD31( s0, s2, T[0], T[1], &aX[0], &aX[2] ); T+=step; - aX-=4; - }while(aX>=in+n4); - do{ - REG_TYPE s0= aX[0]; - REG_TYPE s2= aX[2]; - XPROD31( s0, s2, T[1], T[0], &aX[0], &aX[2] ); T-=step; - aX-=4; - }while(aX>=in); - - aX = in+n2-4; - bX = in; - T = sincos_lookup0; - do{ - REG_TYPE ri0= aX[0]; - REG_TYPE ri2= aX[2]; - REG_TYPE ro0= bX[0]; - REG_TYPE ro2= bX[2]; - - XNPROD31( ro2, ro0, T[1], T[0], &aX[0], &aX[2] ); T+=step; - XNPROD31( ri2, ri0, T[0], T[1], &bX[0], &bX[2] ); - - aX-=4; - bX+=4; - }while(aX>=bX); -} - -/* 8 point butterfly (in place) */ -STIN void mdct_butterfly_8(DATA_TYPE *x){ - - REG_TYPE s0 = x[0] + x[1]; - REG_TYPE s1 = x[0] - x[1]; - REG_TYPE s2 = x[2] + x[3]; - REG_TYPE s3 = x[2] - x[3]; - REG_TYPE s4 = x[4] + x[5]; - REG_TYPE s5 = x[4] - x[5]; - REG_TYPE s6 = x[6] + x[7]; - REG_TYPE s7 = x[6] - x[7]; - - x[0] = s5 + s3; - x[1] = s7 - s1; - x[2] = s5 - s3; - x[3] = s7 + s1; - x[4] = s4 - s0; - x[5] = s6 - s2; - x[6] = s4 + s0; - x[7] = s6 + s2; - MB(); -} - -/* 16 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_16(DATA_TYPE *x){ - - REG_TYPE s0, s1, s2, s3; - - s0 = x[ 8] - x[ 9]; x[ 8] += x[ 9]; - s1 = x[10] - x[11]; x[10] += x[11]; - s2 = x[ 1] - x[ 0]; x[ 9] = x[ 1] + x[0]; - s3 = x[ 3] - x[ 2]; x[11] = x[ 3] + x[2]; - x[ 0] = MULT31((s0 - s1) , cPI2_8); - x[ 1] = MULT31((s2 + s3) , cPI2_8); - x[ 2] = MULT31((s0 + s1) , cPI2_8); - x[ 3] = MULT31((s3 - s2) , cPI2_8); - MB(); - - s2 = x[12] - x[13]; x[12] += x[13]; - s3 = x[14] - x[15]; x[14] += x[15]; - s0 = x[ 4] - x[ 5]; x[13] = x[ 5] + x[ 4]; - s1 = x[ 7] - x[ 6]; x[15] = x[ 7] + x[ 6]; - x[ 4] = s2; x[ 5] = s1; - x[ 6] = s3; x[ 7] = s0; - MB(); - - mdct_butterfly_8(x); - mdct_butterfly_8(x+8); -} - -/* 32 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_32(DATA_TYPE *x){ - - REG_TYPE s0, s1, s2, s3; - - s0 = x[16] - x[17]; x[16] += x[17]; - s1 = x[18] - x[19]; x[18] += x[19]; - s2 = x[ 1] - x[ 0]; x[17] = x[ 1] + x[ 0]; - s3 = x[ 3] - x[ 2]; x[19] = x[ 3] + x[ 2]; - XNPROD31( s0, s1, cPI3_8, cPI1_8, &x[ 0], &x[ 2] ); - XPROD31 ( s2, s3, cPI1_8, cPI3_8, &x[ 1], &x[ 3] ); - MB(); - - s0 = x[20] - x[21]; x[20] += x[21]; - s1 = x[22] - x[23]; x[22] += x[23]; - s2 = x[ 5] - x[ 4]; x[21] = x[ 5] + x[ 4]; - s3 = x[ 7] - x[ 6]; x[23] = x[ 7] + x[ 6]; - x[ 4] = MULT31((s0 - s1) , cPI2_8); - x[ 5] = MULT31((s3 + s2) , cPI2_8); - x[ 6] = MULT31((s0 + s1) , cPI2_8); - x[ 7] = MULT31((s3 - s2) , cPI2_8); - MB(); - - s0 = x[24] - x[25]; x[24] += x[25]; - s1 = x[26] - x[27]; x[26] += x[27]; - s2 = x[ 9] - x[ 8]; x[25] = x[ 9] + x[ 8]; - s3 = x[11] - x[10]; x[27] = x[11] + x[10]; - XNPROD31( s0, s1, cPI1_8, cPI3_8, &x[ 8], &x[10] ); - XPROD31 ( s2, s3, cPI3_8, cPI1_8, &x[ 9], &x[11] ); - MB(); - - s0 = x[28] - x[29]; x[28] += x[29]; - s1 = x[30] - x[31]; x[30] += x[31]; - s2 = x[12] - x[13]; x[29] = x[13] + x[12]; - s3 = x[15] - x[14]; x[31] = x[15] + x[14]; - x[12] = s0; x[13] = s3; - x[14] = s1; x[15] = s2; - MB(); - - mdct_butterfly_16(x); - mdct_butterfly_16(x+16); -} - -/* N/stage point generic N stage butterfly (in place, 2 register) */ -STIN void mdct_butterfly_generic(DATA_TYPE *x,int points,int step){ - LOOKUP_T *T = sincos_lookup0; - DATA_TYPE *x1 = x + points - 4; - DATA_TYPE *x2 = x + (points>>1) - 4; - REG_TYPE s0, s1, s2, s3; - - do{ - s0 = x1[0] - x1[1]; x1[0] += x1[1]; - s1 = x1[3] - x1[2]; x1[2] += x1[3]; - s2 = x2[1] - x2[0]; x1[1] = x2[1] + x2[0]; - s3 = x2[3] - x2[2]; x1[3] = x2[3] + x2[2]; - XPROD31( s1, s0, T[0], T[1], &x2[0], &x2[2] ); - XPROD31( s2, s3, T[0], T[1], &x2[1], &x2[3] ); T+=step; - x1-=4; - x2-=4; - }while(T>1) + (points>>2) - 4; - x2 = x + (points>>2) - 4; - T = sincos_lookup0+1024; - do{ - s0 = x1[0] - x1[1]; x1[0] += x1[1]; - s1 = x1[2] - x1[3]; x1[2] += x1[3]; - s2 = x2[0] - x2[1]; x1[1] = x2[1] + x2[0]; - s3 = x2[3] - x2[2]; x1[3] = x2[3] + x2[2]; - XNPROD31( s0, s1, T[0], T[1], &x2[0], &x2[2] ); - XNPROD31( s3, s2, T[0], T[1], &x2[1], &x2[3] ); T-=step; - x1-=4; - x2-=4; - }while(T>sincos_lookup0); -} - -STIN void mdct_butterflies(DATA_TYPE *x,int points,int shift){ - - int stages=7-shift; - int i,j; - - for(i=0;--stages>=0;i++){ - for(j=0;j<(1<>i)*j,points>>i,4<<(i+shift)); - } - } - - for(j=0;j>8]|(bitrev[(x&0x0f0)>>4]<<4)|(((int)bitrev[x&0x00f])<<8); -} - -STIN void mdct_bitreverse(DATA_TYPE *x,int n,int shift){ - int bit = 0; - DATA_TYPE *w = x+(n>>1); - - do{ - DATA_TYPE b = bitrev12(bit++); - DATA_TYPE *xx = x + (b>>shift); - REG_TYPE r; - - w -= 2; - - if(w>xx){ - - r = xx[0]; - xx[0] = w[0]; - w[0] = r; - - r = xx[1]; - xx[1] = w[1]; - w[1] = r; - } - }while(w>x); -} - -STIN void mdct_step7(DATA_TYPE *x,int n,int step){ - DATA_TYPE *w0 = x; - DATA_TYPE *w1 = x+(n>>1); - LOOKUP_T *T = (step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1; - LOOKUP_T *Ttop = T+1024; - REG_TYPE s0, s1, s2, s3; - - do{ - w1 -= 2; - - s0 = w0[0] + w1[0]; - s1 = w1[1] - w0[1]; - s2 = MULT32(s0, T[1]) + MULT32(s1, T[0]); - s3 = MULT32(s1, T[1]) - MULT32(s0, T[0]); - T+=step; - - s0 = (w0[1] + w1[1])>>1; - s1 = (w0[0] - w1[0])>>1; - w0[0] = s0 + s2; - w0[1] = s1 + s3; - w1[0] = s0 - s2; - w1[1] = s3 - s1; - - w0 += 2; - }while(T>1; - s1 = (w0[0] - w1[0])>>1; - w0[0] = s0 + s2; - w0[1] = s1 + s3; - w1[0] = s0 - s2; - w1[1] = s3 - s1; - - w0 += 2; - }while(w0>1); - - switch(step) { -#if defined(ONLY_C) - default: - T=(step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1; - do{ - REG_TYPE s0 = x[0]; - REG_TYPE s1 = -x[1]; - XPROD31( s0, s1, T[0], T[1], x, x+1); T+=step; - x +=2; - }while(x>1; - t1 = (*T++)>>1; - do{ - s0 = x[0]; - s1 = -x[1]; - t0 += (v0 = (*V++)>>1); - t1 += (v1 = (*V++)>>1); - XPROD31( s0, s1, t0, t1, x, x+1 ); - - s0 = x[2]; - s1 = -x[3]; - v0 += (t0 = (*T++)>>1); - v1 += (t1 = (*T++)>>1); - XPROD31( s0, s1, v0, v1, x+2, x+3 ); - - x += 4; - }while(x>2); - t1 += (q1 = (v1-t1)>>2); - s0 = x[0]; - s1 = -x[1]; - XPROD31( s0, s1, t0, t1, x, x+1 ); - t0 = v0-q0; - t1 = v1-q1; - s0 = x[2]; - s1 = -x[3]; - XPROD31( s0, s1, t0, t1, x+2, x+3 ); - - t0 = *T++; - t1 = *T++; - v0 += (q0 = (t0-v0)>>2); - v1 += (q1 = (t1-v1)>>2); - s0 = x[4]; - s1 = -x[5]; - XPROD31( s0, s1, v0, v1, x+4, x+5 ); - v0 = t0-q0; - v1 = t1-q1; - s0 = x[6]; - s1 = -x[7]; - XPROD31( s0, s1, v0, v1, x+5, x+6 ); - - x+=8; - }while(x>1,step); - mdct_butterflies(in,n>>1,shift); - mdct_bitreverse(in,n,shift); - mdct_step7(in,n,step); - mdct_step8(in,n,step>>2); -#else - step = mdct_backwardARM(n, in); - if (step <= 1) - mdct_step8(in,n,step); -#endif -} - -#if defined(ONLY_C) -void mdct_shift_right(int n, DATA_TYPE *in, DATA_TYPE *right){ - int i; - n>>=2; - in+=1; - - for(i=0;i>1 : n0>>1); - DATA_TYPE *r=right+(lW ? n1>>2 : n0>>2); - DATA_TYPE *post; - LOOKUP_T *wR=(W && lW ? w1+(n1>>1) : w0+(n0>>1)); - LOOKUP_T *wL=(W && lW ? w1 : w0 ); - - int preLap=(lW && !W ? (n1>>2)-(n0>>2) : 0 ); - int halfLap=(lW && W ? (n1>>2) : (n0>>2) ); - int postLap=(!lW && W ? (n1>>2)-(n0>>2) : 0 ); - int n,off; - - /* preceeding direct-copy lapping from previous frame, if any */ - if(preLap){ - n = (endpost){ - *out = CLIP_TO_15((*--r)>>9); - out+=step; - } -#else - out = mdct_unroll_prelap(out,post,r,step); - n -= off; - if (n < 0) - n = 0; - r -= n; -#endif - } - - /* cross-lap; two halves due to wrap-around */ - n = (endpost){ - l-=2; - *out = CLIP_TO_15((MULT31(*--r,*--wR) + MULT31(*l,*wL++))>>9); - out+=step; - } -#else - out = mdct_unroll_part2(out, post, l, r, step, wL, wR); - n -= off; - if (n < 0) - n = 0; - l -= 2*n; - r -= n; - wR -= n; - wL += n; -#endif - - n = (end>9); - out+=step; - l+=2; - } -#else - out = mdct_unroll_part3(out, post, l, r, step, wL, wR); - n -= off; - if (n < 0) - n = 0; - l += 2*n; - r += n; - wR -= n; - wL += n; -#endif - - /* preceeding direct-copy lapping from previous frame, if any */ - if(postLap){ - n = (end>9); - out+=step; - l+=2; - } -#else - out = mdct_unroll_postlap(out,post,l,step); -#endif - } -} - diff --git a/external/android-specific/tremolo/Tremolo/mdct.h b/external/android-specific/tremolo/Tremolo/mdct.h deleted file mode 100644 index 0878359..0000000 --- a/external/android-specific/tremolo/Tremolo/mdct.h +++ /dev/null @@ -1,79 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: modified discrete cosine transform prototypes - - ************************************************************************/ - -#ifndef _OGG_mdct_H_ -#define _OGG_mdct_H_ - -#include "ivorbiscodec.h" -#include "misc.h" - -#define DATA_TYPE ogg_int32_t -#define REG_TYPE register ogg_int32_t - -#ifdef _LOW_ACCURACY_ -#define cPI3_8 (0x0062) -#define cPI2_8 (0x00b5) -#define cPI1_8 (0x00ed) -#else -#define cPI3_8 (0x30fbc54d) -#define cPI2_8 (0x5a82799a) -#define cPI1_8 (0x7641af3d) -#endif - -extern void mdct_backward(int n, DATA_TYPE *in); -extern void mdct_shift_right(int n, DATA_TYPE *in, DATA_TYPE *right); -extern void mdct_unroll_lap(int n0,int n1, - int lW,int W, - DATA_TYPE *in,DATA_TYPE *right, - LOOKUP_T *w0,LOOKUP_T *w1, - ogg_int16_t *out, - int step, - int start,int end /* samples, this frame */); - -#endif - - - - - - - - - - - - diff --git a/external/android-specific/tremolo/Tremolo/mdctARM.s b/external/android-specific/tremolo/Tremolo/mdctARM.s deleted file mode 100644 index 0fcc68e..0000000 --- a/external/android-specific/tremolo/Tremolo/mdctARM.s +++ /dev/null @@ -1,1234 +0,0 @@ -@ Tremolo library -@----------------------------------------------------------------------- -@ Copyright (C) 2002-2009, Xiph.org Foundation -@ Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd -@ All rights reserved. - -@ Redistribution and use in source and binary forms, with or without -@ modification, are permitted provided that the following conditions -@ are met: - -@ * Redistributions of source code must retain the above copyright -@ notice, this list of conditions and the following disclaimer. -@ * Redistributions in binary form must reproduce the above -@ copyright notice, this list of conditions and the following disclaimer -@ in the documentation and/or other materials provided with the -@ distribution. -@ * Neither the names of the Xiph.org Foundation nor Pinknoise -@ Productions Ltd nor the names of its contributors may be used to -@ endorse or promote products derived from this software without -@ specific prior written permission. -@ -@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -@ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -@ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -@ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -@ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -@ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -@ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ ---------------------------------------------------------------------- - - .text - - @ full accuracy version - - .global mdct_backwardARM - .global mdct_shift_right - .global mdct_unroll_prelap - .global mdct_unroll_part2 - .global mdct_unroll_part3 - .global mdct_unroll_postlap - - .extern sincos_lookup0 - .extern sincos_lookup1 - .hidden sincos_lookup0 - .hidden sincos_lookup1 - -mdct_unroll_prelap: - @ r0 = out - @ r1 = post - @ r2 = r - @ r3 = step - STMFD r13!,{r4-r7,r14} - MVN r4, #0x8000 - MOV r3, r3, LSL #1 - SUB r1, r2, r1 @ r1 = r - post - SUBS r1, r1, #16 @ r1 = r - post - 16 - BLT unroll_over -unroll_loop: - LDMDB r2!,{r5,r6,r7,r12} - - MOV r5, r5, ASR #9 @ r5 = (*--r)>>9 - MOV r6, r6, ASR #9 @ r6 = (*--r)>>9 - MOV r7, r7, ASR #9 @ r7 = (*--r)>>9 - MOV r12,r12,ASR #9 @ r12= (*--r)>>9 - - MOV r14,r12,ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r12,r4, r14,ASR #31 - STRH r12,[r0], r3 - - MOV r14,r7, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r7, r4, r14,ASR #31 - STRH r7, [r0], r3 - - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r3 - - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - - SUBS r1, r1, #16 - BGE unroll_loop - -unroll_over: - ADDS r1, r1, #16 - BLE unroll_end -unroll_loop2: - LDR r5,[r2,#-4]! - @ stall - @ stall (Xscale) - MOV r5, r5, ASR #9 @ r5 = (*--r)>>9 - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - SUBS r1, r1, #4 - BGT unroll_loop2 -unroll_end: - LDMFD r13!,{r4-r7,PC} - -mdct_unroll_postlap: - @ r0 = out - @ r1 = post - @ r2 = l - @ r3 = step - STMFD r13!,{r4-r7,r14} - MVN r4, #0x8000 - MOV r3, r3, LSL #1 - SUB r1, r1, r2 @ r1 = post - l - MOV r1, r1, ASR #1 @ r1 = (post - l)>>1 - SUBS r1, r1, #16 @ r1 = ((post - l)>>1) - 4 - BLT unroll_over3 -unroll_loop3: - LDR r12,[r2],#8 - LDR r7, [r2],#8 - LDR r6, [r2],#8 - LDR r5, [r2],#8 - - RSB r12,r12,#0 - RSB r5, r5, #0 - RSB r6, r6, #0 - RSB r7, r7, #0 - - MOV r12, r12,ASR #9 @ r12= (-*l)>>9 - MOV r5, r5, ASR #9 @ r5 = (-*l)>>9 - MOV r6, r6, ASR #9 @ r6 = (-*l)>>9 - MOV r7, r7, ASR #9 @ r7 = (-*l)>>9 - - MOV r14,r12,ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r12,r4, r14,ASR #31 - STRH r12,[r0], r3 - - MOV r14,r7, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r7, r4, r14,ASR #31 - STRH r7, [r0], r3 - - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r3 - - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - - SUBS r1, r1, #16 - BGE unroll_loop3 - -unroll_over3: - ADDS r1, r1, #16 - BLE unroll_over4 -unroll_loop4: - LDR r5,[r2], #8 - @ stall - @ stall (Xscale) - RSB r5, r5, #0 - MOV r5, r5, ASR #9 @ r5 = (-*l)>>9 - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - SUBS r1, r1, #4 - BGT unroll_loop4 -unroll_over4: - LDMFD r13!,{r4-r7,PC} - -mdct_unroll_part2: - @ r0 = out - @ r1 = post - @ r2 = l - @ r3 = r - @ <> = step - @ <> = wL - @ <> = wR - MOV r12,r13 - STMFD r13!,{r4,r6-r11,r14} - LDMFD r12,{r8,r9,r10} @ r8 = step - @ r9 = wL - @ r10= wR - MVN r4, #0x8000 - MOV r8, r8, LSL #1 - SUBS r1, r3, r1 @ r1 = (r - post) - BLE unroll_over5 -unroll_loop5: - LDR r12,[r2, #-8]! @ r12= *l (but l -= 2 first) - LDR r11,[r9],#4 @ r11= *wL++ - LDR r7, [r3, #-4]! @ r7 = *--r - LDR r6, [r10,#-4]! @ r6 = *--wR - - @ Can save a cycle here, at the cost of 1bit errors in rounding - SMULL r14,r11,r12,r11 @ (r14,r11) = *l * *wL++ - SMULL r14,r6, r7, r6 @ (r14,r6) = *--r * *--wR - ADD r6, r6, r11 - MOV r6, r6, ASR #8 - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r8 - - SUBS r1, r1, #4 - BGT unroll_loop5 - -unroll_over5: - LDMFD r13!,{r4,r6-r11,PC} - -mdct_unroll_part3: - @ r0 = out - @ r1 = post - @ r2 = l - @ r3 = r - @ <> = step - @ <> = wL - @ <> = wR - MOV r12,r13 - STMFD r13!,{r4,r6-r11,r14} - LDMFD r12,{r8,r9,r10} @ r8 = step - @ r9 = wL - @ r10= wR - MVN r4, #0x8000 - MOV r8, r8, LSL #1 - SUBS r1, r1, r3 @ r1 = (post - r) - BLE unroll_over6 -unroll_loop6: - LDR r12,[r2],#8 @ r12= *l (but l += 2 first) - LDR r11,[r9],#4 @ r11= *wL++ - LDR r7, [r3],#4 @ r7 = *r++ - LDR r6, [r10,#-4]! @ r6 = *--wR - - @ Can save a cycle here, at the cost of 1bit errors in rounding - SMULL r14,r11,r12,r11 @ (r14,r11) = *l * *wL++ - SMULL r14,r6, r7, r6 @ (r14,r6) = *--r * *--wR - SUB r6, r6, r11 - MOV r6, r6, ASR #8 - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r8 - - SUBS r1, r1, #4 - BGT unroll_loop6 - -unroll_over6: - LDMFD r13!,{r4,r6-r11,PC} - -mdct_shift_right: - @ r0 = n - @ r1 = in - @ r2 = right - STMFD r13!,{r4-r11,r14} - - MOV r0, r0, LSR #2 @ n >>= 2 - ADD r1, r1, #4 - - SUBS r0, r0, #8 - BLT sr_less_than_8 -sr_loop: - LDR r3, [r1], #8 - LDR r4, [r1], #8 - LDR r5, [r1], #8 - LDR r6, [r1], #8 - LDR r7, [r1], #8 - LDR r8, [r1], #8 - LDR r12,[r1], #8 - LDR r14,[r1], #8 - SUBS r0, r0, #8 - STMIA r2!,{r3,r4,r5,r6,r7,r8,r12,r14} - BGE sr_loop -sr_less_than_8: - ADDS r0, r0, #8 - BEQ sr_end -sr_loop2: - LDR r3, [r1], #8 - SUBS r0, r0, #1 - STR r3, [r2], #4 - BGT sr_loop2 -sr_end: - LDMFD r13!,{r4-r11,PC} - -mdct_backwardARM: - @ r0 = n - @ r1 = in - STMFD r13!,{r4-r11,r14} - - MOV r2,#1<<4 @ r2 = 1<>1) - ADD r14,r1, r0 @ r14= in+(n>>2) - SUB r4, r4, #3*4 @ r4 = aX = in+n2-3 - ADRL r7, .Lsincos_lookup - LDR r5, [r7] @ r5 = T=sincos_lookup0 - ADD r5, r7 - -presymmetry_loop1: - LDR r7, [r4,#8] @ r6 = s2 = aX[2] - LDR r11,[r5,#4] @ r11= T[1] - LDR r6, [r4] @ r6 = s0 = aX[0] - LDR r10,[r5],r2,LSL #2 @ r10= T[0] T += step - - @ XPROD31(s0, s2, T[0], T[1], 0xaX[0], &ax[2]) - SMULL r8, r9, r7, r11 @ (r8, r9) = s2*T[1] - @ stall - @ stall ? - SMLAL r8, r9, r6, r10 @ (r8, r9) += s0*T[0] - RSB r6, r6, #0 - @ stall ? - SMULL r8, r12,r7, r10 @ (r8, r12) = s2*T[0] - MOV r9, r9, LSL #1 - @ stall ? - SMLAL r8, r12,r6, r11 @ (r8, r12) -= s0*T[1] - STR r9, [r4],#-16 @ aX[0] = r9 - CMP r4,r14 - MOV r12,r12,LSL #1 - STR r12,[r4,#8+16] @ aX[2] = r12 - - BGE presymmetry_loop1 @ while (aX >= in+n4) - -presymmetry_loop2: - LDR r6,[r4] @ r6 = s0 = aX[0] - LDR r10,[r5,#4] @ r10= T[1] - LDR r7,[r4,#8] @ r6 = s2 = aX[2] - LDR r11,[r5],-r2,LSL #2 @ r11= T[0] T -= step - - @ XPROD31(s0, s2, T[1], T[0], 0xaX[0], &ax[2]) - SMULL r8, r9, r6, r10 @ (r8, r9) = s0*T[1] - @ stall - @ stall ? - SMLAL r8, r9, r7, r11 @ (r8, r9) += s2*T[0] - RSB r6, r6, #0 - @ stall ? - SMULL r8, r12,r7, r10 @ (r8, r12) = s2*T[1] - MOV r9, r9, LSL #1 - @ stall ? - SMLAL r8, r12,r6, r11 @ (r8, r12) -= s0*T[0] - STR r9, [r4],#-16 @ aX[0] = r9 - CMP r4,r1 - MOV r12,r12,LSL #1 - STR r12,[r4,#8+16] @ aX[2] = r12 - - BGE presymmetry_loop2 @ while (aX >= in) - - @ r0 = n - @ r1 = in - @ r2 = step - @ r3 = shift - STMFD r13!,{r3} - ADRL r4, .Lsincos_lookup - LDR r5, [r4] @ r5 = T=sincos_lookup0 - ADD r5, r4 - ADD r4, r1, r0, LSL #1 @ r4 = aX = in+(n>>1) - SUB r4, r4, #4*4 @ r4 = aX = in+(n>>1)-4 - LDR r11,[r5,#4] @ r11= T[1] - LDR r10,[r5],r2, LSL #2 @ r10= T[0] T += step -presymmetry_loop3: - LDR r8,[r1],#16 @ r8 = ro0 = bX[0] - LDR r9,[r1,#8-16] @ r9 = ro2 = bX[2] - LDR r6,[r4] @ r6 = ri0 = aX[0] - - @ XNPROD31( ro2, ro0, T[1], T[0], 0xaX[0], &aX[2] ) - @ aX[0] = (ro2*T[1] - ro0*T[0])>>31 aX[2] = (ro0*T[1] + ro2*T[0])>>31 - SMULL r14,r12,r8, r11 @ (r14,r12) = ro0*T[1] - RSB r8,r8,#0 @ r8 = -ro0 - @ Stall ? - SMLAL r14,r12,r9, r10 @ (r14,r12) += ro2*T[0] - LDR r7,[r4,#8] @ r7 = ri2 = aX[2] - @ Stall ? - SMULL r14,r3, r9, r11 @ (r14,r3) = ro2*T[1] - MOV r12,r12,LSL #1 - LDR r11,[r5,#4] @ r11= T[1] - SMLAL r14,r3, r8, r10 @ (r14,r3) -= ro0*T[0] - LDR r10,[r5],r2, LSL #2 @ r10= T[0] T += step - STR r12,[r4,#8] - MOV r3, r3, LSL #1 - STR r3, [r4],#-16 - - @ XNPROD31( ri2, ri0, T[0], T[1], 0xbX[0], &bX[2] ) - @ bX[0] = (ri2*T[0] - ri0*T[1])>>31 bX[2] = (ri0*T[0] + ri2*T[1])>>31 - SMULL r14,r12,r6, r10 @ (r14,r12) = ri0*T[0] - RSB r6,r6,#0 @ r6 = -ri0 - @ stall ? - SMLAL r14,r12,r7, r11 @ (r14,r12) += ri2*T[1] - @ stall ? - @ stall ? - SMULL r14,r3, r7, r10 @ (r14,r3) = ri2*T[0] - MOV r12,r12,LSL #1 - @ stall ? - SMLAL r14,r3, r6, r11 @ (r14,r3) -= ri0*T[1] - CMP r4,r1 - STR r12,[r1,#8-16] - MOV r3, r3, LSL #1 - STR r3, [r1,#-16] - - BGE presymmetry_loop3 - - SUB r1,r1,r0 @ r1 = in -= n>>2 (i.e. restore in) - - LDR r3,[r13] - STR r2,[r13,#-4]! - - @ mdct_butterflies - @ r0 = n = (points * 2) - @ r1 = in = x - @ r2 = i - @ r3 = shift - STMFD r13!,{r0-r1} - ADRL r4, .Lsincos_lookup - LDR r5, [r4] - ADD r5, r4 - RSBS r4,r3,#6 @ r4 = stages = 7-shift then --stages - BLE no_generics - MOV r14,#4 @ r14= 4 (i=0) - MOV r6, r14,LSL r3 @ r6 = (4<>i = POINTS - MOV r2, r14,LSR #2 @ r2 = (1<>1) - ADD r7,r1,r0,LSL #1 @ r7 = x1+4 = x + POINTS - ADD r12,r5,#1024*4 @ r12= sincos_lookup0+1024 - -mdct_bufferfly_generic_loop1: - LDMDB r7!,{r2,r3,r8,r11} @ r2 = x1[0] - @ r3 = x1[1] - @ r8 = x1[2] - @ r11= x1[3] x1 -= 4 - LDMDB r1!,{r4,r9,r10,r14} @ r4 = x2[0] - @ r9 = x2[1] - @ r10= x2[2] - @ r14= x2[3] x2 -= 4 - - SUB r2, r2, r3 @ r2 = s0 = x1[0] - x1[1] - ADD r3, r2, r3, LSL #1 @ r3 = x1[0] + x1[1] (-> x1[0]) - SUB r11,r11,r8 @ r11= s1 = x1[3] - x1[2] - ADD r8, r11,r8, LSL #1 @ r8 = x1[3] + x1[2] (-> x1[2]) - SUB r9, r9, r4 @ r9 = s2 = x2[1] - x2[0] - ADD r4, r9, r4, LSL #1 @ r4 = x2[1] + x2[0] (-> x1[1]) - SUB r14,r14,r10 @ r14= s3 = x2[3] - x2[2] - ADD r10,r14,r10,LSL #1 @ r10= x2[3] + x2[2] (-> x1[3]) - STMIA r7,{r3,r4,r8,r10} - - @ r0 = points - @ r1 = x2 - @ r2 = s0 - @ r3 free - @ r4 free - @ r5 = T - @ r6 = step - @ r7 = x1 - @ r8 free - @ r9 = s2 - @ r10 free - @ r11= s1 - @ r12= limit - @ r14= s3 - - LDR r8, [r5,#4] @ r8 = T[1] - LDR r10,[r5],r6,LSL #2 @ r10= T[0] T += step - - @ XPROD31(s1, s0, T[0], T[1], &x2[0], &x2[2]) - @ x2[0] = (s1*T[0] + s0*T[1])>>31 x2[2] = (s0*T[0] - s1*T[1])>>31 - @ stall Xscale - SMULL r4, r3, r2, r8 @ (r4, r3) = s0*T[1] - SMLAL r4, r3, r11,r10 @ (r4, r3) += s1*T[0] - RSB r11,r11,#0 - SMULL r11,r4, r8, r11 @ (r11,r4) = -s1*T[1] - SMLAL r11,r4, r2, r10 @ (r11,r4) += s0*T[0] - MOV r2, r3, LSL #1 @ r2 = r3<<1 = Value for x2[0] - - @ XPROD31(s2, s3, T[0], T[1], &x2[1], &x2[3]) - @ x2[1] = (s2*T[0] + s3*T[1])>>31 x2[3] = (s3*T[0] - s2*T[1])>>31 - SMULL r11,r3, r9, r10 @ (r11,r3) = s2*T[0] - MOV r4, r4, LSL #1 @ r4 = r4<<1 = Value for x2[2] - SMLAL r11,r3, r14,r8 @ (r11,r3) += s3*T[1] - RSB r9, r9, #0 - SMULL r10,r11,r14,r10 @ (r10,r11) = s3*T[0] - MOV r3, r3, LSL #1 @ r3 = r3<<1 = Value for x2[1] - SMLAL r10,r11,r9,r8 @ (r10,r11) -= s2*T[1] - CMP r5, r12 - MOV r11,r11,LSL #1 @ r11= r11<<1 = Value for x2[3] - - STMIA r1,{r2,r3,r4,r11} - - BLT mdct_bufferfly_generic_loop1 - - SUB r12,r12,#1024*4 -mdct_bufferfly_generic_loop2: - LDMDB r7!,{r2,r3,r9,r10} @ r2 = x1[0] - @ r3 = x1[1] - @ r9 = x1[2] - @ r10= x1[3] x1 -= 4 - LDMDB r1!,{r4,r8,r11,r14} @ r4 = x2[0] - @ r8 = x2[1] - @ r11= x2[2] - @ r14= x2[3] x2 -= 4 - - SUB r2, r2, r3 @ r2 = s0 = x1[0] - x1[1] - ADD r3, r2, r3, LSL #1 @ r3 = x1[0] + x1[1] (-> x1[0]) - SUB r9, r9,r10 @ r9 = s1 = x1[2] - x1[3] - ADD r10,r9,r10, LSL #1 @ r10= x1[2] + x1[3] (-> x1[2]) - SUB r4, r4, r8 @ r4 = s2 = x2[0] - x2[1] - ADD r8, r4, r8, LSL #1 @ r8 = x2[0] + x2[1] (-> x1[1]) - SUB r14,r14,r11 @ r14= s3 = x2[3] - x2[2] - ADD r11,r14,r11,LSL #1 @ r11= x2[3] + x2[2] (-> x1[3]) - STMIA r7,{r3,r8,r10,r11} - - @ r0 = points - @ r1 = x2 - @ r2 = s0 - @ r3 free - @ r4 = s2 - @ r5 = T - @ r6 = step - @ r7 = x1 - @ r8 free - @ r9 = s1 - @ r10 free - @ r11 free - @ r12= limit - @ r14= s3 - - LDR r8, [r5,#4] @ r8 = T[1] - LDR r10,[r5],-r6,LSL #2 @ r10= T[0] T -= step - - @ XNPROD31(s0, s1, T[0], T[1], &x2[0], &x2[2]) - @ x2[0] = (s0*T[0] - s1*T[1])>>31 x2[2] = (s1*T[0] + s0*T[1])>>31 - @ stall Xscale - SMULL r3, r11,r2, r8 @ (r3, r11) = s0*T[1] - SMLAL r3, r11,r9, r10 @ (r3, r11) += s1*T[0] - RSB r9, r9, #0 - SMULL r3, r2, r10,r2 @ (r3, r2) = s0*T[0] - SMLAL r3, r2, r9, r8 @ (r3, r2) += -s1*T[1] - MOV r9, r11,LSL #1 @ r9 = r11<<1 = Value for x2[2] - - @ XNPROD31(s3, s2, T[0], T[1], &x2[1], &x2[3]) - @ x2[1] = (s3*T[0] - s2*T[1])>>31 x2[3] = (s2*T[0] + s3*T[1])>>31 - SMULL r3, r11,r4, r10 @ (r3,r11) = s2*T[0] - MOV r2, r2, LSL #1 @ r2 = r2<<1 = Value for x2[0] - SMLAL r3, r11,r14,r8 @ (r3,r11) += s3*T[1] - RSB r4, r4, #0 - SMULL r10,r3,r14,r10 @ (r10,r3) = s3*T[0] - MOV r11,r11,LSL #1 @ r11= r11<<1 = Value for x2[3] - SMLAL r10,r3, r4, r8 @ (r10,r3) -= s2*T[1] - CMP r5, r12 - MOV r3, r3, LSL #1 @ r3 = r3<<1 = Value for x2[1] - - STMIA r1,{r2,r3,r9,r11} - - BGT mdct_bufferfly_generic_loop2 - - LDR r2,[r13],#4 @ unstack r2 - ADD r1, r1, r0, LSL #2 @ r1 = x+POINTS*j - @ stall Xscale - SUBS r2, r2, #1 @ r2-- (j++) - BGT mdct_butterflies_loop2 - - LDMFD r13!,{r4,r14} - - LDR r1,[r13,#4] - - SUBS r4, r4, #1 @ stages-- - MOV r14,r14,LSL #1 @ r14= 4< x[16] - SUB r9, r9, r10 @ r9 = s1 = x[18] - x[19] - ADD r10,r9, r10,LSL #1 @ r10= x[18] + x[19] -> x[18] - SUB r8, r8, r7 @ r8 = s2 = x[ 1] - x[ 0] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 1] + x[ 0] -> x[17] - SUB r12,r12,r11 @ r12= s3 = x[ 3] - x[ 2] - ADD r11,r12,r11, LSL #1 @ r11= x[ 3] + x[ 2] -> x[19] - STMIA r4!,{r6,r7,r10,r11} - - LDR r6,cPI1_8 - LDR r7,cPI3_8 - - @ XNPROD31( s0, s1, cPI3_8, cPI1_8, &x[ 0], &x[ 2] ) - @ x[0] = s0*cPI3_8 - s1*cPI1_8 x[2] = s1*cPI3_8 + s0*cPI1_8 - @ stall Xscale - SMULL r14,r11,r5, r6 @ (r14,r11) = s0*cPI1_8 - SMLAL r14,r11,r9, r7 @ (r14,r11) += s1*cPI3_8 - RSB r9, r9, #0 - SMULL r14,r5, r7, r5 @ (r14,r5) = s0*cPI3_8 - SMLAL r14,r5, r9, r6 @ (r14,r5) -= s1*cPI1_8 - MOV r11,r11,LSL #1 - MOV r5, r5, LSL #1 - - @ XPROD31 ( s2, s3, cPI1_8, cPI3_8, &x[ 1], &x[ 3] ) - @ x[1] = s2*cPI1_8 + s3*cPI3_8 x[3] = s3*cPI1_8 - s2*cPI3_8 - SMULL r14,r9, r8, r6 @ (r14,r9) = s2*cPI1_8 - SMLAL r14,r9, r12,r7 @ (r14,r9) += s3*cPI3_8 - RSB r8,r8,#0 - SMULL r14,r12,r6, r12 @ (r14,r12) = s3*cPI1_8 - SMLAL r14,r12,r8, r7 @ (r14,r12) -= s2*cPI3_8 - MOV r9, r9, LSL #1 - MOV r12,r12,LSL #1 - STMIA r1!,{r5,r9,r11,r12} - - @ block2 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[20] - @ r6 = x[21] - @ r9 = x[22] - @ r10= x[23] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[4] - @ r8 = x[5] - @ r11= x[6] - @ r12= x[7] - SUB r5, r5, r6 @ r5 = s0 = x[20] - x[21] - ADD r6, r5, r6, LSL #1 @ r6 = x[20] + x[21] -> x[20] - SUB r9, r9, r10 @ r9 = s1 = x[22] - x[23] - ADD r10,r9, r10,LSL #1 @ r10= x[22] + x[23] -> x[22] - SUB r8, r8, r7 @ r8 = s2 = x[ 5] - x[ 4] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 5] + x[ 4] -> x[21] - SUB r12,r12,r11 @ r12= s3 = x[ 7] - x[ 6] - ADD r11,r12,r11, LSL #1 @ r11= x[ 7] + x[ 6] -> x[23] - LDR r14,cPI2_8 - STMIA r4!,{r6,r7,r10,r11} - - SUB r5, r5, r9 @ r5 = s0 - s1 - ADD r9, r5, r9, LSL #1 @ r9 = s0 + s1 - SMULL r6, r5, r14,r5 @ (r6,r5) = (s0-s1)*cPI2_8 - SUB r12,r12,r8 @ r12= s3 - s2 - ADD r8, r12,r8, LSL #1 @ r8 = s3 + s2 - - SMULL r6, r8, r14,r8 @ (r6,r8) = (s3+s2)*cPI2_8 - MOV r5, r5, LSL #1 - SMULL r6, r9, r14,r9 @ (r6,r9) = (s0+s1)*cPI2_8 - MOV r8, r8, LSL #1 - SMULL r6, r12,r14,r12 @ (r6,r12) = (s3-s2)*cPI2_8 - MOV r9, r9, LSL #1 - MOV r12,r12,LSL #1 - STMIA r1!,{r5,r8,r9,r12} - - @ block3 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[24] - @ r6 = x[25] - @ r9 = x[25] - @ r10= x[26] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[8] - @ r8 = x[9] - @ r11= x[10] - @ r12= x[11] - SUB r5, r5, r6 @ r5 = s0 = x[24] - x[25] - ADD r6, r5, r6, LSL #1 @ r6 = x[24] + x[25] -> x[25] - SUB r9, r9, r10 @ r9 = s1 = x[26] - x[27] - ADD r10,r9, r10,LSL #1 @ r10= x[26] + x[27] -> x[26] - SUB r8, r8, r7 @ r8 = s2 = x[ 9] - x[ 8] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 9] + x[ 8] -> x[25] - SUB r12,r12,r11 @ r12= s3 = x[11] - x[10] - ADD r11,r12,r11, LSL #1 @ r11= x[11] + x[10] -> x[27] - STMIA r4!,{r6,r7,r10,r11} - - LDR r6,cPI3_8 - LDR r7,cPI1_8 - - @ XNPROD31( s0, s1, cPI1_8, cPI3_8, &x[ 8], &x[10] ) - @ x[8] = s0*cPI1_8 - s1*cPI3_8 x[10] = s1*cPI1_8 + s0*cPI3_8 - @ stall Xscale - SMULL r14,r11,r5, r6 @ (r14,r11) = s0*cPI3_8 - SMLAL r14,r11,r9, r7 @ (r14,r11) += s1*cPI1_8 - RSB r9, r9, #0 - SMULL r14,r5, r7, r5 @ (r14,r5) = s0*cPI1_8 - SMLAL r14,r5, r9, r6 @ (r14,r5) -= s1*cPI3_8 - MOV r11,r11,LSL #1 - MOV r5, r5, LSL #1 - - @ XPROD31 ( s2, s3, cPI3_8, cPI1_8, &x[ 9], &x[11] ) - @ x[9] = s2*cPI3_8 + s3*cPI1_8 x[11] = s3*cPI3_8 - s2*cPI1_8 - SMULL r14,r9, r8, r6 @ (r14,r9) = s2*cPI3_8 - SMLAL r14,r9, r12,r7 @ (r14,r9) += s3*cPI1_8 - RSB r8,r8,#0 - SMULL r14,r12,r6, r12 @ (r14,r12) = s3*cPI3_8 - SMLAL r14,r12,r8, r7 @ (r14,r12) -= s2*cPI1_8 - MOV r9, r9, LSL #1 - MOV r12,r12,LSL #1 - STMIA r1!,{r5,r9,r11,r12} - - @ block4 - LDMIA r4,{r5,r6,r10,r11} @ r5 = x[28] - @ r6 = x[29] - @ r10= x[30] - @ r11= x[31] - LDMIA r1,{r8,r9,r12,r14} @ r8 = x[12] - @ r9 = x[13] - @ r12= x[14] - @ r14= x[15] - SUB r5, r5, r6 @ r5 = s0 = x[28] - x[29] - ADD r6, r5, r6, LSL #1 @ r6 = x[28] + x[29] -> x[28] - SUB r7, r14,r12 @ r7 = s3 = x[15] - x[14] - ADD r12,r7, r12, LSL #1 @ r12= x[15] + x[14] -> x[31] - SUB r10,r10,r11 @ r10= s1 = x[30] - x[31] - ADD r11,r10,r11,LSL #1 @ r11= x[30] + x[31] -> x[30] - SUB r14, r8, r9 @ r14= s2 = x[12] - x[13] - ADD r9, r14, r9, LSL #1 @ r9 = x[12] + x[13] -> x[29] - STMIA r4!,{r6,r9,r11,r12} - STMIA r1!,{r5,r7,r10,r14} - - @ mdct_butterfly16 (1st version) - @ block 1 - SUB r1,r1,#16*4 - ADD r4,r1,#8*4 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[ 8] - @ r6 = x[ 9] - @ r9 = x[10] - @ r10= x[11] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[0] - @ r8 = x[1] - @ r11= x[2] - @ r12= x[3] - SUB r5, r5, r6 @ r5 = s0 = x[ 8] - x[ 9] - ADD r6, r5, r6, LSL #1 @ r6 = x[ 8] + x[ 9] -> x[ 8] - SUB r9, r9, r10 @ r9 = s1 = x[10] - x[11] - ADD r10,r9, r10,LSL #1 @ r10= x[10] + x[11] -> x[10] - SUB r8, r8, r7 @ r8 = s2 = x[ 1] - x[ 0] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 1] + x[ 0] -> x[ 9] - SUB r12,r12,r11 @ r12= s3 = x[ 3] - x[ 2] - ADD r11,r12,r11, LSL #1 @ r11= x[ 3] + x[ 2] -> x[11] - LDR r14,cPI2_8 - STMIA r4!,{r6,r7,r10,r11} - - SUB r5, r5, r9 @ r5 = s0 - s1 - ADD r9, r5, r9, LSL #1 @ r9 = s0 + s1 - SMULL r6, r5, r14,r5 @ (r6,r5) = (s0-s1)*cPI2_8 - SUB r12,r12,r8 @ r12= s3 - s2 - ADD r8, r12,r8, LSL #1 @ r8 = s3 + s2 - - SMULL r6, r8, r14,r8 @ (r6,r8) = (s3+s2)*cPI2_8 - MOV r5, r5, LSL #1 - SMULL r6, r9, r14,r9 @ (r6,r9) = (s0+s1)*cPI2_8 - MOV r8, r8, LSL #1 - SMULL r6, r12,r14,r12 @ (r6,r12) = (s3-s2)*cPI2_8 - MOV r9, r9, LSL #1 - MOV r12,r12,LSL #1 - STMIA r1!,{r5,r8,r9,r12} - - @ block4 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[12] - @ r6 = x[13] - @ r9 = x[14] - @ r10= x[15] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[ 4] - @ r8 = x[ 5] - @ r11= x[ 6] - @ r12= x[ 7] - SUB r14,r7, r8 @ r14= s0 = x[ 4] - x[ 5] - ADD r8, r14,r8, LSL #1 @ r8 = x[ 4] + x[ 5] -> x[13] - SUB r7, r12,r11 @ r7 = s1 = x[ 7] - x[ 6] - ADD r11,r7, r11, LSL #1 @ r11= x[ 7] + x[ 6] -> x[15] - SUB r5, r5, r6 @ r5 = s2 = x[12] - x[13] - ADD r6, r5, r6, LSL #1 @ r6 = x[12] + x[13] -> x[12] - SUB r12,r9, r10 @ r12= s3 = x[14] - x[15] - ADD r10,r12,r10,LSL #1 @ r10= x[14] + x[15] -> x[14] - STMIA r4!,{r6,r8,r10,r11} - STMIA r1!,{r5,r7,r12,r14} - - @ mdct_butterfly_8 - LDMDB r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMDB r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - @ mdct_butterfly_8 - LDMIA r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMIA r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - @ block 2 - ADD r1,r1,#16*4-8*4 - ADD r4,r1,#8*4 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[ 8] - @ r6 = x[ 9] - @ r9 = x[10] - @ r10= x[11] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[0] - @ r8 = x[1] - @ r11= x[2] - @ r12= x[3] - SUB r5, r5, r6 @ r5 = s0 = x[ 8] - x[ 9] - ADD r6, r5, r6, LSL #1 @ r6 = x[ 8] + x[ 9] -> x[ 8] - SUB r9, r9, r10 @ r9 = s1 = x[10] - x[11] - ADD r10,r9, r10,LSL #1 @ r10= x[10] + x[11] -> x[10] - SUB r8, r8, r7 @ r8 = s2 = x[ 1] - x[ 0] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 1] + x[ 0] -> x[ 9] - SUB r12,r12,r11 @ r12= s3 = x[ 3] - x[ 2] - ADD r11,r12,r11, LSL #1 @ r11= x[ 3] + x[ 2] -> x[11] - LDR r14,cPI2_8 - STMIA r4!,{r6,r7,r10,r11} - - SUB r5, r5, r9 @ r5 = s0 - s1 - ADD r9, r5, r9, LSL #1 @ r9 = s0 + s1 - SMULL r6, r5, r14,r5 @ (r6,r5) = (s0-s1)*cPI2_8 - SUB r12,r12,r8 @ r12= s3 - s2 - ADD r8, r12,r8, LSL #1 @ r8 = s3 + s2 - - SMULL r6, r8, r14,r8 @ (r6,r8) = (s3+s2)*cPI2_8 - MOV r5, r5, LSL #1 - SMULL r6, r9, r14,r9 @ (r6,r9) = (s0+s1)*cPI2_8 - MOV r8, r8, LSL #1 - SMULL r6, r12,r14,r12 @ (r6,r12) = (s3-s2)*cPI2_8 - MOV r9, r9, LSL #1 - MOV r12,r12,LSL #1 - STMIA r1!,{r5,r8,r9,r12} - - @ block4 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[12] - @ r6 = x[13] - @ r9 = x[14] - @ r10= x[15] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[ 4] - @ r8 = x[ 5] - @ r11= x[ 6] - @ r12= x[ 7] - SUB r5, r5, r6 @ r5 = s2 = x[12] - x[13] - ADD r6, r5, r6, LSL #1 @ r6 = x[12] + x[13] -> x[12] - SUB r9, r9, r10 @ r9 = s3 = x[14] - x[15] - ADD r10,r9, r10,LSL #1 @ r10= x[14] + x[15] -> x[14] - SUB r14,r7, r8 @ r14= s0 = x[ 4] - x[ 5] - ADD r8, r14,r8, LSL #1 @ r8 = x[ 4] + x[ 5] -> x[13] - SUB r7, r12,r11 @ r7 = s1 = x[ 7] - x[ 6] - ADD r11,r7, r11, LSL #1 @ r11= x[ 7] + x[ 6] -> x[15] - STMIA r4!,{r6,r8,r10,r11} - STMIA r1!,{r5,r7,r9,r14} - - @ mdct_butterfly_8 - LDMDB r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMDB r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - @ mdct_butterfly_8 - LDMIA r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMIA r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - ADD r1,r1,#8*4 - SUBS r0,r0,#64 - BGT mdct_bufferflies_loop3 - - LDMFD r13,{r0-r3} - -mdct_bitreverseARM: - @ r0 = points = n - @ r1 = in - @ r2 = step - @ r3 = shift - - MOV r4, #0 @ r4 = bit = 0 - ADD r5, r1, r0, LSL #1 @ r5 = w = x + (n>>1) - ADR r6, bitrev - SUB r5, r5, #8 -brev_lp: - LDRB r7, [r6, r4, LSR #6] - AND r8, r4, #0x3f - LDRB r8, [r6, r8] - ADD r4, r4, #1 @ bit++ - @ stall XScale - ORR r7, r7, r8, LSL #6 @ r7 = bitrev[bit] - MOV r7, r7, LSR r3 - ADD r9, r1, r7, LSL #2 @ r9 = xx = x + (b>>shift) - CMP r5, r9 @ if (w > xx) - LDR r10,[r5],#-8 @ r10 = w[0] w -= 2 - LDRGT r11,[r5,#12] @ r11 = w[1] - LDRGT r12,[r9] @ r12 = xx[0] - LDRGT r14,[r9,#4] @ r14 = xx[1] - STRGT r10,[r9] @ xx[0]= w[0] - STRGT r11,[r9,#4] @ xx[1]= w[1] - STRGT r12,[r5,#8] @ w[0] = xx[0] - STRGT r14,[r5,#12] @ w[1] = xx[1] - CMP r5,r1 - BGT brev_lp - - @ mdct_step7 - @ r0 = points - @ r1 = in - @ r2 = step - @ r3 = shift - - CMP r2, #4 @ r5 = T = (step>=4) ? - ADR r7, .Lsincos_lookup @ sincos_lookup0 + - ADDLT r7, #4 @ sincos_lookup1 - LDR r5, [r7] - ADD r5, r7 - ADD r7, r1, r0, LSL #1 @ r7 = w1 = x + (n>>1) - ADDGE r5, r5, r2, LSL #1 @ (step>>1) - ADD r8, r5, #1024*4 @ r8 = Ttop -step7_loop1: - LDR r6, [r1] @ r6 = w0[0] - LDR r9, [r1,#4] @ r9 = w0[1] - LDR r10,[r7,#-8]! @ r10= w1[0] w1 -= 2 - LDR r11,[r7,#4] @ r11= w1[1] - LDR r14,[r5,#4] @ r14= T[1] - LDR r12,[r5],r2,LSL #2 @ r12= T[0] T += step - - ADD r6, r6, r10 @ r6 = s0 = w0[0] + w1[0] - SUB r10,r6, r10,LSL #1 @ r10= s1b= w0[0] - w1[0] - SUB r11,r11,r9 @ r11= s1 = w1[1] - w0[1] - ADD r9, r11,r9, LSL #1 @ r9 = s0b= w1[1] + w0[1] - - @ Can save 1 cycle by using SMULL SMLAL - at the cost of being - @ 1 off. - SMULL r0, r3, r6, r14 @ (r0,r3) = s0*T[1] - SMULL r0, r4, r11,r12 @ (r0,r4) += s1*T[0] = s2 - ADD r3, r3, r4 - SMULL r0, r14,r11,r14 @ (r0,r14) = s1*T[1] - SMULL r0, r12,r6, r12 @ (r0,r12) += s0*T[0] = s3 - SUB r14,r14,r12 - - @ r9 = s0b<<1 - @ r10= s1b<<1 - ADD r9, r3, r9, ASR #1 @ r9 = s0b + s2 - SUB r3, r9, r3, LSL #1 @ r3 = s0b - s2 - - SUB r12,r14,r10,ASR #1 @ r12= s3 - s1b - ADD r10,r14,r10,ASR #1 @ r10= s3 + s1b - STR r9, [r1],#4 - STR r10,[r1],#4 @ w0 += 2 - STR r3, [r7] - STR r12,[r7,#4] - - CMP r5,r8 - BLT step7_loop1 - -step7_loop2: - LDR r6, [r1] @ r6 = w0[0] - LDR r9, [r1,#4] @ r9 = w0[1] - LDR r10,[r7,#-8]! @ r10= w1[0] w1 -= 2 - LDR r11,[r7,#4] @ r11= w1[1] - LDR r14,[r5,-r2,LSL #2]! @ r12= T[1] T -= step - LDR r12,[r5,#4] @ r14= T[0] - - ADD r6, r6, r10 @ r6 = s0 = w0[0] + w1[0] - SUB r10,r6, r10,LSL #1 @ r10= s1b= w0[0] - w1[0] - SUB r11,r11,r9 @ r11= s1 = w1[1] - w0[1] - ADD r9, r11,r9, LSL #1 @ r9 = s0b= w1[1] + w0[1] - - @ Can save 1 cycle by using SMULL SMLAL - at the cost of being - @ 1 off. - SMULL r0, r3, r6, r14 @ (r0,r3) = s0*T[0] - SMULL r0, r4, r11,r12 @ (r0,r4) += s1*T[1] = s2 - ADD r3, r3, r4 - SMULL r0, r14,r11,r14 @ (r0,r14) = s1*T[0] - SMULL r0, r12,r6, r12 @ (r0,r12) += s0*T[1] = s3 - SUB r14,r14,r12 - - @ r9 = s0b<<1 - @ r10= s1b<<1 - ADD r9, r3, r9, ASR #1 @ r9 = s0b + s2 - SUB r3, r9, r3, LSL #1 @ r3 = s0b - s2 - - SUB r12,r14,r10,ASR #1 @ r12= s3 - s1b - ADD r10,r14,r10,ASR #1 @ r10= s3 + s1b - STR r9, [r1],#4 - STR r10,[r1],#4 @ w0 += 2 - STR r3, [r7] - STR r12,[r7,#4] - - CMP r1,r7 - BLT step7_loop2 - - LDMFD r13!,{r0-r3} - - @ r0 = points - @ r1 = in - @ r2 = step - @ r3 = shift - MOV r2, r2, ASR #2 @ r2 = step >>= 2 - CMP r2, #0 - CMPNE r2, #1 - BEQ mdct_end - - @ step > 1 (default case) - CMP r2, #4 @ r5 = T = (step>=4) ? - ADR r7, .Lsincos_lookup @ sincos_lookup0 + - ADDLT r7, #4 @ sincos_lookup1 - LDR r5, [r7] - ADD r5, r7 - ADD r7, r1, r0, LSL #1 @ r7 = iX = x + (n>>1) - ADDGE r5, r5, r2, LSL #1 @ (step>>1) -mdct_step8_default: - LDR r6, [r1],#4 @ r6 = s0 = x[0] - LDR r8, [r1],#4 @ r8 = -s1 = x[1] - LDR r12,[r5,#4] @ r12= T[1] - LDR r14,[r5],r2,LSL #2 @ r14= T[0] T += step - RSB r8, r8, #0 @ r8 = s1 - - @ XPROD31(s0, s1, T[0], T[1], x, x+1) - @ x[0] = s0 * T[0] + s1 * T[1] x[1] = s1 * T[0] - s0 * T[1] - SMULL r9, r10, r8, r12 @ (r9,r10) = s1 * T[1] - CMP r1, r7 - SMLAL r9, r10, r6, r14 @ (r9,r10) += s0 * T[0] - RSB r6, r6, #0 @ r6 = -s0 - SMULL r9, r11, r8, r14 @ (r9,r11) = s1 * T[0] - MOV r10,r10,LSL #1 - SMLAL r9, r11, r6, r12 @ (r9,r11) -= s0 * T[1] - STR r10,[r1,#-8] - MOV r11,r11,LSL #1 - STR r11,[r1,#-4] - BLT mdct_step8_default - -mdct_end: - MOV r0, r2 - LDMFD r13!,{r4-r11,PC} - -cPI1_8: - .word 0x7641af3d -cPI2_8: - .word 0x5a82799a -cPI3_8: - .word 0x30fbc54d -bitrev: - .byte 0 - .byte 32 - .byte 16 - .byte 48 - .byte 8 - .byte 40 - .byte 24 - .byte 56 - .byte 4 - .byte 36 - .byte 20 - .byte 52 - .byte 12 - .byte 44 - .byte 28 - .byte 60 - .byte 2 - .byte 34 - .byte 18 - .byte 50 - .byte 10 - .byte 42 - .byte 26 - .byte 58 - .byte 6 - .byte 38 - .byte 22 - .byte 54 - .byte 14 - .byte 46 - .byte 30 - .byte 62 - .byte 1 - .byte 33 - .byte 17 - .byte 49 - .byte 9 - .byte 41 - .byte 25 - .byte 57 - .byte 5 - .byte 37 - .byte 21 - .byte 53 - .byte 13 - .byte 45 - .byte 29 - .byte 61 - .byte 3 - .byte 35 - .byte 19 - .byte 51 - .byte 11 - .byte 43 - .byte 27 - .byte 59 - .byte 7 - .byte 39 - .byte 23 - .byte 55 - .byte 15 - .byte 47 - .byte 31 - .byte 63 - -.Lsincos_lookup: - .word sincos_lookup0-.Lsincos_lookup - .word sincos_lookup1-(.Lsincos_lookup+4) - - @ END diff --git a/external/android-specific/tremolo/Tremolo/mdctLARM.s b/external/android-specific/tremolo/Tremolo/mdctLARM.s deleted file mode 100644 index 72a4647..0000000 --- a/external/android-specific/tremolo/Tremolo/mdctLARM.s +++ /dev/null @@ -1,1206 +0,0 @@ -@ Tremolo library -@----------------------------------------------------------------------- -@ Copyright (C) 2002-2009, Xiph.org Foundation -@ Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd -@ All rights reserved. - -@ Redistribution and use in source and binary forms, with or without -@ modification, are permitted provided that the following conditions -@ are met: - -@ * Redistributions of source code must retain the above copyright -@ notice, this list of conditions and the following disclaimer. -@ * Redistributions in binary form must reproduce the above -@ copyright notice, this list of conditions and the following disclaimer -@ in the documentation and/or other materials provided with the -@ distribution. -@ * Neither the names of the Xiph.org Foundation nor Pinknoise -@ Productions Ltd nor the names of its contributors may be used to -@ endorse or promote products derived from this software without -@ specific prior written permission. -@ -@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -@ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -@ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -@ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -@ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -@ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -@ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ ---------------------------------------------------------------------- - - .text - - @ low accuracy version - - .global mdct_backwardARM - .global mdct_shift_right - .global mdct_unroll_prelap - .global mdct_unroll_part2 - .global mdct_unroll_part3 - .global mdct_unroll_postlap - - .extern sincos_lookup0 - .extern sincos_lookup1 - -mdct_unroll_prelap: - @ r0 = out - @ r1 = post - @ r2 = r - @ r3 = step - STMFD r13!,{r4-r7,r14} - MVN r4, #0x8000 - MOV r3, r3, LSL #1 - SUB r1, r2, r1 @ r1 = r - post - SUBS r1, r1, #16 @ r1 = r - post - 16 - BLT unroll_over -unroll_loop: - LDMDB r2!,{r5,r6,r7,r12} - - MOV r5, r5, ASR #9 @ r5 = (*--r)>>9 - MOV r6, r6, ASR #9 @ r6 = (*--r)>>9 - MOV r7, r7, ASR #9 @ r7 = (*--r)>>9 - MOV r12,r12,ASR #9 @ r12= (*--r)>>9 - - MOV r14,r12,ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r12,r4, r14,ASR #31 - STRH r12,[r0], r3 - - MOV r14,r7, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r7, r4, r14,ASR #31 - STRH r7, [r0], r3 - - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r3 - - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - - SUBS r1, r1, #16 - BGE unroll_loop - -unroll_over: - ADDS r1, r1, #16 - BLE unroll_end -unroll_loop2: - LDR r5,[r2,#-4]! - @ stall - @ stall (Xscale) - MOV r5, r5, ASR #9 @ r5 = (*--r)>>9 - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - SUBS r1, r1, #4 - BGT unroll_loop2 -unroll_end: - LDMFD r13!,{r4-r7,PC} - -mdct_unroll_postlap: - @ r0 = out - @ r1 = post - @ r2 = l - @ r3 = step - STMFD r13!,{r4-r7,r14} - MVN r4, #0x8000 - MOV r3, r3, LSL #1 - SUB r1, r1, r2 @ r1 = post - l - MOV r1, r1, ASR #1 @ r1 = (post - l)>>1 - SUBS r1, r1, #16 @ r1 = ((post - l)>>1) - 4 - BLT unroll_over3 -unroll_loop3: - LDR r12,[r2],#8 - LDR r7, [r2],#8 - LDR r6, [r2],#8 - LDR r5, [r2],#8 - - RSB r12,r12,#0 - RSB r5, r5, #0 - RSB r6, r6, #0 - RSB r7, r7, #0 - - MOV r12, r12,ASR #9 @ r12= (-*l)>>9 - MOV r5, r5, ASR #9 @ r5 = (-*l)>>9 - MOV r6, r6, ASR #9 @ r6 = (-*l)>>9 - MOV r7, r7, ASR #9 @ r7 = (-*l)>>9 - - MOV r14,r12,ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r12,r4, r14,ASR #31 - STRH r12,[r0], r3 - - MOV r14,r7, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r7, r4, r14,ASR #31 - STRH r7, [r0], r3 - - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r3 - - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - - SUBS r1, r1, #16 - BGE unroll_loop3 - -unroll_over3: - ADDS r1, r1, #16 - BLE unroll_over4 -unroll_loop4: - LDR r5,[r2], #8 - @ stall - @ stall (Xscale) - RSB r5, r5, #0 - MOV r5, r5, ASR #9 @ r5 = (-*l)>>9 - MOV r14,r5, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r5, r4, r14,ASR #31 - STRH r5, [r0], r3 - SUBS r1, r1, #4 - BGT unroll_loop4 -unroll_over4: - LDMFD r13!,{r4-r7,PC} - -mdct_unroll_part2: - @ r0 = out - @ r1 = post - @ r2 = l - @ r3 = r - @ <> = step - @ <> = wL - @ <> = wR - MOV r12,r13 - STMFD r13!,{r4,r6-r11,r14} - LDMFD r12,{r8,r9,r10} @ r8 = step - @ r9 = wL - @ r10= wR - MVN r4, #0x8000 - MOV r8, r8, LSL #1 - SUBS r1, r3, r1 @ r1 = (r - post) - BLE unroll_over5 -unroll_loop5: - LDR r12,[r2, #-8]! @ r12= *l (but l -= 2 first) - LDR r7, [r3, #-4]! @ r7 = *--r - LDRB r6, [r10,#-1]! @ r6 = *--wR - LDRB r11,[r9],#1 @ r11= *wL++ - - MOV r12, r12, ASR #8 - @ Can save a cycle here, at the cost of 1bit errors in rounding - MUL r11,r12,r11 @ r11 = *l * *wL++ - MOV r7, r7, ASR #8 - MLA r6, r7, r6, r11 @ r6 = *--r * *--wR - MOV r6, r6, ASR #9 - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r8 - - SUBS r1, r1, #4 - BGT unroll_loop5 - -unroll_over5: - LDMFD r13!,{r4,r6-r11,PC} - -mdct_unroll_part3: - @ r0 = out - @ r1 = post - @ r2 = l - @ r3 = r - @ <> = step - @ <> = wL - @ <> = wR - MOV r12,r13 - STMFD r13!,{r4,r6-r11,r14} - LDMFD r12,{r8,r9,r10} @ r8 = step - @ r9 = wL - @ r10= wR - MVN r4, #0x8000 - MOV r8, r8, LSL #1 - SUBS r1, r1, r3 @ r1 = (post - r) - BLE unroll_over6 -unroll_loop6: - LDR r12,[r2],#8 @ r12= *l (but l += 2 first) - LDR r7, [r3],#4 @ r7 = *r++ - LDRB r11,[r9],#1 @ r11= *wL++ - LDRB r6, [r10,#-1]! @ r6 = *--wR - - @ Can save a cycle here, at the cost of 1bit errors in rounding - MOV r12,r12,ASR #8 - MUL r11,r12,r11 @ (r14,r11) = *l * *wL++ - MOV r7, r7, ASR #8 - MUL r6, r7, r6 @ (r14,r6) = *--r * *--wR - SUB r6, r6, r11 - MOV r6, r6, ASR #9 - MOV r14,r6, ASR #15 - TEQ r14,r14,ASR #31 @ if r14==0 || r14==-1 then in range - EORNE r6, r4, r14,ASR #31 - STRH r6, [r0], r8 - - SUBS r1, r1, #4 - BGT unroll_loop6 - -unroll_over6: - LDMFD r13!,{r4,r6-r11,PC} - -mdct_shift_right: - @ r0 = n - @ r1 = in - @ r2 = right - STMFD r13!,{r4-r11,r14} - - MOV r0, r0, LSR #2 @ n >>= 2 - ADD r1, r1, #4 - - SUBS r0, r0, #8 - BLT sr_less_than_8 -sr_loop: - LDR r3, [r1], #8 - LDR r4, [r1], #8 - LDR r5, [r1], #8 - LDR r6, [r1], #8 - LDR r7, [r1], #8 - LDR r8, [r1], #8 - LDR r12,[r1], #8 - LDR r14,[r1], #8 - SUBS r0, r0, #8 - STMIA r2!,{r3,r4,r5,r6,r7,r8,r12,r14} - BGE sr_loop -sr_less_than_8: - ADDS r0, r0, #8 - BEQ sr_end -sr_loop2: - LDR r3, [r1], #8 - SUBS r0, r0, #1 - STR r3, [r2], #4 - BGT sr_loop2 -sr_end: - LDMFD r13!,{r4-r11,PC} - -mdct_backwardARM: - @ r0 = n - @ r1 = in - STMFD r13!,{r4-r11,r14} - - MOV r2, #1<<4 @ r2 = 1<>1) - ADD r14,r1, r0 @ r14= in+(n>>2) - SUB r4, r4, #3*4 @ r4 = aX = in+n2-3 - LDR r5, =sincos_lookup0 @ r5 = T=sincos_lookup0 - -presymmetry_loop1: - LDR r7, [r4,#8] @ r6 = s2 = aX[2] - LDRB r11,[r5,#1] @ r11= T[1] - LDR r6, [r4],#-16 @ r6 = s0 = aX[0] - LDRB r10,[r5],r2 @ r10= T[0] T += step - MOV r6, r6, ASR #8 - MOV r7, r7, ASR #8 - - @ XPROD31(s0, s2, T[0], T[1], 0xaX[0], &ax[2]) - MUL r9, r6, r10 @ r9 = s0*T[0] - RSB r6, r6, #0 - MLA r9, r7, r11,r9 @ r9 += s2*T[1] - CMP r4, r14 - MUL r12,r7, r10 @ r12 = s2*T[0] - STR r9, [r4,#16] @ aX[0] = r9 - MLA r12,r6, r11,r12 @ r12 -= s0*T[1] - STR r12,[r4,#8+16] @ aX[2] = r12 - - BGE presymmetry_loop1 @ while (aX >= in+n4) - -presymmetry_loop2: - LDR r6, [r4],#-16 @ r6 = s0 = aX[0] - LDRB r10,[r5,#1] @ r10= T[1] - LDR r7, [r4,#16+8] @ r6 = s2 = aX[2] - LDRB r11,[r5],-r2 @ r11= T[0] T -= step - MOV r6, r6, ASR #8 - MOV r7, r7, ASR #8 - - @ XPROD31(s0, s2, T[1], T[0], 0xaX[0], &ax[2]) - MUL r9, r6, r10 @ r9 = s0*T[1] - RSB r6, r6, #0 - MLA r9, r7, r11,r9 @ r9 += s2*T[0] - CMP r4, r1 - MUL r12,r7, r10 @ r12 = s2*T[1] - STR r9, [r4,#16] @ aX[0] = r9 - MLA r12,r6, r11,r12 @ r12 -= s0*T[0] - STR r12,[r4,#8+16] @ aX[2] = r12 - - BGE presymmetry_loop2 @ while (aX >= in) - - @ r0 = n - @ r1 = in - @ r2 = step - @ r3 = shift - STMFD r13!,{r3} - LDR r5, =sincos_lookup0 @ r5 = T=sincos_lookup0 - ADD r4, r1, r0, LSL #1 @ r4 = aX = in+(n>>1) - SUB r4, r4, #4*4 @ r4 = aX = in+(n>>1)-4 - LDRB r11,[r5,#1] @ r11= T[1] - LDRB r10,[r5],r2 @ r10= T[0] T += step -presymmetry_loop3: - LDR r8, [r1],#16 @ r8 = ro0 = bX[0] - LDR r9, [r1,#8-16] @ r9 = ro2 = bX[2] - LDR r6, [r4],#-16 @ r6 = ri0 = aX[0] - LDR r7, [r4,#8+16] @ r7 = ri2 = aX[2] - MOV r8, r8, ASR #8 - MOV r9, r9, ASR #8 - MOV r6, r6, ASR #8 - - @ XNPROD31( ro2, ro0, T[1], T[0], 0xaX[0], &aX[2] ) - @ aX[0] = (ro2*T[1] - ro0*T[0])>>31 aX[2] = (ro0*T[1] + ro2*T[0])>>31 - MUL r12,r8, r11 @ r12 = ro0*T[1] - MOV r7, r7, ASR #8 - MLA r12,r9, r10,r12 @ r12 += ro2*T[0] - RSB r8, r8, #0 @ r8 = -ro0 - MUL r3, r9, r11 @ r3 = ro2*T[1] - LDRB r11,[r5,#1] @ r11= T[1] - MLA r3, r8, r10,r3 @ r3 -= ro0*T[0] - LDRB r10,[r5],r2 @ r10= T[0] T += step - STR r12,[r4,#16+8] - STR r3, [r4,#16] - - @ XNPROD31( ri2, ri0, T[0], T[1], 0xbX[0], &bX[2] ) - @ bX[0] = (ri2*T[0] - ri0*T[1])>>31 bX[2] = (ri0*T[0] + ri2*T[1])>>31 - MUL r12,r6, r10 @ r12 = ri0*T[0] - RSB r6, r6, #0 @ r6 = -ri0 - MLA r12,r7, r11,r12 @ r12 += ri2*T[1] - CMP r4, r1 - MUL r3, r7, r10 @ r3 = ri2*T[0] - STR r12,[r1,#8-16] - MLA r3, r6, r11,r3 @ r3 -= ri0*T[1] - STR r3, [r1,#-16] - - BGE presymmetry_loop3 - - SUB r1,r1,r0 @ r1 = in -= n>>2 (i.e. restore in) - - LDR r3,[r13] - STR r2,[r13,#-4]! - - @ mdct_butterflies - @ r0 = n = (points * 2) - @ r1 = in = x - @ r2 = i - @ r3 = shift - STMFD r13!,{r0-r1} - RSBS r4,r3,#6 @ r4 = stages = 7-shift then --stages - LDR r5,=sincos_lookup0 - BLE no_generics - MOV r14,#4 @ r14= 4 (i=0) - MOV r6, r14,LSL r3 @ r6 = (4<>i = POINTS - MOV r2, r14,LSR #2 @ r2 = (1<>1) - ADD r7,r1,r0,LSL #1 @ r7 = x1+4 = x + POINTS - ADD r12,r5,#1024 @ r12= sincos_lookup0+1024 - -mdct_bufferfly_generic_loop1: - LDMDB r7!,{r2,r3,r8,r11} @ r2 = x1[0] - @ r3 = x1[1] - @ r8 = x1[2] - @ r11= x1[3] x1 -= 4 - LDMDB r1!,{r4,r9,r10,r14} @ r4 = x2[0] - @ r9 = x2[1] - @ r10= x2[2] - @ r14= x2[3] x2 -= 4 - - SUB r2, r2, r3 @ r2 = s0 = x1[0] - x1[1] - ADD r3, r2, r3, LSL #1 @ r3 = x1[0] + x1[1] (-> x1[0]) - SUB r11,r11,r8 @ r11= s1 = x1[3] - x1[2] - ADD r8, r11,r8, LSL #1 @ r8 = x1[3] + x1[2] (-> x1[2]) - SUB r9, r9, r4 @ r9 = s2 = x2[1] - x2[0] - ADD r4, r9, r4, LSL #1 @ r4 = x2[1] + x2[0] (-> x1[1]) - SUB r14,r14,r10 @ r14= s3 = x2[3] - x2[2] - ADD r10,r14,r10,LSL #1 @ r10= x2[3] + x2[2] (-> x1[3]) - STMIA r7,{r3,r4,r8,r10} - - @ r0 = points - @ r1 = x2 - @ r2 = s0 - @ r3 free - @ r4 free - @ r5 = T - @ r6 = step - @ r7 = x1 - @ r8 free - @ r9 = s2 - @ r10 free - @ r11= s1 - @ r12= limit - @ r14= s3 - - LDRB r8, [r5,#1] @ r8 = T[1] - LDRB r10,[r5],r6 @ r10= T[0] T += step - MOV r2, r2, ASR #8 - MOV r11,r11,ASR #8 - MOV r9, r9, ASR #8 - MOV r14,r14,ASR #8 - - @ XPROD31(s1, s0, T[0], T[1], &x2[0], &x2[2]) - @ x2[0] = (s1*T[0] + s0*T[1])>>31 x2[2] = (s0*T[0] - s1*T[1])>>31 - @ stall Xscale - MUL r3, r2, r8 @ r3 = s0*T[1] - MLA r3, r11,r10,r3 @ r3 += s1*T[0] - RSB r11,r11,#0 - MUL r4, r8, r11 @ r4 = -s1*T[1] - MLA r4, r2, r10,r4 @ r4 += s0*T[0] = Value for x2[2] - MOV r2, r3 @ r2 = r3 = Value for x2[0] - - @ XPROD31(s2, s3, T[0], T[1], &x2[1], &x2[3]) - @ x2[1] = (s2*T[0] + s3*T[1])>>31 x2[3] = (s3*T[0] - s2*T[1])>>31 - MUL r3, r9, r10 @ r3 = s2*T[0] - MLA r3, r14,r8, r3 @ r3 += s3*T[1] = Value for x2[1] - RSB r9, r9, #0 - MUL r11,r14,r10 @ r11 = s3*T[0] - MLA r11,r9, r8, r11 @ r11 -= s2*T[1] = Value for x2[3] - CMP r5, r12 - - STMIA r1,{r2,r3,r4,r11} - - BLT mdct_bufferfly_generic_loop1 - - SUB r12,r12,#1024 -mdct_bufferfly_generic_loop2: - LDMDB r7!,{r2,r3,r9,r10} @ r2 = x1[0] - @ r3 = x1[1] - @ r9 = x1[2] - @ r10= x1[3] x1 -= 4 - LDMDB r1!,{r4,r8,r11,r14} @ r4 = x2[0] - @ r8 = x2[1] - @ r11= x2[2] - @ r14= x2[3] x2 -= 4 - - SUB r2, r2, r3 @ r2 = s0 = x1[0] - x1[1] - ADD r3, r2, r3, LSL #1 @ r3 = x1[0] + x1[1] (-> x1[0]) - SUB r9, r9,r10 @ r9 = s1 = x1[2] - x1[3] - ADD r10,r9,r10, LSL #1 @ r10= x1[2] + x1[3] (-> x1[2]) - SUB r4, r4, r8 @ r4 = s2 = x2[0] - x2[1] - ADD r8, r4, r8, LSL #1 @ r8 = x2[0] + x2[1] (-> x1[1]) - SUB r14,r14,r11 @ r14= s3 = x2[3] - x2[2] - ADD r11,r14,r11,LSL #1 @ r11= x2[3] + x2[2] (-> x1[3]) - STMIA r7,{r3,r8,r10,r11} - - @ r0 = points - @ r1 = x2 - @ r2 = s0 - @ r3 free - @ r4 = s2 - @ r5 = T - @ r6 = step - @ r7 = x1 - @ r8 free - @ r9 = s1 - @ r10 free - @ r11 free - @ r12= limit - @ r14= s3 - - LDRB r8, [r5,#1] @ r8 = T[1] - LDRB r10,[r5],-r6 @ r10= T[0] T -= step - MOV r2, r2, ASR #8 - MOV r9, r9, ASR #8 - MOV r4, r4, ASR #8 - MOV r14,r14,ASR #8 - - @ XNPROD31(s0, s1, T[0], T[1], &x2[0], &x2[2]) - @ x2[0] = (s0*T[0] - s1*T[1])>>31 x2[2] = (s1*T[0] + s0*T[1])>>31 - @ stall Xscale - MUL r11,r2, r8 @ r11 = s0*T[1] - MLA r11,r9, r10,r11 @ r11 += s1*T[0] - RSB r9, r9, #0 - MUL r2, r10,r2 @ r2 = s0*T[0] - MLA r2, r9, r8, r2 @ r2 += -s1*T[1] = Value for x2[0] - MOV r9, r11 @ r9 = r11 = Value for x2[2] - - @ XNPROD31(s3, s2, T[0], T[1], &x2[1], &x2[3]) - @ x2[1] = (s3*T[0] - s2*T[1])>>31 x2[3] = (s2*T[0] + s3*T[1])>>31 - MUL r11,r4, r10 @ r11 = s2*T[0] - MLA r11,r14,r8, r11 @ r11 += s3*T[1] = Value for x2[3] - RSB r4, r4, #0 - MUL r3, r14,r10 @ r3 = s3*T[0] - MLA r3, r4, r8, r3 @ r3 -= s2*T[1] = Value for x2[1] - CMP r5, r12 - - STMIA r1,{r2,r3,r9,r11} - - BGT mdct_bufferfly_generic_loop2 - - LDR r2,[r13],#4 @ unstack r2 - ADD r1, r1, r0, LSL #2 @ r1 = x+POINTS*j - @ stall Xscale - SUBS r2, r2, #1 @ r2-- (j++) - BGT mdct_butterflies_loop2 - - LDMFD r13!,{r4,r14} - - LDR r1,[r13,#4] - - SUBS r4, r4, #1 @ stages-- - MOV r14,r14,LSL #1 @ r14= 4< x[16] - SUB r9, r9, r10 @ r9 = s1 = x[18] - x[19] - ADD r10,r9, r10,LSL #1 @ r10= x[18] + x[19] -> x[18] - SUB r8, r8, r7 @ r8 = s2 = x[ 1] - x[ 0] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 1] + x[ 0] -> x[17] - SUB r12,r12,r11 @ r12= s3 = x[ 3] - x[ 2] - ADD r11,r12,r11, LSL #1 @ r11= x[ 3] + x[ 2] -> x[19] - STMIA r4!,{r6,r7,r10,r11} - - MOV r6,#0xed @ r6 =cPI1_8 - MOV r7,#0x62 @ r7 =cPI3_8 - - MOV r5, r5, ASR #8 - MOV r9, r9, ASR #8 - MOV r8, r8, ASR #8 - MOV r12,r12,ASR #8 - - @ XNPROD31( s0, s1, cPI3_8, cPI1_8, &x[ 0], &x[ 2] ) - @ x[0] = s0*cPI3_8 - s1*cPI1_8 x[2] = s1*cPI3_8 + s0*cPI1_8 - @ stall Xscale - MUL r11,r5, r6 @ r11 = s0*cPI1_8 - MLA r11,r9, r7, r11 @ r11 += s1*cPI3_8 - RSB r9, r9, #0 - MUL r5, r7, r5 @ r5 = s0*cPI3_8 - MLA r5, r9, r6, r5 @ r5 -= s1*cPI1_8 - - @ XPROD31 ( s2, s3, cPI1_8, cPI3_8, &x[ 1], &x[ 3] ) - @ x[1] = s2*cPI1_8 + s3*cPI3_8 x[3] = s3*cPI1_8 - s2*cPI3_8 - MUL r9, r8, r6 @ r9 = s2*cPI1_8 - MLA r9, r12,r7, r9 @ r9 += s3*cPI3_8 - RSB r8,r8,#0 - MUL r12,r6, r12 @ r12 = s3*cPI1_8 - MLA r12,r8, r7, r12 @ r12 -= s2*cPI3_8 - STMIA r1!,{r5,r9,r11,r12} - - @ block2 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[20] - @ r6 = x[21] - @ r9 = x[22] - @ r10= x[23] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[4] - @ r8 = x[5] - @ r11= x[6] - @ r12= x[7] - SUB r5, r5, r6 @ r5 = s0 = x[20] - x[21] - ADD r6, r5, r6, LSL #1 @ r6 = x[20] + x[21] -> x[20] - SUB r9, r9, r10 @ r9 = s1 = x[22] - x[23] - ADD r10,r9, r10,LSL #1 @ r10= x[22] + x[23] -> x[22] - SUB r8, r8, r7 @ r8 = s2 = x[ 5] - x[ 4] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 5] + x[ 4] -> x[21] - SUB r12,r12,r11 @ r12= s3 = x[ 7] - x[ 6] - ADD r11,r12,r11, LSL #1 @ r11= x[ 7] + x[ 6] -> x[23] - MOV r14,#0xb5 @ cPI2_8 - STMIA r4!,{r6,r7,r10,r11} - - SUB r5, r5, r9 @ r5 = s0 - s1 - ADD r9, r5, r9, LSL #1 @ r9 = s0 + s1 - MOV r5, r5, ASR #8 - MUL r5, r14,r5 @ r5 = (s0-s1)*cPI2_8 - SUB r12,r12,r8 @ r12= s3 - s2 - ADD r8, r12,r8, LSL #1 @ r8 = s3 + s2 - - MOV r8, r8, ASR #8 - MUL r8, r14,r8 @ r8 = (s3+s2)*cPI2_8 - MOV r9, r9, ASR #8 - MUL r9, r14,r9 @ r9 = (s0+s1)*cPI2_8 - MOV r12,r12,ASR #8 - MUL r12,r14,r12 @ r12 = (s3-s2)*cPI2_8 - STMIA r1!,{r5,r8,r9,r12} - - @ block3 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[24] - @ r6 = x[25] - @ r9 = x[25] - @ r10= x[26] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[8] - @ r8 = x[9] - @ r11= x[10] - @ r12= x[11] - SUB r5, r5, r6 @ r5 = s0 = x[24] - x[25] - ADD r6, r5, r6, LSL #1 @ r6 = x[24] + x[25] -> x[25] - SUB r9, r9, r10 @ r9 = s1 = x[26] - x[27] - ADD r10,r9, r10,LSL #1 @ r10= x[26] + x[27] -> x[26] - SUB r8, r8, r7 @ r8 = s2 = x[ 9] - x[ 8] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 9] + x[ 8] -> x[25] - SUB r12,r12,r11 @ r12= s3 = x[11] - x[10] - ADD r11,r12,r11, LSL #1 @ r11= x[11] + x[10] -> x[27] - STMIA r4!,{r6,r7,r10,r11} - - MOV r6,#0x62 @ r6 = cPI3_8 - MOV r7,#0xED @ r7 = cPI1_8 - - @ XNPROD31( s0, s1, cPI1_8, cPI3_8, &x[ 8], &x[10] ) - @ x[8] = s0*cPI1_8 - s1*cPI3_8 x[10] = s1*cPI1_8 + s0*cPI3_8 - @ stall Xscale - MOV r5, r5, ASR #8 - MUL r11,r5, r6 @ r11 = s0*cPI3_8 - MOV r9, r9, ASR #8 - MLA r11,r9, r7, r11 @ r11 += s1*cPI1_8 - RSB r9, r9, #0 - MUL r5, r7, r5 @ r5 = s0*cPI1_8 - MLA r5, r9, r6, r5 @ r5 -= s1*cPI3_8 - - @ XPROD31 ( s2, s3, cPI3_8, cPI1_8, &x[ 9], &x[11] ) - @ x[9] = s2*cPI3_8 + s3*cPI1_8 x[11] = s3*cPI3_8 - s2*cPI1_8 - MOV r8, r8, ASR #8 - MUL r9, r8, r6 @ r9 = s2*cPI3_8 - MOV r12,r12,ASR #8 - MLA r9, r12,r7, r9 @ r9 += s3*cPI1_8 - RSB r8,r8,#0 - MUL r12,r6, r12 @ r12 = s3*cPI3_8 - MLA r12,r8, r7, r12 @ r12 -= s2*cPI1_8 - STMIA r1!,{r5,r9,r11,r12} - - @ block4 - LDMIA r4,{r5,r6,r10,r11} @ r5 = x[28] - @ r6 = x[29] - @ r10= x[30] - @ r11= x[31] - LDMIA r1,{r8,r9,r12,r14} @ r8 = x[12] - @ r9 = x[13] - @ r12= x[14] - @ r14= x[15] - SUB r5, r5, r6 @ r5 = s0 = x[28] - x[29] - ADD r6, r5, r6, LSL #1 @ r6 = x[28] + x[29] -> x[28] - SUB r7, r14,r12 @ r7 = s3 = x[15] - x[14] - ADD r12,r7, r12, LSL #1 @ r12= x[15] + x[14] -> x[31] - SUB r10,r10,r11 @ r10= s1 = x[30] - x[31] - ADD r11,r10,r11,LSL #1 @ r11= x[30] + x[31] -> x[30] - SUB r14, r8, r9 @ r14= s2 = x[12] - x[13] - ADD r9, r14, r9, LSL #1 @ r9 = x[12] + x[13] -> x[29] - STMIA r4!,{r6,r9,r11,r12} - STMIA r1!,{r5,r7,r10,r14} - - @ mdct_butterfly16 (1st version) - @ block 1 - SUB r1,r1,#16*4 - ADD r4,r1,#8*4 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[ 8] - @ r6 = x[ 9] - @ r9 = x[10] - @ r10= x[11] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[0] - @ r8 = x[1] - @ r11= x[2] - @ r12= x[3] - SUB r5, r5, r6 @ r5 = s0 = x[ 8] - x[ 9] - ADD r6, r5, r6, LSL #1 @ r6 = x[ 8] + x[ 9] -> x[ 8] - SUB r9, r9, r10 @ r9 = s1 = x[10] - x[11] - ADD r10,r9, r10,LSL #1 @ r10= x[10] + x[11] -> x[10] - SUB r8, r8, r7 @ r8 = s2 = x[ 1] - x[ 0] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 1] + x[ 0] -> x[ 9] - SUB r12,r12,r11 @ r12= s3 = x[ 3] - x[ 2] - ADD r11,r12,r11, LSL #1 @ r11= x[ 3] + x[ 2] -> x[11] - MOV r14,#0xB5 @ r14= cPI2_8 - STMIA r4!,{r6,r7,r10,r11} - - SUB r5, r5, r9 @ r5 = s0 - s1 - ADD r9, r5, r9, LSL #1 @ r9 = s0 + s1 - MOV r5, r5, ASR #8 - MUL r5, r14,r5 @ r5 = (s0-s1)*cPI2_8 - SUB r12,r12,r8 @ r12= s3 - s2 - ADD r8, r12,r8, LSL #1 @ r8 = s3 + s2 - - MOV r8, r8, ASR #8 - MUL r8, r14,r8 @ r8 = (s3+s2)*cPI2_8 - MOV r9, r9, ASR #8 - MUL r9, r14,r9 @ r9 = (s0+s1)*cPI2_8 - MOV r12,r12,ASR #8 - MUL r12,r14,r12 @ r12 = (s3-s2)*cPI2_8 - STMIA r1!,{r5,r8,r9,r12} - - @ block2 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[12] - @ r6 = x[13] - @ r9 = x[14] - @ r10= x[15] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[ 4] - @ r8 = x[ 5] - @ r11= x[ 6] - @ r12= x[ 7] - SUB r14,r7, r8 @ r14= s0 = x[ 4] - x[ 5] - ADD r8, r14,r8, LSL #1 @ r8 = x[ 4] + x[ 5] -> x[13] - SUB r7, r12,r11 @ r7 = s1 = x[ 7] - x[ 6] - ADD r11,r7, r11, LSL #1 @ r11= x[ 7] + x[ 6] -> x[15] - SUB r5, r5, r6 @ r5 = s2 = x[12] - x[13] - ADD r6, r5, r6, LSL #1 @ r6 = x[12] + x[13] -> x[12] - SUB r12,r9, r10 @ r12= s3 = x[14] - x[15] - ADD r10,r12,r10,LSL #1 @ r10= x[14] + x[15] -> x[14] - STMIA r4!,{r6,r8,r10,r11} - STMIA r1!,{r5,r7,r12,r14} - - @ mdct_butterfly_8 - LDMDB r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMDB r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - @ mdct_butterfly_8 - LDMIA r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMIA r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - @ mdct_butterfly16 (2nd version) - @ block 1 - ADD r1,r1,#16*4-8*4 - ADD r4,r1,#8*4 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[ 8] - @ r6 = x[ 9] - @ r9 = x[10] - @ r10= x[11] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[0] - @ r8 = x[1] - @ r11= x[2] - @ r12= x[3] - SUB r5, r5, r6 @ r5 = s0 = x[ 8] - x[ 9] - ADD r6, r5, r6, LSL #1 @ r6 = x[ 8] + x[ 9] -> x[ 8] - SUB r9, r9, r10 @ r9 = s1 = x[10] - x[11] - ADD r10,r9, r10,LSL #1 @ r10= x[10] + x[11] -> x[10] - SUB r8, r8, r7 @ r8 = s2 = x[ 1] - x[ 0] - ADD r7, r8, r7, LSL #1 @ r7 = x[ 1] + x[ 0] -> x[ 9] - SUB r12,r12,r11 @ r12= s3 = x[ 3] - x[ 2] - ADD r11,r12,r11, LSL #1 @ r11= x[ 3] + x[ 2] -> x[11] - MOV r14,#0xb5 @ r14= cPI2_8 - STMIA r4!,{r6,r7,r10,r11} - - SUB r5, r5, r9 @ r5 = s0 - s1 - ADD r9, r5, r9, LSL #1 @ r9 = s0 + s1 - MOV r5, r5, ASR #8 - MUL r5, r14,r5 @ r5 = (s0-s1)*cPI2_8 - SUB r12,r12,r8 @ r12= s3 - s2 - ADD r8, r12,r8, LSL #1 @ r8 = s3 + s2 - - MOV r8, r8, ASR #8 - MUL r8, r14,r8 @ r8 = (s3+s2)*cPI2_8 - MOV r9, r9, ASR #8 - MUL r9, r14,r9 @ r9 = (s0+s1)*cPI2_8 - MOV r12,r12,ASR #8 - MUL r12,r14,r12 @ r12 = (s3-s2)*cPI2_8 - STMIA r1!,{r5,r8,r9,r12} - - @ block2 - LDMIA r4,{r5,r6,r9,r10} @ r5 = x[12] - @ r6 = x[13] - @ r9 = x[14] - @ r10= x[15] - LDMIA r1,{r7,r8,r11,r12} @ r7 = x[ 4] - @ r8 = x[ 5] - @ r11= x[ 6] - @ r12= x[ 7] - SUB r5, r5, r6 @ r5 = s2 = x[12] - x[13] - ADD r6, r5, r6, LSL #1 @ r6 = x[12] + x[13] -> x[12] - SUB r9, r9, r10 @ r9 = s3 = x[14] - x[15] - ADD r10,r9, r10,LSL #1 @ r10= x[14] + x[15] -> x[14] - SUB r14,r7, r8 @ r14= s0 = x[ 4] - x[ 5] - ADD r8, r14,r8, LSL #1 @ r8 = x[ 4] + x[ 5] -> x[13] - SUB r7, r12,r11 @ r7 = s1 = x[ 7] - x[ 6] - ADD r11,r7, r11, LSL #1 @ r11= x[ 7] + x[ 6] -> x[15] - STMIA r4!,{r6,r8,r10,r11} - STMIA r1!,{r5,r7,r9,r14} - - @ mdct_butterfly_8 - LDMDB r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMDB r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - @ mdct_butterfly_8 - LDMIA r1,{r6,r7,r8,r9,r10,r11,r12,r14} - @ r6 = x[0] - @ r7 = x[1] - @ r8 = x[2] - @ r9 = x[3] - @ r10= x[4] - @ r11= x[5] - @ r12= x[6] - @ r14= x[7] - ADD r6, r6, r7 @ r6 = s0 = x[0] + x[1] - SUB r7, r6, r7, LSL #1 @ r7 = s1 = x[0] - x[1] - ADD r8, r8, r9 @ r8 = s2 = x[2] + x[3] - SUB r9, r8, r9, LSL #1 @ r9 = s3 = x[2] - x[3] - ADD r10,r10,r11 @ r10= s4 = x[4] + x[5] - SUB r11,r10,r11,LSL #1 @ r11= s5 = x[4] - x[5] - ADD r12,r12,r14 @ r12= s6 = x[6] + x[7] - SUB r14,r12,r14,LSL #1 @ r14= s7 = x[6] - x[7] - - ADD r2, r11,r9 @ r2 = x[0] = s5 + s3 - SUB r4, r2, r9, LSL #1 @ r4 = x[2] = s5 - s3 - SUB r3, r14,r7 @ r3 = x[1] = s7 - s1 - ADD r5, r3, r7, LSL #1 @ r5 = x[3] = s7 + s1 - SUB r10,r10,r6 @ r10= x[4] = s4 - s0 - SUB r11,r12,r8 @ r11= x[5] = s6 - s2 - ADD r12,r10,r6, LSL #1 @ r12= x[6] = s4 + s0 - ADD r14,r11,r8, LSL #1 @ r14= x[7] = s6 + s2 - STMIA r1,{r2,r3,r4,r5,r10,r11,r12,r14} - - ADD r1,r1,#8*4 - SUBS r0,r0,#64 - BGT mdct_bufferflies_loop3 - - LDMFD r13,{r0-r3} - -mdct_bitreverseARM: - @ r0 = points - @ r1 = in - @ r2 = step - @ r3 = shift - - MOV r4, #0 @ r4 = bit = 0 - ADD r5, r1, r0, LSL #1 @ r5 = w = x + (n>>1) - ADR r6, bitrev - SUB r3, r3, #2 @ r3 = shift -= 2 - SUB r5, r5, #8 -brev_lp: - LDRB r7, [r6, r4, LSR #6] - AND r8, r4, #0x3f - LDRB r8, [r6, r8] - ADD r4, r4, #1 @ bit++ - @ stall XScale - ORR r7, r7, r8, LSL #6 @ r7 = bitrev[bit] - ADD r9, r1, r7, LSR r3 @ r9 = xx = x + (b>>shift) - CMP r5, r9 @ if (w > xx) - LDR r10,[r5],#-8 @ r10 = w[0] w -= 2 - LDRGT r11,[r5,#12] @ r11 = w[1] - LDRGT r12,[r9] @ r12 = xx[0] - LDRGT r14,[r9,#4] @ r14 = xx[1] - STRGT r10,[r9] @ xx[0]= w[0] - STRGT r11,[r9,#4] @ xx[1]= w[1] - STRGT r12,[r5,#8] @ w[0] = xx[0] - STRGT r14,[r5,#12] @ w[1] = xx[1] - CMP r5,r1 - BGT brev_lp - - @ mdct_step7 - @ r0 = points - @ r1 = in - @ r2 = step - @ r3 = shift-2 - - CMP r2, #4 @ r5 = T = (step>=4) ? - LDRGE r5, =sincos_lookup0 @ sincos_lookup0 + - LDRLT r5, =sincos_lookup1 @ sincos_lookup0 + - ADD r7, r1, r0, LSL #1 @ r7 = w1 = x + (n>>1) - ADDGE r5, r5, r2, LSR #1 @ (step>>1) - ADD r8, r5, #1024 @ r8 = Ttop -step7_loop1: - LDR r6, [r1] @ r6 = w0[0] - LDR r9, [r1,#4] @ r9 = w0[1] - LDR r10,[r7,#-8]! @ r10= w1[0] w1 -= 2 - LDR r11,[r7,#4] @ r11= w1[1] - LDRB r14,[r5,#1] @ r14= T[1] - LDRB r12,[r5],r2 @ r12= T[0] T += step - - ADD r6, r6, r10 @ r6 = s0 = w0[0] + w1[0] - SUB r10,r6, r10,LSL #1 @ r10= s1b= w0[0] - w1[0] - SUB r11,r11,r9 @ r11= s1 = w1[1] - w0[1] - ADD r9, r11,r9, LSL #1 @ r9 = s0b= w1[1] + w0[1] - - MOV r6, r6, ASR #9 - MUL r3, r6, r14 @ r3 = s0*T[1] - MOV r11,r11,ASR #9 - MUL r4, r11,r12 @ r4 += s1*T[0] = s2 - ADD r3, r3, r4 - MUL r14,r11,r14 @ r14 = s1*T[1] - MUL r12,r6, r12 @ r12 += s0*T[0] = s3 - SUB r14,r14,r12 - - @ r9 = s0b<<1 - @ r10= s1b<<1 - ADD r9, r3, r9, ASR #1 @ r9 = s0b + s2 - SUB r3, r9, r3, LSL #1 @ r3 = s0b - s2 - - SUB r12,r14,r10,ASR #1 @ r12= s3 - s1b - ADD r10,r14,r10,ASR #1 @ r10= s3 + s1b - STR r9, [r1],#4 - STR r10,[r1],#4 @ w0 += 2 - STR r3, [r7] - STR r12,[r7,#4] - - CMP r5,r8 - BLT step7_loop1 - -step7_loop2: - LDR r6, [r1] @ r6 = w0[0] - LDR r9, [r1,#4] @ r9 = w0[1] - LDR r10,[r7,#-8]! @ r10= w1[0] w1 -= 2 - LDR r11,[r7,#4] @ r11= w1[1] - LDRB r14,[r5,-r2]! @ r12= T[1] T -= step - LDRB r12,[r5,#1] @ r14= T[0] - - ADD r6, r6, r10 @ r6 = s0 = w0[0] + w1[0] - SUB r10,r6, r10,LSL #1 @ r10= s1b= w0[0] - w1[0] - SUB r11,r11,r9 @ r11= s1 = w1[1] - w0[1] - ADD r9, r11,r9, LSL #1 @ r9 = s0b= w1[1] + w0[1] - - MOV r6, r6, ASR #9 - MUL r3, r6, r14 @ r3 = s0*T[0] - MOV r11,r11,ASR #9 - MUL r4, r11,r12 @ r4 += s1*T[1] = s2 - ADD r3, r3, r4 - MUL r14,r11,r14 @ r14 = s1*T[0] - MUL r12,r6, r12 @ r12 += s0*T[1] = s3 - SUB r14,r14,r12 - - @ r9 = s0b<<1 - @ r10= s1b<<1 - ADD r9, r3, r9, ASR #1 @ r9 = s0b + s2 - SUB r3, r9, r3, LSL #1 @ r3 = s0b - s2 - - SUB r12,r14,r10,ASR #1 @ r12= s3 - s1b - ADD r10,r14,r10,ASR #1 @ r10= s3 + s1b - STR r9, [r1],#4 - STR r10,[r1],#4 @ w0 += 2 - STR r3, [r7] - STR r12,[r7,#4] - - CMP r1,r7 - BLT step7_loop2 - - LDMFD r13!,{r0-r3} - - @ r0 = points - @ r1 = in - @ r2 = step - @ r3 = shift - MOV r2, r2, ASR #2 @ r2 = step >>= 2 - CMP r2, #0 - CMPNE r2, #1 - BEQ mdct_end - - @ step > 1 (default case) - CMP r2, #4 @ r5 = T = (step>=4) ? - LDRGE r5, =sincos_lookup0 @ sincos_lookup0 + - LDRLT r5, =sincos_lookup1 @ sincos_lookup1 - ADD r7, r1, r0, LSL #1 @ r7 = iX = x + (n>>1) - ADDGE r5, r5, r2, LSR #1 @ (step>>1) -mdct_step8_default: - LDR r6, [r1],#4 @ r6 = s0 = x[0] - LDR r8, [r1],#4 @ r8 = -s1 = x[1] - LDRB r12,[r5,#1] @ r12= T[1] - LDRB r14,[r5],r2 @ r14= T[0] T += step - RSB r8, r8, #0 @ r8 = s1 - - @ XPROD31(s0, s1, T[0], T[1], x, x+1) - @ x[0] = s0 * T[0] + s1 * T[1] x[1] = s1 * T[0] - s0 * T[1] - MOV r6, r6, ASR #8 - MOV r8, r8, ASR #8 - MUL r10,r8, r12 @ r10 = s1 * T[1] - CMP r1, r7 - MLA r10,r6, r14,r10 @ r10 += s0 * T[0] - RSB r6, r6, #0 @ r6 = -s0 - MUL r11,r8, r14 @ r11 = s1 * T[0] - MLA r11,r6, r12,r11 @ r11 -= s0 * T[1] - STR r10,[r1,#-8] - STR r11,[r1,#-4] - BLT mdct_step8_default - -mdct_end: - MOV r0, r2 - LDMFD r13!,{r4-r11,PC} - -bitrev: - .byte 0 - .byte 32 - .byte 16 - .byte 48 - .byte 8 - .byte 40 - .byte 24 - .byte 56 - .byte 4 - .byte 36 - .byte 20 - .byte 52 - .byte 12 - .byte 44 - .byte 28 - .byte 60 - .byte 2 - .byte 34 - .byte 18 - .byte 50 - .byte 10 - .byte 42 - .byte 26 - .byte 58 - .byte 6 - .byte 38 - .byte 22 - .byte 54 - .byte 14 - .byte 46 - .byte 30 - .byte 62 - .byte 1 - .byte 33 - .byte 17 - .byte 49 - .byte 9 - .byte 41 - .byte 25 - .byte 57 - .byte 5 - .byte 37 - .byte 21 - .byte 53 - .byte 13 - .byte 45 - .byte 29 - .byte 61 - .byte 3 - .byte 35 - .byte 19 - .byte 51 - .byte 11 - .byte 43 - .byte 27 - .byte 59 - .byte 7 - .byte 39 - .byte 23 - .byte 55 - .byte 15 - .byte 47 - .byte 31 - .byte 63 - - @ END diff --git a/external/android-specific/tremolo/Tremolo/mdct_lookup.h b/external/android-specific/tremolo/Tremolo/mdct_lookup.h deleted file mode 100644 index a25ea3e..0000000 --- a/external/android-specific/tremolo/Tremolo/mdct_lookup.h +++ /dev/null @@ -1,559 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: sin,cos lookup tables - - ************************************************************************/ - -#include "os_types.h" - -/* {sin(2*i*PI/4096), cos(2*i*PI/4096)}, with i = 0 to 512 */ -LOOKUP_T sincos_lookup0[1026] = { - X(0x00000000), X(0x7fffffff), X(0x003243f5), X(0x7ffff621), - X(0x006487e3), X(0x7fffd886), X(0x0096cbc1), X(0x7fffa72c), - X(0x00c90f88), X(0x7fff6216), X(0x00fb5330), X(0x7fff0943), - X(0x012d96b1), X(0x7ffe9cb2), X(0x015fda03), X(0x7ffe1c65), - X(0x01921d20), X(0x7ffd885a), X(0x01c45ffe), X(0x7ffce093), - X(0x01f6a297), X(0x7ffc250f), X(0x0228e4e2), X(0x7ffb55ce), - X(0x025b26d7), X(0x7ffa72d1), X(0x028d6870), X(0x7ff97c18), - X(0x02bfa9a4), X(0x7ff871a2), X(0x02f1ea6c), X(0x7ff75370), - X(0x03242abf), X(0x7ff62182), X(0x03566a96), X(0x7ff4dbd9), - X(0x0388a9ea), X(0x7ff38274), X(0x03bae8b2), X(0x7ff21553), - X(0x03ed26e6), X(0x7ff09478), X(0x041f6480), X(0x7feeffe1), - X(0x0451a177), X(0x7fed5791), X(0x0483ddc3), X(0x7feb9b85), - X(0x04b6195d), X(0x7fe9cbc0), X(0x04e8543e), X(0x7fe7e841), - X(0x051a8e5c), X(0x7fe5f108), X(0x054cc7b1), X(0x7fe3e616), - X(0x057f0035), X(0x7fe1c76b), X(0x05b137df), X(0x7fdf9508), - X(0x05e36ea9), X(0x7fdd4eec), X(0x0615a48b), X(0x7fdaf519), - X(0x0647d97c), X(0x7fd8878e), X(0x067a0d76), X(0x7fd6064c), - X(0x06ac406f), X(0x7fd37153), X(0x06de7262), X(0x7fd0c8a3), - X(0x0710a345), X(0x7fce0c3e), X(0x0742d311), X(0x7fcb3c23), - X(0x077501be), X(0x7fc85854), X(0x07a72f45), X(0x7fc560cf), - X(0x07d95b9e), X(0x7fc25596), X(0x080b86c2), X(0x7fbf36aa), - X(0x083db0a7), X(0x7fbc040a), X(0x086fd947), X(0x7fb8bdb8), - X(0x08a2009a), X(0x7fb563b3), X(0x08d42699), X(0x7fb1f5fc), - X(0x09064b3a), X(0x7fae7495), X(0x09386e78), X(0x7faadf7c), - X(0x096a9049), X(0x7fa736b4), X(0x099cb0a7), X(0x7fa37a3c), - X(0x09cecf89), X(0x7f9faa15), X(0x0a00ece8), X(0x7f9bc640), - X(0x0a3308bd), X(0x7f97cebd), X(0x0a6522fe), X(0x7f93c38c), - X(0x0a973ba5), X(0x7f8fa4b0), X(0x0ac952aa), X(0x7f8b7227), - X(0x0afb6805), X(0x7f872bf3), X(0x0b2d7baf), X(0x7f82d214), - X(0x0b5f8d9f), X(0x7f7e648c), X(0x0b919dcf), X(0x7f79e35a), - X(0x0bc3ac35), X(0x7f754e80), X(0x0bf5b8cb), X(0x7f70a5fe), - X(0x0c27c389), X(0x7f6be9d4), X(0x0c59cc68), X(0x7f671a05), - X(0x0c8bd35e), X(0x7f62368f), X(0x0cbdd865), X(0x7f5d3f75), - X(0x0cefdb76), X(0x7f5834b7), X(0x0d21dc87), X(0x7f531655), - X(0x0d53db92), X(0x7f4de451), X(0x0d85d88f), X(0x7f489eaa), - X(0x0db7d376), X(0x7f434563), X(0x0de9cc40), X(0x7f3dd87c), - X(0x0e1bc2e4), X(0x7f3857f6), X(0x0e4db75b), X(0x7f32c3d1), - X(0x0e7fa99e), X(0x7f2d1c0e), X(0x0eb199a4), X(0x7f2760af), - X(0x0ee38766), X(0x7f2191b4), X(0x0f1572dc), X(0x7f1baf1e), - X(0x0f475bff), X(0x7f15b8ee), X(0x0f7942c7), X(0x7f0faf25), - X(0x0fab272b), X(0x7f0991c4), X(0x0fdd0926), X(0x7f0360cb), - X(0x100ee8ad), X(0x7efd1c3c), X(0x1040c5bb), X(0x7ef6c418), - X(0x1072a048), X(0x7ef05860), X(0x10a4784b), X(0x7ee9d914), - X(0x10d64dbd), X(0x7ee34636), X(0x11082096), X(0x7edc9fc6), - X(0x1139f0cf), X(0x7ed5e5c6), X(0x116bbe60), X(0x7ecf1837), - X(0x119d8941), X(0x7ec8371a), X(0x11cf516a), X(0x7ec14270), - X(0x120116d5), X(0x7eba3a39), X(0x1232d979), X(0x7eb31e78), - X(0x1264994e), X(0x7eabef2c), X(0x1296564d), X(0x7ea4ac58), - X(0x12c8106f), X(0x7e9d55fc), X(0x12f9c7aa), X(0x7e95ec1a), - X(0x132b7bf9), X(0x7e8e6eb2), X(0x135d2d53), X(0x7e86ddc6), - X(0x138edbb1), X(0x7e7f3957), X(0x13c0870a), X(0x7e778166), - X(0x13f22f58), X(0x7e6fb5f4), X(0x1423d492), X(0x7e67d703), - X(0x145576b1), X(0x7e5fe493), X(0x148715ae), X(0x7e57dea7), - X(0x14b8b17f), X(0x7e4fc53e), X(0x14ea4a1f), X(0x7e47985b), - X(0x151bdf86), X(0x7e3f57ff), X(0x154d71aa), X(0x7e37042a), - X(0x157f0086), X(0x7e2e9cdf), X(0x15b08c12), X(0x7e26221f), - X(0x15e21445), X(0x7e1d93ea), X(0x16139918), X(0x7e14f242), - X(0x16451a83), X(0x7e0c3d29), X(0x1676987f), X(0x7e0374a0), - X(0x16a81305), X(0x7dfa98a8), X(0x16d98a0c), X(0x7df1a942), - X(0x170afd8d), X(0x7de8a670), X(0x173c6d80), X(0x7ddf9034), - X(0x176dd9de), X(0x7dd6668f), X(0x179f429f), X(0x7dcd2981), - X(0x17d0a7bc), X(0x7dc3d90d), X(0x1802092c), X(0x7dba7534), - X(0x183366e9), X(0x7db0fdf8), X(0x1864c0ea), X(0x7da77359), - X(0x18961728), X(0x7d9dd55a), X(0x18c7699b), X(0x7d9423fc), - X(0x18f8b83c), X(0x7d8a5f40), X(0x192a0304), X(0x7d808728), - X(0x195b49ea), X(0x7d769bb5), X(0x198c8ce7), X(0x7d6c9ce9), - X(0x19bdcbf3), X(0x7d628ac6), X(0x19ef0707), X(0x7d58654d), - X(0x1a203e1b), X(0x7d4e2c7f), X(0x1a517128), X(0x7d43e05e), - X(0x1a82a026), X(0x7d3980ec), X(0x1ab3cb0d), X(0x7d2f0e2b), - X(0x1ae4f1d6), X(0x7d24881b), X(0x1b161479), X(0x7d19eebf), - X(0x1b4732ef), X(0x7d0f4218), X(0x1b784d30), X(0x7d048228), - X(0x1ba96335), X(0x7cf9aef0), X(0x1bda74f6), X(0x7ceec873), - X(0x1c0b826a), X(0x7ce3ceb2), X(0x1c3c8b8c), X(0x7cd8c1ae), - X(0x1c6d9053), X(0x7ccda169), X(0x1c9e90b8), X(0x7cc26de5), - X(0x1ccf8cb3), X(0x7cb72724), X(0x1d00843d), X(0x7cabcd28), - X(0x1d31774d), X(0x7ca05ff1), X(0x1d6265dd), X(0x7c94df83), - X(0x1d934fe5), X(0x7c894bde), X(0x1dc4355e), X(0x7c7da505), - X(0x1df5163f), X(0x7c71eaf9), X(0x1e25f282), X(0x7c661dbc), - X(0x1e56ca1e), X(0x7c5a3d50), X(0x1e879d0d), X(0x7c4e49b7), - X(0x1eb86b46), X(0x7c4242f2), X(0x1ee934c3), X(0x7c362904), - X(0x1f19f97b), X(0x7c29fbee), X(0x1f4ab968), X(0x7c1dbbb3), - X(0x1f7b7481), X(0x7c116853), X(0x1fac2abf), X(0x7c0501d2), - X(0x1fdcdc1b), X(0x7bf88830), X(0x200d888d), X(0x7bebfb70), - X(0x203e300d), X(0x7bdf5b94), X(0x206ed295), X(0x7bd2a89e), - X(0x209f701c), X(0x7bc5e290), X(0x20d0089c), X(0x7bb9096b), - X(0x21009c0c), X(0x7bac1d31), X(0x21312a65), X(0x7b9f1de6), - X(0x2161b3a0), X(0x7b920b89), X(0x219237b5), X(0x7b84e61f), - X(0x21c2b69c), X(0x7b77ada8), X(0x21f3304f), X(0x7b6a6227), - X(0x2223a4c5), X(0x7b5d039e), X(0x225413f8), X(0x7b4f920e), - X(0x22847de0), X(0x7b420d7a), X(0x22b4e274), X(0x7b3475e5), - X(0x22e541af), X(0x7b26cb4f), X(0x23159b88), X(0x7b190dbc), - X(0x2345eff8), X(0x7b0b3d2c), X(0x23763ef7), X(0x7afd59a4), - X(0x23a6887f), X(0x7aef6323), X(0x23d6cc87), X(0x7ae159ae), - X(0x24070b08), X(0x7ad33d45), X(0x243743fa), X(0x7ac50dec), - X(0x24677758), X(0x7ab6cba4), X(0x2497a517), X(0x7aa8766f), - X(0x24c7cd33), X(0x7a9a0e50), X(0x24f7efa2), X(0x7a8b9348), - X(0x25280c5e), X(0x7a7d055b), X(0x2558235f), X(0x7a6e648a), - X(0x2588349d), X(0x7a5fb0d8), X(0x25b84012), X(0x7a50ea47), - X(0x25e845b6), X(0x7a4210d8), X(0x26184581), X(0x7a332490), - X(0x26483f6c), X(0x7a24256f), X(0x26783370), X(0x7a151378), - X(0x26a82186), X(0x7a05eead), X(0x26d809a5), X(0x79f6b711), - X(0x2707ebc7), X(0x79e76ca7), X(0x2737c7e3), X(0x79d80f6f), - X(0x27679df4), X(0x79c89f6e), X(0x27976df1), X(0x79b91ca4), - X(0x27c737d3), X(0x79a98715), X(0x27f6fb92), X(0x7999dec4), - X(0x2826b928), X(0x798a23b1), X(0x2856708d), X(0x797a55e0), - X(0x288621b9), X(0x796a7554), X(0x28b5cca5), X(0x795a820e), - X(0x28e5714b), X(0x794a7c12), X(0x29150fa1), X(0x793a6361), - X(0x2944a7a2), X(0x792a37fe), X(0x29743946), X(0x7919f9ec), - X(0x29a3c485), X(0x7909a92d), X(0x29d34958), X(0x78f945c3), - X(0x2a02c7b8), X(0x78e8cfb2), X(0x2a323f9e), X(0x78d846fb), - X(0x2a61b101), X(0x78c7aba2), X(0x2a911bdc), X(0x78b6fda8), - X(0x2ac08026), X(0x78a63d11), X(0x2aefddd8), X(0x789569df), - X(0x2b1f34eb), X(0x78848414), X(0x2b4e8558), X(0x78738bb3), - X(0x2b7dcf17), X(0x786280bf), X(0x2bad1221), X(0x7851633b), - X(0x2bdc4e6f), X(0x78403329), X(0x2c0b83fa), X(0x782ef08b), - X(0x2c3ab2b9), X(0x781d9b65), X(0x2c69daa6), X(0x780c33b8), - X(0x2c98fbba), X(0x77fab989), X(0x2cc815ee), X(0x77e92cd9), - X(0x2cf72939), X(0x77d78daa), X(0x2d263596), X(0x77c5dc01), - X(0x2d553afc), X(0x77b417df), X(0x2d843964), X(0x77a24148), - X(0x2db330c7), X(0x7790583e), X(0x2de2211e), X(0x777e5cc3), - X(0x2e110a62), X(0x776c4edb), X(0x2e3fec8b), X(0x775a2e89), - X(0x2e6ec792), X(0x7747fbce), X(0x2e9d9b70), X(0x7735b6af), - X(0x2ecc681e), X(0x77235f2d), X(0x2efb2d95), X(0x7710f54c), - X(0x2f29ebcc), X(0x76fe790e), X(0x2f58a2be), X(0x76ebea77), - X(0x2f875262), X(0x76d94989), X(0x2fb5fab2), X(0x76c69647), - X(0x2fe49ba7), X(0x76b3d0b4), X(0x30133539), X(0x76a0f8d2), - X(0x3041c761), X(0x768e0ea6), X(0x30705217), X(0x767b1231), - X(0x309ed556), X(0x76680376), X(0x30cd5115), X(0x7654e279), - X(0x30fbc54d), X(0x7641af3d), X(0x312a31f8), X(0x762e69c4), - X(0x3158970e), X(0x761b1211), X(0x3186f487), X(0x7607a828), - X(0x31b54a5e), X(0x75f42c0b), X(0x31e39889), X(0x75e09dbd), - X(0x3211df04), X(0x75ccfd42), X(0x32401dc6), X(0x75b94a9c), - X(0x326e54c7), X(0x75a585cf), X(0x329c8402), X(0x7591aedd), - X(0x32caab6f), X(0x757dc5ca), X(0x32f8cb07), X(0x7569ca99), - X(0x3326e2c3), X(0x7555bd4c), X(0x3354f29b), X(0x75419de7), - X(0x3382fa88), X(0x752d6c6c), X(0x33b0fa84), X(0x751928e0), - X(0x33def287), X(0x7504d345), X(0x340ce28b), X(0x74f06b9e), - X(0x343aca87), X(0x74dbf1ef), X(0x3468aa76), X(0x74c7663a), - X(0x34968250), X(0x74b2c884), X(0x34c4520d), X(0x749e18cd), - X(0x34f219a8), X(0x7489571c), X(0x351fd918), X(0x74748371), - X(0x354d9057), X(0x745f9dd1), X(0x357b3f5d), X(0x744aa63f), - X(0x35a8e625), X(0x74359cbd), X(0x35d684a6), X(0x74208150), - X(0x36041ad9), X(0x740b53fb), X(0x3631a8b8), X(0x73f614c0), - X(0x365f2e3b), X(0x73e0c3a3), X(0x368cab5c), X(0x73cb60a8), - X(0x36ba2014), X(0x73b5ebd1), X(0x36e78c5b), X(0x73a06522), - X(0x3714f02a), X(0x738acc9e), X(0x37424b7b), X(0x73752249), - X(0x376f9e46), X(0x735f6626), X(0x379ce885), X(0x73499838), - X(0x37ca2a30), X(0x7333b883), X(0x37f76341), X(0x731dc70a), - X(0x382493b0), X(0x7307c3d0), X(0x3851bb77), X(0x72f1aed9), - X(0x387eda8e), X(0x72db8828), X(0x38abf0ef), X(0x72c54fc1), - X(0x38d8fe93), X(0x72af05a7), X(0x39060373), X(0x7298a9dd), - X(0x3932ff87), X(0x72823c67), X(0x395ff2c9), X(0x726bbd48), - X(0x398cdd32), X(0x72552c85), X(0x39b9bebc), X(0x723e8a20), - X(0x39e6975e), X(0x7227d61c), X(0x3a136712), X(0x7211107e), - X(0x3a402dd2), X(0x71fa3949), X(0x3a6ceb96), X(0x71e35080), - X(0x3a99a057), X(0x71cc5626), X(0x3ac64c0f), X(0x71b54a41), - X(0x3af2eeb7), X(0x719e2cd2), X(0x3b1f8848), X(0x7186fdde), - X(0x3b4c18ba), X(0x716fbd68), X(0x3b78a007), X(0x71586b74), - X(0x3ba51e29), X(0x71410805), X(0x3bd19318), X(0x7129931f), - X(0x3bfdfecd), X(0x71120cc5), X(0x3c2a6142), X(0x70fa74fc), - X(0x3c56ba70), X(0x70e2cbc6), X(0x3c830a50), X(0x70cb1128), - X(0x3caf50da), X(0x70b34525), X(0x3cdb8e09), X(0x709b67c0), - X(0x3d07c1d6), X(0x708378ff), X(0x3d33ec39), X(0x706b78e3), - X(0x3d600d2c), X(0x70536771), X(0x3d8c24a8), X(0x703b44ad), - X(0x3db832a6), X(0x7023109a), X(0x3de4371f), X(0x700acb3c), - X(0x3e10320d), X(0x6ff27497), X(0x3e3c2369), X(0x6fda0cae), - X(0x3e680b2c), X(0x6fc19385), X(0x3e93e950), X(0x6fa90921), - X(0x3ebfbdcd), X(0x6f906d84), X(0x3eeb889c), X(0x6f77c0b3), - X(0x3f1749b8), X(0x6f5f02b2), X(0x3f430119), X(0x6f463383), - X(0x3f6eaeb8), X(0x6f2d532c), X(0x3f9a5290), X(0x6f1461b0), - X(0x3fc5ec98), X(0x6efb5f12), X(0x3ff17cca), X(0x6ee24b57), - X(0x401d0321), X(0x6ec92683), X(0x40487f94), X(0x6eaff099), - X(0x4073f21d), X(0x6e96a99d), X(0x409f5ab6), X(0x6e7d5193), - X(0x40cab958), X(0x6e63e87f), X(0x40f60dfb), X(0x6e4a6e66), - X(0x4121589b), X(0x6e30e34a), X(0x414c992f), X(0x6e174730), - X(0x4177cfb1), X(0x6dfd9a1c), X(0x41a2fc1a), X(0x6de3dc11), - X(0x41ce1e65), X(0x6dca0d14), X(0x41f93689), X(0x6db02d29), - X(0x42244481), X(0x6d963c54), X(0x424f4845), X(0x6d7c3a98), - X(0x427a41d0), X(0x6d6227fa), X(0x42a5311b), X(0x6d48047e), - X(0x42d0161e), X(0x6d2dd027), X(0x42faf0d4), X(0x6d138afb), - X(0x4325c135), X(0x6cf934fc), X(0x4350873c), X(0x6cdece2f), - X(0x437b42e1), X(0x6cc45698), X(0x43a5f41e), X(0x6ca9ce3b), - X(0x43d09aed), X(0x6c8f351c), X(0x43fb3746), X(0x6c748b3f), - X(0x4425c923), X(0x6c59d0a9), X(0x4450507e), X(0x6c3f055d), - X(0x447acd50), X(0x6c242960), X(0x44a53f93), X(0x6c093cb6), - X(0x44cfa740), X(0x6bee3f62), X(0x44fa0450), X(0x6bd3316a), - X(0x452456bd), X(0x6bb812d1), X(0x454e9e80), X(0x6b9ce39b), - X(0x4578db93), X(0x6b81a3cd), X(0x45a30df0), X(0x6b66536b), - X(0x45cd358f), X(0x6b4af279), X(0x45f7526b), X(0x6b2f80fb), - X(0x4621647d), X(0x6b13fef5), X(0x464b6bbe), X(0x6af86c6c), - X(0x46756828), X(0x6adcc964), X(0x469f59b4), X(0x6ac115e2), - X(0x46c9405c), X(0x6aa551e9), X(0x46f31c1a), X(0x6a897d7d), - X(0x471cece7), X(0x6a6d98a4), X(0x4746b2bc), X(0x6a51a361), - X(0x47706d93), X(0x6a359db9), X(0x479a1d67), X(0x6a1987b0), - X(0x47c3c22f), X(0x69fd614a), X(0x47ed5be6), X(0x69e12a8c), - X(0x4816ea86), X(0x69c4e37a), X(0x48406e08), X(0x69a88c19), - X(0x4869e665), X(0x698c246c), X(0x48935397), X(0x696fac78), - X(0x48bcb599), X(0x69532442), X(0x48e60c62), X(0x69368bce), - X(0x490f57ee), X(0x6919e320), X(0x49389836), X(0x68fd2a3d), - X(0x4961cd33), X(0x68e06129), X(0x498af6df), X(0x68c387e9), - X(0x49b41533), X(0x68a69e81), X(0x49dd282a), X(0x6889a4f6), - X(0x4a062fbd), X(0x686c9b4b), X(0x4a2f2be6), X(0x684f8186), - X(0x4a581c9e), X(0x683257ab), X(0x4a8101de), X(0x68151dbe), - X(0x4aa9dba2), X(0x67f7d3c5), X(0x4ad2a9e2), X(0x67da79c3), - X(0x4afb6c98), X(0x67bd0fbd), X(0x4b2423be), X(0x679f95b7), - X(0x4b4ccf4d), X(0x67820bb7), X(0x4b756f40), X(0x676471c0), - X(0x4b9e0390), X(0x6746c7d8), X(0x4bc68c36), X(0x67290e02), - X(0x4bef092d), X(0x670b4444), X(0x4c177a6e), X(0x66ed6aa1), - X(0x4c3fdff4), X(0x66cf8120), X(0x4c6839b7), X(0x66b187c3), - X(0x4c9087b1), X(0x66937e91), X(0x4cb8c9dd), X(0x6675658c), - X(0x4ce10034), X(0x66573cbb), X(0x4d092ab0), X(0x66390422), - X(0x4d31494b), X(0x661abbc5), X(0x4d595bfe), X(0x65fc63a9), - X(0x4d8162c4), X(0x65ddfbd3), X(0x4da95d96), X(0x65bf8447), - X(0x4dd14c6e), X(0x65a0fd0b), X(0x4df92f46), X(0x65826622), - X(0x4e210617), X(0x6563bf92), X(0x4e48d0dd), X(0x6545095f), - X(0x4e708f8f), X(0x6526438f), X(0x4e984229), X(0x65076e25), - X(0x4ebfe8a5), X(0x64e88926), X(0x4ee782fb), X(0x64c99498), - X(0x4f0f1126), X(0x64aa907f), X(0x4f369320), X(0x648b7ce0), - X(0x4f5e08e3), X(0x646c59bf), X(0x4f857269), X(0x644d2722), - X(0x4faccfab), X(0x642de50d), X(0x4fd420a4), X(0x640e9386), - X(0x4ffb654d), X(0x63ef3290), X(0x50229da1), X(0x63cfc231), - X(0x5049c999), X(0x63b0426d), X(0x5070e92f), X(0x6390b34a), - X(0x5097fc5e), X(0x637114cc), X(0x50bf031f), X(0x635166f9), - X(0x50e5fd6d), X(0x6331a9d4), X(0x510ceb40), X(0x6311dd64), - X(0x5133cc94), X(0x62f201ac), X(0x515aa162), X(0x62d216b3), - X(0x518169a5), X(0x62b21c7b), X(0x51a82555), X(0x6292130c), - X(0x51ced46e), X(0x6271fa69), X(0x51f576ea), X(0x6251d298), - X(0x521c0cc2), X(0x62319b9d), X(0x524295f0), X(0x6211557e), - X(0x5269126e), X(0x61f1003f), X(0x528f8238), X(0x61d09be5), - X(0x52b5e546), X(0x61b02876), X(0x52dc3b92), X(0x618fa5f7), - X(0x53028518), X(0x616f146c), X(0x5328c1d0), X(0x614e73da), - X(0x534ef1b5), X(0x612dc447), X(0x537514c2), X(0x610d05b7), - X(0x539b2af0), X(0x60ec3830), X(0x53c13439), X(0x60cb5bb7), - X(0x53e73097), X(0x60aa7050), X(0x540d2005), X(0x60897601), - X(0x5433027d), X(0x60686ccf), X(0x5458d7f9), X(0x604754bf), - X(0x547ea073), X(0x60262dd6), X(0x54a45be6), X(0x6004f819), - X(0x54ca0a4b), X(0x5fe3b38d), X(0x54efab9c), X(0x5fc26038), - X(0x55153fd4), X(0x5fa0fe1f), X(0x553ac6ee), X(0x5f7f8d46), - X(0x556040e2), X(0x5f5e0db3), X(0x5585adad), X(0x5f3c7f6b), - X(0x55ab0d46), X(0x5f1ae274), X(0x55d05faa), X(0x5ef936d1), - X(0x55f5a4d2), X(0x5ed77c8a), X(0x561adcb9), X(0x5eb5b3a2), - X(0x56400758), X(0x5e93dc1f), X(0x566524aa), X(0x5e71f606), - X(0x568a34a9), X(0x5e50015d), X(0x56af3750), X(0x5e2dfe29), - X(0x56d42c99), X(0x5e0bec6e), X(0x56f9147e), X(0x5de9cc33), - X(0x571deefa), X(0x5dc79d7c), X(0x5742bc06), X(0x5da5604f), - X(0x57677b9d), X(0x5d8314b1), X(0x578c2dba), X(0x5d60baa7), - X(0x57b0d256), X(0x5d3e5237), X(0x57d5696d), X(0x5d1bdb65), - X(0x57f9f2f8), X(0x5cf95638), X(0x581e6ef1), X(0x5cd6c2b5), - X(0x5842dd54), X(0x5cb420e0), X(0x58673e1b), X(0x5c9170bf), - X(0x588b9140), X(0x5c6eb258), X(0x58afd6bd), X(0x5c4be5b0), - X(0x58d40e8c), X(0x5c290acc), X(0x58f838a9), X(0x5c0621b2), - X(0x591c550e), X(0x5be32a67), X(0x594063b5), X(0x5bc024f0), - X(0x59646498), X(0x5b9d1154), X(0x598857b2), X(0x5b79ef96), - X(0x59ac3cfd), X(0x5b56bfbd), X(0x59d01475), X(0x5b3381ce), - X(0x59f3de12), X(0x5b1035cf), X(0x5a1799d1), X(0x5aecdbc5), - X(0x5a3b47ab), X(0x5ac973b5), X(0x5a5ee79a), X(0x5aa5fda5), - X(0x5a82799a), X(0x5a82799a) - }; - - /* {sin((2*i+1)*PI/4096), cos((2*i+1)*PI/4096)}, with i = 0 to 511 */ -LOOKUP_T sincos_lookup1[1024] = { - X(0x001921fb), X(0x7ffffd88), X(0x004b65ee), X(0x7fffe9cb), - X(0x007da9d4), X(0x7fffc251), X(0x00afeda8), X(0x7fff8719), - X(0x00e23160), X(0x7fff3824), X(0x011474f6), X(0x7ffed572), - X(0x0146b860), X(0x7ffe5f03), X(0x0178fb99), X(0x7ffdd4d7), - X(0x01ab3e97), X(0x7ffd36ee), X(0x01dd8154), X(0x7ffc8549), - X(0x020fc3c6), X(0x7ffbbfe6), X(0x024205e8), X(0x7ffae6c7), - X(0x027447b0), X(0x7ff9f9ec), X(0x02a68917), X(0x7ff8f954), - X(0x02d8ca16), X(0x7ff7e500), X(0x030b0aa4), X(0x7ff6bcf0), - X(0x033d4abb), X(0x7ff58125), X(0x036f8a51), X(0x7ff4319d), - X(0x03a1c960), X(0x7ff2ce5b), X(0x03d407df), X(0x7ff1575d), - X(0x040645c7), X(0x7fefcca4), X(0x04388310), X(0x7fee2e30), - X(0x046abfb3), X(0x7fec7c02), X(0x049cfba7), X(0x7feab61a), - X(0x04cf36e5), X(0x7fe8dc78), X(0x05017165), X(0x7fe6ef1c), - X(0x0533ab20), X(0x7fe4ee06), X(0x0565e40d), X(0x7fe2d938), - X(0x05981c26), X(0x7fe0b0b1), X(0x05ca5361), X(0x7fde7471), - X(0x05fc89b8), X(0x7fdc247a), X(0x062ebf22), X(0x7fd9c0ca), - X(0x0660f398), X(0x7fd74964), X(0x06932713), X(0x7fd4be46), - X(0x06c5598a), X(0x7fd21f72), X(0x06f78af6), X(0x7fcf6ce8), - X(0x0729bb4e), X(0x7fcca6a7), X(0x075bea8c), X(0x7fc9ccb2), - X(0x078e18a7), X(0x7fc6df08), X(0x07c04598), X(0x7fc3dda9), - X(0x07f27157), X(0x7fc0c896), X(0x08249bdd), X(0x7fbd9fd0), - X(0x0856c520), X(0x7fba6357), X(0x0888ed1b), X(0x7fb7132b), - X(0x08bb13c5), X(0x7fb3af4e), X(0x08ed3916), X(0x7fb037bf), - X(0x091f5d06), X(0x7facac7f), X(0x09517f8f), X(0x7fa90d8e), - X(0x0983a0a7), X(0x7fa55aee), X(0x09b5c048), X(0x7fa1949e), - X(0x09e7de6a), X(0x7f9dbaa0), X(0x0a19fb04), X(0x7f99ccf4), - X(0x0a4c1610), X(0x7f95cb9a), X(0x0a7e2f85), X(0x7f91b694), - X(0x0ab0475c), X(0x7f8d8de1), X(0x0ae25d8d), X(0x7f895182), - X(0x0b147211), X(0x7f850179), X(0x0b4684df), X(0x7f809dc5), - X(0x0b7895f0), X(0x7f7c2668), X(0x0baaa53b), X(0x7f779b62), - X(0x0bdcb2bb), X(0x7f72fcb4), X(0x0c0ebe66), X(0x7f6e4a5e), - X(0x0c40c835), X(0x7f698461), X(0x0c72d020), X(0x7f64aabf), - X(0x0ca4d620), X(0x7f5fbd77), X(0x0cd6da2d), X(0x7f5abc8a), - X(0x0d08dc3f), X(0x7f55a7fa), X(0x0d3adc4e), X(0x7f507fc7), - X(0x0d6cda53), X(0x7f4b43f2), X(0x0d9ed646), X(0x7f45f47b), - X(0x0dd0d01f), X(0x7f409164), X(0x0e02c7d7), X(0x7f3b1aad), - X(0x0e34bd66), X(0x7f359057), X(0x0e66b0c3), X(0x7f2ff263), - X(0x0e98a1e9), X(0x7f2a40d2), X(0x0eca90ce), X(0x7f247ba5), - X(0x0efc7d6b), X(0x7f1ea2dc), X(0x0f2e67b8), X(0x7f18b679), - X(0x0f604faf), X(0x7f12b67c), X(0x0f923546), X(0x7f0ca2e7), - X(0x0fc41876), X(0x7f067bba), X(0x0ff5f938), X(0x7f0040f6), - X(0x1027d784), X(0x7ef9f29d), X(0x1059b352), X(0x7ef390ae), - X(0x108b8c9b), X(0x7eed1b2c), X(0x10bd6356), X(0x7ee69217), - X(0x10ef377d), X(0x7edff570), X(0x11210907), X(0x7ed94538), - X(0x1152d7ed), X(0x7ed28171), X(0x1184a427), X(0x7ecbaa1a), - X(0x11b66dad), X(0x7ec4bf36), X(0x11e83478), X(0x7ebdc0c6), - X(0x1219f880), X(0x7eb6aeca), X(0x124bb9be), X(0x7eaf8943), - X(0x127d7829), X(0x7ea85033), X(0x12af33ba), X(0x7ea1039b), - X(0x12e0ec6a), X(0x7e99a37c), X(0x1312a230), X(0x7e922fd6), - X(0x13445505), X(0x7e8aa8ac), X(0x137604e2), X(0x7e830dff), - X(0x13a7b1bf), X(0x7e7b5fce), X(0x13d95b93), X(0x7e739e1d), - X(0x140b0258), X(0x7e6bc8eb), X(0x143ca605), X(0x7e63e03b), - X(0x146e4694), X(0x7e5be40c), X(0x149fe3fc), X(0x7e53d462), - X(0x14d17e36), X(0x7e4bb13c), X(0x1503153a), X(0x7e437a9c), - X(0x1534a901), X(0x7e3b3083), X(0x15663982), X(0x7e32d2f4), - X(0x1597c6b7), X(0x7e2a61ed), X(0x15c95097), X(0x7e21dd73), - X(0x15fad71b), X(0x7e194584), X(0x162c5a3b), X(0x7e109a24), - X(0x165dd9f0), X(0x7e07db52), X(0x168f5632), X(0x7dff0911), - X(0x16c0cef9), X(0x7df62362), X(0x16f2443e), X(0x7ded2a47), - X(0x1723b5f9), X(0x7de41dc0), X(0x17552422), X(0x7ddafdce), - X(0x17868eb3), X(0x7dd1ca75), X(0x17b7f5a3), X(0x7dc883b4), - X(0x17e958ea), X(0x7dbf298d), X(0x181ab881), X(0x7db5bc02), - X(0x184c1461), X(0x7dac3b15), X(0x187d6c82), X(0x7da2a6c6), - X(0x18aec0db), X(0x7d98ff17), X(0x18e01167), X(0x7d8f4409), - X(0x19115e1c), X(0x7d85759f), X(0x1942a6f3), X(0x7d7b93da), - X(0x1973ebe6), X(0x7d719eba), X(0x19a52ceb), X(0x7d679642), - X(0x19d669fc), X(0x7d5d7a74), X(0x1a07a311), X(0x7d534b50), - X(0x1a38d823), X(0x7d4908d9), X(0x1a6a0929), X(0x7d3eb30f), - X(0x1a9b361d), X(0x7d3449f5), X(0x1acc5ef6), X(0x7d29cd8c), - X(0x1afd83ad), X(0x7d1f3dd6), X(0x1b2ea43a), X(0x7d149ad5), - X(0x1b5fc097), X(0x7d09e489), X(0x1b90d8bb), X(0x7cff1af5), - X(0x1bc1ec9e), X(0x7cf43e1a), X(0x1bf2fc3a), X(0x7ce94dfb), - X(0x1c240786), X(0x7cde4a98), X(0x1c550e7c), X(0x7cd333f3), - X(0x1c861113), X(0x7cc80a0f), X(0x1cb70f43), X(0x7cbcccec), - X(0x1ce80906), X(0x7cb17c8d), X(0x1d18fe54), X(0x7ca618f3), - X(0x1d49ef26), X(0x7c9aa221), X(0x1d7adb73), X(0x7c8f1817), - X(0x1dabc334), X(0x7c837ad8), X(0x1ddca662), X(0x7c77ca65), - X(0x1e0d84f5), X(0x7c6c06c0), X(0x1e3e5ee5), X(0x7c602fec), - X(0x1e6f342c), X(0x7c5445e9), X(0x1ea004c1), X(0x7c4848ba), - X(0x1ed0d09d), X(0x7c3c3860), X(0x1f0197b8), X(0x7c3014de), - X(0x1f325a0b), X(0x7c23de35), X(0x1f63178f), X(0x7c179467), - X(0x1f93d03c), X(0x7c0b3777), X(0x1fc4840a), X(0x7bfec765), - X(0x1ff532f2), X(0x7bf24434), X(0x2025dcec), X(0x7be5ade6), - X(0x205681f1), X(0x7bd9047c), X(0x208721f9), X(0x7bcc47fa), - X(0x20b7bcfe), X(0x7bbf7860), X(0x20e852f6), X(0x7bb295b0), - X(0x2118e3dc), X(0x7ba59fee), X(0x21496fa7), X(0x7b989719), - X(0x2179f64f), X(0x7b8b7b36), X(0x21aa77cf), X(0x7b7e4c45), - X(0x21daf41d), X(0x7b710a49), X(0x220b6b32), X(0x7b63b543), - X(0x223bdd08), X(0x7b564d36), X(0x226c4996), X(0x7b48d225), - X(0x229cb0d5), X(0x7b3b4410), X(0x22cd12bd), X(0x7b2da2fa), - X(0x22fd6f48), X(0x7b1feee5), X(0x232dc66d), X(0x7b1227d3), - X(0x235e1826), X(0x7b044dc7), X(0x238e646a), X(0x7af660c2), - X(0x23beab33), X(0x7ae860c7), X(0x23eeec78), X(0x7ada4dd8), - X(0x241f2833), X(0x7acc27f7), X(0x244f5e5c), X(0x7abdef25), - X(0x247f8eec), X(0x7aafa367), X(0x24afb9da), X(0x7aa144bc), - X(0x24dfdf20), X(0x7a92d329), X(0x250ffeb7), X(0x7a844eae), - X(0x25401896), X(0x7a75b74f), X(0x25702cb7), X(0x7a670d0d), - X(0x25a03b11), X(0x7a584feb), X(0x25d0439f), X(0x7a497feb), - X(0x26004657), X(0x7a3a9d0f), X(0x26304333), X(0x7a2ba75a), - X(0x26603a2c), X(0x7a1c9ece), X(0x26902b39), X(0x7a0d836d), - X(0x26c01655), X(0x79fe5539), X(0x26effb76), X(0x79ef1436), - X(0x271fda96), X(0x79dfc064), X(0x274fb3ae), X(0x79d059c8), - X(0x277f86b5), X(0x79c0e062), X(0x27af53a6), X(0x79b15435), - X(0x27df1a77), X(0x79a1b545), X(0x280edb23), X(0x79920392), - X(0x283e95a1), X(0x79823f20), X(0x286e49ea), X(0x797267f2), - X(0x289df7f8), X(0x79627e08), X(0x28cd9fc1), X(0x79528167), - X(0x28fd4140), X(0x79427210), X(0x292cdc6d), X(0x79325006), - X(0x295c7140), X(0x79221b4b), X(0x298bffb2), X(0x7911d3e2), - X(0x29bb87bc), X(0x790179cd), X(0x29eb0957), X(0x78f10d0f), - X(0x2a1a847b), X(0x78e08dab), X(0x2a49f920), X(0x78cffba3), - X(0x2a796740), X(0x78bf56f9), X(0x2aa8ced3), X(0x78ae9fb0), - X(0x2ad82fd2), X(0x789dd5cb), X(0x2b078a36), X(0x788cf94c), - X(0x2b36ddf7), X(0x787c0a36), X(0x2b662b0e), X(0x786b088c), - X(0x2b957173), X(0x7859f44f), X(0x2bc4b120), X(0x7848cd83), - X(0x2bf3ea0d), X(0x7837942b), X(0x2c231c33), X(0x78264849), - X(0x2c52478a), X(0x7814e9df), X(0x2c816c0c), X(0x780378f1), - X(0x2cb089b1), X(0x77f1f581), X(0x2cdfa071), X(0x77e05f91), - X(0x2d0eb046), X(0x77ceb725), X(0x2d3db928), X(0x77bcfc3f), - X(0x2d6cbb10), X(0x77ab2ee2), X(0x2d9bb5f6), X(0x77994f11), - X(0x2dcaa9d5), X(0x77875cce), X(0x2df996a3), X(0x7775581d), - X(0x2e287c5a), X(0x776340ff), X(0x2e575af3), X(0x77511778), - X(0x2e863267), X(0x773edb8b), X(0x2eb502ae), X(0x772c8d3a), - X(0x2ee3cbc1), X(0x771a2c88), X(0x2f128d99), X(0x7707b979), - X(0x2f41482e), X(0x76f5340e), X(0x2f6ffb7a), X(0x76e29c4b), - X(0x2f9ea775), X(0x76cff232), X(0x2fcd4c19), X(0x76bd35c7), - X(0x2ffbe95d), X(0x76aa670d), X(0x302a7f3a), X(0x76978605), - X(0x30590dab), X(0x768492b4), X(0x308794a6), X(0x76718d1c), - X(0x30b61426), X(0x765e7540), X(0x30e48c22), X(0x764b4b23), - X(0x3112fc95), X(0x76380ec8), X(0x31416576), X(0x7624c031), - X(0x316fc6be), X(0x76115f63), X(0x319e2067), X(0x75fdec60), - X(0x31cc7269), X(0x75ea672a), X(0x31fabcbd), X(0x75d6cfc5), - X(0x3228ff5c), X(0x75c32634), X(0x32573a3f), X(0x75af6a7b), - X(0x32856d5e), X(0x759b9c9b), X(0x32b398b3), X(0x7587bc98), - X(0x32e1bc36), X(0x7573ca75), X(0x330fd7e1), X(0x755fc635), - X(0x333debab), X(0x754bafdc), X(0x336bf78f), X(0x7537876c), - X(0x3399fb85), X(0x75234ce8), X(0x33c7f785), X(0x750f0054), - X(0x33f5eb89), X(0x74faa1b3), X(0x3423d78a), X(0x74e63108), - X(0x3451bb81), X(0x74d1ae55), X(0x347f9766), X(0x74bd199f), - X(0x34ad6b32), X(0x74a872e8), X(0x34db36df), X(0x7493ba34), - X(0x3508fa66), X(0x747eef85), X(0x3536b5be), X(0x746a12df), - X(0x356468e2), X(0x74552446), X(0x359213c9), X(0x744023bc), - X(0x35bfb66e), X(0x742b1144), X(0x35ed50c9), X(0x7415ece2), - X(0x361ae2d3), X(0x7400b69a), X(0x36486c86), X(0x73eb6e6e), - X(0x3675edd9), X(0x73d61461), X(0x36a366c6), X(0x73c0a878), - X(0x36d0d746), X(0x73ab2ab4), X(0x36fe3f52), X(0x73959b1b), - X(0x372b9ee3), X(0x737ff9ae), X(0x3758f5f2), X(0x736a4671), - X(0x37864477), X(0x73548168), X(0x37b38a6d), X(0x733eaa96), - X(0x37e0c7cc), X(0x7328c1ff), X(0x380dfc8d), X(0x7312c7a5), - X(0x383b28a9), X(0x72fcbb8c), X(0x38684c19), X(0x72e69db7), - X(0x389566d6), X(0x72d06e2b), X(0x38c278d9), X(0x72ba2cea), - X(0x38ef821c), X(0x72a3d9f7), X(0x391c8297), X(0x728d7557), - X(0x39497a43), X(0x7276ff0d), X(0x39766919), X(0x7260771b), - X(0x39a34f13), X(0x7249dd86), X(0x39d02c2a), X(0x72333251), - X(0x39fd0056), X(0x721c7580), X(0x3a29cb91), X(0x7205a716), - X(0x3a568dd4), X(0x71eec716), X(0x3a834717), X(0x71d7d585), - X(0x3aaff755), X(0x71c0d265), X(0x3adc9e86), X(0x71a9bdba), - X(0x3b093ca3), X(0x71929789), X(0x3b35d1a5), X(0x717b5fd3), - X(0x3b625d86), X(0x7164169d), X(0x3b8ee03e), X(0x714cbbeb), - X(0x3bbb59c7), X(0x71354fc0), X(0x3be7ca1a), X(0x711dd220), - X(0x3c143130), X(0x7106430e), X(0x3c408f03), X(0x70eea28e), - X(0x3c6ce38a), X(0x70d6f0a4), X(0x3c992ec0), X(0x70bf2d53), - X(0x3cc5709e), X(0x70a7589f), X(0x3cf1a91c), X(0x708f728b), - X(0x3d1dd835), X(0x70777b1c), X(0x3d49fde1), X(0x705f7255), - X(0x3d761a19), X(0x70475839), X(0x3da22cd7), X(0x702f2ccd), - X(0x3dce3614), X(0x7016f014), X(0x3dfa35c8), X(0x6ffea212), - X(0x3e262bee), X(0x6fe642ca), X(0x3e52187f), X(0x6fcdd241), - X(0x3e7dfb73), X(0x6fb5507a), X(0x3ea9d4c3), X(0x6f9cbd79), - X(0x3ed5a46b), X(0x6f841942), X(0x3f016a61), X(0x6f6b63d8), - X(0x3f2d26a0), X(0x6f529d40), X(0x3f58d921), X(0x6f39c57d), - X(0x3f8481dd), X(0x6f20dc92), X(0x3fb020ce), X(0x6f07e285), - X(0x3fdbb5ec), X(0x6eeed758), X(0x40074132), X(0x6ed5bb10), - X(0x4032c297), X(0x6ebc8db0), X(0x405e3a16), X(0x6ea34f3d), - X(0x4089a7a8), X(0x6e89ffb9), X(0x40b50b46), X(0x6e709f2a), - X(0x40e064ea), X(0x6e572d93), X(0x410bb48c), X(0x6e3daaf8), - X(0x4136fa27), X(0x6e24175c), X(0x416235b2), X(0x6e0a72c5), - X(0x418d6729), X(0x6df0bd35), X(0x41b88e84), X(0x6dd6f6b1), - X(0x41e3abbc), X(0x6dbd1f3c), X(0x420ebecb), X(0x6da336dc), - X(0x4239c7aa), X(0x6d893d93), X(0x4264c653), X(0x6d6f3365), - X(0x428fbabe), X(0x6d551858), X(0x42baa4e6), X(0x6d3aec6e), - X(0x42e584c3), X(0x6d20afac), X(0x43105a50), X(0x6d066215), - X(0x433b2585), X(0x6cec03af), X(0x4365e65b), X(0x6cd1947c), - X(0x43909ccd), X(0x6cb71482), X(0x43bb48d4), X(0x6c9c83c3), - X(0x43e5ea68), X(0x6c81e245), X(0x44108184), X(0x6c67300b), - X(0x443b0e21), X(0x6c4c6d1a), X(0x44659039), X(0x6c319975), - X(0x449007c4), X(0x6c16b521), X(0x44ba74bd), X(0x6bfbc021), - X(0x44e4d71c), X(0x6be0ba7b), X(0x450f2edb), X(0x6bc5a431), - X(0x45397bf4), X(0x6baa7d49), X(0x4563be60), X(0x6b8f45c7), - X(0x458df619), X(0x6b73fdae), X(0x45b82318), X(0x6b58a503), - X(0x45e24556), X(0x6b3d3bcb), X(0x460c5cce), X(0x6b21c208), - X(0x46366978), X(0x6b0637c1), X(0x46606b4e), X(0x6aea9cf8), - X(0x468a624a), X(0x6acef1b2), X(0x46b44e65), X(0x6ab335f4), - X(0x46de2f99), X(0x6a9769c1), X(0x470805df), X(0x6a7b8d1e), - X(0x4731d131), X(0x6a5fa010), X(0x475b9188), X(0x6a43a29a), - X(0x478546de), X(0x6a2794c1), X(0x47aef12c), X(0x6a0b7689), - X(0x47d8906d), X(0x69ef47f6), X(0x48022499), X(0x69d3090e), - X(0x482badab), X(0x69b6b9d3), X(0x48552b9b), X(0x699a5a4c), - X(0x487e9e64), X(0x697dea7b), X(0x48a805ff), X(0x69616a65), - X(0x48d16265), X(0x6944da10), X(0x48fab391), X(0x6928397e), - X(0x4923f97b), X(0x690b88b5), X(0x494d341e), X(0x68eec7b9), - X(0x49766373), X(0x68d1f68f), X(0x499f8774), X(0x68b5153a), - X(0x49c8a01b), X(0x689823bf), X(0x49f1ad61), X(0x687b2224), - X(0x4a1aaf3f), X(0x685e106c), X(0x4a43a5b0), X(0x6840ee9b), - X(0x4a6c90ad), X(0x6823bcb7), X(0x4a957030), X(0x68067ac3), - X(0x4abe4433), X(0x67e928c5), X(0x4ae70caf), X(0x67cbc6c0), - X(0x4b0fc99d), X(0x67ae54ba), X(0x4b387af9), X(0x6790d2b6), - X(0x4b6120bb), X(0x677340ba), X(0x4b89badd), X(0x67559eca), - X(0x4bb24958), X(0x6737ecea), X(0x4bdacc28), X(0x671a2b20), - X(0x4c034345), X(0x66fc596f), X(0x4c2baea9), X(0x66de77dc), - X(0x4c540e4e), X(0x66c0866d), X(0x4c7c622d), X(0x66a28524), - X(0x4ca4aa41), X(0x66847408), X(0x4ccce684), X(0x6666531d), - X(0x4cf516ee), X(0x66482267), X(0x4d1d3b7a), X(0x6629e1ec), - X(0x4d455422), X(0x660b91af), X(0x4d6d60df), X(0x65ed31b5), - X(0x4d9561ac), X(0x65cec204), X(0x4dbd5682), X(0x65b0429f), - X(0x4de53f5a), X(0x6591b38c), X(0x4e0d1c30), X(0x657314cf), - X(0x4e34ecfc), X(0x6554666d), X(0x4e5cb1b9), X(0x6535a86b), - X(0x4e846a60), X(0x6516dacd), X(0x4eac16eb), X(0x64f7fd98), - X(0x4ed3b755), X(0x64d910d1), X(0x4efb4b96), X(0x64ba147d), - X(0x4f22d3aa), X(0x649b08a0), X(0x4f4a4f89), X(0x647bed3f), - X(0x4f71bf2e), X(0x645cc260), X(0x4f992293), X(0x643d8806), - X(0x4fc079b1), X(0x641e3e38), X(0x4fe7c483), X(0x63fee4f8), - X(0x500f0302), X(0x63df7c4d), X(0x50363529), X(0x63c0043b), - X(0x505d5af1), X(0x63a07cc7), X(0x50847454), X(0x6380e5f6), - X(0x50ab814d), X(0x63613fcd), X(0x50d281d5), X(0x63418a50), - X(0x50f975e6), X(0x6321c585), X(0x51205d7b), X(0x6301f171), - X(0x5147388c), X(0x62e20e17), X(0x516e0715), X(0x62c21b7e), - X(0x5194c910), X(0x62a219aa), X(0x51bb7e75), X(0x628208a1), - X(0x51e22740), X(0x6261e866), X(0x5208c36a), X(0x6241b8ff), - X(0x522f52ee), X(0x62217a72), X(0x5255d5c5), X(0x62012cc2), - X(0x527c4bea), X(0x61e0cff5), X(0x52a2b556), X(0x61c06410), - X(0x52c91204), X(0x619fe918), X(0x52ef61ee), X(0x617f5f12), - X(0x5315a50e), X(0x615ec603), X(0x533bdb5d), X(0x613e1df0), - X(0x536204d7), X(0x611d66de), X(0x53882175), X(0x60fca0d2), - X(0x53ae3131), X(0x60dbcbd1), X(0x53d43406), X(0x60bae7e1), - X(0x53fa29ed), X(0x6099f505), X(0x542012e1), X(0x6078f344), - X(0x5445eedb), X(0x6057e2a2), X(0x546bbdd7), X(0x6036c325), - X(0x54917fce), X(0x601594d1), X(0x54b734ba), X(0x5ff457ad), - X(0x54dcdc96), X(0x5fd30bbc), X(0x5502775c), X(0x5fb1b104), - X(0x55280505), X(0x5f90478a), X(0x554d858d), X(0x5f6ecf53), - X(0x5572f8ed), X(0x5f4d4865), X(0x55985f20), X(0x5f2bb2c5), - X(0x55bdb81f), X(0x5f0a0e77), X(0x55e303e6), X(0x5ee85b82), - X(0x5608426e), X(0x5ec699e9), X(0x562d73b2), X(0x5ea4c9b3), - X(0x565297ab), X(0x5e82eae5), X(0x5677ae54), X(0x5e60fd84), - X(0x569cb7a8), X(0x5e3f0194), X(0x56c1b3a1), X(0x5e1cf71c), - X(0x56e6a239), X(0x5dfade20), X(0x570b8369), X(0x5dd8b6a7), - X(0x5730572e), X(0x5db680b4), X(0x57551d80), X(0x5d943c4e), - X(0x5779d65b), X(0x5d71e979), X(0x579e81b8), X(0x5d4f883b), - X(0x57c31f92), X(0x5d2d189a), X(0x57e7afe4), X(0x5d0a9a9a), - X(0x580c32a7), X(0x5ce80e41), X(0x5830a7d6), X(0x5cc57394), - X(0x58550f6c), X(0x5ca2ca99), X(0x58796962), X(0x5c801354), - X(0x589db5b3), X(0x5c5d4dcc), X(0x58c1f45b), X(0x5c3a7a05), - X(0x58e62552), X(0x5c179806), X(0x590a4893), X(0x5bf4a7d2), - X(0x592e5e19), X(0x5bd1a971), X(0x595265df), X(0x5bae9ce7), - X(0x59765fde), X(0x5b8b8239), X(0x599a4c12), X(0x5b68596d), - X(0x59be2a74), X(0x5b452288), X(0x59e1faff), X(0x5b21dd90), - X(0x5a05bdae), X(0x5afe8a8b), X(0x5a29727b), X(0x5adb297d), - X(0x5a4d1960), X(0x5ab7ba6c), X(0x5a70b258), X(0x5a943d5e), -}; diff --git a/external/android-specific/tremolo/Tremolo/misc.c b/external/android-specific/tremolo/Tremolo/misc.c deleted file mode 100644 index 164250b..0000000 --- a/external/android-specific/tremolo/Tremolo/misc.c +++ /dev/null @@ -1,229 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************/ - -#define HEAD_ALIGN 64 -#include -#include -#include -#define MISC_C -#include "misc.h" -//#include - -static void **pointers=NULL; -static long *insertlist=NULL; /* We can't embed this in the pointer list; - a pointer can have any value... */ - -static char **files=NULL; -static long *file_bytes=NULL; -static int filecount=0; - -static int ptop=0; -static int palloced=0; -static int pinsert=0; - -typedef struct { - char *file; - long line; - long ptr; - long bytes; -} head; - -long global_bytes=0; -long start_time=-1; - -static void *_insert(void *ptr,long bytes,char *file,long line){ - ((head *)ptr)->file=file; - ((head *)ptr)->line=line; - ((head *)ptr)->ptr=pinsert; - ((head *)ptr)->bytes=bytes-HEAD_ALIGN; - - if(pinsert>=palloced){ - palloced+=64; - if(pointers){ - pointers=(void **)realloc(pointers,sizeof(void **)*palloced); - insertlist=(long *)realloc(insertlist,sizeof(long *)*palloced); - }else{ - pointers=(void **)malloc(sizeof(void **)*palloced); - insertlist=(long *)malloc(sizeof(long *)*palloced); - } - } - - pointers[pinsert]=ptr; - - if(pinsert==ptop) - pinsert=++ptop; - else - pinsert=insertlist[pinsert]; - -#ifdef _VDBG_GRAPHFILE - { - FILE *out; - struct timeval tv; - static struct timezone tz; - int i; - char buffer[80]; - gettimeofday(&tv,&tz); - - for(i=0;ifile; - long bytes =((head *)ptr)->bytes; - int i; - - gettimeofday(&tv,&tz); - fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000), - global_bytes); - fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000), - global_bytes-((head *)ptr)->bytes); - fclose(out); - - for(i=0;ibytes; - - insert=((head *)ptr)->ptr; - insertlist[insert]=pinsert; - pinsert=insert; - - if(pointers[insert]==NULL){ - fprintf(stderr,"DEBUGGING MALLOC ERROR: freeing previously freed memory\n"); - fprintf(stderr,"\t%s %ld\n",((head *)ptr)->file,((head *)ptr)->line); - } - - if(global_bytes<0){ - fprintf(stderr,"DEBUGGING MALLOC ERROR: freeing unmalloced memory\n"); - } - - pointers[insert]=NULL; -} - -void _VDBG_dump(void){ - int i; - for(i=0;ifile,ptr->line); - } - -} - -extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line){ - bytes+=HEAD_ALIGN; - if(ptr){ - ptr=(void *)(((char *)ptr)-HEAD_ALIGN); - _ripremove(ptr); - ptr=realloc(ptr,bytes); - }else{ - ptr=malloc(bytes); - memset(ptr,0,bytes); - } - return _insert(ptr,bytes,file,line); -} - -extern void _VDBG_free(void *ptr){ - if(ptr){ - ptr=(void *)(((char *)ptr)-HEAD_ALIGN); - _ripremove(ptr); - free(ptr); - } -} - diff --git a/external/android-specific/tremolo/Tremolo/misc.h b/external/android-specific/tremolo/Tremolo/misc.h deleted file mode 100644 index b75a6d8..0000000 --- a/external/android-specific/tremolo/Tremolo/misc.h +++ /dev/null @@ -1,213 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: miscellaneous math and prototypes - - ************************************************************************/ - -#ifndef _V_RANDOM_H_ -#define _V_RANDOM_H_ -#include "ivorbiscodec.h" -#include "os_types.h" - -/*#define _VDBG_GRAPHFILE "_0.m"*/ - - -#ifdef _VDBG_GRAPHFILE -extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line); -extern void _VDBG_free(void *ptr); - -#undef _ogg_malloc -#undef _ogg_calloc -#undef _ogg_realloc -#undef _ogg_free - -#define _ogg_malloc(x) _VDBG_malloc(NULL,(x),__FILE__,__LINE__) -#define _ogg_calloc(x,y) _VDBG_malloc(NULL,(x)*(y),__FILE__,__LINE__) -#define _ogg_realloc(x,y) _VDBG_malloc((x),(y),__FILE__,__LINE__) -#define _ogg_free(x) _VDBG_free((x)) -#endif - -#include "asm_arm.h" - -#ifndef _V_WIDE_MATH -#define _V_WIDE_MATH - -#ifndef _LOW_ACCURACY_ -/* 64 bit multiply */ - -#include -#include - -#if BYTE_ORDER==LITTLE_ENDIAN -union magic { - struct { - ogg_int32_t lo; - ogg_int32_t hi; - } halves; - ogg_int64_t whole; -}; -#endif - -#if BYTE_ORDER==BIG_ENDIAN -union magic { - struct { - ogg_int32_t hi; - ogg_int32_t lo; - } halves; - ogg_int64_t whole; -}; -#endif - -static inline ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) { - union magic magic; - magic.whole = (ogg_int64_t)x * y; - return magic.halves.hi; -} - -static inline ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) { - return MULT32(x,y)<<1; -} - -static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) { - union magic magic; - magic.whole = (ogg_int64_t)x * y; - return ((ogg_uint32_t)(magic.halves.lo)>>15) | ((magic.halves.hi)<<17); -} - -#else -/* 32 bit multiply, more portable but less accurate */ - -/* - * Note: Precision is biased towards the first argument therefore ordering - * is important. Shift values were chosen for the best sound quality after - * many listening tests. - */ - -/* - * For MULT32 and MULT31: The second argument is always a lookup table - * value already preshifted from 31 to 8 bits. We therefore take the - * opportunity to save on text space and use unsigned char for those - * tables in this case. - */ - -static inline ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) { - return (x >> 9) * y; /* y preshifted >>23 */ -} - -static inline ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) { - return (x >> 8) * y; /* y preshifted >>23 */ -} - -static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) { - return (x >> 6) * y; /* y preshifted >>9 */ -} - -#endif - -/* - * This should be used as a memory barrier, forcing all cached values in - * registers to wr writen back to memory. Might or might not be beneficial - * depending on the architecture and compiler. - */ -#define MB() - -/* - * The XPROD functions are meant to optimize the cross products found all - * over the place in mdct.c by forcing memory operation ordering to avoid - * unnecessary register reloads as soon as memory is being written to. - * However this is only beneficial on CPUs with a sane number of general - * purpose registers which exclude the Intel x86. On Intel, better let the - * compiler actually reload registers directly from original memory by using - * macros. - */ - -#ifdef __i386__ - -#define XPROD32(_a, _b, _t, _v, _x, _y) \ - { *(_x)=MULT32(_a,_t)+MULT32(_b,_v); \ - *(_y)=MULT32(_b,_t)-MULT32(_a,_v); } -#define XPROD31(_a, _b, _t, _v, _x, _y) \ - { *(_x)=MULT31(_a,_t)+MULT31(_b,_v); \ - *(_y)=MULT31(_b,_t)-MULT31(_a,_v); } -#define XNPROD31(_a, _b, _t, _v, _x, _y) \ - { *(_x)=MULT31(_a,_t)-MULT31(_b,_v); \ - *(_y)=MULT31(_b,_t)+MULT31(_a,_v); } - -#else - -static inline void XPROD32(ogg_int32_t a, ogg_int32_t b, - ogg_int32_t t, ogg_int32_t v, - ogg_int32_t *x, ogg_int32_t *y) -{ - *x = MULT32(a, t) + MULT32(b, v); - *y = MULT32(b, t) - MULT32(a, v); -} - -static inline void XPROD31(ogg_int32_t a, ogg_int32_t b, - ogg_int32_t t, ogg_int32_t v, - ogg_int32_t *x, ogg_int32_t *y) -{ - *x = MULT31(a, t) + MULT31(b, v); - *y = MULT31(b, t) - MULT31(a, v); -} - -static inline void XNPROD31(ogg_int32_t a, ogg_int32_t b, - ogg_int32_t t, ogg_int32_t v, - ogg_int32_t *x, ogg_int32_t *y) -{ - *x = MULT31(a, t) - MULT31(b, v); - *y = MULT31(b, t) + MULT31(a, v); -} - -#endif - -#endif - -#ifndef _V_CLIP_MATH -#define _V_CLIP_MATH - -static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) { - int ret=x; - ret-= ((x<=32767)-1)&(x-32767); - ret-= ((x>=-32768)-1)&(x+32768); - return(ret); -} - -#endif - -#endif - - - - diff --git a/external/android-specific/tremolo/Tremolo/ogg.h b/external/android-specific/tremolo/Tremolo/ogg.h deleted file mode 100644 index 7f35bd4..0000000 --- a/external/android-specific/tremolo/Tremolo/ogg.h +++ /dev/null @@ -1,242 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: subsumed libogg includes - - ************************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "os_types.h" - -#ifndef ONLY_C -#define ARM_LITTLE_ENDIAN -#endif - -typedef struct ogg_buffer_state{ - struct ogg_buffer *unused_buffers; - struct ogg_reference *unused_references; - int outstanding; - int shutdown; -} ogg_buffer_state; - -typedef struct ogg_buffer { - unsigned char *data; - long size; - int refcount; - - union { - ogg_buffer_state *owner; - struct ogg_buffer *next; - } ptr; -} ogg_buffer; - -typedef struct ogg_reference { - ogg_buffer *buffer; - long begin; - long length; - - struct ogg_reference *next; -} ogg_reference; - -typedef struct oggpack_buffer { -#ifdef ARM_LITTLE_ENDIAN - int bitsLeftInSegment; - ogg_uint32_t *ptr; - long bitsLeftInWord; -#else - int headbit; - unsigned char *headptr; - long headend; -#endif /* ARM_LITTLE_ENDIAN */ - /* memory management */ - ogg_reference *head; - ogg_reference *tail; - - /* render the byte/bit counter API constant time */ - long count; /* doesn't count the tail */ -} oggpack_buffer; - -typedef struct oggbyte_buffer { - ogg_reference *baseref; - - ogg_reference *ref; - unsigned char *ptr; - long pos; - long end; -} oggbyte_buffer; - -typedef struct ogg_sync_state { - /* decode memory management pool */ - ogg_buffer_state *bufferpool; - - /* stream buffers */ - ogg_reference *fifo_head; - ogg_reference *fifo_tail; - long fifo_fill; - - /* stream sync management */ - int unsynced; - int headerbytes; - int bodybytes; - -} ogg_sync_state; - -typedef struct ogg_stream_state { - ogg_reference *header_head; - ogg_reference *header_tail; - ogg_reference *body_head; - ogg_reference *body_tail; - - int e_o_s; /* set when we have buffered the last - packet in the logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a seperate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - - int lacing_fill; - ogg_uint32_t body_fill; - - /* decode-side state data */ - int holeflag; - int spanflag; - int clearflag; - int laceptr; - ogg_uint32_t body_fill_next; - -} ogg_stream_state; - -typedef struct { - ogg_reference *packet; - long bytes; - long b_o_s; - long e_o_s; - ogg_int64_t granulepos; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a seperate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - ogg_reference *header; - int header_len; - ogg_reference *body; - long body_len; -} ogg_page; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_readinit(oggpack_buffer *b,ogg_reference *r); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern int oggpack_eop(oggpack_buffer *b); - -// Quick hack -#define oggpack_bytesleft(B) (((B)->bitsLeftInSegment+7)/8) - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern void ogg_sync_init(ogg_sync_state *oy); -extern ogg_sync_state *ogg_sync_create(void); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); - -extern unsigned char *ogg_sync_bufferin(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern void ogg_stream_init(ogg_stream_state *os, int serialno); -extern ogg_stream_state *ogg_stream_create(int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern int ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(ogg_page *og); -extern int ogg_page_continued(ogg_page *og); -extern int ogg_page_bos(ogg_page *og); -extern int ogg_page_eos(ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(ogg_page *og); -extern ogg_uint32_t ogg_page_serialno(ogg_page *og); -extern ogg_uint32_t ogg_page_pageno(ogg_page *og); -extern int ogg_page_packets(ogg_page *og); -extern int ogg_page_getbuffer(ogg_page *og, unsigned char **buffer); - -extern int ogg_packet_release(ogg_packet *op); -extern int ogg_page_release(ogg_page *og); - -extern void ogg_page_dup(ogg_page *d, ogg_page *s); - -/* Ogg BITSTREAM PRIMITIVES: return codes ***************************/ - -#define OGG_SUCCESS 0 - -#define OGG_HOLE -10 -#define OGG_SPAN -11 -#define OGG_EVERSION -12 -#define OGG_ESERIAL -13 -#define OGG_EINVAL -14 -#define OGG_EEOS -15 - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/external/android-specific/tremolo/Tremolo/os.h b/external/android-specific/tremolo/Tremolo/os.h deleted file mode 100644 index ae9edd2..0000000 --- a/external/android-specific/tremolo/Tremolo/os.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef _OS_H -#define _OS_H -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - - ************************************************************************/ - -#include -#include "os_types.h" - -#ifndef _V_IFDEFJAIL_H_ -# define _V_IFDEFJAIL_H_ - -# ifdef __GNUC__ -# define STIN static __inline__ -# elif _WIN32 -# define STIN static __inline -# endif -#else -# define STIN static -#endif - -#ifndef M_PI -# define M_PI (3.1415926536f) -#endif - -#ifdef _WIN32 -# include -# define rint(x) (floor((x)+0.5f)) -# define NO_FLOAT_MATH_LIB -# define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b)) -#endif - -#ifdef HAVE_ALLOCA_H -# include -#endif - -#ifdef USE_MEMORY_H -# include -#endif - -#ifndef min -# define min(x,y) ((x)>(y)?(y):(x)) -#endif - -#ifndef max -# define max(x,y) ((x)<(y)?(y):(x)) -#endif - -#endif /* _OS_H */ diff --git a/external/android-specific/tremolo/Tremolo/os_types.h b/external/android-specific/tremolo/Tremolo/os_types.h deleted file mode 100644 index 315227c..0000000 --- a/external/android-specific/tremolo/Tremolo/os_types.h +++ /dev/null @@ -1,124 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - - ************************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -#ifdef _LOW_ACCURACY_ -# define X(n) (((((n)>>22)+1)>>1) - ((((n)>>22)+1)>>9)) -# define LOOKUP_T const unsigned char -#else -# define X(n) (n) -# define LOOKUP_T const ogg_int32_t -#endif - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined (_WIN32_WCE) - - typedef unsigned short ogg_uint16_t; - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef __int64 ogg_int64_t; - - #define inline - -#elif defined(_WIN32) - -# ifndef __GNUC__ - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# else - /* Cygwin */ - #include <_G_config.h> - typedef _G_int64_t ogg_int64_t; - typedef _G_int32_t ogg_int32_t; - typedef _G_uint32_t ogg_uint32_t; - typedef _G_int16_t ogg_int16_t; - typedef _G_uint16_t ogg_uint16_t; -# endif - -#elif defined(__MACOS__) - -# include - typedef SInt16 ogg_int16_t; - typedef UInt16 ogg_uint16_t; - typedef SInt32 ogg_int32_t; - typedef UInt32 ogg_uint32_t; - typedef SInt64 ogg_int64_t; - -#elif defined(__MACOSX__) /* MacOS X Framework build */ - -# include - typedef int16_t ogg_int16_t; - typedef u_int16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef u_int32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#else - -# include -# include "config_types.h" -# include - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/external/android-specific/tremolo/Tremolo/res012.c b/external/android-specific/tremolo/Tremolo/res012.c deleted file mode 100644 index be279d0..0000000 --- a/external/android-specific/tremolo/Tremolo/res012.c +++ /dev/null @@ -1,247 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: residue backend 0, 1 and 2 implementation - - ************************************************************************/ - -#include -#include -#include -#include "ogg.h" -#include "ivorbiscodec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "misc.h" -#include "os.h" - -void res_clear_info(vorbis_info_residue *info){ - if(info){ - if(info->stagemasks)_ogg_free(info->stagemasks); - if(info->stagebooks)_ogg_free(info->stagebooks); - memset(info,0,sizeof(*info)); - } -} - - -/* vorbis_info is for range checking */ -int res_unpack(vorbis_info_residue *info, - vorbis_info *vi,oggpack_buffer *opb){ - int j,k; - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - memset(info,0,sizeof(*info)); - - info->type=oggpack_read(opb,16); - if(info->type>2 || info->type<0)goto errout; - info->begin=oggpack_read(opb,24); - info->end=oggpack_read(opb,24); - info->grouping=oggpack_read(opb,24)+1; - info->partitions=(char)(oggpack_read(opb,6)+1); - info->groupbook=(unsigned char)oggpack_read(opb,8); - if(info->groupbook>=ci->books)goto errout; - - info->stagemasks=_ogg_malloc(info->partitions*sizeof(*info->stagemasks)); - info->stagebooks=_ogg_malloc(info->partitions*8*sizeof(*info->stagebooks)); - - for(j=0;jpartitions;j++){ - int cascade=oggpack_read(opb,3); - if(oggpack_read(opb,1)) - cascade|=(oggpack_read(opb,5)<<3); - info->stagemasks[j]=cascade; - } - - for(j=0;jpartitions;j++){ - for(k=0;k<8;k++){ - if((info->stagemasks[j]>>k)&1){ - unsigned char book=(unsigned char)oggpack_read(opb,8); - if(book>=ci->books)goto errout; - info->stagebooks[j*8+k]=book; - if(k+1>info->stages)info->stages=k+1; - }else - info->stagebooks[j*8+k]=0xff; - } - } - - if(oggpack_eop(opb))goto errout; - - return 0; - errout: - res_clear_info(info); - return 1; -} - -int res_inverse(vorbis_dsp_state *vd,vorbis_info_residue *info, - ogg_int32_t **in,int *nonzero,int ch){ - - int i,j,k,s,used=0; - codec_setup_info *ci=(codec_setup_info *)vd->vi->codec_setup; - codebook *phrasebook=ci->book_param+info->groupbook; - int samples_per_partition=info->grouping; - int partitions_per_word=phrasebook->dim; - int pcmend=ci->blocksizes[vd->W]; - - if(info->type<2){ - int max=pcmend>>1; - int end=(info->endend:max); - int n=end-info->begin; - - if(n>0){ - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - - for(i=0;istages;s++){ - - for(i=0;i=0;k--) - partword[0][i+k]=partword[0][i+k+1]*info->partitions; - - for(j=1;j=0;k--) - partword[j][i+k]=partword[j-1][i+k]; - - for(j=0;jopb); - if(temp==-1)goto eopbreak; - - /* this can be done quickly in assembly due to the quotient - always being at most six bits */ - for(k=0;kbegin+i*samples_per_partition; - int idx = (int)partword[j][i]; - if(idx < info->partitions && info->stagemasks[idx]&(1<book_param+ - info->stagebooks[(partword[j][i]<<3)+s]; - if(info->type){ - if(vorbis_book_decodev_add(stagebook,in[j]+offset,&vd->opb, - samples_per_partition,-8)==-1) - goto eopbreak; - }else{ - if(vorbis_book_decodevs_add(stagebook,in[j]+offset,&vd->opb, - samples_per_partition,-8)==-1) - goto eopbreak; - } - } - } - } - } - } - } - }else{ - int max=(pcmend*ch)>>1; - int end=(info->endend:max); - int n=end-info->begin; - - if(n>0){ - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - - char *partword= - (char *)alloca(partwords*partitions_per_word*sizeof(*partword)); - int beginoff=info->begin/ch; - - for(i=0;istages;s++){ - for(i=0;i=0;k--) - partword[i+k]=partword[i+k+1]*info->partitions; - - /* fetch the partition word */ - temp=vorbis_book_decode(phrasebook,&vd->opb); - if(temp==-1)goto eopbreak; - - /* this can be done quickly in assembly due to the quotient - always being at most six bits */ - for(k=0;k= 0 && partword[i] < info->partitions && - (info->stagemasks[(int)partword[i]] & (1 << s))){ - codebook *stagebook=ci->book_param+ - info->stagebooks[(partword[i]<<3)+s]; - if(vorbis_book_decodevv_add(stagebook,in, - i*samples_per_partition+beginoff,ch, - &vd->opb, - samples_per_partition,-8)==-1) - goto eopbreak; - } - } - } - } - } - } - eopbreak: - - return 0; -} - diff --git a/external/android-specific/tremolo/Tremolo/treminfo.c b/external/android-specific/tremolo/Tremolo/treminfo.c deleted file mode 100644 index 4f72728..0000000 --- a/external/android-specific/tremolo/Tremolo/treminfo.c +++ /dev/null @@ -1,395 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: maintain the info structure, info <-> header packets - - ************************************************************************/ - -/* general handling of the header and the vorbis_info structure (and - substructures) */ - -#include -#include -#include -#include "ogg.h" -#include "ivorbiscodec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "misc.h" -#include "os.h" - -/* helpers */ -static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){ - while(bytes--){ - *buf++=(char)oggpack_read(o,8); - } -} - -void vorbis_comment_init(vorbis_comment *vc){ - memset(vc,0,sizeof(*vc)); -} - -/* This is more or less the same as strncasecmp - but that doesn't exist - * everywhere, and this is a fairly trivial function, so we include it */ -static int tagcompare(const char *s1, const char *s2, int n){ - int c=0; - while(c < n){ - if(toupper(s1[c]) != toupper(s2[c])) - return !0; - c++; - } - return 0; -} - -char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){ - long i; - int found = 0; - int taglen = strlen(tag)+1; /* +1 for the = we append */ - char *fulltag = (char *)alloca(taglen+ 1); - - strcpy(fulltag, tag); - strcat(fulltag, "="); - - for(i=0;icomments;i++){ - if(!tagcompare(vc->user_comments[i], fulltag, taglen)){ - if(count == found) - /* We return a pointer to the data, not a copy */ - return vc->user_comments[i] + taglen; - else - found++; - } - } - return NULL; /* didn't find anything */ -} - -int vorbis_comment_query_count(vorbis_comment *vc, char *tag){ - int i,count=0; - int taglen = strlen(tag)+1; /* +1 for the = we append */ - char *fulltag = (char *)alloca(taglen+1); - strcpy(fulltag,tag); - strcat(fulltag, "="); - - for(i=0;icomments;i++){ - if(!tagcompare(vc->user_comments[i], fulltag, taglen)) - count++; - } - - return count; -} - -void vorbis_comment_clear(vorbis_comment *vc){ - if(vc){ - long i; - for(i=0;icomments;i++) - if(vc->user_comments[i])_ogg_free(vc->user_comments[i]); - if(vc->user_comments)_ogg_free(vc->user_comments); - if(vc->comment_lengths)_ogg_free(vc->comment_lengths); - if(vc->vendor)_ogg_free(vc->vendor); - } - memset(vc,0,sizeof(*vc)); -} - -/* blocksize 0 is guaranteed to be short, 1 is guarantted to be long. - They may be equal, but short will never ge greater than long */ -int vorbis_info_blocksize(vorbis_info *vi,int zo){ - codec_setup_info *ci = (codec_setup_info *)vi->codec_setup; - return ci ? ci->blocksizes[zo] : -1; -} - -/* used by synthesis, which has a full, alloced vi */ -void vorbis_info_init(vorbis_info *vi){ - memset(vi,0,sizeof(*vi)); - vi->codec_setup=(codec_setup_info *)_ogg_calloc(1,sizeof(codec_setup_info)); -} - -void vorbis_info_clear(vorbis_info *vi){ - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - int i; - - if(ci){ - - if(ci->mode_param)_ogg_free(ci->mode_param); - - if(ci->map_param){ - for(i=0;imaps;i++) /* unpack does the range checking */ - mapping_clear_info(ci->map_param+i); - _ogg_free(ci->map_param); - } - - if(ci->floor_param){ - for(i=0;ifloors;i++) /* unpack does the range checking */ - if(ci->floor_type[i]) - floor1_free_info(ci->floor_param[i]); - else - floor0_free_info(ci->floor_param[i]); - _ogg_free(ci->floor_param); - _ogg_free(ci->floor_type); - } - - if(ci->residue_param){ - for(i=0;iresidues;i++) /* unpack does the range checking */ - res_clear_info(ci->residue_param+i); - _ogg_free(ci->residue_param); - } - - if(ci->book_param){ - for(i=0;ibooks;i++) - vorbis_book_clear(ci->book_param+i); - _ogg_free(ci->book_param); - } - - _ogg_free(ci); - } - - memset(vi,0,sizeof(*vi)); -} - -/* Header packing/unpacking ********************************************/ - -int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - if(!ci)return(OV_EFAULT); - - vi->version=oggpack_read(opb,32); - if(vi->version!=0)return(OV_EVERSION); - - vi->channels=oggpack_read(opb,8); - vi->rate=oggpack_read(opb,32); - - vi->bitrate_upper=oggpack_read(opb,32); - vi->bitrate_nominal=oggpack_read(opb,32); - vi->bitrate_lower=oggpack_read(opb,32); - - ci->blocksizes[0]=1<blocksizes[1]=1<rate>=64000 || ci->blocksizes[1]>4096)goto err_out; -#else - if(vi->rate<64000 && ci->blocksizes[1]>4096)goto err_out; -#endif - - if(vi->rate<1)goto err_out; - if(vi->channels<1)goto err_out; - if(ci->blocksizes[0]<64)goto err_out; - if(ci->blocksizes[1]blocksizes[0])goto err_out; - if(ci->blocksizes[1]>8192)goto err_out; - - if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ - - return(0); - err_out: - vorbis_info_clear(vi); - return(OV_EBADHEADER); -} - -int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ - int i; - int vendorlen=oggpack_read(opb,32); - if(vendorlen<0)goto err_out; - vc->vendor=(char *)_ogg_calloc(vendorlen+1,1); - if(!vc->vendor)goto err_out; - _v_readstring(opb,vc->vendor,vendorlen); - vc->comments=oggpack_read(opb,32); - if(vc->comments<0)goto err_out; - vc->user_comments=(char **)_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments)); - if (!vc->user_comments){ - vc->comments=0; - goto err_out; - } - vc->comment_lengths=(int *)_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths)); - if (!vc->comment_lengths)goto err_out; - - for(i=0;icomments;i++){ - int len=oggpack_read(opb,32); - if(len<0)goto err_out; - vc->comment_lengths[i]=len; - vc->user_comments[i]=(char *)_ogg_calloc(len+1,1); - if(!vc->user_comments[i])goto err_out; - _v_readstring(opb,vc->user_comments[i],len); - } - if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ - - return(0); - err_out: - vorbis_comment_clear(vc); - return(OV_EBADHEADER); -} - -/* all of the real encoding details are here. The modes, books, - everything */ -int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; - int i; - if(!ci)return(OV_EFAULT); - - /* codebooks */ - ci->books=oggpack_read(opb,8)+1; - ci->book_param=(codebook *)_ogg_calloc(ci->books,sizeof(*ci->book_param)); - if(!ci->book_param){ - ci->books=0; - goto err_out; - } - for(i=0;ibooks;i++) - if(vorbis_book_unpack(opb,ci->book_param+i))goto err_out; - - /* time backend settings, not actually used */ - i=oggpack_read(opb,6); - for(;i>=0;i--) - if(oggpack_read(opb,16)!=0)goto err_out; - - /* floor backend settings */ - ci->floors=oggpack_read(opb,6)+1; - ci->floor_param=_ogg_calloc(ci->floors, sizeof(*ci->floor_param)); - ci->floor_type=_ogg_calloc(ci->floors, sizeof(*ci->floor_type)); - if(!ci->floor_param || !ci->floor_type){ - ci->floors=0; - goto err_out; - } - for(i=0;ifloors;i++){ - ci->floor_type[i]=(char)oggpack_read(opb,16); - if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out; - if(ci->floor_type[i]) - ci->floor_param[i]=floor1_info_unpack(vi,opb); - else - ci->floor_param[i]=floor0_info_unpack(vi,opb); - if(!ci->floor_param[i])goto err_out; - } - - /* residue backend settings */ - ci->residues=oggpack_read(opb,6)+1; - ci->residue_param=_ogg_calloc(ci->residues, sizeof(*ci->residue_param)); - if (!ci->residue_param){ - ci->residues=0; - goto err_out; - } - for(i=0;iresidues;i++) - if(res_unpack(ci->residue_param+i,vi,opb))goto err_out; - - /* map backend settings */ - ci->maps=oggpack_read(opb,6)+1; - ci->map_param=_ogg_calloc(ci->maps, sizeof(*ci->map_param)); - if (!ci->map_param){ - ci->maps=0; - goto err_out; - } - for(i=0;imaps;i++){ - if(oggpack_read(opb,16)!=0)goto err_out; - if(mapping_info_unpack(ci->map_param+i,vi,opb))goto err_out; - } - - /* mode settings */ - ci->modes=oggpack_read(opb,6)+1; - ci->mode_param= - (vorbis_info_mode *)_ogg_calloc(ci->modes, sizeof(*ci->mode_param)); - if (!ci->mode_param){ - ci->modes=0; - goto err_out; - } - for(i=0;imodes;i++){ - ci->mode_param[i].blockflag=(unsigned char)oggpack_read(opb,1); - if(oggpack_read(opb,16))goto err_out; - if(oggpack_read(opb,16))goto err_out; - ci->mode_param[i].mapping=(unsigned char)oggpack_read(opb,8); - if(ci->mode_param[i].mapping>=ci->maps)goto err_out; - } - - if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */ - - return(0); - err_out: - vorbis_info_clear(vi); - return(OV_EBADHEADER); -} - -/* The Vorbis header is in three packets; the initial small packet in - the first page that identifies basic parameters, a second packet - with bitstream comments and a third packet that holds the - codebook. */ - -int vorbis_dsp_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){ - oggpack_buffer opb; - - if(op){ - oggpack_readinit(&opb,op->packet); - - /* Which of the three types of header is this? */ - /* Also verify header-ness, vorbis */ - { - char buffer[6]; - int packtype=oggpack_read(&opb,8); - memset(buffer,0,6); - _v_readstring(&opb,buffer,6); - if(memcmp(buffer,"vorbis",6)){ - /* not a vorbis header */ - return(OV_ENOTVORBIS); - } - switch(packtype){ - case 0x01: /* least significant *bit* is read first */ - if(!op->b_o_s){ - /* Not the initial packet */ - return(OV_EBADHEADER); - } - if(vi->rate!=0){ - /* previously initialized info header */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_info(vi,&opb)); - - case 0x03: /* least significant *bit* is read first */ - if(vi->rate==0){ - /* um... we didn't get the initial header */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_comment(vc,&opb)); - - case 0x05: /* least significant *bit* is read first */ - if(vi->rate==0 || vc->vendor==NULL){ - /* um... we didn;t get the initial header or comments yet */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_books(vi,&opb)); - - default: - /* Not a valid vorbis header type */ - return(OV_EBADHEADER); - break; - } - } - } - return(OV_EBADHEADER); -} - diff --git a/external/android-specific/tremolo/Tremolo/vorbisfile.c b/external/android-specific/tremolo/Tremolo/vorbisfile.c deleted file mode 100644 index f896b43..0000000 --- a/external/android-specific/tremolo/Tremolo/vorbisfile.c +++ /dev/null @@ -1,1612 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.c,v 1.6.2.5 2003/11/20 06:16:17 xiphmont Exp $ - - ************************************************************************/ - -#include -#include -//#include -#include -#include - -#include "codec_internal.h" -#include "ivorbisfile.h" - -#include "os.h" -#include "misc.h" - -int gerrno; - -#define NOTOPEN 0 -#define PARTOPEN 1 -#define OPENED 2 -#define STREAMSET 3 /* serialno and link set, but not to current link */ -#define LINKSET 4 /* serialno and link set to current link */ -#define INITSET 5 - -/* A 'chained bitstream' is a Vorbis bitstream that contains more than - one logical bitstream arranged end to end (the only form of Ogg - multiplexing allowed in a Vorbis bitstream; grouping [parallel - multiplexing] is not allowed in Vorbis) */ - -/* A Vorbis file can be played beginning to end (streamed) without - worrying ahead of time about chaining (see decoder_example.c). If - we have the whole file, however, and want random access - (seeking/scrubbing) or desire to know the total length/time of a - file, we need to account for the possibility of chaining. */ - -/* We can handle things a number of ways; we can determine the entire - bitstream structure right off the bat, or find pieces on demand. - This example determines and caches structure for the entire - bitstream, but builds a virtual decoder on the fly when moving - between links in the chain. */ - -/* There are also different ways to implement seeking. Enough - information exists in an Ogg bitstream to seek to - sample-granularity positions in the output. Or, one can seek by - picking some portion of the stream roughly in the desired area if - we only want coarse navigation through the stream. */ - -/************************************************************************* - * Many, many internal helpers. The intention is not to be confusing; - * rampant duplication and monolithic function implementation would be - * harder to understand anyway. The high level functions are last. Begin - * grokking near the end of the file */ - - -/* read a little more data from the file/pipe into the ogg_sync framer */ -static long _get_data(OggVorbis_File *vf){ - gerrno=0; - if(vf->datasource){ - unsigned char *buffer=ogg_sync_bufferin(vf->oy,CHUNKSIZE); - long bytes=(vf->callbacks.read_func)(buffer,1,CHUNKSIZE,vf->datasource); - if(bytes>0)ogg_sync_wrote(vf->oy,bytes); - if(bytes==0 && gerrno)return -1; - return bytes; - }else - return 0; -} - -/* save a tiny smidge of verbosity to make the code more readable */ -static void _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ - if(vf->datasource){ - (vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET); - vf->offset=offset; - ogg_sync_reset(vf->oy); - }else{ - /* shouldn't happen unless someone writes a broken callback */ - return; - } -} - -/* The read/seek functions track absolute position within the stream */ - -/* from the head of the stream, get the next page. boundary specifies - if the function is allowed to fetch more data from the stream (and - how much) or only use internally buffered data. - - boundary: -1) unbounded search - 0) read no additional data; use cached only - n) search for a new page beginning for n bytes - - return: <0) did not find a page (OV_FALSE, OV_EOF, OV_EREAD) - n) found a page at absolute offset n - - produces a refcounted page */ - -static ogg_int64_t _get_next_page(OggVorbis_File *vf,ogg_page *og, - ogg_int64_t boundary){ - if(boundary>0)boundary+=vf->offset; - while(1){ - long more; - - if(boundary>0 && vf->offset>=boundary)return OV_FALSE; - more=ogg_sync_pageseek(vf->oy,og); - - if(more<0){ - /* skipped n bytes */ - vf->offset-=more; - }else{ - if(more==0){ - /* send more paramedics */ - if(!boundary)return OV_FALSE; - { - long ret=_get_data(vf); - if(ret==0)return OV_EOF; - if(ret<0)return OV_EREAD; - } - }else{ - /* got a page. Return the offset at the page beginning, - advance the internal offset past the page end */ - ogg_int64_t ret=vf->offset; - vf->offset+=more; - return ret; - - } - } - } -} - -/* find the latest page beginning before the current stream cursor - position. Much dirtier than the above as Ogg doesn't have any - backward search linkage. no 'readp' as it will certainly have to - read. */ -/* returns offset or OV_EREAD, OV_FAULT and produces a refcounted page */ - -static ogg_int64_t _get_prev_page(OggVorbis_File *vf,ogg_page *og){ - ogg_int64_t begin=vf->offset; - ogg_int64_t end=begin; - ogg_int64_t ret; - ogg_int64_t offset=-1; - - while(offset==-1){ - begin-=CHUNKSIZE; - if(begin<0) - begin=0; - _seek_helper(vf,begin); - while(vf->offsetoffset); - if(ret==OV_EREAD)return OV_EREAD; - if(ret<0){ - break; - }else{ - offset=ret; - } - } - } - - /* we have the offset. Actually snork and hold the page now */ - _seek_helper(vf,offset); - ret=_get_next_page(vf,og,CHUNKSIZE); - if(ret<0) - /* this shouldn't be possible */ - return OV_EFAULT; - - return offset; -} - -/* finds each bitstream link one at a time using a bisection search - (has to begin by knowing the offset of the lb's initial page). - Recurses for each link so it can alloc the link storage after - finding them all, then unroll and fill the cache at the same time */ -static int _bisect_forward_serialno(OggVorbis_File *vf, - ogg_int64_t begin, - ogg_int64_t searched, - ogg_int64_t end, - ogg_uint32_t currentno, - long m){ - ogg_int64_t endsearched=end; - ogg_int64_t next=end; - ogg_page og={0,0,0,0}; - ogg_int64_t ret; - - /* the below guards against garbage seperating the last and - first pages of two links. */ - while(searched=0)next=ret; - }else{ - searched=ret+og.header_len+og.body_len; - } - ogg_page_release(&og); - } - - _seek_helper(vf,next); - ret=_get_next_page(vf,&og,-1); - if(ret==OV_EREAD)return OV_EREAD; - - if(searched>=end || ret<0){ - ogg_page_release(&og); - vf->links=m+1; - vf->offsets=_ogg_malloc((vf->links+1)*sizeof(*vf->offsets)); - vf->serialnos=_ogg_malloc(vf->links*sizeof(*vf->serialnos)); - vf->offsets[m+1]=searched; - }else{ - ret=_bisect_forward_serialno(vf,next,vf->offset, - end,ogg_page_serialno(&og),m+1); - ogg_page_release(&og); - if(ret==OV_EREAD)return OV_EREAD; - } - - vf->offsets[m]=begin; - vf->serialnos[m]=currentno; - return 0; -} - -static int _decode_clear(OggVorbis_File *vf){ - if(vf->ready_state==INITSET){ - vorbis_dsp_destroy(vf->vd); - vf->vd=0; - vf->ready_state=STREAMSET; - } - - if(vf->ready_state>=STREAMSET){ - vorbis_info_clear(&vf->vi); - vorbis_comment_clear(&vf->vc); - vf->ready_state=OPENED; - } - return 0; -} - -/* uses the local ogg_stream storage in vf; this is important for - non-streaming input sources */ -/* consumes the page that's passed in (if any) */ -/* state is LINKSET upon successful return */ - -static int _fetch_headers(OggVorbis_File *vf, - vorbis_info *vi, - vorbis_comment *vc, - ogg_uint32_t *serialno, - ogg_page *og_ptr){ - ogg_page og={0,0,0,0}; - ogg_packet op={0,0,0,0,0,0}; - int i,ret; - - if(vf->ready_state>OPENED)_decode_clear(vf); - - if(!og_ptr){ - ogg_int64_t llret=_get_next_page(vf,&og,CHUNKSIZE); - if(llret==OV_EREAD)return OV_EREAD; - if(llret<0)return OV_ENOTVORBIS; - og_ptr=&og; - } - - ogg_stream_reset_serialno(vf->os,ogg_page_serialno(og_ptr)); - if(serialno)*serialno=vf->os->serialno; - - /* extract the initial header from the first page and verify that the - Ogg bitstream is in fact Vorbis data */ - - vorbis_info_init(vi); - vorbis_comment_init(vc); - - i=0; - while(i<3){ - ogg_stream_pagein(vf->os,og_ptr); - while(i<3){ - int result=ogg_stream_packetout(vf->os,&op); - if(result==0)break; - if(result==-1){ - ret=OV_EBADHEADER; - goto bail_header; - } - if((ret=vorbis_dsp_headerin(vi,vc,&op))){ - goto bail_header; - } - i++; - } - if(i<3) - if(_get_next_page(vf,og_ptr,CHUNKSIZE)<0){ - ret=OV_EBADHEADER; - goto bail_header; - } - } - - ogg_packet_release(&op); - ogg_page_release(&og); - vf->ready_state=LINKSET; - return 0; - - bail_header: - ogg_packet_release(&op); - ogg_page_release(&og); - vorbis_info_clear(vi); - vorbis_comment_clear(vc); - vf->ready_state=OPENED; - - return ret; -} - -/* we no longer preload all vorbis_info (and the associated - codec_setup) structs. Call this to seek and fetch the info from - the bitstream, if needed */ -static int _set_link_number(OggVorbis_File *vf,int link){ - if(link != vf->current_link) _decode_clear(vf); - if(vf->ready_stateoffsets[link]); - ogg_stream_reset_serialno(vf->os,vf->serialnos[link]); - vf->current_serialno=vf->serialnos[link]; - vf->current_link=link; - return _fetch_headers(vf,&vf->vi,&vf->vc,&vf->current_serialno,NULL); - } - return 0; -} - -static int _set_link_number_preserve_pos(OggVorbis_File *vf,int link){ - ogg_int64_t pos=vf->offset; - int ret=_set_link_number(vf,link); - if(ret)return ret; - _seek_helper(vf,pos); - if(posoffsets[link] || pos>=vf->offsets[link+1]) - vf->ready_state=STREAMSET; - return 0; -} - -/* last step of the OggVorbis_File initialization; get all the offset - positions. Only called by the seekable initialization (local - stream storage is hacked slightly; pay attention to how that's - done) */ - -/* this is void and does not propogate errors up because we want to be - able to open and use damaged bitstreams as well as we can. Just - watch out for missing information for links in the OggVorbis_File - struct */ -static void _prefetch_all_offsets(OggVorbis_File *vf, ogg_int64_t dataoffset){ - ogg_page og={0,0,0,0}; - int i; - ogg_int64_t ret; - - vf->dataoffsets=_ogg_malloc(vf->links*sizeof(*vf->dataoffsets)); - vf->pcmlengths=_ogg_malloc(vf->links*2*sizeof(*vf->pcmlengths)); - - for(i=0;ilinks;i++){ - if(i==0){ - /* we already grabbed the initial header earlier. Just set the offset */ - vf->dataoffsets[i]=dataoffset; - _seek_helper(vf,dataoffset); - - }else{ - - /* seek to the location of the initial header */ - - _seek_helper(vf,vf->offsets[i]); - if(_fetch_headers(vf,&vf->vi,&vf->vc,NULL,NULL)<0){ - vf->dataoffsets[i]=-1; - }else{ - vf->dataoffsets[i]=vf->offset; - } - } - - /* fetch beginning PCM offset */ - - if(vf->dataoffsets[i]!=-1){ - ogg_int64_t accumulated=0,pos; - long lastblock=-1; - int result; - - ogg_stream_reset_serialno(vf->os,vf->serialnos[i]); - - while(1){ - ogg_packet op={0,0,0,0,0,0}; - - ret=_get_next_page(vf,&og,-1); - if(ret<0) - /* this should not be possible unless the file is - truncated/mangled */ - break; - - if(ogg_page_serialno(&og)!=vf->serialnos[i]) - break; - - pos=ogg_page_granulepos(&og); - - /* count blocksizes of all frames in the page */ - ogg_stream_pagein(vf->os,&og); - while((result=ogg_stream_packetout(vf->os,&op))){ - if(result>0){ /* ignore holes */ - long thisblock=vorbis_packet_blocksize(&vf->vi,&op); - if(lastblock!=-1) - accumulated+=(lastblock+thisblock)>>2; - lastblock=thisblock; - } - } - ogg_packet_release(&op); - - if(pos!=-1){ - /* pcm offset of last packet on the first audio page */ - accumulated= pos-accumulated; - break; - } - } - - /* less than zero? This is a stream with samples trimmed off - the beginning, a normal occurrence; set the offset to zero */ - if(accumulated<0)accumulated=0; - - vf->pcmlengths[i*2]=accumulated; - } - - /* get the PCM length of this link. To do this, - get the last page of the stream */ - { - ogg_int64_t end=vf->offsets[i+1]; - _seek_helper(vf,end); - - while(1){ - ret=_get_prev_page(vf,&og); - if(ret<0){ - /* this should not be possible */ - vorbis_info_clear(&vf->vi); - vorbis_comment_clear(&vf->vc); - break; - } - if(ogg_page_granulepos(&og)!=-1){ - vf->pcmlengths[i*2+1]=ogg_page_granulepos(&og)-vf->pcmlengths[i*2]; - break; - } - vf->offset=ret; - } - } - } - ogg_page_release(&og); -} - -static int _make_decode_ready(OggVorbis_File *vf){ - int i; - switch(vf->ready_state){ - case OPENED: - case STREAMSET: - for(i=0;ilinks;i++) - if(vf->offsets[i+1]>=vf->offset)break; - if(i==vf->links)return -1; - i=_set_link_number_preserve_pos(vf,i); - if(i)return i; - /* fall through */ - case LINKSET: - vf->vd=vorbis_dsp_create(&vf->vi); - vf->ready_state=INITSET; - vf->bittrack=0; - vf->samptrack=0; - case INITSET: - return 0; - default: - return -1; - } - -} - -static int _open_seekable2(OggVorbis_File *vf){ - ogg_uint32_t serialno=vf->current_serialno; - ogg_uint32_t tempserialno; - ogg_int64_t dataoffset=vf->offset, end; - ogg_page og={0,0,0,0}; - - /* we're partially open and have a first link header state in - storage in vf */ - /* we can seek, so set out learning all about this file */ - (vf->callbacks.seek_func)(vf->datasource,0,SEEK_END); - vf->offset=vf->end=(vf->callbacks.tell_func)(vf->datasource); - - /* We get the offset for the last page of the physical bitstream. - Most OggVorbis files will contain a single logical bitstream */ - end=_get_prev_page(vf,&og); - if(end<0)return (int)end; - - /* more than one logical bitstream? */ - tempserialno=ogg_page_serialno(&og); - ogg_page_release(&og); - - if(tempserialno!=serialno){ - - /* Chained bitstream. Bisect-search each logical bitstream - section. Do so based on serial number only */ - if(_bisect_forward_serialno(vf,0,0,end+1,serialno,0)<0)return OV_EREAD; - - }else{ - - /* Only one logical bitstream */ - if(_bisect_forward_serialno(vf,0,end,end+1,serialno,0))return OV_EREAD; - - } - - /* the initial header memory is referenced by vf after; don't free it */ - _prefetch_all_offsets(vf,dataoffset); - return ov_raw_seek(vf,0); -} - -/* fetch and process a packet. Handles the case where we're at a - bitstream boundary and dumps the decoding machine. If the decoding - machine is unloaded, it loads it. It also keeps pcm_offset up to - date (seek and read both use this. seek uses a special hack with - readp). - - return: <0) error, OV_HOLE (lost packet) or OV_EOF - 0) need more data (only if readp==0) - 1) got a packet -*/ - -static int _fetch_and_process_packet(OggVorbis_File *vf, - int readp, - int spanp){ - ogg_page og={0,0,0,0}; - ogg_packet op={0,0,0,0,0,0}; - int ret=0; - - /* handle one packet. Try to fetch it from current stream state */ - /* extract packets from page */ - while(1){ - - /* process a packet if we can. If the machine isn't loaded, - neither is a page */ - if(vf->ready_state==INITSET){ - while(1) { - int result=ogg_stream_packetout(vf->os,&op); - ogg_int64_t granulepos; - - if(result<0){ - ret=OV_HOLE; /* hole in the data. */ - goto cleanup; - } - if(result>0){ - /* got a packet. process it */ - granulepos=op.granulepos; - if(!vorbis_dsp_synthesis(vf->vd,&op,1)){ /* lazy check for lazy - header handling. The - header packets aren't - audio, so if/when we - submit them, - vorbis_synthesis will - reject them */ - - vf->samptrack+=vorbis_dsp_pcmout(vf->vd,NULL,0); - vf->bittrack+=op.bytes*8; - - /* update the pcm offset. */ - if(granulepos!=-1 && !op.e_o_s){ - int link=(vf->seekable?vf->current_link:0); - int i,samples; - - /* this packet has a pcm_offset on it (the last packet - completed on a page carries the offset) After processing - (above), we know the pcm position of the *last* sample - ready to be returned. Find the offset of the *first* - - As an aside, this trick is inaccurate if we begin - reading anew right at the last page; the end-of-stream - granulepos declares the last frame in the stream, and the - last packet of the last page may be a partial frame. - So, we need a previous granulepos from an in-sequence page - to have a reference point. Thus the !op.e_o_s clause - above */ - - if(vf->seekable && link>0) - granulepos-=vf->pcmlengths[link*2]; - if(granulepos<0)granulepos=0; /* actually, this - shouldn't be possible - here unless the stream - is very broken */ - - samples=vorbis_dsp_pcmout(vf->vd,NULL,0); - - granulepos-=samples; - for(i=0;ipcmlengths[i*2+1]; - vf->pcm_offset=granulepos; - } - ret=1; - goto cleanup; - } - } - else - break; - } - } - - if(vf->ready_state>=OPENED){ - int ret; - if(!readp){ - ret=0; - goto cleanup; - } - ret=(int)_get_next_page(vf,&og,-1); - if(ret<0){ - ret=OV_EOF; /* eof. leave unitialized */ - goto cleanup; - } - - /* bitrate tracking; add the header's bytes here, the body bytes - are done by packet above */ - vf->bittrack+=og.header_len*8; - - /* has our decoding just traversed a bitstream boundary? */ - if(vf->ready_state==INITSET){ - if(vf->current_serialno!=ogg_page_serialno(&og)){ - if(!spanp){ - ret=OV_EOF; - goto cleanup; - } - - _decode_clear(vf); - } - } - } - - /* Do we need to load a new machine before submitting the page? */ - /* This is different in the seekable and non-seekable cases. - - In the seekable case, we already have all the header - information loaded and cached; we just initialize the machine - with it and continue on our merry way. - - In the non-seekable (streaming) case, we'll only be at a - boundary if we just left the previous logical bitstream and - we're now nominally at the header of the next bitstream - */ - - if(vf->ready_state!=INITSET){ - int link,ret; - - if(vf->ready_stateseekable){ - vf->current_serialno=ogg_page_serialno(&og); - - /* match the serialno to bitstream section. We use this rather than - offset positions to avoid problems near logical bitstream - boundaries */ - for(link=0;linklinks;link++) - if(vf->serialnos[link]==vf->current_serialno)break; - if(link==vf->links){ - ret=OV_EBADLINK; /* sign of a bogus stream. error out, - leave machine uninitialized */ - goto cleanup; - } - - vf->current_link=link; - ret=_fetch_headers(vf,&vf->vi,&vf->vc,&vf->current_serialno,&og); - if(ret) goto cleanup; - - }else{ - /* we're streaming */ - /* fetch the three header packets, build the info struct */ - - int ret=_fetch_headers(vf,&vf->vi,&vf->vc,&vf->current_serialno,&og); - if(ret) goto cleanup; - vf->current_link++; - } - } - - if(_make_decode_ready(vf)) return OV_EBADLINK; - } - ogg_stream_pagein(vf->os,&og); - } - cleanup: - ogg_packet_release(&op); - ogg_page_release(&og); - return ret; -} - -/* if, eg, 64 bit stdio is configured by default, this will build with - fseek64 */ -static int _fseek64_wrap(FILE *f,ogg_int64_t off,int whence){ - if(f==NULL)return -1; - return fseek(f,(long)off,whence); -} - -static int _ov_open1(void *f,OggVorbis_File *vf,char *initial, - long ibytes, ov_callbacks callbacks){ - int offsettest=(f?callbacks.seek_func(f,0,SEEK_CUR):-1); - int ret; - - memset(vf,0,sizeof(*vf)); - - /* Tremor assumes in multiple places that right shift of a signed - integer is an arithmetic shift */ - if( (-1>>1) != -1) return OV_EIMPL; - - vf->datasource=f; - vf->callbacks = callbacks; - - /* init the framing state */ - vf->oy=ogg_sync_create(); - - /* perhaps some data was previously read into a buffer for testing - against other stream types. Allow initialization from this - previously read data (as we may be reading from a non-seekable - stream) */ - if(initial){ - unsigned char *buffer=ogg_sync_bufferin(vf->oy,ibytes); - memcpy(buffer,initial,ibytes); - ogg_sync_wrote(vf->oy,ibytes); - } - - /* can we seek? Stevens suggests the seek test was portable */ - if(offsettest!=-1)vf->seekable=1; - - /* No seeking yet; Set up a 'single' (current) logical bitstream - entry for partial open */ - vf->links=1; - vf->os=ogg_stream_create(-1); /* fill in the serialno later */ - - /* Try to fetch the headers, maintaining all the storage */ - if((ret=_fetch_headers(vf,&vf->vi,&vf->vc,&vf->current_serialno,NULL))<0){ - vf->datasource=NULL; - ov_clear(vf); - }else if(vf->ready_state < PARTOPEN) - vf->ready_state=PARTOPEN; - return ret; -} - -static int _ov_open2(OggVorbis_File *vf){ - if(vf->ready_state < OPENED) - vf->ready_state=OPENED; - if(vf->seekable){ - int ret=_open_seekable2(vf); - if(ret){ - vf->datasource=NULL; - ov_clear(vf); - } - return ret; - } - return 0; -} - - -/* clear out the OggVorbis_File struct */ -int ov_clear(OggVorbis_File *vf){ - if(vf){ - vorbis_dsp_destroy(vf->vd); - vf->vd=0; - ogg_stream_destroy(vf->os); - vorbis_info_clear(&vf->vi); - vorbis_comment_clear(&vf->vc); - if(vf->dataoffsets)_ogg_free(vf->dataoffsets); - if(vf->pcmlengths)_ogg_free(vf->pcmlengths); - if(vf->serialnos)_ogg_free(vf->serialnos); - if(vf->offsets)_ogg_free(vf->offsets); - ogg_sync_destroy(vf->oy); - - if(vf->datasource)(vf->callbacks.close_func)(vf->datasource); - memset(vf,0,sizeof(*vf)); - } -#ifdef DEBUG_LEAKS - _VDBG_dump(); -#endif - return 0; -} - -/* inspects the OggVorbis file and finds/documents all the logical - bitstreams contained in it. Tries to be tolerant of logical - bitstream sections that are truncated/woogie. - - return: -1) error - 0) OK -*/ - -int ov_open_callbacks(void *f,OggVorbis_File *vf,char *initial,long ibytes, - ov_callbacks callbacks){ - int ret=_ov_open1(f,vf,initial,ibytes,callbacks); - if(ret)return ret; - return _ov_open2(vf); -} - -int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){ - ov_callbacks callbacks = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _fseek64_wrap, - (int (*)(void *)) fclose, - (long (*)(void *)) ftell - }; - - return ov_open_callbacks((void *)f, vf, initial, ibytes, callbacks); -} - -/* Only partially open the vorbis file; test for Vorbisness, and load - the headers for the first chain. Do not seek (although test for - seekability). Use ov_test_open to finish opening the file, else - ov_clear to close/free it. Same return codes as open. */ - -int ov_test_callbacks(void *f,OggVorbis_File *vf,char *initial,long ibytes, - ov_callbacks callbacks) -{ - return _ov_open1(f,vf,initial,ibytes,callbacks); -} - -int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){ - ov_callbacks callbacks = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _fseek64_wrap, - (int (*)(void *)) fclose, - (long (*)(void *)) ftell - }; - - return ov_test_callbacks((void *)f, vf, initial, ibytes, callbacks); -} - -int ov_test_open(OggVorbis_File *vf){ - if(vf->ready_state!=PARTOPEN)return OV_EINVAL; - return _ov_open2(vf); -} - -/* How many logical bitstreams in this physical bitstream? */ -long ov_streams(OggVorbis_File *vf){ - return vf->links; -} - -/* Is the FILE * associated with vf seekable? */ -long ov_seekable(OggVorbis_File *vf){ - return vf->seekable; -} - -/* returns the bitrate for a given logical bitstream or the entire - physical bitstream. If the file is open for random access, it will - find the *actual* average bitrate. If the file is streaming, it - returns the nominal bitrate (if set) else the average of the - upper/lower bounds (if set) else -1 (unset). - - If you want the actual bitrate field settings, get them from the - vorbis_info structs */ - -long ov_bitrate(OggVorbis_File *vf,int i){ - if(vf->ready_state=vf->links)return OV_EINVAL; - if(!vf->seekable && i!=0)return ov_bitrate(vf,0); - if(i<0){ - ogg_int64_t bits=0; - int i; - for(i=0;ilinks;i++) - bits+=(vf->offsets[i+1]-vf->dataoffsets[i])*8; - /* This once read: return(rint(bits/ov_time_total(vf,-1))); - * gcc 3.x on x86 miscompiled this at optimisation level 2 and above, - * so this is slightly transformed to make it work. - */ - return (long)(bits*1000/ov_time_total(vf,-1)); - }else{ - if(vf->seekable){ - /* return the actual bitrate */ - return (long)((vf->offsets[i+1]-vf->dataoffsets[i])*8000/ov_time_total(vf,i)); - }else{ - /* return nominal if set */ - if(vf->vi.bitrate_nominal>0){ - return vf->vi.bitrate_nominal; - }else{ - if(vf->vi.bitrate_upper>0){ - if(vf->vi.bitrate_lower>0){ - return (vf->vi.bitrate_upper+vf->vi.bitrate_lower)/2; - }else{ - return vf->vi.bitrate_upper; - } - } - return OV_FALSE; - } - } - } -} - -/* returns the actual bitrate since last call. returns -1 if no - additional data to offer since last call (or at beginning of stream), - EINVAL if stream is only partially open -*/ -long ov_bitrate_instant(OggVorbis_File *vf){ - long ret; - if(vf->ready_statesamptrack==0)return OV_FALSE; - ret=(long)(vf->bittrack/vf->samptrack*vf->vi.rate); - vf->bittrack=0; - vf->samptrack=0; - return ret; -} - -/* Guess */ -long ov_serialnumber(OggVorbis_File *vf,int i){ - if(i>=vf->links)return ov_serialnumber(vf,vf->links-1); - if(!vf->seekable && i>=0)return ov_serialnumber(vf,-1); - if(i<0){ - return vf->current_serialno; - }else{ - return vf->serialnos[i]; - } -} - -/* returns: total raw (compressed) length of content if i==-1 - raw (compressed) length of that logical bitstream for i==0 to n - OV_EINVAL if the stream is not seekable (we can't know the length) - or if stream is only partially open -*/ -ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i){ - if(vf->ready_stateseekable || i>=vf->links)return OV_EINVAL; - if(i<0){ - ogg_int64_t acc=0; - int i; - for(i=0;ilinks;i++) - acc+=ov_raw_total(vf,i); - return acc; - }else{ - return vf->offsets[i+1]-vf->offsets[i]; - } -} - -/* returns: total PCM length (samples) of content if i==-1 PCM length - (samples) of that logical bitstream for i==0 to n - OV_EINVAL if the stream is not seekable (we can't know the - length) or only partially open -*/ -ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i){ - if(vf->ready_stateseekable || i>=vf->links)return OV_EINVAL; - if(i<0){ - ogg_int64_t acc=0; - int i; - for(i=0;ilinks;i++) - acc+=ov_pcm_total(vf,i); - return acc; - }else{ - return vf->pcmlengths[i*2+1]; - } -} - -/* returns: total milliseconds of content if i==-1 - milliseconds in that logical bitstream for i==0 to n - OV_EINVAL if the stream is not seekable (we can't know the - length) or only partially open -*/ -ogg_int64_t ov_time_total(OggVorbis_File *vf,int i){ - if(vf->ready_stateseekable || i>=vf->links)return OV_EINVAL; - if(i<0){ - ogg_int64_t acc=0; - int i; - for(i=0;ilinks;i++) - acc+=ov_time_total(vf,i); - return acc; - }else{ - return ((ogg_int64_t)vf->pcmlengths[i*2+1])*1000/vf->vi.rate; - } -} - -/* seek to an offset relative to the *compressed* data. This also - scans packets to update the PCM cursor. It will cross a logical - bitstream boundary, but only if it can't get any packets out of the - tail of the bitstream we seek to (so no surprises). - - returns zero on success, nonzero on failure */ - -int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ - ogg_stream_state *work_os=NULL; - ogg_page og={0,0,0,0}; - ogg_packet op={0,0,0,0,0,0}; - - if(vf->ready_stateseekable) - return OV_ENOSEEK; /* don't dump machine if we can't seek */ - - if(pos<0 || pos>vf->end)return OV_EINVAL; - - /* don't yet clear out decoding machine (if it's initialized), in - the case we're in the same link. Restart the decode lapping, and - let _fetch_and_process_packet deal with a potential bitstream - boundary */ - vf->pcm_offset=-1; - ogg_stream_reset_serialno(vf->os, - vf->current_serialno); /* must set serialno */ - vorbis_dsp_restart(vf->vd); - - _seek_helper(vf,pos); - - /* we need to make sure the pcm_offset is set, but we don't want to - advance the raw cursor past good packets just to get to the first - with a granulepos. That's not equivalent behavior to beginning - decoding as immediately after the seek position as possible. - - So, a hack. We use two stream states; a local scratch state and - the shared vf->os stream state. We use the local state to - scan, and the shared state as a buffer for later decode. - - Unfortuantely, on the last page we still advance to last packet - because the granulepos on the last page is not necessarily on a - packet boundary, and we need to make sure the granpos is - correct. - */ - - { - int lastblock=0; - int accblock=0; - int thisblock; - int eosflag; - - work_os=ogg_stream_create(vf->current_serialno); /* get the memory ready */ - while(1){ - if(vf->ready_state>=STREAMSET){ - /* snarf/scan a packet if we can */ - int result=ogg_stream_packetout(work_os,&op); - - if(result>0){ - - if(vf->vi.codec_setup){ - thisblock=vorbis_packet_blocksize(&vf->vi,&op); - if(thisblock<0){ - ogg_stream_packetout(vf->os,NULL); - thisblock=0; - }else{ - - if(eosflag) - ogg_stream_packetout(vf->os,NULL); - else - if(lastblock)accblock+=(lastblock+thisblock)>>2; - } - - if(op.granulepos!=-1){ - int i,link=vf->current_link; - ogg_int64_t granulepos=op.granulepos-vf->pcmlengths[link*2]; - if(granulepos<0)granulepos=0; - - for(i=0;ipcmlengths[i*2+1]; - vf->pcm_offset=granulepos-accblock; - break; - } - lastblock=thisblock; - continue; - }else - ogg_stream_packetout(vf->os,NULL); - } - } - - if(!lastblock){ - if(_get_next_page(vf,&og,-1)<0){ - vf->pcm_offset=ov_pcm_total(vf,-1); - break; - } - }else{ - /* huh? Bogus stream with packets but no granulepos */ - vf->pcm_offset=-1; - break; - } - - /* did we just grab a page from other than current link? */ - if(vf->ready_state>=STREAMSET) - if(vf->current_serialno!=ogg_page_serialno(&og)){ - _decode_clear(vf); /* clear out stream state */ - ogg_stream_destroy(work_os); - } - - if(vf->ready_statecurrent_serialno=ogg_page_serialno(&og); - for(link=0;linklinks;link++) - if(vf->serialnos[link]==vf->current_serialno)break; - if(link==vf->links) - goto seek_error; /* sign of a bogus stream. error out, - leave machine uninitialized */ - - /* need to initialize machine to this link */ - { - int ret=_set_link_number_preserve_pos(vf,link); - if(ret) goto seek_error; - } - ogg_stream_reset_serialno(vf->os,vf->current_serialno); - ogg_stream_reset_serialno(work_os,vf->current_serialno); - - - } - - { - ogg_page dup; - ogg_page_dup(&dup,&og); - eosflag=ogg_page_eos(&og); - ogg_stream_pagein(vf->os,&og); - ogg_stream_pagein(work_os,&dup); - } - } - } - - ogg_packet_release(&op); - ogg_page_release(&og); - ogg_stream_destroy(work_os); - vf->bittrack=0; - vf->samptrack=0; - return 0; - - seek_error: - ogg_packet_release(&op); - ogg_page_release(&og); - - /* dump the machine so we're in a known state */ - vf->pcm_offset=-1; - ogg_stream_destroy(work_os); - _decode_clear(vf); - return OV_EBADLINK; -} - -/* Page granularity seek (faster than sample granularity because we - don't do the last bit of decode to find a specific sample). - - Seek to the last [granule marked] page preceeding the specified pos - location, such that decoding past the returned point will quickly - arrive at the requested position. */ -int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ - int link=-1; - ogg_int64_t result=0; - ogg_int64_t total=ov_pcm_total(vf,-1); - ogg_page og={0,0,0,0}; - ogg_packet op={0,0,0,0,0,0}; - - if(vf->ready_stateseekable)return OV_ENOSEEK; - if(pos<0 || pos>total)return OV_EINVAL; - - /* which bitstream section does this pcm offset occur in? */ - for(link=vf->links-1;link>=0;link--){ - total-=vf->pcmlengths[link*2+1]; - if(pos>=total)break; - } - - - if(link!=vf->current_link){ - int ret=_set_link_number(vf,link); - if(ret) goto seek_error; - }else{ - vorbis_dsp_restart(vf->vd); - } - - ogg_stream_reset_serialno(vf->os,vf->serialnos[link]); - - /* search within the logical bitstream for the page with the highest - pcm_pos preceeding (or equal to) pos. There is a danger here; - missing pages or incorrect frame number information in the - bitstream could make our task impossible. Account for that (it - would be an error condition) */ - - /* new search algorithm by HB (Nicholas Vinen) */ - { - ogg_int64_t end=vf->offsets[link+1]; - ogg_int64_t begin=vf->offsets[link]; - ogg_int64_t begintime = vf->pcmlengths[link*2]; - ogg_int64_t endtime = vf->pcmlengths[link*2+1]+begintime; - ogg_int64_t target=pos-total+begintime; - ogg_int64_t best=begin; - - while(beginoffset); - if(result==OV_EREAD) goto seek_error; - if(result<0){ - if(bisect<=begin+1) - end=begin; /* found it */ - else{ - if(bisect==0) goto seek_error; - bisect-=CHUNKSIZE; - if(bisect<=begin)bisect=begin+1; - _seek_helper(vf,bisect); - } - }else{ - ogg_int64_t granulepos=ogg_page_granulepos(&og); - if(granulepos==-1)continue; - if(granuleposoffset; /* raw offset of next page */ - begintime=granulepos; - - if(target-begintime>44100)break; - bisect=begin; /* *not* begin + 1 */ - }else{ - if(bisect<=begin+1) - end=begin; /* found it */ - else{ - if(end==vf->offset){ /* we're pretty close - we'd be stuck in */ - end=result; - bisect-=CHUNKSIZE; /* an endless loop otherwise. */ - if(bisect<=begin)bisect=begin+1; - _seek_helper(vf,bisect); - }else{ - end=result; - endtime=granulepos; - break; - } - } - } - } - } - } - - /* found our page. seek to it, update pcm offset. Easier case than - raw_seek, don't keep packets preceeding granulepos. */ - { - - /* seek */ - _seek_helper(vf,best); - vf->pcm_offset=-1; - - if(_get_next_page(vf,&og,-1)<0){ - ogg_page_release(&og); - return OV_EOF; /* shouldn't happen */ - } - - ogg_stream_pagein(vf->os,&og); - - /* pull out all but last packet; the one with granulepos */ - while(1){ - result=ogg_stream_packetpeek(vf->os,&op); - if(result==0){ - /* !!! the packet finishing this page originated on a - preceeding page. Keep fetching previous pages until we - get one with a granulepos or without the 'continued' flag - set. Then just use raw_seek for simplicity. */ - - _seek_helper(vf,best); - - while(1){ - result=_get_prev_page(vf,&og); - if(result<0) goto seek_error; - if(ogg_page_granulepos(&og)>-1 || - !ogg_page_continued(&og)){ - return ov_raw_seek(vf,result); - } - vf->offset=result; - } - } - if(result<0){ - result = OV_EBADPACKET; - goto seek_error; - } - if(op.granulepos!=-1){ - vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; - if(vf->pcm_offset<0)vf->pcm_offset=0; - vf->pcm_offset+=total; - break; - }else - result=ogg_stream_packetout(vf->os,NULL); - } - } - } - - /* verify result */ - if(vf->pcm_offset>pos || pos>ov_pcm_total(vf,-1)){ - result=OV_EFAULT; - goto seek_error; - } - vf->bittrack=0; - vf->samptrack=0; - - ogg_page_release(&og); - ogg_packet_release(&op); - return 0; - - seek_error: - - ogg_page_release(&og); - ogg_packet_release(&op); - - /* dump machine so we're in a known state */ - vf->pcm_offset=-1; - _decode_clear(vf); - return (int)result; -} - -/* seek to a sample offset relative to the decompressed pcm stream - returns zero on success, nonzero on failure */ - -int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos){ - ogg_packet op={0,0,0,0,0,0}; - ogg_page og={0,0,0,0}; - int thisblock,lastblock=0; - int ret=ov_pcm_seek_page(vf,pos); - if(ret<0)return ret; - if(_make_decode_ready(vf))return OV_EBADLINK; - - /* discard leading packets we don't need for the lapping of the - position we want; don't decode them */ - - while(1){ - - int ret=ogg_stream_packetpeek(vf->os,&op); - if(ret>0){ - thisblock=vorbis_packet_blocksize(&vf->vi,&op); - if(thisblock<0){ - ogg_stream_packetout(vf->os,NULL); - continue; /* non audio packet */ - } - if(lastblock)vf->pcm_offset+=(lastblock+thisblock)>>2; - - if(vf->pcm_offset+((thisblock+ - vorbis_info_blocksize(&vf->vi,1))>>2)>=pos)break; - - /* remove the packet from packet queue and track its granulepos */ - ogg_stream_packetout(vf->os,NULL); - vorbis_dsp_synthesis(vf->vd,&op,0); /* set up a vb with - only tracking, no - pcm_decode */ - - /* end of logical stream case is hard, especially with exact - length positioning. */ - - if(op.granulepos>-1){ - int i; - /* always believe the stream markers */ - vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; - if(vf->pcm_offset<0)vf->pcm_offset=0; - for(i=0;icurrent_link;i++) - vf->pcm_offset+=vf->pcmlengths[i*2+1]; - } - - lastblock=thisblock; - - }else{ - if(ret<0 && ret!=OV_HOLE)break; - - /* suck in a new page */ - if(_get_next_page(vf,&og,-1)<0)break; - if(vf->current_serialno!=ogg_page_serialno(&og))_decode_clear(vf); - - if(vf->ready_statecurrent_serialno=ogg_page_serialno(&og); - for(link=0;linklinks;link++) - if(vf->serialnos[link]==vf->current_serialno)break; - if(link==vf->links){ - ogg_page_release(&og); - ogg_packet_release(&op); - return OV_EBADLINK; - } - - - vf->current_link=link; - ret=_fetch_headers(vf,&vf->vi,&vf->vc,&vf->current_serialno,&og); - if(ret) return ret; - if(_make_decode_ready(vf))return OV_EBADLINK; - lastblock=0; - } - - ogg_stream_pagein(vf->os,&og); - } - } - - vf->bittrack=0; - vf->samptrack=0; - /* discard samples until we reach the desired position. Crossing a - logical bitstream boundary with abandon is OK. */ - while(vf->pcm_offsetpcm_offset; - long samples=vorbis_dsp_pcmout(vf->vd,NULL,0); - - if(samples>target)samples=(long)target; - vorbis_dsp_read(vf->vd,samples); - vf->pcm_offset+=samples; - - if(samplespcm_offset=ov_pcm_total(vf,-1); /* eof */ - } - - ogg_page_release(&og); - ogg_packet_release(&op); - return 0; -} - -/* seek to a playback time relative to the decompressed pcm stream - returns zero on success, nonzero on failure */ -int ov_time_seek(OggVorbis_File *vf,ogg_int64_t milliseconds){ - /* translate time to PCM position and call ov_pcm_seek */ - - int link=-1; - ogg_int64_t pcm_total=ov_pcm_total(vf,-1); - ogg_int64_t time_total=ov_time_total(vf,-1); - - if(vf->ready_stateseekable)return OV_ENOSEEK; - if(milliseconds<0 || milliseconds>time_total)return OV_EINVAL; - - /* which bitstream section does this time offset occur in? */ - for(link=vf->links-1;link>=0;link--){ - pcm_total-=vf->pcmlengths[link*2+1]; - time_total-=ov_time_total(vf,link); - if(milliseconds>=time_total)break; - } - - /* enough information to convert time offset to pcm offset */ - { - int ret=_set_link_number(vf,link); - if(ret)return ret; - return - ov_pcm_seek(vf,pcm_total+(milliseconds-time_total)* - vf->vi.rate/1000); - } -} - -/* page-granularity version of ov_time_seek - returns zero on success, nonzero on failure */ -int ov_time_seek_page(OggVorbis_File *vf,ogg_int64_t milliseconds){ - /* translate time to PCM position and call ov_pcm_seek */ - - int link=-1; - ogg_int64_t pcm_total=ov_pcm_total(vf,-1); - ogg_int64_t time_total=ov_time_total(vf,-1); - - if(vf->ready_stateseekable)return OV_ENOSEEK; - if(milliseconds<0 || milliseconds>time_total)return OV_EINVAL; - - /* which bitstream section does this time offset occur in? */ - for(link=vf->links-1;link>=0;link--){ - pcm_total-=vf->pcmlengths[link*2+1]; - time_total-=ov_time_total(vf,link); - if(milliseconds>=time_total)break; - } - - /* enough information to convert time offset to pcm offset */ - { - int ret=_set_link_number(vf,link); - if(ret)return ret; - return - ov_pcm_seek_page(vf,pcm_total+(milliseconds-time_total)* - vf->vi.rate/1000); - } -} - -/* tell the current stream offset cursor. Note that seek followed by - tell will likely not give the set offset due to caching */ -ogg_int64_t ov_raw_tell(OggVorbis_File *vf){ - if(vf->ready_stateoffset; -} - -/* return PCM offset (sample) of next PCM sample to be read */ -ogg_int64_t ov_pcm_tell(OggVorbis_File *vf){ - if(vf->ready_statepcm_offset; -} - -/* return time offset (milliseconds) of next PCM sample to be read */ -ogg_int64_t ov_time_tell(OggVorbis_File *vf){ - int link=0; - ogg_int64_t pcm_total=0; - ogg_int64_t time_total=0; - - if(vf->ready_stateseekable){ - pcm_total=ov_pcm_total(vf,-1); - time_total=ov_time_total(vf,-1); - - /* which bitstream section does this time offset occur in? */ - for(link=vf->links-1;link>=0;link--){ - pcm_total-=vf->pcmlengths[link*2+1]; - time_total-=ov_time_total(vf,link); - if(vf->pcm_offset>=pcm_total)break; - } - } - - return time_total+(1000*vf->pcm_offset-pcm_total)/vf->vi.rate; -} - -/* link: -1) return the vorbis_info struct for the bitstream section - currently being decoded - 0-n) to request information for a specific bitstream section - - In the case of a non-seekable bitstream, any call returns the - current bitstream. NULL in the case that the machine is not - initialized */ - -vorbis_info *ov_info(OggVorbis_File *vf,int link){ - if(vf->seekable){ - if(link>=vf->links)return NULL; - if(link>=0){ - int ret=_set_link_number_preserve_pos(vf,link); - if(ret)return NULL; - } - } - return &vf->vi; -} - -/* grr, strong typing, grr, no templates/inheritence, grr */ -vorbis_comment *ov_comment(OggVorbis_File *vf,int link){ - if(vf->seekable){ - if(link>=vf->links)return NULL; - if(link>=0){ - int ret=_set_link_number_preserve_pos(vf,link); - if(ret)return NULL; - } - } - return &vf->vc; -} - -/* up to this point, everything could more or less hide the multiple - logical bitstream nature of chaining from the toplevel application - if the toplevel application didn't particularly care. However, at - the point that we actually read audio back, the multiple-section - nature must surface: Multiple bitstream sections do not necessarily - have to have the same number of channels or sampling rate. - - ov_read returns the sequential logical bitstream number currently - being decoded along with the PCM data in order that the toplevel - application can take action on channel/sample rate changes. This - number will be incremented even for streamed (non-seekable) streams - (for seekable streams, it represents the actual logical bitstream - index within the physical bitstream. Note that the accessor - functions above are aware of this dichotomy). - - input values: buffer) a buffer to hold packed PCM data for return - length) the byte length requested to be placed into buffer - - return values: <0) error/hole in data (OV_HOLE), partial open (OV_EINVAL) - 0) EOF - n) number of bytes of PCM actually returned. The - below works on a packet-by-packet basis, so the - return length is not related to the 'length' passed - in, just guaranteed to fit. - - *section) set to the logical bitstream number */ - -long ov_read(OggVorbis_File *vf,void *buffer,int bytes_req,int *bitstream){ - - long samples; - long channels; - - if(vf->ready_stateready_state==INITSET){ - channels=vf->vi.channels; - samples=vorbis_dsp_pcmout(vf->vd,buffer,(bytes_req>>1)/channels); - if(samples){ - if(samples>0){ - vorbis_dsp_read(vf->vd,samples); - vf->pcm_offset+=samples; - if(bitstream)*bitstream=vf->current_link; - return samples*2*channels; - } - return samples; - } - } - - /* suck in another packet */ - { - int ret=_fetch_and_process_packet(vf,1,1); - if(ret==OV_EOF) - return 0; - if(ret<=0) - return ret; - } - - } -} diff --git a/external/android-specific/tremolo/Tremolo/window_lookup.h b/external/android-specific/tremolo/Tremolo/window_lookup.h deleted file mode 100644 index db3593d..0000000 --- a/external/android-specific/tremolo/Tremolo/window_lookup.h +++ /dev/null @@ -1,2107 +0,0 @@ -/************************************************************************ - * Copyright (C) 2002-2009, Xiph.org Foundation - * Copyright (C) 2010, Robin Watts for Pinknoise Productions Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the names of the Xiph.org Foundation nor Pinknoise - * Productions Ltd nor the names of its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ************************************************************************ - - function: window lookup tables - - ************************************************************************/ - - -#include "os_types.h" - -static LOOKUP_T vwin64[32] = { - X(0x001f0003), X(0x01168c98), X(0x030333c8), X(0x05dfe3a4), - X(0x09a49562), X(0x0e45df18), X(0x13b47ef2), X(0x19dcf676), - X(0x20a74d83), X(0x27f7137c), X(0x2fabb05a), X(0x37a1105a), - X(0x3fb0ab28), X(0x47b2dcd1), X(0x4f807bc6), X(0x56f48e70), - X(0x5dedfc79), X(0x64511653), X(0x6a08cfff), X(0x6f079328), - X(0x734796f4), X(0x76cab7f2), X(0x7999d6e8), X(0x7bc3cf9f), - X(0x7d5c20c1), X(0x7e7961df), X(0x7f33a567), X(0x7fa2e1d0), - X(0x7fdd78a5), X(0x7ff6ec6d), X(0x7ffed0e9), X(0x7ffffc3f), -}; - -static LOOKUP_T vwin128[64] = { - X(0x0007c04d), X(0x0045bb89), X(0x00c18b87), X(0x017ae294), - X(0x02714a4e), X(0x03a4217a), X(0x05129952), X(0x06bbb24f), - X(0x089e38a1), X(0x0ab8c073), X(0x0d09a228), X(0x0f8ef6bd), - X(0x12469488), X(0x152e0c7a), X(0x1842a81c), X(0x1b81686d), - X(0x1ee705d9), X(0x226ff15d), X(0x26185705), X(0x29dc21cc), - X(0x2db700fe), X(0x31a46f08), X(0x359fb9c1), X(0x39a40c0c), - X(0x3dac78b6), X(0x41b40674), X(0x45b5bcb0), X(0x49acb109), - X(0x4d94152b), X(0x516744bd), X(0x5521d320), X(0x58bf98a5), - X(0x5c3cbef4), X(0x5f95cc5d), X(0x62c7add7), X(0x65cfbf64), - X(0x68abd2ba), X(0x6b5a3405), X(0x6dd9acab), X(0x7029840d), - X(0x72497e38), X(0x7439d8ac), X(0x75fb4532), X(0x778ee30a), - X(0x78f6367e), X(0x7a331f1a), X(0x7b47cccd), X(0x7c36b416), - X(0x7d028192), X(0x7dae0d18), X(0x7e3c4caa), X(0x7eb04763), - X(0x7f0d08a7), X(0x7f5593b7), X(0x7f8cd7d5), X(0x7fb5a513), - X(0x7fd2a1fc), X(0x7fe64212), X(0x7ff2bd4c), X(0x7ffa0890), - X(0x7ffdcf39), X(0x7fff6dac), X(0x7fffed01), X(0x7fffffc4), -}; - -static LOOKUP_T vwin256[128] = { - X(0x0001f018), X(0x00117066), X(0x00306e9e), X(0x005ee5f1), - X(0x009ccf26), X(0x00ea208b), X(0x0146cdea), X(0x01b2c87f), - X(0x022dfedf), X(0x02b85ced), X(0x0351cbbd), X(0x03fa317f), - X(0x04b17167), X(0x05776b90), X(0x064bfcdc), X(0x072efedd), - X(0x082047b4), X(0x091fa9f1), X(0x0a2cf477), X(0x0b47f25d), - X(0x0c706ad2), X(0x0da620ff), X(0x0ee8d3ef), X(0x10383e75), - X(0x11941716), X(0x12fc0ff6), X(0x146fd6c8), X(0x15ef14c2), - X(0x17796e8e), X(0x190e844f), X(0x1aadf196), X(0x1c574d6e), - X(0x1e0a2a62), X(0x1fc61688), X(0x218a9b9c), X(0x23573f12), - X(0x252b823d), X(0x2706e269), X(0x28e8d913), X(0x2ad0dc0e), - X(0x2cbe5dc1), X(0x2eb0cd60), X(0x30a79733), X(0x32a224d5), - X(0x349fdd8b), X(0x36a02690), X(0x38a2636f), X(0x3aa5f65e), - X(0x3caa409e), X(0x3eaea2df), X(0x40b27da6), X(0x42b531b8), - X(0x44b62086), X(0x46b4ac99), X(0x48b03a05), X(0x4aa82ed5), - X(0x4c9bf37d), X(0x4e8af349), X(0x50749ccb), X(0x52586246), - X(0x5435ba1c), X(0x560c1f31), X(0x57db1152), X(0x59a21591), - X(0x5b60b6a3), X(0x5d168535), X(0x5ec31839), X(0x60660d36), - X(0x61ff0886), X(0x638db595), X(0x6511c717), X(0x668af734), - X(0x67f907b0), X(0x695bc207), X(0x6ab2f787), X(0x6bfe815a), - X(0x6d3e4090), X(0x6e721e16), X(0x6f9a0ab5), X(0x70b5fef8), - X(0x71c5fb16), X(0x72ca06cd), X(0x73c2313d), X(0x74ae90b2), - X(0x758f4275), X(0x76646a85), X(0x772e335c), X(0x77eccda0), - X(0x78a06fd7), X(0x79495613), X(0x79e7c19c), X(0x7a7bf894), - X(0x7b064596), X(0x7b86f757), X(0x7bfe6044), X(0x7c6cd615), - X(0x7cd2b16e), X(0x7d304d71), X(0x7d860756), X(0x7dd43e06), - X(0x7e1b51ad), X(0x7e5ba355), X(0x7e95947e), X(0x7ec986bb), - X(0x7ef7db4a), X(0x7f20f2b9), X(0x7f452c7f), X(0x7f64e6a7), - X(0x7f807d71), X(0x7f984aff), X(0x7faca700), X(0x7fbde662), - X(0x7fcc5b04), X(0x7fd85372), X(0x7fe21a99), X(0x7fe9f791), - X(0x7ff02d58), X(0x7ff4fa9e), X(0x7ff89990), X(0x7ffb3faa), - X(0x7ffd1d8b), X(0x7ffe5ecc), X(0x7fff29e0), X(0x7fff9ff3), - X(0x7fffdcd2), X(0x7ffff6d6), X(0x7ffffed0), X(0x7ffffffc), -}; - -static LOOKUP_T vwin512[256] = { - X(0x00007c06), X(0x00045c32), X(0x000c1c62), X(0x0017bc4c), - X(0x00273b7a), X(0x003a9955), X(0x0051d51c), X(0x006cede7), - X(0x008be2a9), X(0x00aeb22a), X(0x00d55b0d), X(0x00ffdbcc), - X(0x012e32b6), X(0x01605df5), X(0x01965b85), X(0x01d02939), - X(0x020dc4ba), X(0x024f2b83), X(0x02945ae6), X(0x02dd5004), - X(0x032a07d3), X(0x037a7f19), X(0x03ceb26e), X(0x04269e37), - X(0x04823eab), X(0x04e18fcc), X(0x05448d6d), X(0x05ab3329), - X(0x06157c68), X(0x0683645e), X(0x06f4e607), X(0x0769fc25), - X(0x07e2a146), X(0x085ecfbc), X(0x08de819f), X(0x0961b0cc), - X(0x09e856e3), X(0x0a726d46), X(0x0affed1d), X(0x0b90cf4c), - X(0x0c250c79), X(0x0cbc9d0b), X(0x0d577926), X(0x0df598aa), - X(0x0e96f337), X(0x0f3b8026), X(0x0fe3368f), X(0x108e0d42), - X(0x113bfaca), X(0x11ecf56b), X(0x12a0f324), X(0x1357e9ac), - X(0x1411ce70), X(0x14ce9698), X(0x158e3702), X(0x1650a444), - X(0x1715d2aa), X(0x17ddb638), X(0x18a842aa), X(0x19756b72), - X(0x1a4523b9), X(0x1b175e62), X(0x1bec0e04), X(0x1cc324f0), - X(0x1d9c9532), X(0x1e78508a), X(0x1f564876), X(0x20366e2e), - X(0x2118b2a2), X(0x21fd0681), X(0x22e35a37), X(0x23cb9dee), - X(0x24b5c18e), X(0x25a1b4c0), X(0x268f66f1), X(0x277ec74e), - X(0x286fc4cc), X(0x29624e23), X(0x2a5651d7), X(0x2b4bbe34), - X(0x2c428150), X(0x2d3a8913), X(0x2e33c332), X(0x2f2e1d35), - X(0x30298478), X(0x3125e62d), X(0x32232f61), X(0x33214cfc), - X(0x34202bc2), X(0x351fb85a), X(0x361fdf4f), X(0x37208d10), - X(0x3821adf7), X(0x39232e49), X(0x3a24fa3c), X(0x3b26fdf6), - X(0x3c292593), X(0x3d2b5d29), X(0x3e2d90c8), X(0x3f2fac7f), - X(0x40319c5f), X(0x41334c81), X(0x4234a905), X(0x43359e16), - X(0x443617f3), X(0x453602eb), X(0x46354b65), X(0x4733dde1), - X(0x4831a6ff), X(0x492e937f), X(0x4a2a9045), X(0x4b258a5f), - X(0x4c1f6f06), X(0x4d182ba2), X(0x4e0fadce), X(0x4f05e35b), - X(0x4ffaba53), X(0x50ee20fd), X(0x51e005e1), X(0x52d057ca), - X(0x53bf05ca), X(0x54abff3b), X(0x559733c7), X(0x56809365), - X(0x57680e62), X(0x584d955d), X(0x59311952), X(0x5a128b96), - X(0x5af1dddd), X(0x5bcf023a), X(0x5ca9eb27), X(0x5d828b81), - X(0x5e58d68d), X(0x5f2cbffc), X(0x5ffe3be9), X(0x60cd3edf), - X(0x6199bdda), X(0x6263ae45), X(0x632b0602), X(0x63efbb66), - X(0x64b1c53f), X(0x65711ad0), X(0x662db3d7), X(0x66e7888d), - X(0x679e91a5), X(0x6852c84e), X(0x69042635), X(0x69b2a582), - X(0x6a5e40dd), X(0x6b06f36c), X(0x6bacb8d2), X(0x6c4f8d30), - X(0x6cef6d26), X(0x6d8c55d4), X(0x6e2644d4), X(0x6ebd3840), - X(0x6f512ead), X(0x6fe2272e), X(0x7070214f), X(0x70fb1d17), - X(0x71831b06), X(0x72081c16), X(0x728a21b5), X(0x73092dc8), - X(0x738542a6), X(0x73fe631b), X(0x74749261), X(0x74e7d421), - X(0x75582c72), X(0x75c59fd5), X(0x76303333), X(0x7697ebdd), - X(0x76fccf85), X(0x775ee443), X(0x77be308a), X(0x781abb2e), - X(0x78748b59), X(0x78cba88e), X(0x79201aa7), X(0x7971e9cd), - X(0x79c11e79), X(0x7a0dc170), X(0x7a57dbc2), X(0x7a9f76c1), - X(0x7ae49c07), X(0x7b27556b), X(0x7b67ad02), X(0x7ba5ad1b), - X(0x7be1603a), X(0x7c1ad118), X(0x7c520a9e), X(0x7c8717e1), - X(0x7cba0421), X(0x7ceadac3), X(0x7d19a74f), X(0x7d46756e), - X(0x7d7150e5), X(0x7d9a4592), X(0x7dc15f69), X(0x7de6aa71), - X(0x7e0a32c0), X(0x7e2c0479), X(0x7e4c2bc7), X(0x7e6ab4db), - X(0x7e87abe9), X(0x7ea31d24), X(0x7ebd14be), X(0x7ed59edd), - X(0x7eecc7a3), X(0x7f029b21), X(0x7f17255a), X(0x7f2a723f), - X(0x7f3c8daa), X(0x7f4d835d), X(0x7f5d5f00), X(0x7f6c2c1b), - X(0x7f79f617), X(0x7f86c83a), X(0x7f92ada2), X(0x7f9db146), - X(0x7fa7ddf3), X(0x7fb13e46), X(0x7fb9dcb0), X(0x7fc1c36c), - X(0x7fc8fc83), X(0x7fcf91c7), X(0x7fd58cd2), X(0x7fdaf702), - X(0x7fdfd979), X(0x7fe43d1c), X(0x7fe82a8b), X(0x7febaa29), - X(0x7feec412), X(0x7ff1801c), X(0x7ff3e5d6), X(0x7ff5fc86), - X(0x7ff7cb29), X(0x7ff9586f), X(0x7ffaaaba), X(0x7ffbc81e), - X(0x7ffcb660), X(0x7ffd7af3), X(0x7ffe1afa), X(0x7ffe9b42), - X(0x7fff0047), X(0x7fff4e2f), X(0x7fff88c9), X(0x7fffb390), - X(0x7fffd1a6), X(0x7fffe5d7), X(0x7ffff296), X(0x7ffff9fd), - X(0x7ffffdcd), X(0x7fffff6d), X(0x7fffffed), X(0x7fffffff), -}; - -static LOOKUP_T vwin1024[512] = { - X(0x00001f02), X(0x0001170e), X(0x00030724), X(0x0005ef40), - X(0x0009cf59), X(0x000ea767), X(0x0014775e), X(0x001b3f2e), - X(0x0022fec8), X(0x002bb618), X(0x00356508), X(0x00400b81), - X(0x004ba968), X(0x00583ea0), X(0x0065cb0a), X(0x00744e84), - X(0x0083c8ea), X(0x00943a14), X(0x00a5a1da), X(0x00b80010), - X(0x00cb5488), X(0x00df9f10), X(0x00f4df76), X(0x010b1584), - X(0x01224101), X(0x013a61b2), X(0x01537759), X(0x016d81b6), - X(0x01888087), X(0x01a47385), X(0x01c15a69), X(0x01df34e6), - X(0x01fe02b1), X(0x021dc377), X(0x023e76e7), X(0x02601ca9), - X(0x0282b466), X(0x02a63dc1), X(0x02cab85d), X(0x02f023d6), - X(0x03167fcb), X(0x033dcbd3), X(0x03660783), X(0x038f3270), - X(0x03b94c29), X(0x03e4543a), X(0x04104a2e), X(0x043d2d8b), - X(0x046afdd5), X(0x0499ba8c), X(0x04c9632d), X(0x04f9f734), - X(0x052b7615), X(0x055ddf46), X(0x05913237), X(0x05c56e53), - X(0x05fa9306), X(0x06309fb6), X(0x066793c5), X(0x069f6e93), - X(0x06d82f7c), X(0x0711d5d9), X(0x074c60fe), X(0x0787d03d), - X(0x07c422e4), X(0x0801583e), X(0x083f6f91), X(0x087e681f), - X(0x08be4129), X(0x08fef9ea), X(0x0940919a), X(0x0983076d), - X(0x09c65a92), X(0x0a0a8a38), X(0x0a4f9585), X(0x0a957b9f), - X(0x0adc3ba7), X(0x0b23d4b9), X(0x0b6c45ee), X(0x0bb58e5a), - X(0x0bffad0f), X(0x0c4aa11a), X(0x0c966982), X(0x0ce3054d), - X(0x0d30737b), X(0x0d7eb308), X(0x0dcdc2eb), X(0x0e1da21a), - X(0x0e6e4f83), X(0x0ebfca11), X(0x0f1210ad), X(0x0f652238), - X(0x0fb8fd91), X(0x100da192), X(0x10630d11), X(0x10b93ee0), - X(0x111035cb), X(0x1167f09a), X(0x11c06e13), X(0x1219acf5), - X(0x1273abfb), X(0x12ce69db), X(0x1329e54a), X(0x13861cf3), - X(0x13e30f80), X(0x1440bb97), X(0x149f1fd8), X(0x14fe3ade), - X(0x155e0b40), X(0x15be8f92), X(0x161fc662), X(0x1681ae38), - X(0x16e4459b), X(0x17478b0b), X(0x17ab7d03), X(0x181019fb), - X(0x18756067), X(0x18db4eb3), X(0x1941e34a), X(0x19a91c92), - X(0x1a10f8ea), X(0x1a7976af), X(0x1ae29439), X(0x1b4c4fda), - X(0x1bb6a7e2), X(0x1c219a9a), X(0x1c8d2649), X(0x1cf9492e), - X(0x1d660188), X(0x1dd34d8e), X(0x1e412b74), X(0x1eaf996a), - X(0x1f1e959b), X(0x1f8e1e2f), X(0x1ffe3146), X(0x206ecd01), - X(0x20dfef78), X(0x215196c2), X(0x21c3c0f0), X(0x22366c10), - X(0x22a9962a), X(0x231d3d45), X(0x23915f60), X(0x2405fa7a), - X(0x247b0c8c), X(0x24f09389), X(0x25668d65), X(0x25dcf80c), - X(0x2653d167), X(0x26cb175e), X(0x2742c7d0), X(0x27bae09e), - X(0x28335fa2), X(0x28ac42b3), X(0x292587a5), X(0x299f2c48), - X(0x2a192e69), X(0x2a938bd1), X(0x2b0e4247), X(0x2b894f8d), - X(0x2c04b164), X(0x2c806588), X(0x2cfc69b2), X(0x2d78bb9a), - X(0x2df558f4), X(0x2e723f6f), X(0x2eef6cbb), X(0x2f6cde83), - X(0x2fea9270), X(0x30688627), X(0x30e6b74e), X(0x31652385), - X(0x31e3c86b), X(0x3262a39e), X(0x32e1b2b8), X(0x3360f352), - X(0x33e06303), X(0x345fff5e), X(0x34dfc5f8), X(0x355fb462), - X(0x35dfc82a), X(0x365ffee0), X(0x36e0560f), X(0x3760cb43), - X(0x37e15c05), X(0x386205df), X(0x38e2c657), X(0x39639af5), - X(0x39e4813e), X(0x3a6576b6), X(0x3ae678e3), X(0x3b678547), - X(0x3be89965), X(0x3c69b2c1), X(0x3ceacedc), X(0x3d6beb37), - X(0x3ded0557), X(0x3e6e1abb), X(0x3eef28e6), X(0x3f702d5a), - X(0x3ff1259a), X(0x40720f29), X(0x40f2e789), X(0x4173ac3f), - X(0x41f45ad0), X(0x4274f0c2), X(0x42f56b9a), X(0x4375c8e0), - X(0x43f6061d), X(0x447620db), X(0x44f616a5), X(0x4575e509), - X(0x45f58994), X(0x467501d6), X(0x46f44b62), X(0x477363cb), - X(0x47f248a6), X(0x4870f78e), X(0x48ef6e1a), X(0x496da9e8), - X(0x49eba897), X(0x4a6967c8), X(0x4ae6e521), X(0x4b641e47), - X(0x4be110e5), X(0x4c5dbaa7), X(0x4cda193f), X(0x4d562a5f), - X(0x4dd1ebbd), X(0x4e4d5b15), X(0x4ec87623), X(0x4f433aa9), - X(0x4fbda66c), X(0x5037b734), X(0x50b16acf), X(0x512abf0e), - X(0x51a3b1c5), X(0x521c40ce), X(0x52946a06), X(0x530c2b50), - X(0x53838292), X(0x53fa6db8), X(0x5470eab3), X(0x54e6f776), - X(0x555c91fc), X(0x55d1b844), X(0x56466851), X(0x56baa02f), - X(0x572e5deb), X(0x57a19f98), X(0x58146352), X(0x5886a737), - X(0x58f8696d), X(0x5969a81c), X(0x59da6177), X(0x5a4a93b4), - X(0x5aba3d0f), X(0x5b295bcb), X(0x5b97ee30), X(0x5c05f28d), - X(0x5c736738), X(0x5ce04a8d), X(0x5d4c9aed), X(0x5db856c1), - X(0x5e237c78), X(0x5e8e0a89), X(0x5ef7ff6f), X(0x5f6159b0), - X(0x5fca17d4), X(0x6032386e), X(0x6099ba15), X(0x61009b69), - X(0x6166db11), X(0x61cc77b9), X(0x62317017), X(0x6295c2e7), - X(0x62f96eec), X(0x635c72f1), X(0x63becdc8), X(0x64207e4b), - X(0x6481835a), X(0x64e1dbde), X(0x654186c8), X(0x65a0830e), - X(0x65fecfb1), X(0x665c6bb7), X(0x66b95630), X(0x67158e30), - X(0x677112d7), X(0x67cbe34b), X(0x6825feb9), X(0x687f6456), - X(0x68d81361), X(0x69300b1e), X(0x69874ada), X(0x69ddd1ea), - X(0x6a339fab), X(0x6a88b382), X(0x6add0cdb), X(0x6b30ab2a), - X(0x6b838dec), X(0x6bd5b4a6), X(0x6c271ee2), X(0x6c77cc36), - X(0x6cc7bc3d), X(0x6d16ee9b), X(0x6d6562fb), X(0x6db31911), - X(0x6e001099), X(0x6e4c4955), X(0x6e97c311), X(0x6ee27d9f), - X(0x6f2c78d9), X(0x6f75b4a2), X(0x6fbe30e4), X(0x7005ed91), - X(0x704ceaa1), X(0x70932816), X(0x70d8a5f8), X(0x711d6457), - X(0x7161634b), X(0x71a4a2f3), X(0x71e72375), X(0x7228e500), - X(0x7269e7c8), X(0x72aa2c0a), X(0x72e9b209), X(0x73287a12), - X(0x73668476), X(0x73a3d18f), X(0x73e061bc), X(0x741c3566), - X(0x74574cfa), X(0x7491a8ee), X(0x74cb49be), X(0x75042fec), - X(0x753c5c03), X(0x7573ce92), X(0x75aa882f), X(0x75e08979), - X(0x7615d313), X(0x764a65a7), X(0x767e41e5), X(0x76b16884), - X(0x76e3da40), X(0x771597dc), X(0x7746a221), X(0x7776f9dd), - X(0x77a69fe6), X(0x77d59514), X(0x7803da49), X(0x7831706a), - X(0x785e5861), X(0x788a9320), X(0x78b6219c), X(0x78e104cf), - X(0x790b3dbb), X(0x7934cd64), X(0x795db4d5), X(0x7985f51d), - X(0x79ad8f50), X(0x79d48486), X(0x79fad5de), X(0x7a208478), - X(0x7a45917b), X(0x7a69fe12), X(0x7a8dcb6c), X(0x7ab0fabb), - X(0x7ad38d36), X(0x7af5841a), X(0x7b16e0a3), X(0x7b37a416), - X(0x7b57cfb8), X(0x7b7764d4), X(0x7b9664b6), X(0x7bb4d0b0), - X(0x7bd2aa14), X(0x7beff23b), X(0x7c0caa7f), X(0x7c28d43c), - X(0x7c4470d2), X(0x7c5f81a5), X(0x7c7a081a), X(0x7c940598), - X(0x7cad7b8b), X(0x7cc66b5e), X(0x7cded680), X(0x7cf6be64), - X(0x7d0e247b), X(0x7d250a3c), X(0x7d3b711c), X(0x7d515a95), - X(0x7d66c822), X(0x7d7bbb3c), X(0x7d903563), X(0x7da43814), - X(0x7db7c4d0), X(0x7dcadd16), X(0x7ddd826a), X(0x7defb64d), - X(0x7e017a44), X(0x7e12cfd3), X(0x7e23b87f), X(0x7e3435cc), - X(0x7e444943), X(0x7e53f467), X(0x7e6338c0), X(0x7e7217d5), - X(0x7e80932b), X(0x7e8eac49), X(0x7e9c64b7), X(0x7ea9bdf8), - X(0x7eb6b994), X(0x7ec35910), X(0x7ecf9def), X(0x7edb89b6), - X(0x7ee71de9), X(0x7ef25c09), X(0x7efd4598), X(0x7f07dc16), - X(0x7f122103), X(0x7f1c15dc), X(0x7f25bc1f), X(0x7f2f1547), - X(0x7f3822cd), X(0x7f40e62b), X(0x7f4960d6), X(0x7f519443), - X(0x7f5981e7), X(0x7f612b31), X(0x7f689191), X(0x7f6fb674), - X(0x7f769b45), X(0x7f7d416c), X(0x7f83aa51), X(0x7f89d757), - X(0x7f8fc9df), X(0x7f958348), X(0x7f9b04ef), X(0x7fa0502e), - X(0x7fa56659), X(0x7faa48c7), X(0x7faef8c7), X(0x7fb377a7), - X(0x7fb7c6b3), X(0x7fbbe732), X(0x7fbfda67), X(0x7fc3a196), - X(0x7fc73dfa), X(0x7fcab0ce), X(0x7fcdfb4a), X(0x7fd11ea0), - X(0x7fd41c00), X(0x7fd6f496), X(0x7fd9a989), X(0x7fdc3bff), - X(0x7fdead17), X(0x7fe0fdee), X(0x7fe32f9d), X(0x7fe54337), - X(0x7fe739ce), X(0x7fe9146c), X(0x7fead41b), X(0x7fec79dd), - X(0x7fee06b2), X(0x7fef7b94), X(0x7ff0d97b), X(0x7ff22158), - X(0x7ff35417), X(0x7ff472a3), X(0x7ff57de0), X(0x7ff676ac), - X(0x7ff75de3), X(0x7ff8345a), X(0x7ff8fae4), X(0x7ff9b24b), - X(0x7ffa5b58), X(0x7ffaf6cd), X(0x7ffb8568), X(0x7ffc07e2), - X(0x7ffc7eed), X(0x7ffceb38), X(0x7ffd4d6d), X(0x7ffda631), - X(0x7ffdf621), X(0x7ffe3dd8), X(0x7ffe7dea), X(0x7ffeb6e7), - X(0x7ffee959), X(0x7fff15c4), X(0x7fff3ca9), X(0x7fff5e80), - X(0x7fff7bc0), X(0x7fff94d6), X(0x7fffaa2d), X(0x7fffbc29), - X(0x7fffcb29), X(0x7fffd786), X(0x7fffe195), X(0x7fffe9a3), - X(0x7fffeffa), X(0x7ffff4dd), X(0x7ffff889), X(0x7ffffb37), - X(0x7ffffd1a), X(0x7ffffe5d), X(0x7fffff29), X(0x7fffffa0), - X(0x7fffffdd), X(0x7ffffff7), X(0x7fffffff), X(0x7fffffff), -}; - -static LOOKUP_T vwin2048[1024] = { - X(0x000007c0), X(0x000045c4), X(0x0000c1ca), X(0x00017bd3), - X(0x000273de), X(0x0003a9eb), X(0x00051df9), X(0x0006d007), - X(0x0008c014), X(0x000aee1e), X(0x000d5a25), X(0x00100428), - X(0x0012ec23), X(0x00161216), X(0x001975fe), X(0x001d17da), - X(0x0020f7a8), X(0x00251564), X(0x0029710c), X(0x002e0a9e), - X(0x0032e217), X(0x0037f773), X(0x003d4ab0), X(0x0042dbca), - X(0x0048aabe), X(0x004eb788), X(0x00550224), X(0x005b8a8f), - X(0x006250c5), X(0x006954c1), X(0x0070967e), X(0x007815f9), - X(0x007fd32c), X(0x0087ce13), X(0x009006a9), X(0x00987ce9), - X(0x00a130cc), X(0x00aa224f), X(0x00b3516b), X(0x00bcbe1a), - X(0x00c66856), X(0x00d0501a), X(0x00da755f), X(0x00e4d81f), - X(0x00ef7853), X(0x00fa55f4), X(0x010570fc), X(0x0110c963), - X(0x011c5f22), X(0x01283232), X(0x0134428c), X(0x01409027), - X(0x014d1afb), X(0x0159e302), X(0x0166e831), X(0x01742a82), - X(0x0181a9ec), X(0x018f6665), X(0x019d5fe5), X(0x01ab9663), - X(0x01ba09d6), X(0x01c8ba34), X(0x01d7a775), X(0x01e6d18d), - X(0x01f63873), X(0x0205dc1e), X(0x0215bc82), X(0x0225d997), - X(0x02363350), X(0x0246c9a3), X(0x02579c86), X(0x0268abed), - X(0x0279f7cc), X(0x028b801a), X(0x029d44c9), X(0x02af45ce), - X(0x02c1831d), X(0x02d3fcaa), X(0x02e6b269), X(0x02f9a44c), - X(0x030cd248), X(0x03203c4f), X(0x0333e255), X(0x0347c44b), - X(0x035be225), X(0x03703bd5), X(0x0384d14d), X(0x0399a280), - X(0x03aeaf5e), X(0x03c3f7d9), X(0x03d97be4), X(0x03ef3b6e), - X(0x0405366a), X(0x041b6cc8), X(0x0431de78), X(0x04488b6c), - X(0x045f7393), X(0x047696dd), X(0x048df53b), X(0x04a58e9b), - X(0x04bd62ee), X(0x04d57223), X(0x04edbc28), X(0x050640ed), - X(0x051f0060), X(0x0537fa70), X(0x05512f0a), X(0x056a9e1e), - X(0x05844798), X(0x059e2b67), X(0x05b84978), X(0x05d2a1b8), - X(0x05ed3414), X(0x06080079), X(0x062306d3), X(0x063e470f), - X(0x0659c119), X(0x067574dd), X(0x06916247), X(0x06ad8941), - X(0x06c9e9b8), X(0x06e68397), X(0x070356c8), X(0x07206336), - X(0x073da8cb), X(0x075b2772), X(0x0778df15), X(0x0796cf9c), - X(0x07b4f8f3), X(0x07d35b01), X(0x07f1f5b1), X(0x0810c8eb), - X(0x082fd497), X(0x084f189e), X(0x086e94e9), X(0x088e495e), - X(0x08ae35e6), X(0x08ce5a68), X(0x08eeb6cc), X(0x090f4af8), - X(0x093016d3), X(0x09511a44), X(0x09725530), X(0x0993c77f), - X(0x09b57115), X(0x09d751d8), X(0x09f969ae), X(0x0a1bb87c), - X(0x0a3e3e26), X(0x0a60fa91), X(0x0a83eda2), X(0x0aa7173c), - X(0x0aca7743), X(0x0aee0d9b), X(0x0b11da28), X(0x0b35dccc), - X(0x0b5a156a), X(0x0b7e83e5), X(0x0ba3281f), X(0x0bc801fa), - X(0x0bed1159), X(0x0c12561c), X(0x0c37d025), X(0x0c5d7f55), - X(0x0c83638d), X(0x0ca97cae), X(0x0ccfca97), X(0x0cf64d2a), - X(0x0d1d0444), X(0x0d43efc7), X(0x0d6b0f92), X(0x0d926383), - X(0x0db9eb79), X(0x0de1a752), X(0x0e0996ee), X(0x0e31ba29), - X(0x0e5a10e2), X(0x0e829af6), X(0x0eab5841), X(0x0ed448a2), - X(0x0efd6bf4), X(0x0f26c214), X(0x0f504ade), X(0x0f7a062e), - X(0x0fa3f3df), X(0x0fce13cd), X(0x0ff865d2), X(0x1022e9ca), - X(0x104d9f8e), X(0x107886f9), X(0x10a39fe5), X(0x10ceea2c), - X(0x10fa65a6), X(0x1126122d), X(0x1151ef9a), X(0x117dfdc5), - X(0x11aa3c87), X(0x11d6abb6), X(0x12034b2c), X(0x12301ac0), - X(0x125d1a48), X(0x128a499b), X(0x12b7a891), X(0x12e536ff), - X(0x1312f4bb), X(0x1340e19c), X(0x136efd75), X(0x139d481e), - X(0x13cbc16a), X(0x13fa692f), X(0x14293f40), X(0x14584371), - X(0x14877597), X(0x14b6d585), X(0x14e6630d), X(0x15161e04), - X(0x1546063b), X(0x15761b85), X(0x15a65db3), X(0x15d6cc99), - X(0x16076806), X(0x16382fcd), X(0x166923bf), X(0x169a43ab), - X(0x16cb8f62), X(0x16fd06b5), X(0x172ea973), X(0x1760776b), - X(0x1792706e), X(0x17c49449), X(0x17f6e2cb), X(0x18295bc3), - X(0x185bfeff), X(0x188ecc4c), X(0x18c1c379), X(0x18f4e452), - X(0x19282ea4), X(0x195ba23c), X(0x198f3ee6), X(0x19c3046e), - X(0x19f6f2a1), X(0x1a2b094a), X(0x1a5f4833), X(0x1a93af28), - X(0x1ac83df3), X(0x1afcf460), X(0x1b31d237), X(0x1b66d744), - X(0x1b9c034e), X(0x1bd15621), X(0x1c06cf84), X(0x1c3c6f40), - X(0x1c72351e), X(0x1ca820e6), X(0x1cde3260), X(0x1d146953), - X(0x1d4ac587), X(0x1d8146c3), X(0x1db7eccd), X(0x1deeb76c), - X(0x1e25a667), X(0x1e5cb982), X(0x1e93f085), X(0x1ecb4b33), - X(0x1f02c953), X(0x1f3a6aaa), X(0x1f722efb), X(0x1faa160b), - X(0x1fe21f9e), X(0x201a4b79), X(0x2052995d), X(0x208b0910), - X(0x20c39a53), X(0x20fc4cea), X(0x21352097), X(0x216e151c), - X(0x21a72a3a), X(0x21e05fb5), X(0x2219b54d), X(0x22532ac3), - X(0x228cbfd8), X(0x22c6744d), X(0x230047e2), X(0x233a3a58), - X(0x23744b6d), X(0x23ae7ae3), X(0x23e8c878), X(0x242333ec), - X(0x245dbcfd), X(0x24986369), X(0x24d326f1), X(0x250e0750), - X(0x25490446), X(0x25841d90), X(0x25bf52ec), X(0x25faa417), - X(0x263610cd), X(0x267198cc), X(0x26ad3bcf), X(0x26e8f994), - X(0x2724d1d6), X(0x2760c451), X(0x279cd0c0), X(0x27d8f6e0), - X(0x2815366a), X(0x28518f1b), X(0x288e00ac), X(0x28ca8ad8), - X(0x29072d5a), X(0x2943e7eb), X(0x2980ba45), X(0x29bda422), - X(0x29faa53c), X(0x2a37bd4a), X(0x2a74ec07), X(0x2ab2312b), - X(0x2aef8c6f), X(0x2b2cfd8b), X(0x2b6a8437), X(0x2ba8202c), - X(0x2be5d120), X(0x2c2396cc), X(0x2c6170e7), X(0x2c9f5f29), - X(0x2cdd6147), X(0x2d1b76fa), X(0x2d599ff7), X(0x2d97dbf5), - X(0x2dd62aab), X(0x2e148bcf), X(0x2e52ff16), X(0x2e918436), - X(0x2ed01ae5), X(0x2f0ec2d9), X(0x2f4d7bc6), X(0x2f8c4562), - X(0x2fcb1f62), X(0x300a097a), X(0x3049035f), X(0x30880cc6), - X(0x30c72563), X(0x31064cea), X(0x3145830f), X(0x3184c786), - X(0x31c41a03), X(0x32037a39), X(0x3242e7dc), X(0x3282629f), - X(0x32c1ea36), X(0x33017e53), X(0x33411ea9), X(0x3380caec), - X(0x33c082ce), X(0x34004602), X(0x34401439), X(0x347fed27), - X(0x34bfd07e), X(0x34ffbdf0), X(0x353fb52e), X(0x357fb5ec), - X(0x35bfbfda), X(0x35ffd2aa), X(0x363fee0f), X(0x368011b9), - X(0x36c03d5a), X(0x370070a4), X(0x3740ab48), X(0x3780ecf7), - X(0x37c13562), X(0x3801843a), X(0x3841d931), X(0x388233f7), - X(0x38c2943d), X(0x3902f9b4), X(0x3943640d), X(0x3983d2f8), - X(0x39c44626), X(0x3a04bd48), X(0x3a45380e), X(0x3a85b62a), - X(0x3ac6374a), X(0x3b06bb20), X(0x3b47415c), X(0x3b87c9ae), - X(0x3bc853c7), X(0x3c08df57), X(0x3c496c0f), X(0x3c89f99f), - X(0x3cca87b6), X(0x3d0b1605), X(0x3d4ba43d), X(0x3d8c320e), - X(0x3dccbf27), X(0x3e0d4b3a), X(0x3e4dd5f6), X(0x3e8e5f0c), - X(0x3ecee62b), X(0x3f0f6b05), X(0x3f4fed49), X(0x3f906ca8), - X(0x3fd0e8d2), X(0x40116177), X(0x4051d648), X(0x409246f6), - X(0x40d2b330), X(0x41131aa7), X(0x41537d0c), X(0x4193da10), - X(0x41d43162), X(0x421482b4), X(0x4254cdb7), X(0x4295121b), - X(0x42d54f91), X(0x431585ca), X(0x4355b477), X(0x4395db49), - X(0x43d5f9f1), X(0x44161021), X(0x44561d8a), X(0x449621dd), - X(0x44d61ccc), X(0x45160e08), X(0x4555f544), X(0x4595d230), - X(0x45d5a47f), X(0x46156be3), X(0x4655280e), X(0x4694d8b2), - X(0x46d47d82), X(0x4714162f), X(0x4753a26d), X(0x479321ef), - X(0x47d29466), X(0x4811f987), X(0x48515104), X(0x48909a91), - X(0x48cfd5e1), X(0x490f02a7), X(0x494e2098), X(0x498d2f66), - X(0x49cc2ec7), X(0x4a0b1e6f), X(0x4a49fe11), X(0x4a88cd62), - X(0x4ac78c18), X(0x4b0639e6), X(0x4b44d683), X(0x4b8361a2), - X(0x4bc1dafa), X(0x4c004241), X(0x4c3e972c), X(0x4c7cd970), - X(0x4cbb08c5), X(0x4cf924e1), X(0x4d372d7a), X(0x4d752247), - X(0x4db30300), X(0x4df0cf5a), X(0x4e2e870f), X(0x4e6c29d6), - X(0x4ea9b766), X(0x4ee72f78), X(0x4f2491c4), X(0x4f61de02), - X(0x4f9f13ec), X(0x4fdc333b), X(0x50193ba8), X(0x50562ced), - X(0x509306c3), X(0x50cfc8e5), X(0x510c730d), X(0x514904f6), - X(0x51857e5a), X(0x51c1def5), X(0x51fe2682), X(0x523a54bc), - X(0x52766961), X(0x52b2642c), X(0x52ee44d9), X(0x532a0b26), - X(0x5365b6d0), X(0x53a14793), X(0x53dcbd2f), X(0x54181760), - X(0x545355e5), X(0x548e787d), X(0x54c97ee6), X(0x550468e1), - X(0x553f362c), X(0x5579e687), X(0x55b479b3), X(0x55eeef70), - X(0x5629477f), X(0x566381a1), X(0x569d9d97), X(0x56d79b24), - X(0x57117a0a), X(0x574b3a0a), X(0x5784dae9), X(0x57be5c69), - X(0x57f7be4d), X(0x5831005a), X(0x586a2254), X(0x58a32400), - X(0x58dc0522), X(0x5914c57f), X(0x594d64de), X(0x5985e305), - X(0x59be3fba), X(0x59f67ac3), X(0x5a2e93e9), X(0x5a668af2), - X(0x5a9e5fa6), X(0x5ad611ce), X(0x5b0da133), X(0x5b450d9d), - X(0x5b7c56d7), X(0x5bb37ca9), X(0x5bea7ede), X(0x5c215d41), - X(0x5c58179d), X(0x5c8eadbe), X(0x5cc51f6f), X(0x5cfb6c7c), - X(0x5d3194b2), X(0x5d6797de), X(0x5d9d75cf), X(0x5dd32e51), - X(0x5e08c132), X(0x5e3e2e43), X(0x5e737551), X(0x5ea8962d), - X(0x5edd90a7), X(0x5f12648e), X(0x5f4711b4), X(0x5f7b97ea), - X(0x5faff702), X(0x5fe42ece), X(0x60183f20), X(0x604c27cc), - X(0x607fe8a6), X(0x60b38180), X(0x60e6f22f), X(0x611a3a89), - X(0x614d5a62), X(0x61805190), X(0x61b31fe9), X(0x61e5c545), - X(0x62184179), X(0x624a945d), X(0x627cbdca), X(0x62aebd98), - X(0x62e0939f), X(0x63123fba), X(0x6343c1c1), X(0x6375198f), - X(0x63a646ff), X(0x63d749ec), X(0x64082232), X(0x6438cfad), - X(0x64695238), X(0x6499a9b3), X(0x64c9d5f9), X(0x64f9d6ea), - X(0x6529ac63), X(0x65595643), X(0x6588d46a), X(0x65b826b8), - X(0x65e74d0e), X(0x6616474b), X(0x66451552), X(0x6673b704), - X(0x66a22c44), X(0x66d074f4), X(0x66fe90f8), X(0x672c8033), - X(0x675a428a), X(0x6787d7e1), X(0x67b5401f), X(0x67e27b27), - X(0x680f88e1), X(0x683c6934), X(0x68691c05), X(0x6895a13e), - X(0x68c1f8c7), X(0x68ee2287), X(0x691a1e68), X(0x6945ec54), - X(0x69718c35), X(0x699cfdf5), X(0x69c8417f), X(0x69f356c0), - X(0x6a1e3da3), X(0x6a48f615), X(0x6a738002), X(0x6a9ddb5a), - X(0x6ac80808), X(0x6af205fd), X(0x6b1bd526), X(0x6b457575), - X(0x6b6ee6d8), X(0x6b982940), X(0x6bc13c9f), X(0x6bea20e5), - X(0x6c12d605), X(0x6c3b5bf1), X(0x6c63b29c), X(0x6c8bd9fb), - X(0x6cb3d200), X(0x6cdb9aa0), X(0x6d0333d0), X(0x6d2a9d86), - X(0x6d51d7b7), X(0x6d78e25a), X(0x6d9fbd67), X(0x6dc668d3), - X(0x6dece498), X(0x6e1330ad), X(0x6e394d0c), X(0x6e5f39ae), - X(0x6e84f68d), X(0x6eaa83a2), X(0x6ecfe0ea), X(0x6ef50e5e), - X(0x6f1a0bfc), X(0x6f3ed9bf), X(0x6f6377a4), X(0x6f87e5a8), - X(0x6fac23c9), X(0x6fd03206), X(0x6ff4105c), X(0x7017becc), - X(0x703b3d54), X(0x705e8bf5), X(0x7081aaaf), X(0x70a49984), - X(0x70c75874), X(0x70e9e783), X(0x710c46b2), X(0x712e7605), - X(0x7150757f), X(0x71724523), X(0x7193e4f6), X(0x71b554fd), - X(0x71d6953e), X(0x71f7a5bd), X(0x72188681), X(0x72393792), - X(0x7259b8f5), X(0x727a0ab2), X(0x729a2cd2), X(0x72ba1f5d), - X(0x72d9e25c), X(0x72f975d8), X(0x7318d9db), X(0x73380e6f), - X(0x735713a0), X(0x7375e978), X(0x73949003), X(0x73b3074c), - X(0x73d14f61), X(0x73ef684f), X(0x740d5222), X(0x742b0ce9), - X(0x744898b1), X(0x7465f589), X(0x74832381), X(0x74a022a8), - X(0x74bcf30e), X(0x74d994c3), X(0x74f607d8), X(0x75124c5f), - X(0x752e6268), X(0x754a4a05), X(0x7566034b), X(0x75818e4a), - X(0x759ceb16), X(0x75b819c4), X(0x75d31a66), X(0x75eded12), - X(0x760891dc), X(0x762308da), X(0x763d5221), X(0x76576dc8), - X(0x76715be4), X(0x768b1c8c), X(0x76a4afd9), X(0x76be15e0), - X(0x76d74ebb), X(0x76f05a82), X(0x7709394d), X(0x7721eb35), - X(0x773a7054), X(0x7752c8c4), X(0x776af49f), X(0x7782f400), - X(0x779ac701), X(0x77b26dbd), X(0x77c9e851), X(0x77e136d8), - X(0x77f8596f), X(0x780f5032), X(0x78261b3f), X(0x783cbab2), - X(0x78532eaa), X(0x78697745), X(0x787f94a0), X(0x789586db), - X(0x78ab4e15), X(0x78c0ea6d), X(0x78d65c03), X(0x78eba2f7), - X(0x7900bf68), X(0x7915b179), X(0x792a7949), X(0x793f16fb), - X(0x79538aaf), X(0x7967d488), X(0x797bf4a8), X(0x798feb31), - X(0x79a3b846), X(0x79b75c0a), X(0x79cad6a1), X(0x79de282e), - X(0x79f150d5), X(0x7a0450bb), X(0x7a172803), X(0x7a29d6d3), - X(0x7a3c5d50), X(0x7a4ebb9f), X(0x7a60f1e6), X(0x7a73004a), - X(0x7a84e6f2), X(0x7a96a604), X(0x7aa83da7), X(0x7ab9ae01), - X(0x7acaf73a), X(0x7adc1979), X(0x7aed14e6), X(0x7afde9a8), - X(0x7b0e97e8), X(0x7b1f1fcd), X(0x7b2f8182), X(0x7b3fbd2d), - X(0x7b4fd2f9), X(0x7b5fc30f), X(0x7b6f8d98), X(0x7b7f32bd), - X(0x7b8eb2a9), X(0x7b9e0d85), X(0x7bad437d), X(0x7bbc54b9), - X(0x7bcb4166), X(0x7bda09ae), X(0x7be8adbc), X(0x7bf72dbc), - X(0x7c0589d8), X(0x7c13c23d), X(0x7c21d716), X(0x7c2fc88f), - X(0x7c3d96d5), X(0x7c4b4214), X(0x7c58ca78), X(0x7c66302d), - X(0x7c737362), X(0x7c809443), X(0x7c8d92fc), X(0x7c9a6fbc), - X(0x7ca72aaf), X(0x7cb3c404), X(0x7cc03be8), X(0x7ccc9288), - X(0x7cd8c814), X(0x7ce4dcb9), X(0x7cf0d0a5), X(0x7cfca406), - X(0x7d08570c), X(0x7d13e9e5), X(0x7d1f5cbf), X(0x7d2aafca), - X(0x7d35e335), X(0x7d40f72e), X(0x7d4bebe4), X(0x7d56c188), - X(0x7d617848), X(0x7d6c1054), X(0x7d7689db), X(0x7d80e50e), - X(0x7d8b221b), X(0x7d954133), X(0x7d9f4286), X(0x7da92643), - X(0x7db2ec9b), X(0x7dbc95bd), X(0x7dc621da), X(0x7dcf9123), - X(0x7dd8e3c6), X(0x7de219f6), X(0x7deb33e2), X(0x7df431ba), - X(0x7dfd13af), X(0x7e05d9f2), X(0x7e0e84b4), X(0x7e171424), - X(0x7e1f8874), X(0x7e27e1d4), X(0x7e302074), X(0x7e384487), - X(0x7e404e3c), X(0x7e483dc4), X(0x7e501350), X(0x7e57cf11), - X(0x7e5f7138), X(0x7e66f9f4), X(0x7e6e6979), X(0x7e75bff5), - X(0x7e7cfd9a), X(0x7e842298), X(0x7e8b2f22), X(0x7e922366), - X(0x7e98ff97), X(0x7e9fc3e4), X(0x7ea6707f), X(0x7ead0598), - X(0x7eb38360), X(0x7eb9ea07), X(0x7ec039bf), X(0x7ec672b7), - X(0x7ecc9521), X(0x7ed2a12c), X(0x7ed8970a), X(0x7ede76ea), - X(0x7ee440fd), X(0x7ee9f573), X(0x7eef947d), X(0x7ef51e4b), - X(0x7efa930d), X(0x7efff2f2), X(0x7f053e2b), X(0x7f0a74e8), - X(0x7f0f9758), X(0x7f14a5ac), X(0x7f19a013), X(0x7f1e86bc), - X(0x7f2359d8), X(0x7f281995), X(0x7f2cc623), X(0x7f315fb1), - X(0x7f35e66e), X(0x7f3a5a8a), X(0x7f3ebc33), X(0x7f430b98), - X(0x7f4748e7), X(0x7f4b7450), X(0x7f4f8e01), X(0x7f539629), - X(0x7f578cf5), X(0x7f5b7293), X(0x7f5f4732), X(0x7f630b00), - X(0x7f66be2b), X(0x7f6a60df), X(0x7f6df34b), X(0x7f71759b), - X(0x7f74e7fe), X(0x7f784aa0), X(0x7f7b9daf), X(0x7f7ee156), - X(0x7f8215c3), X(0x7f853b22), X(0x7f88519f), X(0x7f8b5967), - X(0x7f8e52a6), X(0x7f913d87), X(0x7f941a36), X(0x7f96e8df), - X(0x7f99a9ad), X(0x7f9c5ccb), X(0x7f9f0265), X(0x7fa19aa5), - X(0x7fa425b5), X(0x7fa6a3c1), X(0x7fa914f3), X(0x7fab7974), - X(0x7fadd16f), X(0x7fb01d0d), X(0x7fb25c78), X(0x7fb48fd9), - X(0x7fb6b75a), X(0x7fb8d323), X(0x7fbae35d), X(0x7fbce831), - X(0x7fbee1c7), X(0x7fc0d047), X(0x7fc2b3d9), X(0x7fc48ca5), - X(0x7fc65ad3), X(0x7fc81e88), X(0x7fc9d7ee), X(0x7fcb872a), - X(0x7fcd2c63), X(0x7fcec7bf), X(0x7fd05966), X(0x7fd1e17c), - X(0x7fd36027), X(0x7fd4d58d), X(0x7fd641d3), X(0x7fd7a51e), - X(0x7fd8ff94), X(0x7fda5157), X(0x7fdb9a8e), X(0x7fdcdb5b), - X(0x7fde13e2), X(0x7fdf4448), X(0x7fe06caf), X(0x7fe18d3b), - X(0x7fe2a60e), X(0x7fe3b74b), X(0x7fe4c114), X(0x7fe5c38b), - X(0x7fe6bed2), X(0x7fe7b30a), X(0x7fe8a055), X(0x7fe986d4), - X(0x7fea66a7), X(0x7feb3ff0), X(0x7fec12cd), X(0x7fecdf5f), - X(0x7feda5c5), X(0x7fee6620), X(0x7fef208d), X(0x7fefd52c), - X(0x7ff0841c), X(0x7ff12d7a), X(0x7ff1d164), X(0x7ff26ff9), - X(0x7ff30955), X(0x7ff39d96), X(0x7ff42cd9), X(0x7ff4b739), - X(0x7ff53cd4), X(0x7ff5bdc5), X(0x7ff63a28), X(0x7ff6b217), - X(0x7ff725af), X(0x7ff7950a), X(0x7ff80043), X(0x7ff86773), - X(0x7ff8cab4), X(0x7ff92a21), X(0x7ff985d1), X(0x7ff9dddf), - X(0x7ffa3262), X(0x7ffa8374), X(0x7ffad12c), X(0x7ffb1ba1), - X(0x7ffb62ec), X(0x7ffba723), X(0x7ffbe85c), X(0x7ffc26b0), - X(0x7ffc6233), X(0x7ffc9afb), X(0x7ffcd11e), X(0x7ffd04b1), - X(0x7ffd35c9), X(0x7ffd647b), X(0x7ffd90da), X(0x7ffdbafa), - X(0x7ffde2f0), X(0x7ffe08ce), X(0x7ffe2ca7), X(0x7ffe4e8e), - X(0x7ffe6e95), X(0x7ffe8cce), X(0x7ffea94a), X(0x7ffec41b), - X(0x7ffedd52), X(0x7ffef4ff), X(0x7fff0b33), X(0x7fff1ffd), - X(0x7fff336e), X(0x7fff4593), X(0x7fff567d), X(0x7fff663a), - X(0x7fff74d8), X(0x7fff8265), X(0x7fff8eee), X(0x7fff9a81), - X(0x7fffa52b), X(0x7fffaef8), X(0x7fffb7f5), X(0x7fffc02d), - X(0x7fffc7ab), X(0x7fffce7c), X(0x7fffd4a9), X(0x7fffda3e), - X(0x7fffdf44), X(0x7fffe3c6), X(0x7fffe7cc), X(0x7fffeb60), - X(0x7fffee8a), X(0x7ffff153), X(0x7ffff3c4), X(0x7ffff5e3), - X(0x7ffff7b8), X(0x7ffff94b), X(0x7ffffaa1), X(0x7ffffbc1), - X(0x7ffffcb2), X(0x7ffffd78), X(0x7ffffe19), X(0x7ffffe9a), - X(0x7ffffeff), X(0x7fffff4e), X(0x7fffff89), X(0x7fffffb3), - X(0x7fffffd2), X(0x7fffffe6), X(0x7ffffff3), X(0x7ffffffa), - X(0x7ffffffe), X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), -}; - -static LOOKUP_T vwin4096[2048] = { - X(0x000001f0), X(0x00001171), X(0x00003072), X(0x00005ef5), - X(0x00009cf8), X(0x0000ea7c), X(0x00014780), X(0x0001b405), - X(0x0002300b), X(0x0002bb91), X(0x00035698), X(0x0004011e), - X(0x0004bb25), X(0x000584ac), X(0x00065db3), X(0x0007463a), - X(0x00083e41), X(0x000945c7), X(0x000a5ccc), X(0x000b8350), - X(0x000cb954), X(0x000dfed7), X(0x000f53d8), X(0x0010b857), - X(0x00122c55), X(0x0013afd1), X(0x001542ca), X(0x0016e541), - X(0x00189735), X(0x001a58a7), X(0x001c2995), X(0x001e09ff), - X(0x001ff9e6), X(0x0021f948), X(0x00240826), X(0x00262680), - X(0x00285454), X(0x002a91a3), X(0x002cde6c), X(0x002f3aaf), - X(0x0031a66b), X(0x003421a0), X(0x0036ac4f), X(0x00394675), - X(0x003bf014), X(0x003ea92a), X(0x004171b7), X(0x004449bb), - X(0x00473135), X(0x004a2824), X(0x004d2e8a), X(0x00504463), - X(0x005369b2), X(0x00569e74), X(0x0059e2aa), X(0x005d3652), - X(0x0060996d), X(0x00640bf9), X(0x00678df7), X(0x006b1f66), - X(0x006ec045), X(0x00727093), X(0x00763051), X(0x0079ff7d), - X(0x007dde16), X(0x0081cc1d), X(0x0085c991), X(0x0089d671), - X(0x008df2bc), X(0x00921e71), X(0x00965991), X(0x009aa41a), - X(0x009efe0c), X(0x00a36766), X(0x00a7e028), X(0x00ac6850), - X(0x00b0ffde), X(0x00b5a6d1), X(0x00ba5d28), X(0x00bf22e4), - X(0x00c3f802), X(0x00c8dc83), X(0x00cdd065), X(0x00d2d3a8), - X(0x00d7e64a), X(0x00dd084c), X(0x00e239ac), X(0x00e77a69), - X(0x00ecca83), X(0x00f229f9), X(0x00f798ca), X(0x00fd16f5), - X(0x0102a479), X(0x01084155), X(0x010ded89), X(0x0113a913), - X(0x011973f3), X(0x011f4e27), X(0x012537af), X(0x012b308a), - X(0x013138b7), X(0x01375035), X(0x013d7702), X(0x0143ad1f), - X(0x0149f289), X(0x01504741), X(0x0156ab44), X(0x015d1e92), - X(0x0163a12a), X(0x016a330b), X(0x0170d433), X(0x017784a3), - X(0x017e4458), X(0x01851351), X(0x018bf18e), X(0x0192df0d), - X(0x0199dbcd), X(0x01a0e7cd), X(0x01a8030c), X(0x01af2d89), - X(0x01b66743), X(0x01bdb038), X(0x01c50867), X(0x01cc6fd0), - X(0x01d3e670), X(0x01db6c47), X(0x01e30153), X(0x01eaa593), - X(0x01f25907), X(0x01fa1bac), X(0x0201ed81), X(0x0209ce86), - X(0x0211beb8), X(0x0219be17), X(0x0221cca2), X(0x0229ea56), - X(0x02321733), X(0x023a5337), X(0x02429e60), X(0x024af8af), - X(0x02536220), X(0x025bdab3), X(0x02646267), X(0x026cf93a), - X(0x02759f2a), X(0x027e5436), X(0x0287185d), X(0x028feb9d), - X(0x0298cdf4), X(0x02a1bf62), X(0x02aabfe5), X(0x02b3cf7b), - X(0x02bcee23), X(0x02c61bdb), X(0x02cf58a2), X(0x02d8a475), - X(0x02e1ff55), X(0x02eb693e), X(0x02f4e230), X(0x02fe6a29), - X(0x03080127), X(0x0311a729), X(0x031b5c2d), X(0x03252031), - X(0x032ef334), X(0x0338d534), X(0x0342c630), X(0x034cc625), - X(0x0356d512), X(0x0360f2f6), X(0x036b1fce), X(0x03755b99), - X(0x037fa655), X(0x038a0001), X(0x0394689a), X(0x039ee020), - X(0x03a9668f), X(0x03b3fbe6), X(0x03bea024), X(0x03c95347), - X(0x03d4154d), X(0x03dee633), X(0x03e9c5f9), X(0x03f4b49b), - X(0x03ffb219), X(0x040abe71), X(0x0415d9a0), X(0x042103a5), - X(0x042c3c7d), X(0x04378428), X(0x0442daa2), X(0x044e3fea), - X(0x0459b3fd), X(0x046536db), X(0x0470c880), X(0x047c68eb), - X(0x0488181a), X(0x0493d60b), X(0x049fa2bc), X(0x04ab7e2a), - X(0x04b76854), X(0x04c36137), X(0x04cf68d1), X(0x04db7f21), - X(0x04e7a424), X(0x04f3d7d8), X(0x05001a3b), X(0x050c6b4a), - X(0x0518cb04), X(0x05253966), X(0x0531b66e), X(0x053e421a), - X(0x054adc68), X(0x05578555), X(0x05643cdf), X(0x05710304), - X(0x057dd7c1), X(0x058abb15), X(0x0597acfd), X(0x05a4ad76), - X(0x05b1bc7f), X(0x05beda14), X(0x05cc0635), X(0x05d940dd), - X(0x05e68a0b), X(0x05f3e1bd), X(0x060147f0), X(0x060ebca1), - X(0x061c3fcf), X(0x0629d176), X(0x06377194), X(0x06452027), - X(0x0652dd2c), X(0x0660a8a2), X(0x066e8284), X(0x067c6ad1), - X(0x068a6186), X(0x069866a1), X(0x06a67a1e), X(0x06b49bfc), - X(0x06c2cc38), X(0x06d10acf), X(0x06df57bf), X(0x06edb304), - X(0x06fc1c9d), X(0x070a9487), X(0x07191abe), X(0x0727af40), - X(0x0736520b), X(0x0745031c), X(0x0753c270), X(0x07629004), - X(0x07716bd6), X(0x078055e2), X(0x078f4e26), X(0x079e549f), - X(0x07ad694b), X(0x07bc8c26), X(0x07cbbd2e), X(0x07dafc5f), - X(0x07ea49b7), X(0x07f9a533), X(0x08090ed1), X(0x0818868c), - X(0x08280c62), X(0x0837a051), X(0x08474255), X(0x0856f26b), - X(0x0866b091), X(0x08767cc3), X(0x088656fe), X(0x08963f3f), - X(0x08a63584), X(0x08b639c8), X(0x08c64c0a), X(0x08d66c45), - X(0x08e69a77), X(0x08f6d69d), X(0x090720b3), X(0x091778b7), - X(0x0927dea5), X(0x0938527a), X(0x0948d433), X(0x095963cc), - X(0x096a0143), X(0x097aac94), X(0x098b65bb), X(0x099c2cb6), - X(0x09ad0182), X(0x09bde41a), X(0x09ced47d), X(0x09dfd2a5), - X(0x09f0de90), X(0x0a01f83b), X(0x0a131fa3), X(0x0a2454c3), - X(0x0a359798), X(0x0a46e820), X(0x0a584656), X(0x0a69b237), - X(0x0a7b2bc0), X(0x0a8cb2ec), X(0x0a9e47ba), X(0x0aafea24), - X(0x0ac19a29), X(0x0ad357c3), X(0x0ae522ef), X(0x0af6fbab), - X(0x0b08e1f1), X(0x0b1ad5c0), X(0x0b2cd712), X(0x0b3ee5e5), - X(0x0b510234), X(0x0b632bfd), X(0x0b75633b), X(0x0b87a7eb), - X(0x0b99fa08), X(0x0bac5990), X(0x0bbec67e), X(0x0bd140cf), - X(0x0be3c87e), X(0x0bf65d89), X(0x0c08ffeb), X(0x0c1bafa1), - X(0x0c2e6ca6), X(0x0c4136f6), X(0x0c540e8f), X(0x0c66f36c), - X(0x0c79e588), X(0x0c8ce4e1), X(0x0c9ff172), X(0x0cb30b37), - X(0x0cc6322c), X(0x0cd9664d), X(0x0ceca797), X(0x0cfff605), - X(0x0d135193), X(0x0d26ba3d), X(0x0d3a2fff), X(0x0d4db2d5), - X(0x0d6142ba), X(0x0d74dfac), X(0x0d8889a5), X(0x0d9c40a1), - X(0x0db0049d), X(0x0dc3d593), X(0x0dd7b380), X(0x0deb9e60), - X(0x0dff962f), X(0x0e139ae7), X(0x0e27ac85), X(0x0e3bcb05), - X(0x0e4ff662), X(0x0e642e98), X(0x0e7873a2), X(0x0e8cc57d), - X(0x0ea12423), X(0x0eb58f91), X(0x0eca07c2), X(0x0ede8cb1), - X(0x0ef31e5b), X(0x0f07bcba), X(0x0f1c67cb), X(0x0f311f88), - X(0x0f45e3ee), X(0x0f5ab4f7), X(0x0f6f92a0), X(0x0f847ce3), - X(0x0f9973bc), X(0x0fae7726), X(0x0fc3871e), X(0x0fd8a39d), - X(0x0fedcca1), X(0x10030223), X(0x1018441f), X(0x102d9291), - X(0x1042ed74), X(0x105854c3), X(0x106dc879), X(0x10834892), - X(0x1098d508), X(0x10ae6dd8), X(0x10c412fc), X(0x10d9c46f), - X(0x10ef822d), X(0x11054c30), X(0x111b2274), X(0x113104f5), - X(0x1146f3ac), X(0x115cee95), X(0x1172f5ab), X(0x118908e9), - X(0x119f284a), X(0x11b553ca), X(0x11cb8b62), X(0x11e1cf0f), - X(0x11f81ecb), X(0x120e7a90), X(0x1224e25a), X(0x123b5624), - X(0x1251d5e9), X(0x126861a3), X(0x127ef94e), X(0x12959ce3), - X(0x12ac4c5f), X(0x12c307bb), X(0x12d9cef2), X(0x12f0a200), - X(0x130780df), X(0x131e6b8a), X(0x133561fa), X(0x134c642c), - X(0x1363721a), X(0x137a8bbe), X(0x1391b113), X(0x13a8e214), - X(0x13c01eba), X(0x13d76702), X(0x13eebae5), X(0x14061a5e), - X(0x141d8567), X(0x1434fbfb), X(0x144c7e14), X(0x14640bae), - X(0x147ba4c1), X(0x14934949), X(0x14aaf941), X(0x14c2b4a2), - X(0x14da7b67), X(0x14f24d8a), X(0x150a2b06), X(0x152213d5), - X(0x153a07f1), X(0x15520755), X(0x156a11fb), X(0x158227dd), - X(0x159a48f5), X(0x15b2753d), X(0x15caacb1), X(0x15e2ef49), - X(0x15fb3d01), X(0x161395d2), X(0x162bf9b6), X(0x164468a8), - X(0x165ce2a1), X(0x1675679c), X(0x168df793), X(0x16a69280), - X(0x16bf385c), X(0x16d7e922), X(0x16f0a4cc), X(0x17096b54), - X(0x17223cb4), X(0x173b18e5), X(0x1753ffe2), X(0x176cf1a5), - X(0x1785ee27), X(0x179ef562), X(0x17b80750), X(0x17d123eb), - X(0x17ea4b2d), X(0x18037d10), X(0x181cb98d), X(0x1836009e), - X(0x184f523c), X(0x1868ae63), X(0x1882150a), X(0x189b862c), - X(0x18b501c4), X(0x18ce87c9), X(0x18e81836), X(0x1901b305), - X(0x191b582f), X(0x193507ad), X(0x194ec17a), X(0x1968858f), - X(0x198253e5), X(0x199c2c75), X(0x19b60f3a), X(0x19cffc2d), - X(0x19e9f347), X(0x1a03f482), X(0x1a1dffd7), X(0x1a381540), - X(0x1a5234b5), X(0x1a6c5e31), X(0x1a8691ac), X(0x1aa0cf21), - X(0x1abb1687), X(0x1ad567da), X(0x1aefc311), X(0x1b0a2826), - X(0x1b249712), X(0x1b3f0fd0), X(0x1b599257), X(0x1b741ea1), - X(0x1b8eb4a7), X(0x1ba95462), X(0x1bc3fdcd), X(0x1bdeb0de), - X(0x1bf96d91), X(0x1c1433dd), X(0x1c2f03bc), X(0x1c49dd27), - X(0x1c64c017), X(0x1c7fac85), X(0x1c9aa269), X(0x1cb5a1be), - X(0x1cd0aa7c), X(0x1cebbc9c), X(0x1d06d816), X(0x1d21fce4), - X(0x1d3d2aff), X(0x1d586260), X(0x1d73a2fe), X(0x1d8eecd4), - X(0x1daa3fda), X(0x1dc59c09), X(0x1de1015a), X(0x1dfc6fc5), - X(0x1e17e743), X(0x1e3367cd), X(0x1e4ef15b), X(0x1e6a83e7), - X(0x1e861f6a), X(0x1ea1c3da), X(0x1ebd7133), X(0x1ed9276b), - X(0x1ef4e67c), X(0x1f10ae5e), X(0x1f2c7f0a), X(0x1f485879), - X(0x1f643aa2), X(0x1f80257f), X(0x1f9c1908), X(0x1fb81536), - X(0x1fd41a00), X(0x1ff02761), X(0x200c3d4f), X(0x20285bc3), - X(0x204482b7), X(0x2060b221), X(0x207ce9fb), X(0x20992a3e), - X(0x20b572e0), X(0x20d1c3dc), X(0x20ee1d28), X(0x210a7ebe), - X(0x2126e895), X(0x21435aa6), X(0x215fd4ea), X(0x217c5757), - X(0x2198e1e8), X(0x21b57493), X(0x21d20f51), X(0x21eeb21b), - X(0x220b5ce7), X(0x22280fb0), X(0x2244ca6c), X(0x22618d13), - X(0x227e579f), X(0x229b2a06), X(0x22b80442), X(0x22d4e649), - X(0x22f1d015), X(0x230ec19d), X(0x232bbad9), X(0x2348bbc1), - X(0x2365c44c), X(0x2382d474), X(0x239fec30), X(0x23bd0b78), - X(0x23da3244), X(0x23f7608b), X(0x24149646), X(0x2431d36c), - X(0x244f17f5), X(0x246c63da), X(0x2489b711), X(0x24a71193), - X(0x24c47358), X(0x24e1dc57), X(0x24ff4c88), X(0x251cc3e2), - X(0x253a425e), X(0x2557c7f4), X(0x2575549a), X(0x2592e848), - X(0x25b082f7), X(0x25ce249e), X(0x25ebcd34), X(0x26097cb2), - X(0x2627330e), X(0x2644f040), X(0x2662b441), X(0x26807f07), - X(0x269e5089), X(0x26bc28c1), X(0x26da07a4), X(0x26f7ed2b), - X(0x2715d94d), X(0x2733cc02), X(0x2751c540), X(0x276fc500), - X(0x278dcb39), X(0x27abd7e2), X(0x27c9eaf3), X(0x27e80463), - X(0x28062429), X(0x28244a3e), X(0x28427697), X(0x2860a92d), - X(0x287ee1f7), X(0x289d20eb), X(0x28bb6603), X(0x28d9b134), - X(0x28f80275), X(0x291659c0), X(0x2934b709), X(0x29531a49), - X(0x29718378), X(0x298ff28b), X(0x29ae677b), X(0x29cce23e), - X(0x29eb62cb), X(0x2a09e91b), X(0x2a287523), X(0x2a4706dc), - X(0x2a659e3c), X(0x2a843b39), X(0x2aa2ddcd), X(0x2ac185ec), - X(0x2ae0338f), X(0x2afee6ad), X(0x2b1d9f3c), X(0x2b3c5d33), - X(0x2b5b208b), X(0x2b79e939), X(0x2b98b734), X(0x2bb78a74), - X(0x2bd662ef), X(0x2bf5409d), X(0x2c142374), X(0x2c330b6b), - X(0x2c51f87a), X(0x2c70ea97), X(0x2c8fe1b9), X(0x2caeddd6), - X(0x2ccddee7), X(0x2cece4e1), X(0x2d0befbb), X(0x2d2aff6d), - X(0x2d4a13ec), X(0x2d692d31), X(0x2d884b32), X(0x2da76de4), - X(0x2dc69540), X(0x2de5c13d), X(0x2e04f1d0), X(0x2e2426f0), - X(0x2e436095), X(0x2e629eb4), X(0x2e81e146), X(0x2ea1283f), - X(0x2ec07398), X(0x2edfc347), X(0x2eff1742), X(0x2f1e6f80), - X(0x2f3dcbf8), X(0x2f5d2ca0), X(0x2f7c916f), X(0x2f9bfa5c), - X(0x2fbb675d), X(0x2fdad869), X(0x2ffa4d76), X(0x3019c67b), - X(0x3039436f), X(0x3058c448), X(0x307848fc), X(0x3097d183), - X(0x30b75dd3), X(0x30d6ede2), X(0x30f681a6), X(0x31161917), - X(0x3135b42b), X(0x315552d8), X(0x3174f514), X(0x31949ad7), - X(0x31b44417), X(0x31d3f0ca), X(0x31f3a0e6), X(0x32135462), - X(0x32330b35), X(0x3252c555), X(0x327282b7), X(0x32924354), - X(0x32b20720), X(0x32d1ce13), X(0x32f19823), X(0x33116546), - X(0x33313573), X(0x3351089f), X(0x3370dec2), X(0x3390b7d1), - X(0x33b093c3), X(0x33d0728f), X(0x33f05429), X(0x3410388a), - X(0x34301fa7), X(0x34500977), X(0x346ff5ef), X(0x348fe506), - X(0x34afd6b3), X(0x34cfcaeb), X(0x34efc1a5), X(0x350fbad7), - X(0x352fb678), X(0x354fb47d), X(0x356fb4dd), X(0x358fb78e), - X(0x35afbc86), X(0x35cfc3bc), X(0x35efcd25), X(0x360fd8b8), - X(0x362fe66c), X(0x364ff636), X(0x3670080c), X(0x36901be5), - X(0x36b031b7), X(0x36d04978), X(0x36f0631e), X(0x37107ea0), - X(0x37309bf3), X(0x3750bb0e), X(0x3770dbe6), X(0x3790fe73), - X(0x37b122aa), X(0x37d14881), X(0x37f16fee), X(0x381198e8), - X(0x3831c365), X(0x3851ef5a), X(0x38721cbe), X(0x38924b87), - X(0x38b27bac), X(0x38d2ad21), X(0x38f2dfde), X(0x391313d8), - X(0x39334906), X(0x39537f5d), X(0x3973b6d4), X(0x3993ef60), - X(0x39b428f9), X(0x39d46393), X(0x39f49f25), X(0x3a14dba6), - X(0x3a35190a), X(0x3a555748), X(0x3a759657), X(0x3a95d62c), - X(0x3ab616be), X(0x3ad65801), X(0x3af699ed), X(0x3b16dc78), - X(0x3b371f97), X(0x3b576341), X(0x3b77a76c), X(0x3b97ec0d), - X(0x3bb8311b), X(0x3bd8768b), X(0x3bf8bc55), X(0x3c19026d), - X(0x3c3948ca), X(0x3c598f62), X(0x3c79d62b), X(0x3c9a1d1b), - X(0x3cba6428), X(0x3cdaab48), X(0x3cfaf271), X(0x3d1b3999), - X(0x3d3b80b6), X(0x3d5bc7be), X(0x3d7c0ea8), X(0x3d9c5569), - X(0x3dbc9bf7), X(0x3ddce248), X(0x3dfd2852), X(0x3e1d6e0c), - X(0x3e3db36c), X(0x3e5df866), X(0x3e7e3cf2), X(0x3e9e8106), - X(0x3ebec497), X(0x3edf079b), X(0x3eff4a09), X(0x3f1f8bd7), - X(0x3f3fccfa), X(0x3f600d69), X(0x3f804d1a), X(0x3fa08c02), - X(0x3fc0ca19), X(0x3fe10753), X(0x400143a7), X(0x40217f0a), - X(0x4041b974), X(0x4061f2da), X(0x40822b32), X(0x40a26272), - X(0x40c29891), X(0x40e2cd83), X(0x41030140), X(0x412333bd), - X(0x414364f1), X(0x416394d2), X(0x4183c355), X(0x41a3f070), - X(0x41c41c1b), X(0x41e4464a), X(0x42046ef4), X(0x42249610), - X(0x4244bb92), X(0x4264df72), X(0x428501a5), X(0x42a52222), - X(0x42c540de), X(0x42e55dd0), X(0x430578ed), X(0x4325922d), - X(0x4345a985), X(0x4365beeb), X(0x4385d255), X(0x43a5e3ba), - X(0x43c5f30f), X(0x43e6004b), X(0x44060b65), X(0x44261451), - X(0x44461b07), X(0x44661f7c), X(0x448621a7), X(0x44a6217d), - X(0x44c61ef6), X(0x44e61a07), X(0x450612a6), X(0x452608ca), - X(0x4545fc69), X(0x4565ed79), X(0x4585dbf1), X(0x45a5c7c6), - X(0x45c5b0ef), X(0x45e59761), X(0x46057b15), X(0x46255bfe), - X(0x46453a15), X(0x4665154f), X(0x4684eda2), X(0x46a4c305), - X(0x46c4956e), X(0x46e464d3), X(0x4704312b), X(0x4723fa6c), - X(0x4743c08d), X(0x47638382), X(0x47834344), X(0x47a2ffc9), - X(0x47c2b906), X(0x47e26ef2), X(0x48022183), X(0x4821d0b1), - X(0x48417c71), X(0x486124b9), X(0x4880c981), X(0x48a06abe), - X(0x48c00867), X(0x48dfa272), X(0x48ff38d6), X(0x491ecb8a), - X(0x493e5a84), X(0x495de5b9), X(0x497d6d22), X(0x499cf0b4), - X(0x49bc7066), X(0x49dbec2e), X(0x49fb6402), X(0x4a1ad7db), - X(0x4a3a47ad), X(0x4a59b370), X(0x4a791b1a), X(0x4a987ea1), - X(0x4ab7ddfd), X(0x4ad73924), X(0x4af6900c), X(0x4b15e2ad), - X(0x4b3530fc), X(0x4b547af1), X(0x4b73c082), X(0x4b9301a6), - X(0x4bb23e53), X(0x4bd17681), X(0x4bf0aa25), X(0x4c0fd937), - X(0x4c2f03ae), X(0x4c4e297f), X(0x4c6d4aa3), X(0x4c8c670f), - X(0x4cab7eba), X(0x4cca919c), X(0x4ce99fab), X(0x4d08a8de), - X(0x4d27ad2c), X(0x4d46ac8b), X(0x4d65a6f3), X(0x4d849c5a), - X(0x4da38cb7), X(0x4dc27802), X(0x4de15e31), X(0x4e003f3a), - X(0x4e1f1b16), X(0x4e3df1ba), X(0x4e5cc31e), X(0x4e7b8f3a), - X(0x4e9a5603), X(0x4eb91771), X(0x4ed7d37b), X(0x4ef68a18), - X(0x4f153b3f), X(0x4f33e6e7), X(0x4f528d08), X(0x4f712d97), - X(0x4f8fc88e), X(0x4fae5de1), X(0x4fcced8a), X(0x4feb777f), - X(0x5009fbb6), X(0x50287a28), X(0x5046f2cc), X(0x50656598), - X(0x5083d284), X(0x50a23988), X(0x50c09a9a), X(0x50def5b1), - X(0x50fd4ac7), X(0x511b99d0), X(0x5139e2c5), X(0x5158259e), - X(0x51766251), X(0x519498d6), X(0x51b2c925), X(0x51d0f334), - X(0x51ef16fb), X(0x520d3473), X(0x522b4b91), X(0x52495c4e), - X(0x526766a2), X(0x52856a83), X(0x52a367e9), X(0x52c15ecd), - X(0x52df4f24), X(0x52fd38e8), X(0x531b1c10), X(0x5338f892), - X(0x5356ce68), X(0x53749d89), X(0x539265eb), X(0x53b02788), - X(0x53cde257), X(0x53eb964f), X(0x54094369), X(0x5426e99c), - X(0x544488df), X(0x5462212c), X(0x547fb279), X(0x549d3cbe), - X(0x54babff4), X(0x54d83c12), X(0x54f5b110), X(0x55131ee7), - X(0x5530858d), X(0x554de4fc), X(0x556b3d2a), X(0x55888e11), - X(0x55a5d7a8), X(0x55c319e7), X(0x55e054c7), X(0x55fd883f), - X(0x561ab447), X(0x5637d8d8), X(0x5654f5ea), X(0x56720b75), - X(0x568f1971), X(0x56ac1fd7), X(0x56c91e9e), X(0x56e615c0), - X(0x57030534), X(0x571fecf2), X(0x573cccf3), X(0x5759a530), - X(0x577675a0), X(0x57933e3c), X(0x57affefd), X(0x57ccb7db), - X(0x57e968ce), X(0x580611cf), X(0x5822b2d6), X(0x583f4bdd), - X(0x585bdcdb), X(0x587865c9), X(0x5894e69f), X(0x58b15f57), - X(0x58cdcfe9), X(0x58ea384e), X(0x5906987d), X(0x5922f071), - X(0x593f4022), X(0x595b8788), X(0x5977c69c), X(0x5993fd57), - X(0x59b02bb2), X(0x59cc51a6), X(0x59e86f2c), X(0x5a04843c), - X(0x5a2090d0), X(0x5a3c94e0), X(0x5a589065), X(0x5a748359), - X(0x5a906db4), X(0x5aac4f70), X(0x5ac82884), X(0x5ae3f8ec), - X(0x5affc09f), X(0x5b1b7f97), X(0x5b3735cd), X(0x5b52e33a), - X(0x5b6e87d8), X(0x5b8a239f), X(0x5ba5b689), X(0x5bc1408f), - X(0x5bdcc1aa), X(0x5bf839d5), X(0x5c13a907), X(0x5c2f0f3b), - X(0x5c4a6c6a), X(0x5c65c08d), X(0x5c810b9e), X(0x5c9c4d97), - X(0x5cb78670), X(0x5cd2b623), X(0x5ceddcaa), X(0x5d08f9ff), - X(0x5d240e1b), X(0x5d3f18f8), X(0x5d5a1a8f), X(0x5d7512da), - X(0x5d9001d3), X(0x5daae773), X(0x5dc5c3b5), X(0x5de09692), - X(0x5dfb6004), X(0x5e162004), X(0x5e30d68d), X(0x5e4b8399), - X(0x5e662721), X(0x5e80c11f), X(0x5e9b518e), X(0x5eb5d867), - X(0x5ed055a4), X(0x5eeac940), X(0x5f053334), X(0x5f1f937b), - X(0x5f39ea0f), X(0x5f5436ea), X(0x5f6e7a06), X(0x5f88b35d), - X(0x5fa2e2e9), X(0x5fbd08a6), X(0x5fd7248d), X(0x5ff13698), - X(0x600b3ec2), X(0x60253d05), X(0x603f315b), X(0x60591bc0), - X(0x6072fc2d), X(0x608cd29e), X(0x60a69f0b), X(0x60c06171), - X(0x60da19ca), X(0x60f3c80f), X(0x610d6c3d), X(0x6127064d), - X(0x6140963a), X(0x615a1bff), X(0x61739797), X(0x618d08fc), - X(0x61a67029), X(0x61bfcd1a), X(0x61d91fc8), X(0x61f2682f), - X(0x620ba64a), X(0x6224da13), X(0x623e0386), X(0x6257229d), - X(0x62703754), X(0x628941a6), X(0x62a2418e), X(0x62bb3706), - X(0x62d4220a), X(0x62ed0296), X(0x6305d8a3), X(0x631ea42f), - X(0x63376533), X(0x63501bab), X(0x6368c793), X(0x638168e5), - X(0x6399ff9e), X(0x63b28bb8), X(0x63cb0d2f), X(0x63e383ff), - X(0x63fbf022), X(0x64145195), X(0x642ca853), X(0x6444f457), - X(0x645d359e), X(0x64756c22), X(0x648d97e0), X(0x64a5b8d3), - X(0x64bdcef6), X(0x64d5da47), X(0x64eddabf), X(0x6505d05c), - X(0x651dbb19), X(0x65359af2), X(0x654d6fe3), X(0x656539e7), - X(0x657cf8fb), X(0x6594ad1b), X(0x65ac5643), X(0x65c3f46e), - X(0x65db8799), X(0x65f30fc0), X(0x660a8ce0), X(0x6621fef3), - X(0x663965f7), X(0x6650c1e7), X(0x666812c1), X(0x667f5880), - X(0x66969320), X(0x66adc29e), X(0x66c4e6f7), X(0x66dc0026), - X(0x66f30e28), X(0x670a10fa), X(0x67210898), X(0x6737f4ff), - X(0x674ed62b), X(0x6765ac19), X(0x677c76c5), X(0x6793362c), - X(0x67a9ea4b), X(0x67c0931f), X(0x67d730a3), X(0x67edc2d6), - X(0x680449b3), X(0x681ac538), X(0x68313562), X(0x68479a2d), - X(0x685df396), X(0x6874419b), X(0x688a8438), X(0x68a0bb6a), - X(0x68b6e72e), X(0x68cd0782), X(0x68e31c63), X(0x68f925cd), - X(0x690f23be), X(0x69251633), X(0x693afd29), X(0x6950d89e), - X(0x6966a88f), X(0x697c6cf8), X(0x699225d9), X(0x69a7d32d), - X(0x69bd74f3), X(0x69d30b27), X(0x69e895c8), X(0x69fe14d2), - X(0x6a138844), X(0x6a28f01b), X(0x6a3e4c54), X(0x6a539ced), - X(0x6a68e1e4), X(0x6a7e1b37), X(0x6a9348e3), X(0x6aa86ae6), - X(0x6abd813d), X(0x6ad28be7), X(0x6ae78ae2), X(0x6afc7e2b), - X(0x6b1165c0), X(0x6b26419f), X(0x6b3b11c7), X(0x6b4fd634), - X(0x6b648ee6), X(0x6b793bda), X(0x6b8ddd0e), X(0x6ba27281), - X(0x6bb6fc31), X(0x6bcb7a1b), X(0x6bdfec3e), X(0x6bf45299), - X(0x6c08ad29), X(0x6c1cfbed), X(0x6c313ee4), X(0x6c45760a), - X(0x6c59a160), X(0x6c6dc0e4), X(0x6c81d493), X(0x6c95dc6d), - X(0x6ca9d86f), X(0x6cbdc899), X(0x6cd1acea), X(0x6ce5855f), - X(0x6cf951f7), X(0x6d0d12b1), X(0x6d20c78c), X(0x6d347087), - X(0x6d480da0), X(0x6d5b9ed6), X(0x6d6f2427), X(0x6d829d94), - X(0x6d960b1a), X(0x6da96cb9), X(0x6dbcc270), X(0x6dd00c3c), - X(0x6de34a1f), X(0x6df67c16), X(0x6e09a221), X(0x6e1cbc3f), - X(0x6e2fca6e), X(0x6e42ccaf), X(0x6e55c300), X(0x6e68ad60), - X(0x6e7b8bd0), X(0x6e8e5e4d), X(0x6ea124d8), X(0x6eb3df70), - X(0x6ec68e13), X(0x6ed930c3), X(0x6eebc77d), X(0x6efe5242), - X(0x6f10d111), X(0x6f2343e9), X(0x6f35aacb), X(0x6f4805b5), - X(0x6f5a54a8), X(0x6f6c97a2), X(0x6f7ecea4), X(0x6f90f9ae), - X(0x6fa318be), X(0x6fb52bd6), X(0x6fc732f4), X(0x6fd92e19), - X(0x6feb1d44), X(0x6ffd0076), X(0x700ed7ad), X(0x7020a2eb), - X(0x7032622f), X(0x7044157a), X(0x7055bcca), X(0x70675821), - X(0x7078e77e), X(0x708a6ae2), X(0x709be24c), X(0x70ad4dbd), - X(0x70bead36), X(0x70d000b5), X(0x70e1483d), X(0x70f283cc), - X(0x7103b363), X(0x7114d704), X(0x7125eead), X(0x7136fa60), - X(0x7147fa1c), X(0x7158ede4), X(0x7169d5b6), X(0x717ab193), - X(0x718b817d), X(0x719c4573), X(0x71acfd76), X(0x71bda988), - X(0x71ce49a8), X(0x71deddd7), X(0x71ef6617), X(0x71ffe267), - X(0x721052ca), X(0x7220b73e), X(0x72310fc6), X(0x72415c62), - X(0x72519d14), X(0x7261d1db), X(0x7271faba), X(0x728217b1), - X(0x729228c0), X(0x72a22dea), X(0x72b22730), X(0x72c21491), - X(0x72d1f611), X(0x72e1cbaf), X(0x72f1956c), X(0x7301534c), - X(0x7311054d), X(0x7320ab72), X(0x733045bc), X(0x733fd42d), - X(0x734f56c5), X(0x735ecd86), X(0x736e3872), X(0x737d9789), - X(0x738ceacf), X(0x739c3243), X(0x73ab6de7), X(0x73ba9dbe), - X(0x73c9c1c8), X(0x73d8da08), X(0x73e7e67f), X(0x73f6e72e), - X(0x7405dc17), X(0x7414c53c), X(0x7423a29f), X(0x74327442), - X(0x74413a26), X(0x744ff44d), X(0x745ea2b9), X(0x746d456c), - X(0x747bdc68), X(0x748a67ae), X(0x7498e741), X(0x74a75b23), - X(0x74b5c356), X(0x74c41fdb), X(0x74d270b6), X(0x74e0b5e7), - X(0x74eeef71), X(0x74fd1d57), X(0x750b3f9a), X(0x7519563c), - X(0x75276140), X(0x753560a8), X(0x75435477), X(0x75513cae), - X(0x755f1951), X(0x756cea60), X(0x757aafdf), X(0x758869d1), - X(0x75961837), X(0x75a3bb14), X(0x75b1526a), X(0x75bede3c), - X(0x75cc5e8d), X(0x75d9d35f), X(0x75e73cb5), X(0x75f49a91), - X(0x7601ecf6), X(0x760f33e6), X(0x761c6f65), X(0x76299f74), - X(0x7636c417), X(0x7643dd51), X(0x7650eb24), X(0x765ded93), - X(0x766ae4a0), X(0x7677d050), X(0x7684b0a4), X(0x7691859f), - X(0x769e4f45), X(0x76ab0d98), X(0x76b7c09c), X(0x76c46852), - X(0x76d104bf), X(0x76dd95e6), X(0x76ea1bc9), X(0x76f6966b), - X(0x770305d0), X(0x770f69fb), X(0x771bc2ef), X(0x772810af), - X(0x7734533e), X(0x77408aa0), X(0x774cb6d7), X(0x7758d7e8), - X(0x7764edd5), X(0x7770f8a2), X(0x777cf852), X(0x7788ece8), - X(0x7794d668), X(0x77a0b4d5), X(0x77ac8833), X(0x77b85085), - X(0x77c40dce), X(0x77cfc013), X(0x77db6756), X(0x77e7039b), - X(0x77f294e6), X(0x77fe1b3b), X(0x7809969c), X(0x7815070e), - X(0x78206c93), X(0x782bc731), X(0x783716ea), X(0x78425bc3), - X(0x784d95be), X(0x7858c4e1), X(0x7863e92d), X(0x786f02a8), - X(0x787a1156), X(0x78851539), X(0x78900e56), X(0x789afcb1), - X(0x78a5e04d), X(0x78b0b92f), X(0x78bb875b), X(0x78c64ad4), - X(0x78d1039e), X(0x78dbb1be), X(0x78e65537), X(0x78f0ee0e), - X(0x78fb7c46), X(0x7905ffe4), X(0x791078ec), X(0x791ae762), - X(0x79254b4a), X(0x792fa4a7), X(0x7939f380), X(0x794437d7), - X(0x794e71b0), X(0x7958a111), X(0x7962c5fd), X(0x796ce078), - X(0x7976f087), X(0x7980f62f), X(0x798af173), X(0x7994e258), - X(0x799ec8e2), X(0x79a8a515), X(0x79b276f7), X(0x79bc3e8b), - X(0x79c5fbd6), X(0x79cfaedc), X(0x79d957a2), X(0x79e2f62c), - X(0x79ec8a7f), X(0x79f6149f), X(0x79ff9492), X(0x7a090a5a), - X(0x7a1275fe), X(0x7a1bd781), X(0x7a252ee9), X(0x7a2e7c39), - X(0x7a37bf77), X(0x7a40f8a7), X(0x7a4a27ce), X(0x7a534cf0), - X(0x7a5c6813), X(0x7a65793b), X(0x7a6e806d), X(0x7a777dad), - X(0x7a807100), X(0x7a895a6b), X(0x7a9239f4), X(0x7a9b0f9e), - X(0x7aa3db6f), X(0x7aac9d6b), X(0x7ab55597), X(0x7abe03f9), - X(0x7ac6a895), X(0x7acf4370), X(0x7ad7d48f), X(0x7ae05bf6), - X(0x7ae8d9ac), X(0x7af14db5), X(0x7af9b815), X(0x7b0218d2), - X(0x7b0a6ff2), X(0x7b12bd78), X(0x7b1b016a), X(0x7b233bce), - X(0x7b2b6ca7), X(0x7b3393fc), X(0x7b3bb1d1), X(0x7b43c62c), - X(0x7b4bd111), X(0x7b53d286), X(0x7b5bca90), X(0x7b63b935), - X(0x7b6b9e78), X(0x7b737a61), X(0x7b7b4cf3), X(0x7b831634), - X(0x7b8ad629), X(0x7b928cd8), X(0x7b9a3a45), X(0x7ba1de77), - X(0x7ba97972), X(0x7bb10b3c), X(0x7bb893d9), X(0x7bc01350), - X(0x7bc789a6), X(0x7bcef6e0), X(0x7bd65b03), X(0x7bddb616), - X(0x7be5081c), X(0x7bec511c), X(0x7bf3911b), X(0x7bfac81f), - X(0x7c01f62c), X(0x7c091b49), X(0x7c10377b), X(0x7c174ac7), - X(0x7c1e5532), X(0x7c2556c4), X(0x7c2c4f80), X(0x7c333f6c), - X(0x7c3a268e), X(0x7c4104ec), X(0x7c47da8a), X(0x7c4ea76f), - X(0x7c556ba1), X(0x7c5c2724), X(0x7c62d9fe), X(0x7c698435), - X(0x7c7025cf), X(0x7c76bed0), X(0x7c7d4f40), X(0x7c83d723), - X(0x7c8a567f), X(0x7c90cd5a), X(0x7c973bb9), X(0x7c9da1a2), - X(0x7ca3ff1b), X(0x7caa542a), X(0x7cb0a0d3), X(0x7cb6e51e), - X(0x7cbd210f), X(0x7cc354ac), X(0x7cc97ffc), X(0x7ccfa304), - X(0x7cd5bdc9), X(0x7cdbd051), X(0x7ce1daa3), X(0x7ce7dcc3), - X(0x7cedd6b8), X(0x7cf3c888), X(0x7cf9b238), X(0x7cff93cf), - X(0x7d056d51), X(0x7d0b3ec5), X(0x7d110830), X(0x7d16c99a), - X(0x7d1c8306), X(0x7d22347c), X(0x7d27de00), X(0x7d2d7f9a), - X(0x7d33194f), X(0x7d38ab24), X(0x7d3e351f), X(0x7d43b748), - X(0x7d4931a2), X(0x7d4ea435), X(0x7d540f06), X(0x7d59721b), - X(0x7d5ecd7b), X(0x7d64212a), X(0x7d696d2f), X(0x7d6eb190), - X(0x7d73ee53), X(0x7d79237e), X(0x7d7e5117), X(0x7d837723), - X(0x7d8895a9), X(0x7d8dacae), X(0x7d92bc3a), X(0x7d97c451), - X(0x7d9cc4f9), X(0x7da1be39), X(0x7da6b017), X(0x7dab9a99), - X(0x7db07dc4), X(0x7db5599e), X(0x7dba2e2f), X(0x7dbefb7b), - X(0x7dc3c189), X(0x7dc8805e), X(0x7dcd3802), X(0x7dd1e879), - X(0x7dd691ca), X(0x7ddb33fb), X(0x7ddfcf12), X(0x7de46315), - X(0x7de8f00a), X(0x7ded75f8), X(0x7df1f4e3), X(0x7df66cd3), - X(0x7dfaddcd), X(0x7dff47d7), X(0x7e03aaf8), X(0x7e080735), - X(0x7e0c5c95), X(0x7e10ab1e), X(0x7e14f2d5), X(0x7e1933c1), - X(0x7e1d6de8), X(0x7e21a150), X(0x7e25cdff), X(0x7e29f3fc), - X(0x7e2e134c), X(0x7e322bf5), X(0x7e363dfd), X(0x7e3a496b), - X(0x7e3e4e45), X(0x7e424c90), X(0x7e464454), X(0x7e4a3595), - X(0x7e4e205a), X(0x7e5204aa), X(0x7e55e289), X(0x7e59b9ff), - X(0x7e5d8b12), X(0x7e6155c7), X(0x7e651a24), X(0x7e68d831), - X(0x7e6c8ff2), X(0x7e70416e), X(0x7e73ecac), X(0x7e7791b0), - X(0x7e7b3082), X(0x7e7ec927), X(0x7e825ba6), X(0x7e85e804), - X(0x7e896e48), X(0x7e8cee77), X(0x7e906899), X(0x7e93dcb2), - X(0x7e974aca), X(0x7e9ab2e5), X(0x7e9e150b), X(0x7ea17141), - X(0x7ea4c78e), X(0x7ea817f7), X(0x7eab6283), X(0x7eaea737), - X(0x7eb1e61a), X(0x7eb51f33), X(0x7eb85285), X(0x7ebb8019), - X(0x7ebea7f4), X(0x7ec1ca1d), X(0x7ec4e698), X(0x7ec7fd6d), - X(0x7ecb0ea1), X(0x7ece1a3a), X(0x7ed1203f), X(0x7ed420b6), - X(0x7ed71ba4), X(0x7eda110f), X(0x7edd00ff), X(0x7edfeb78), - X(0x7ee2d081), X(0x7ee5b01f), X(0x7ee88a5a), X(0x7eeb5f36), - X(0x7eee2eba), X(0x7ef0f8ed), X(0x7ef3bdd3), X(0x7ef67d73), - X(0x7ef937d3), X(0x7efbecf9), X(0x7efe9ceb), X(0x7f0147ae), - X(0x7f03ed4a), X(0x7f068dc4), X(0x7f092922), X(0x7f0bbf69), - X(0x7f0e50a1), X(0x7f10dcce), X(0x7f1363f7), X(0x7f15e622), - X(0x7f186355), X(0x7f1adb95), X(0x7f1d4ee9), X(0x7f1fbd57), - X(0x7f2226e4), X(0x7f248b96), X(0x7f26eb74), X(0x7f294683), - X(0x7f2b9cc9), X(0x7f2dee4d), X(0x7f303b13), X(0x7f328322), - X(0x7f34c680), X(0x7f370533), X(0x7f393f40), X(0x7f3b74ad), - X(0x7f3da581), X(0x7f3fd1c1), X(0x7f41f972), X(0x7f441c9c), - X(0x7f463b43), X(0x7f48556d), X(0x7f4a6b21), X(0x7f4c7c64), - X(0x7f4e893c), X(0x7f5091ae), X(0x7f5295c1), X(0x7f54957a), - X(0x7f5690e0), X(0x7f5887f7), X(0x7f5a7ac5), X(0x7f5c6951), - X(0x7f5e53a0), X(0x7f6039b8), X(0x7f621b9e), X(0x7f63f958), - X(0x7f65d2ed), X(0x7f67a861), X(0x7f6979ba), X(0x7f6b46ff), - X(0x7f6d1034), X(0x7f6ed560), X(0x7f709687), X(0x7f7253b1), - X(0x7f740ce1), X(0x7f75c21f), X(0x7f777370), X(0x7f7920d8), - X(0x7f7aca5f), X(0x7f7c7008), X(0x7f7e11db), X(0x7f7fafdd), - X(0x7f814a13), X(0x7f82e082), X(0x7f847331), X(0x7f860224), - X(0x7f878d62), X(0x7f8914f0), X(0x7f8a98d4), X(0x7f8c1912), - X(0x7f8d95b0), X(0x7f8f0eb5), X(0x7f908425), X(0x7f91f605), - X(0x7f93645c), X(0x7f94cf2f), X(0x7f963683), X(0x7f979a5d), - X(0x7f98fac4), X(0x7f9a57bb), X(0x7f9bb14a), X(0x7f9d0775), - X(0x7f9e5a41), X(0x7f9fa9b4), X(0x7fa0f5d3), X(0x7fa23ea4), - X(0x7fa3842b), X(0x7fa4c66f), X(0x7fa60575), X(0x7fa74141), - X(0x7fa879d9), X(0x7fa9af42), X(0x7faae182), X(0x7fac109e), - X(0x7fad3c9a), X(0x7fae657d), X(0x7faf8b4c), X(0x7fb0ae0b), - X(0x7fb1cdc0), X(0x7fb2ea70), X(0x7fb40420), X(0x7fb51ad5), - X(0x7fb62e95), X(0x7fb73f64), X(0x7fb84d48), X(0x7fb95846), - X(0x7fba6062), X(0x7fbb65a2), X(0x7fbc680c), X(0x7fbd67a3), - X(0x7fbe646d), X(0x7fbf5e70), X(0x7fc055af), X(0x7fc14a31), - X(0x7fc23bf9), X(0x7fc32b0d), X(0x7fc41773), X(0x7fc5012e), - X(0x7fc5e844), X(0x7fc6ccba), X(0x7fc7ae94), X(0x7fc88dd8), - X(0x7fc96a8a), X(0x7fca44af), X(0x7fcb1c4c), X(0x7fcbf167), - X(0x7fccc403), X(0x7fcd9425), X(0x7fce61d3), X(0x7fcf2d11), - X(0x7fcff5e3), X(0x7fd0bc4f), X(0x7fd1805a), X(0x7fd24207), - X(0x7fd3015c), X(0x7fd3be5d), X(0x7fd47910), X(0x7fd53178), - X(0x7fd5e79b), X(0x7fd69b7c), X(0x7fd74d21), X(0x7fd7fc8e), - X(0x7fd8a9c8), X(0x7fd954d4), X(0x7fd9fdb5), X(0x7fdaa471), - X(0x7fdb490b), X(0x7fdbeb89), X(0x7fdc8bef), X(0x7fdd2a42), - X(0x7fddc685), X(0x7fde60be), X(0x7fdef8f0), X(0x7fdf8f20), - X(0x7fe02353), X(0x7fe0b58d), X(0x7fe145d3), X(0x7fe1d428), - X(0x7fe26091), X(0x7fe2eb12), X(0x7fe373b0), X(0x7fe3fa6f), - X(0x7fe47f53), X(0x7fe50260), X(0x7fe5839b), X(0x7fe60308), - X(0x7fe680ab), X(0x7fe6fc88), X(0x7fe776a4), X(0x7fe7ef02), - X(0x7fe865a7), X(0x7fe8da97), X(0x7fe94dd6), X(0x7fe9bf68), - X(0x7fea2f51), X(0x7fea9d95), X(0x7feb0a39), X(0x7feb7540), - X(0x7febdeae), X(0x7fec4687), X(0x7fecaccf), X(0x7fed118b), - X(0x7fed74be), X(0x7fedd66c), X(0x7fee3698), X(0x7fee9548), - X(0x7feef27e), X(0x7fef4e3f), X(0x7fefa88e), X(0x7ff0016f), - X(0x7ff058e7), X(0x7ff0aef8), X(0x7ff103a6), X(0x7ff156f6), - X(0x7ff1a8eb), X(0x7ff1f988), X(0x7ff248d2), X(0x7ff296cc), - X(0x7ff2e37a), X(0x7ff32edf), X(0x7ff378ff), X(0x7ff3c1de), - X(0x7ff4097e), X(0x7ff44fe5), X(0x7ff49515), X(0x7ff4d911), - X(0x7ff51bde), X(0x7ff55d7f), X(0x7ff59df7), X(0x7ff5dd4a), - X(0x7ff61b7b), X(0x7ff6588d), X(0x7ff69485), X(0x7ff6cf65), - X(0x7ff70930), X(0x7ff741eb), X(0x7ff77998), X(0x7ff7b03b), - X(0x7ff7e5d7), X(0x7ff81a6f), X(0x7ff84e06), X(0x7ff880a1), - X(0x7ff8b241), X(0x7ff8e2ea), X(0x7ff912a0), X(0x7ff94165), - X(0x7ff96f3d), X(0x7ff99c2b), X(0x7ff9c831), X(0x7ff9f354), - X(0x7ffa1d95), X(0x7ffa46f9), X(0x7ffa6f81), X(0x7ffa9731), - X(0x7ffabe0d), X(0x7ffae416), X(0x7ffb0951), X(0x7ffb2dbf), - X(0x7ffb5164), X(0x7ffb7442), X(0x7ffb965d), X(0x7ffbb7b8), - X(0x7ffbd854), X(0x7ffbf836), X(0x7ffc175f), X(0x7ffc35d3), - X(0x7ffc5394), X(0x7ffc70a5), X(0x7ffc8d09), X(0x7ffca8c2), - X(0x7ffcc3d4), X(0x7ffcde3f), X(0x7ffcf809), X(0x7ffd1132), - X(0x7ffd29be), X(0x7ffd41ae), X(0x7ffd5907), X(0x7ffd6fc9), - X(0x7ffd85f9), X(0x7ffd9b97), X(0x7ffdb0a7), X(0x7ffdc52b), - X(0x7ffdd926), X(0x7ffdec99), X(0x7ffdff88), X(0x7ffe11f4), - X(0x7ffe23e0), X(0x7ffe354f), X(0x7ffe4642), X(0x7ffe56bc), - X(0x7ffe66bf), X(0x7ffe764e), X(0x7ffe856a), X(0x7ffe9416), - X(0x7ffea254), X(0x7ffeb026), X(0x7ffebd8e), X(0x7ffeca8f), - X(0x7ffed72a), X(0x7ffee362), X(0x7ffeef38), X(0x7ffefaaf), - X(0x7fff05c9), X(0x7fff1087), X(0x7fff1aec), X(0x7fff24f9), - X(0x7fff2eb1), X(0x7fff3816), X(0x7fff4128), X(0x7fff49eb), - X(0x7fff5260), X(0x7fff5a88), X(0x7fff6266), X(0x7fff69fc), - X(0x7fff714b), X(0x7fff7854), X(0x7fff7f1a), X(0x7fff859f), - X(0x7fff8be3), X(0x7fff91ea), X(0x7fff97b3), X(0x7fff9d41), - X(0x7fffa296), X(0x7fffa7b3), X(0x7fffac99), X(0x7fffb14b), - X(0x7fffb5c9), X(0x7fffba15), X(0x7fffbe31), X(0x7fffc21d), - X(0x7fffc5dc), X(0x7fffc96f), X(0x7fffccd8), X(0x7fffd016), - X(0x7fffd32d), X(0x7fffd61c), X(0x7fffd8e7), X(0x7fffdb8d), - X(0x7fffde0f), X(0x7fffe071), X(0x7fffe2b1), X(0x7fffe4d2), - X(0x7fffe6d5), X(0x7fffe8bb), X(0x7fffea85), X(0x7fffec34), - X(0x7fffedc9), X(0x7fffef45), X(0x7ffff0aa), X(0x7ffff1f7), - X(0x7ffff330), X(0x7ffff453), X(0x7ffff562), X(0x7ffff65f), - X(0x7ffff749), X(0x7ffff823), X(0x7ffff8ec), X(0x7ffff9a6), - X(0x7ffffa51), X(0x7ffffaee), X(0x7ffffb7e), X(0x7ffffc02), - X(0x7ffffc7a), X(0x7ffffce7), X(0x7ffffd4a), X(0x7ffffda3), - X(0x7ffffdf4), X(0x7ffffe3c), X(0x7ffffe7c), X(0x7ffffeb6), - X(0x7ffffee8), X(0x7fffff15), X(0x7fffff3c), X(0x7fffff5e), - X(0x7fffff7b), X(0x7fffff95), X(0x7fffffaa), X(0x7fffffbc), - X(0x7fffffcb), X(0x7fffffd7), X(0x7fffffe2), X(0x7fffffea), - X(0x7ffffff0), X(0x7ffffff5), X(0x7ffffff9), X(0x7ffffffb), - X(0x7ffffffd), X(0x7ffffffe), X(0x7fffffff), X(0x7fffffff), - X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), -}; - -#ifndef LIMIT_TO_64kHz - -static LOOKUP_T vwin8192[4096] = { - X(0x0000007c), X(0x0000045c), X(0x00000c1d), X(0x000017bd), - X(0x0000273e), X(0x00003a9f), X(0x000051e0), X(0x00006d02), - X(0x00008c03), X(0x0000aee5), X(0x0000d5a7), X(0x00010049), - X(0x00012ecb), X(0x0001612d), X(0x00019770), X(0x0001d193), - X(0x00020f96), X(0x00025178), X(0x0002973c), X(0x0002e0df), - X(0x00032e62), X(0x00037fc5), X(0x0003d509), X(0x00042e2c), - X(0x00048b30), X(0x0004ec13), X(0x000550d7), X(0x0005b97a), - X(0x000625fe), X(0x00069661), X(0x00070aa4), X(0x000782c8), - X(0x0007fecb), X(0x00087eae), X(0x00090271), X(0x00098a14), - X(0x000a1597), X(0x000aa4f9), X(0x000b383b), X(0x000bcf5d), - X(0x000c6a5f), X(0x000d0941), X(0x000dac02), X(0x000e52a3), - X(0x000efd23), X(0x000fab84), X(0x00105dc3), X(0x001113e3), - X(0x0011cde2), X(0x00128bc0), X(0x00134d7e), X(0x0014131b), - X(0x0014dc98), X(0x0015a9f4), X(0x00167b30), X(0x0017504a), - X(0x00182945), X(0x0019061e), X(0x0019e6d7), X(0x001acb6f), - X(0x001bb3e6), X(0x001ca03c), X(0x001d9071), X(0x001e8485), - X(0x001f7c79), X(0x0020784b), X(0x002177fc), X(0x00227b8c), - X(0x002382fb), X(0x00248e49), X(0x00259d76), X(0x0026b081), - X(0x0027c76b), X(0x0028e234), X(0x002a00dc), X(0x002b2361), - X(0x002c49c6), X(0x002d7409), X(0x002ea22a), X(0x002fd42a), - X(0x00310a08), X(0x003243c5), X(0x00338160), X(0x0034c2d9), - X(0x00360830), X(0x00375165), X(0x00389e78), X(0x0039ef6a), - X(0x003b4439), X(0x003c9ce6), X(0x003df971), X(0x003f59da), - X(0x0040be20), X(0x00422645), X(0x00439247), X(0x00450226), - X(0x004675e3), X(0x0047ed7e), X(0x004968f5), X(0x004ae84b), - X(0x004c6b7d), X(0x004df28d), X(0x004f7d7a), X(0x00510c44), - X(0x00529eeb), X(0x00543570), X(0x0055cfd1), X(0x00576e0f), - X(0x00591029), X(0x005ab621), X(0x005c5ff5), X(0x005e0da6), - X(0x005fbf33), X(0x0061749d), X(0x00632de4), X(0x0064eb06), - X(0x0066ac05), X(0x006870e0), X(0x006a3998), X(0x006c062b), - X(0x006dd69b), X(0x006faae6), X(0x0071830d), X(0x00735f10), - X(0x00753eef), X(0x007722a9), X(0x00790a3f), X(0x007af5b1), - X(0x007ce4fe), X(0x007ed826), X(0x0080cf29), X(0x0082ca08), - X(0x0084c8c2), X(0x0086cb57), X(0x0088d1c7), X(0x008adc11), - X(0x008cea37), X(0x008efc37), X(0x00911212), X(0x00932bc7), - X(0x00954957), X(0x00976ac2), X(0x00999006), X(0x009bb925), - X(0x009de61e), X(0x00a016f1), X(0x00a24b9e), X(0x00a48425), - X(0x00a6c086), X(0x00a900c0), X(0x00ab44d4), X(0x00ad8cc2), - X(0x00afd889), X(0x00b22829), X(0x00b47ba2), X(0x00b6d2f5), - X(0x00b92e21), X(0x00bb8d26), X(0x00bdf004), X(0x00c056ba), - X(0x00c2c149), X(0x00c52fb1), X(0x00c7a1f1), X(0x00ca180a), - X(0x00cc91fb), X(0x00cf0fc5), X(0x00d19166), X(0x00d416df), - X(0x00d6a031), X(0x00d92d5a), X(0x00dbbe5b), X(0x00de5333), - X(0x00e0ebe3), X(0x00e3886b), X(0x00e628c9), X(0x00e8ccff), - X(0x00eb750c), X(0x00ee20f0), X(0x00f0d0ab), X(0x00f3843d), - X(0x00f63ba5), X(0x00f8f6e4), X(0x00fbb5fa), X(0x00fe78e5), - X(0x01013fa7), X(0x01040a3f), X(0x0106d8ae), X(0x0109aaf2), - X(0x010c810c), X(0x010f5afb), X(0x011238c0), X(0x01151a5b), - X(0x0117ffcb), X(0x011ae910), X(0x011dd62a), X(0x0120c719), - X(0x0123bbdd), X(0x0126b476), X(0x0129b0e4), X(0x012cb126), - X(0x012fb53c), X(0x0132bd27), X(0x0135c8e6), X(0x0138d879), - X(0x013bebdf), X(0x013f031a), X(0x01421e28), X(0x01453d0a), - X(0x01485fbf), X(0x014b8648), X(0x014eb0a4), X(0x0151ded2), - X(0x015510d4), X(0x015846a8), X(0x015b8050), X(0x015ebdc9), - X(0x0161ff15), X(0x01654434), X(0x01688d24), X(0x016bd9e6), - X(0x016f2a7b), X(0x01727ee1), X(0x0175d718), X(0x01793321), - X(0x017c92fc), X(0x017ff6a7), X(0x01835e24), X(0x0186c972), - X(0x018a3890), X(0x018dab7f), X(0x0191223f), X(0x01949ccf), - X(0x01981b2f), X(0x019b9d5f), X(0x019f235f), X(0x01a2ad2f), - X(0x01a63acf), X(0x01a9cc3e), X(0x01ad617c), X(0x01b0fa8a), - X(0x01b49767), X(0x01b83813), X(0x01bbdc8d), X(0x01bf84d6), - X(0x01c330ee), X(0x01c6e0d4), X(0x01ca9488), X(0x01ce4c0b), - X(0x01d2075b), X(0x01d5c679), X(0x01d98964), X(0x01dd501d), - X(0x01e11aa3), X(0x01e4e8f6), X(0x01e8bb17), X(0x01ec9104), - X(0x01f06abd), X(0x01f44844), X(0x01f82996), X(0x01fc0eb5), - X(0x01fff7a0), X(0x0203e456), X(0x0207d4d9), X(0x020bc926), - X(0x020fc140), X(0x0213bd24), X(0x0217bcd4), X(0x021bc04e), - X(0x021fc793), X(0x0223d2a3), X(0x0227e17d), X(0x022bf421), - X(0x02300a90), X(0x023424c8), X(0x023842ca), X(0x023c6495), - X(0x02408a2a), X(0x0244b389), X(0x0248e0b0), X(0x024d11a0), - X(0x02514659), X(0x02557eda), X(0x0259bb24), X(0x025dfb35), - X(0x02623f0f), X(0x026686b1), X(0x026ad21a), X(0x026f214b), - X(0x02737443), X(0x0277cb02), X(0x027c2588), X(0x028083d5), - X(0x0284e5e9), X(0x02894bc2), X(0x028db562), X(0x029222c8), - X(0x029693f4), X(0x029b08e6), X(0x029f819d), X(0x02a3fe19), - X(0x02a87e5b), X(0x02ad0261), X(0x02b18a2c), X(0x02b615bb), - X(0x02baa50f), X(0x02bf3827), X(0x02c3cf03), X(0x02c869a3), - X(0x02cd0807), X(0x02d1aa2d), X(0x02d65017), X(0x02daf9c4), - X(0x02dfa734), X(0x02e45866), X(0x02e90d5b), X(0x02edc612), - X(0x02f2828b), X(0x02f742c6), X(0x02fc06c3), X(0x0300ce80), - X(0x030599ff), X(0x030a6940), X(0x030f3c40), X(0x03141302), - X(0x0318ed84), X(0x031dcbc6), X(0x0322adc8), X(0x0327938a), - X(0x032c7d0c), X(0x03316a4c), X(0x03365b4d), X(0x033b500c), - X(0x03404889), X(0x034544c6), X(0x034a44c0), X(0x034f4879), - X(0x03544ff0), X(0x03595b24), X(0x035e6a16), X(0x03637cc5), - X(0x03689331), X(0x036dad5a), X(0x0372cb40), X(0x0377ece2), - X(0x037d1240), X(0x03823b5a), X(0x03876830), X(0x038c98c1), - X(0x0391cd0e), X(0x03970516), X(0x039c40d8), X(0x03a18055), - X(0x03a6c38d), X(0x03ac0a7f), X(0x03b1552b), X(0x03b6a390), - X(0x03bbf5af), X(0x03c14b88), X(0x03c6a519), X(0x03cc0263), - X(0x03d16366), X(0x03d6c821), X(0x03dc3094), X(0x03e19cc0), - X(0x03e70ca2), X(0x03ec803d), X(0x03f1f78e), X(0x03f77296), - X(0x03fcf155), X(0x040273cb), X(0x0407f9f7), X(0x040d83d9), - X(0x04131170), X(0x0418a2bd), X(0x041e37c0), X(0x0423d077), - X(0x04296ce4), X(0x042f0d04), X(0x0434b0da), X(0x043a5863), - X(0x044003a0), X(0x0445b290), X(0x044b6534), X(0x04511b8b), - X(0x0456d595), X(0x045c9352), X(0x046254c1), X(0x046819e1), - X(0x046de2b4), X(0x0473af39), X(0x04797f6e), X(0x047f5355), - X(0x04852aec), X(0x048b0635), X(0x0490e52d), X(0x0496c7d6), - X(0x049cae2e), X(0x04a29836), X(0x04a885ed), X(0x04ae7753), - X(0x04b46c68), X(0x04ba652b), X(0x04c0619d), X(0x04c661bc), - X(0x04cc658a), X(0x04d26d04), X(0x04d8782c), X(0x04de8701), - X(0x04e49983), X(0x04eaafb0), X(0x04f0c98a), X(0x04f6e710), - X(0x04fd0842), X(0x05032d1e), X(0x050955a6), X(0x050f81d8), - X(0x0515b1b5), X(0x051be53d), X(0x05221c6e), X(0x05285748), - X(0x052e95cd), X(0x0534d7fa), X(0x053b1dd0), X(0x0541674e), - X(0x0547b475), X(0x054e0544), X(0x055459bb), X(0x055ab1d9), - X(0x05610d9e), X(0x05676d0a), X(0x056dd01c), X(0x057436d5), - X(0x057aa134), X(0x05810f38), X(0x058780e2), X(0x058df631), - X(0x05946f25), X(0x059aebbe), X(0x05a16bfa), X(0x05a7efdb), - X(0x05ae775f), X(0x05b50287), X(0x05bb9152), X(0x05c223c0), - X(0x05c8b9d0), X(0x05cf5382), X(0x05d5f0d6), X(0x05dc91cc), - X(0x05e33663), X(0x05e9de9c), X(0x05f08a75), X(0x05f739ee), - X(0x05fded07), X(0x0604a3c0), X(0x060b5e19), X(0x06121c11), - X(0x0618dda8), X(0x061fa2dd), X(0x06266bb1), X(0x062d3822), - X(0x06340831), X(0x063adbde), X(0x0641b328), X(0x06488e0e), - X(0x064f6c91), X(0x06564eaf), X(0x065d346a), X(0x06641dc0), - X(0x066b0ab1), X(0x0671fb3d), X(0x0678ef64), X(0x067fe724), - X(0x0686e27f), X(0x068de173), X(0x0694e400), X(0x069bea27), - X(0x06a2f3e6), X(0x06aa013d), X(0x06b1122c), X(0x06b826b3), - X(0x06bf3ed1), X(0x06c65a86), X(0x06cd79d1), X(0x06d49cb3), - X(0x06dbc32b), X(0x06e2ed38), X(0x06ea1adb), X(0x06f14c13), - X(0x06f880df), X(0x06ffb940), X(0x0706f535), X(0x070e34bd), - X(0x071577d9), X(0x071cbe88), X(0x072408c9), X(0x072b569d), - X(0x0732a802), X(0x0739fcf9), X(0x07415582), X(0x0748b19b), - X(0x07501145), X(0x0757747f), X(0x075edb49), X(0x076645a3), - X(0x076db38c), X(0x07752503), X(0x077c9a09), X(0x0784129e), - X(0x078b8ec0), X(0x07930e70), X(0x079a91ac), X(0x07a21876), - X(0x07a9a2cc), X(0x07b130ad), X(0x07b8c21b), X(0x07c05714), - X(0x07c7ef98), X(0x07cf8ba6), X(0x07d72b3f), X(0x07dece62), - X(0x07e6750e), X(0x07ee1f43), X(0x07f5cd01), X(0x07fd7e48), - X(0x08053316), X(0x080ceb6d), X(0x0814a74a), X(0x081c66af), - X(0x0824299a), X(0x082bf00c), X(0x0833ba03), X(0x083b8780), - X(0x08435882), X(0x084b2d09), X(0x08530514), X(0x085ae0a3), - X(0x0862bfb6), X(0x086aa24c), X(0x08728865), X(0x087a7201), - X(0x08825f1e), X(0x088a4fbe), X(0x089243de), X(0x089a3b80), - X(0x08a236a2), X(0x08aa3545), X(0x08b23767), X(0x08ba3d09), - X(0x08c2462a), X(0x08ca52c9), X(0x08d262e7), X(0x08da7682), - X(0x08e28d9c), X(0x08eaa832), X(0x08f2c645), X(0x08fae7d4), - X(0x09030cdf), X(0x090b3566), X(0x09136168), X(0x091b90e5), - X(0x0923c3dc), X(0x092bfa4d), X(0x09343437), X(0x093c719b), - X(0x0944b277), X(0x094cf6cc), X(0x09553e99), X(0x095d89dd), - X(0x0965d899), X(0x096e2acb), X(0x09768073), X(0x097ed991), - X(0x09873625), X(0x098f962e), X(0x0997f9ac), X(0x09a0609e), - X(0x09a8cb04), X(0x09b138dd), X(0x09b9aa29), X(0x09c21ee8), - X(0x09ca9719), X(0x09d312bc), X(0x09db91d0), X(0x09e41456), - X(0x09ec9a4b), X(0x09f523b1), X(0x09fdb087), X(0x0a0640cc), - X(0x0a0ed47f), X(0x0a176ba2), X(0x0a200632), X(0x0a28a42f), - X(0x0a31459a), X(0x0a39ea72), X(0x0a4292b5), X(0x0a4b3e65), - X(0x0a53ed80), X(0x0a5ca006), X(0x0a6555f7), X(0x0a6e0f51), - X(0x0a76cc16), X(0x0a7f8c44), X(0x0a884fda), X(0x0a9116d9), - X(0x0a99e140), X(0x0aa2af0e), X(0x0aab8043), X(0x0ab454df), - X(0x0abd2ce1), X(0x0ac60849), X(0x0acee716), X(0x0ad7c948), - X(0x0ae0aedf), X(0x0ae997d9), X(0x0af28437), X(0x0afb73f7), - X(0x0b04671b), X(0x0b0d5da0), X(0x0b165788), X(0x0b1f54d0), - X(0x0b285579), X(0x0b315983), X(0x0b3a60ec), X(0x0b436bb5), - X(0x0b4c79dd), X(0x0b558b63), X(0x0b5ea048), X(0x0b67b88a), - X(0x0b70d429), X(0x0b79f324), X(0x0b83157c), X(0x0b8c3b30), - X(0x0b95643f), X(0x0b9e90a8), X(0x0ba7c06c), X(0x0bb0f38a), - X(0x0bba2a01), X(0x0bc363d1), X(0x0bcca0f9), X(0x0bd5e17a), - X(0x0bdf2552), X(0x0be86c81), X(0x0bf1b706), X(0x0bfb04e2), - X(0x0c045613), X(0x0c0daa99), X(0x0c170274), X(0x0c205da3), - X(0x0c29bc25), X(0x0c331dfb), X(0x0c3c8323), X(0x0c45eb9e), - X(0x0c4f576a), X(0x0c58c688), X(0x0c6238f6), X(0x0c6baeb5), - X(0x0c7527c3), X(0x0c7ea421), X(0x0c8823cd), X(0x0c91a6c8), - X(0x0c9b2d10), X(0x0ca4b6a6), X(0x0cae4389), X(0x0cb7d3b8), - X(0x0cc16732), X(0x0ccafdf8), X(0x0cd49809), X(0x0cde3564), - X(0x0ce7d609), X(0x0cf179f7), X(0x0cfb212e), X(0x0d04cbad), - X(0x0d0e7974), X(0x0d182a83), X(0x0d21ded8), X(0x0d2b9673), - X(0x0d355154), X(0x0d3f0f7b), X(0x0d48d0e6), X(0x0d529595), - X(0x0d5c5d88), X(0x0d6628be), X(0x0d6ff737), X(0x0d79c8f2), - X(0x0d839dee), X(0x0d8d762c), X(0x0d9751aa), X(0x0da13068), - X(0x0dab1266), X(0x0db4f7a3), X(0x0dbee01e), X(0x0dc8cbd8), - X(0x0dd2bace), X(0x0ddcad02), X(0x0de6a272), X(0x0df09b1e), - X(0x0dfa9705), X(0x0e049627), X(0x0e0e9883), X(0x0e189e19), - X(0x0e22a6e8), X(0x0e2cb2f0), X(0x0e36c230), X(0x0e40d4a8), - X(0x0e4aea56), X(0x0e55033b), X(0x0e5f1f56), X(0x0e693ea7), - X(0x0e73612c), X(0x0e7d86e5), X(0x0e87afd3), X(0x0e91dbf3), - X(0x0e9c0b47), X(0x0ea63dcc), X(0x0eb07383), X(0x0ebaac6b), - X(0x0ec4e883), X(0x0ecf27cc), X(0x0ed96a44), X(0x0ee3afea), - X(0x0eedf8bf), X(0x0ef844c2), X(0x0f0293f2), X(0x0f0ce64e), - X(0x0f173bd6), X(0x0f21948a), X(0x0f2bf069), X(0x0f364f72), - X(0x0f40b1a5), X(0x0f4b1701), X(0x0f557f86), X(0x0f5feb32), - X(0x0f6a5a07), X(0x0f74cc02), X(0x0f7f4124), X(0x0f89b96b), - X(0x0f9434d8), X(0x0f9eb369), X(0x0fa9351e), X(0x0fb3b9f7), - X(0x0fbe41f3), X(0x0fc8cd11), X(0x0fd35b51), X(0x0fddecb2), - X(0x0fe88134), X(0x0ff318d6), X(0x0ffdb397), X(0x10085177), - X(0x1012f275), X(0x101d9691), X(0x10283dca), X(0x1032e81f), - X(0x103d9591), X(0x1048461e), X(0x1052f9c5), X(0x105db087), - X(0x10686a62), X(0x10732756), X(0x107de763), X(0x1088aa87), - X(0x109370c2), X(0x109e3a14), X(0x10a9067c), X(0x10b3d5f9), - X(0x10bea88b), X(0x10c97e31), X(0x10d456eb), X(0x10df32b8), - X(0x10ea1197), X(0x10f4f387), X(0x10ffd889), X(0x110ac09b), - X(0x1115abbe), X(0x112099ef), X(0x112b8b2f), X(0x11367f7d), - X(0x114176d9), X(0x114c7141), X(0x11576eb6), X(0x11626f36), - X(0x116d72c1), X(0x11787957), X(0x118382f6), X(0x118e8f9e), - X(0x11999f4f), X(0x11a4b208), X(0x11afc7c7), X(0x11bae08e), - X(0x11c5fc5a), X(0x11d11b2c), X(0x11dc3d02), X(0x11e761dd), - X(0x11f289ba), X(0x11fdb49b), X(0x1208e27e), X(0x12141362), - X(0x121f4748), X(0x122a7e2d), X(0x1235b812), X(0x1240f4f6), - X(0x124c34d9), X(0x125777b9), X(0x1262bd96), X(0x126e0670), - X(0x12795245), X(0x1284a115), X(0x128ff2e0), X(0x129b47a5), - X(0x12a69f63), X(0x12b1fa19), X(0x12bd57c7), X(0x12c8b86c), - X(0x12d41c08), X(0x12df829a), X(0x12eaec21), X(0x12f6589d), - X(0x1301c80c), X(0x130d3a6f), X(0x1318afc4), X(0x1324280b), - X(0x132fa344), X(0x133b216d), X(0x1346a286), X(0x1352268e), - X(0x135dad85), X(0x1369376a), X(0x1374c43c), X(0x138053fb), - X(0x138be6a5), X(0x13977c3b), X(0x13a314bc), X(0x13aeb026), - X(0x13ba4e79), X(0x13c5efb5), X(0x13d193d9), X(0x13dd3ae4), - X(0x13e8e4d6), X(0x13f491ad), X(0x1400416a), X(0x140bf40b), - X(0x1417a98f), X(0x142361f7), X(0x142f1d41), X(0x143adb6d), - X(0x14469c7a), X(0x14526067), X(0x145e2734), X(0x1469f0df), - X(0x1475bd69), X(0x14818cd0), X(0x148d5f15), X(0x14993435), - X(0x14a50c31), X(0x14b0e708), X(0x14bcc4b8), X(0x14c8a542), - X(0x14d488a5), X(0x14e06edf), X(0x14ec57f1), X(0x14f843d9), - X(0x15043297), X(0x1510242b), X(0x151c1892), X(0x15280fcd), - X(0x153409dc), X(0x154006bc), X(0x154c066e), X(0x155808f1), - X(0x15640e44), X(0x15701666), X(0x157c2157), X(0x15882f16), - X(0x15943fa2), X(0x15a052fb), X(0x15ac691f), X(0x15b8820f), - X(0x15c49dc8), X(0x15d0bc4c), X(0x15dcdd98), X(0x15e901ad), - X(0x15f52888), X(0x1601522b), X(0x160d7e93), X(0x1619adc1), - X(0x1625dfb3), X(0x16321469), X(0x163e4be2), X(0x164a861d), - X(0x1656c31a), X(0x166302d8), X(0x166f4555), X(0x167b8a92), - X(0x1687d28e), X(0x16941d47), X(0x16a06abe), X(0x16acbaf0), - X(0x16b90ddf), X(0x16c56388), X(0x16d1bbeb), X(0x16de1708), - X(0x16ea74dd), X(0x16f6d56a), X(0x170338ae), X(0x170f9ea8), - X(0x171c0758), X(0x172872bd), X(0x1734e0d6), X(0x174151a2), - X(0x174dc520), X(0x175a3b51), X(0x1766b432), X(0x17732fc4), - X(0x177fae05), X(0x178c2ef4), X(0x1798b292), X(0x17a538dd), - X(0x17b1c1d4), X(0x17be4d77), X(0x17cadbc5), X(0x17d76cbc), - X(0x17e4005e), X(0x17f096a7), X(0x17fd2f98), X(0x1809cb31), - X(0x1816696f), X(0x18230a53), X(0x182faddc), X(0x183c5408), - X(0x1848fcd8), X(0x1855a849), X(0x1862565d), X(0x186f0711), - X(0x187bba64), X(0x18887057), X(0x189528e9), X(0x18a1e418), - X(0x18aea1e3), X(0x18bb624b), X(0x18c8254e), X(0x18d4eaeb), - X(0x18e1b321), X(0x18ee7df1), X(0x18fb4b58), X(0x19081b57), - X(0x1914edec), X(0x1921c317), X(0x192e9ad6), X(0x193b7529), - X(0x19485210), X(0x19553189), X(0x19621393), X(0x196ef82e), - X(0x197bdf59), X(0x1988c913), X(0x1995b55c), X(0x19a2a432), - X(0x19af9595), X(0x19bc8983), X(0x19c97ffd), X(0x19d67900), - X(0x19e3748e), X(0x19f072a3), X(0x19fd7341), X(0x1a0a7665), - X(0x1a177c10), X(0x1a248440), X(0x1a318ef4), X(0x1a3e9c2c), - X(0x1a4babe7), X(0x1a58be24), X(0x1a65d2e2), X(0x1a72ea20), - X(0x1a8003de), X(0x1a8d201a), X(0x1a9a3ed5), X(0x1aa7600c), - X(0x1ab483bf), X(0x1ac1a9ee), X(0x1aced297), X(0x1adbfdba), - X(0x1ae92b56), X(0x1af65b69), X(0x1b038df4), X(0x1b10c2f5), - X(0x1b1dfa6b), X(0x1b2b3456), X(0x1b3870b5), X(0x1b45af87), - X(0x1b52f0ca), X(0x1b60347f), X(0x1b6d7aa4), X(0x1b7ac339), - X(0x1b880e3c), X(0x1b955bad), X(0x1ba2ab8b), X(0x1baffdd5), - X(0x1bbd528a), X(0x1bcaa9a9), X(0x1bd80332), X(0x1be55f24), - X(0x1bf2bd7d), X(0x1c001e3d), X(0x1c0d8164), X(0x1c1ae6ef), - X(0x1c284edf), X(0x1c35b932), X(0x1c4325e7), X(0x1c5094fe), - X(0x1c5e0677), X(0x1c6b7a4f), X(0x1c78f086), X(0x1c86691b), - X(0x1c93e40d), X(0x1ca1615c), X(0x1caee107), X(0x1cbc630c), - X(0x1cc9e76b), X(0x1cd76e23), X(0x1ce4f733), X(0x1cf2829a), - X(0x1d001057), X(0x1d0da06a), X(0x1d1b32d1), X(0x1d28c78c), - X(0x1d365e9a), X(0x1d43f7f9), X(0x1d5193a9), X(0x1d5f31aa), - X(0x1d6cd1f9), X(0x1d7a7497), X(0x1d881982), X(0x1d95c0ba), - X(0x1da36a3d), X(0x1db1160a), X(0x1dbec422), X(0x1dcc7482), - X(0x1dda272b), X(0x1de7dc1a), X(0x1df59350), X(0x1e034ccb), - X(0x1e11088a), X(0x1e1ec68c), X(0x1e2c86d1), X(0x1e3a4958), - X(0x1e480e20), X(0x1e55d527), X(0x1e639e6d), X(0x1e7169f1), - X(0x1e7f37b2), X(0x1e8d07b0), X(0x1e9ad9e8), X(0x1ea8ae5b), - X(0x1eb68507), X(0x1ec45dec), X(0x1ed23908), X(0x1ee0165b), - X(0x1eedf5e4), X(0x1efbd7a1), X(0x1f09bb92), X(0x1f17a1b6), - X(0x1f258a0d), X(0x1f337494), X(0x1f41614b), X(0x1f4f5032), - X(0x1f5d4147), X(0x1f6b3489), X(0x1f7929f7), X(0x1f872192), - X(0x1f951b56), X(0x1fa31744), X(0x1fb1155b), X(0x1fbf159a), - X(0x1fcd17ff), X(0x1fdb1c8b), X(0x1fe9233b), X(0x1ff72c0f), - X(0x20053706), X(0x20134420), X(0x2021535a), X(0x202f64b4), - X(0x203d782e), X(0x204b8dc6), X(0x2059a57c), X(0x2067bf4e), - X(0x2075db3b), X(0x2083f943), X(0x20921964), X(0x20a03b9e), - X(0x20ae5fef), X(0x20bc8657), X(0x20caaed5), X(0x20d8d967), - X(0x20e7060e), X(0x20f534c7), X(0x21036592), X(0x2111986e), - X(0x211fcd59), X(0x212e0454), X(0x213c3d5d), X(0x214a7873), - X(0x2158b594), X(0x2166f4c1), X(0x217535f8), X(0x21837938), - X(0x2191be81), X(0x21a005d0), X(0x21ae4f26), X(0x21bc9a81), - X(0x21cae7e0), X(0x21d93743), X(0x21e788a8), X(0x21f5dc0e), - X(0x22043174), X(0x221288da), X(0x2220e23e), X(0x222f3da0), - X(0x223d9afe), X(0x224bfa58), X(0x225a5bac), X(0x2268bef9), - X(0x2277243f), X(0x22858b7d), X(0x2293f4b0), X(0x22a25fda), - X(0x22b0ccf8), X(0x22bf3c09), X(0x22cdad0d), X(0x22dc2002), - X(0x22ea94e8), X(0x22f90bbe), X(0x23078482), X(0x2315ff33), - X(0x23247bd1), X(0x2332fa5b), X(0x23417acf), X(0x234ffd2c), - X(0x235e8173), X(0x236d07a0), X(0x237b8fb4), X(0x238a19ae), - X(0x2398a58c), X(0x23a7334d), X(0x23b5c2f1), X(0x23c45477), - X(0x23d2e7dd), X(0x23e17d22), X(0x23f01446), X(0x23fead47), - X(0x240d4825), X(0x241be4dd), X(0x242a8371), X(0x243923dd), - X(0x2447c622), X(0x24566a3e), X(0x24651031), X(0x2473b7f8), - X(0x24826194), X(0x24910d03), X(0x249fba44), X(0x24ae6957), - X(0x24bd1a39), X(0x24cbccea), X(0x24da816a), X(0x24e937b7), - X(0x24f7efcf), X(0x2506a9b3), X(0x25156560), X(0x252422d6), - X(0x2532e215), X(0x2541a31a), X(0x255065e4), X(0x255f2a74), - X(0x256df0c7), X(0x257cb8dd), X(0x258b82b4), X(0x259a4e4c), - X(0x25a91ba4), X(0x25b7eaba), X(0x25c6bb8e), X(0x25d58e1e), - X(0x25e46269), X(0x25f3386e), X(0x2602102d), X(0x2610e9a4), - X(0x261fc4d3), X(0x262ea1b7), X(0x263d8050), X(0x264c609e), - X(0x265b429e), X(0x266a2650), X(0x26790bb3), X(0x2687f2c6), - X(0x2696db88), X(0x26a5c5f7), X(0x26b4b213), X(0x26c39fda), - X(0x26d28f4c), X(0x26e18067), X(0x26f0732b), X(0x26ff6796), - X(0x270e5da7), X(0x271d555d), X(0x272c4eb7), X(0x273b49b5), - X(0x274a4654), X(0x27594495), X(0x27684475), X(0x277745f4), - X(0x27864910), X(0x27954dc9), X(0x27a4541e), X(0x27b35c0d), - X(0x27c26596), X(0x27d170b7), X(0x27e07d6f), X(0x27ef8bbd), - X(0x27fe9ba0), X(0x280dad18), X(0x281cc022), X(0x282bd4be), - X(0x283aeaeb), X(0x284a02a7), X(0x28591bf2), X(0x286836cb), - X(0x28775330), X(0x28867120), X(0x2895909b), X(0x28a4b19e), - X(0x28b3d42a), X(0x28c2f83d), X(0x28d21dd5), X(0x28e144f3), - X(0x28f06d94), X(0x28ff97b8), X(0x290ec35d), X(0x291df082), - X(0x292d1f27), X(0x293c4f4a), X(0x294b80eb), X(0x295ab407), - X(0x2969e89e), X(0x29791eaf), X(0x29885639), X(0x29978f3b), - X(0x29a6c9b3), X(0x29b605a0), X(0x29c54302), X(0x29d481d7), - X(0x29e3c21e), X(0x29f303d6), X(0x2a0246fd), X(0x2a118b94), - X(0x2a20d198), X(0x2a301909), X(0x2a3f61e6), X(0x2a4eac2c), - X(0x2a5df7dc), X(0x2a6d44f4), X(0x2a7c9374), X(0x2a8be359), - X(0x2a9b34a2), X(0x2aaa8750), X(0x2ab9db60), X(0x2ac930d1), - X(0x2ad887a3), X(0x2ae7dfd3), X(0x2af73962), X(0x2b06944e), - X(0x2b15f096), X(0x2b254e38), X(0x2b34ad34), X(0x2b440d89), - X(0x2b536f34), X(0x2b62d236), X(0x2b72368d), X(0x2b819c38), - X(0x2b910336), X(0x2ba06b86), X(0x2bafd526), X(0x2bbf4015), - X(0x2bceac53), X(0x2bde19de), X(0x2bed88b5), X(0x2bfcf8d7), - X(0x2c0c6a43), X(0x2c1bdcf7), X(0x2c2b50f3), X(0x2c3ac635), - X(0x2c4a3cbd), X(0x2c59b488), X(0x2c692d97), X(0x2c78a7e7), - X(0x2c882378), X(0x2c97a049), X(0x2ca71e58), X(0x2cb69da4), - X(0x2cc61e2c), X(0x2cd59ff0), X(0x2ce522ed), X(0x2cf4a723), - X(0x2d042c90), X(0x2d13b334), X(0x2d233b0d), X(0x2d32c41a), - X(0x2d424e5a), X(0x2d51d9cc), X(0x2d61666e), X(0x2d70f440), - X(0x2d808340), X(0x2d90136e), X(0x2d9fa4c7), X(0x2daf374c), - X(0x2dbecafa), X(0x2dce5fd1), X(0x2dddf5cf), X(0x2ded8cf4), - X(0x2dfd253d), X(0x2e0cbeab), X(0x2e1c593b), X(0x2e2bf4ed), - X(0x2e3b91c0), X(0x2e4b2fb1), X(0x2e5acec1), X(0x2e6a6eee), - X(0x2e7a1037), X(0x2e89b29b), X(0x2e995618), X(0x2ea8faad), - X(0x2eb8a05a), X(0x2ec8471c), X(0x2ed7eef4), X(0x2ee797df), - X(0x2ef741dc), X(0x2f06eceb), X(0x2f16990a), X(0x2f264639), - X(0x2f35f475), X(0x2f45a3bd), X(0x2f555412), X(0x2f650570), - X(0x2f74b7d8), X(0x2f846b48), X(0x2f941fbe), X(0x2fa3d53a), - X(0x2fb38bbb), X(0x2fc3433f), X(0x2fd2fbc5), X(0x2fe2b54c), - X(0x2ff26fd3), X(0x30022b58), X(0x3011e7db), X(0x3021a55a), - X(0x303163d4), X(0x30412348), X(0x3050e3b5), X(0x3060a519), - X(0x30706773), X(0x30802ac3), X(0x308fef06), X(0x309fb43d), - X(0x30af7a65), X(0x30bf417d), X(0x30cf0985), X(0x30ded27a), - X(0x30ee9c5d), X(0x30fe672b), X(0x310e32e3), X(0x311dff85), - X(0x312dcd0f), X(0x313d9b80), X(0x314d6ad7), X(0x315d3b12), - X(0x316d0c30), X(0x317cde31), X(0x318cb113), X(0x319c84d4), - X(0x31ac5974), X(0x31bc2ef1), X(0x31cc054b), X(0x31dbdc7f), - X(0x31ebb48e), X(0x31fb8d74), X(0x320b6733), X(0x321b41c7), - X(0x322b1d31), X(0x323af96e), X(0x324ad67e), X(0x325ab45f), - X(0x326a9311), X(0x327a7291), X(0x328a52e0), X(0x329a33fb), - X(0x32aa15e1), X(0x32b9f892), X(0x32c9dc0c), X(0x32d9c04d), - X(0x32e9a555), X(0x32f98b22), X(0x330971b4), X(0x33195909), - X(0x3329411f), X(0x333929f6), X(0x3349138c), X(0x3358fde1), - X(0x3368e8f2), X(0x3378d4c0), X(0x3388c147), X(0x3398ae89), - X(0x33a89c82), X(0x33b88b32), X(0x33c87a98), X(0x33d86ab2), - X(0x33e85b80), X(0x33f84d00), X(0x34083f30), X(0x34183210), - X(0x3428259f), X(0x343819db), X(0x34480ec3), X(0x34580455), - X(0x3467fa92), X(0x3477f176), X(0x3487e902), X(0x3497e134), - X(0x34a7da0a), X(0x34b7d384), X(0x34c7cda0), X(0x34d7c85e), - X(0x34e7c3bb), X(0x34f7bfb7), X(0x3507bc50), X(0x3517b985), - X(0x3527b756), X(0x3537b5c0), X(0x3547b4c3), X(0x3557b45d), - X(0x3567b48d), X(0x3577b552), X(0x3587b6aa), X(0x3597b895), - X(0x35a7bb12), X(0x35b7be1e), X(0x35c7c1b9), X(0x35d7c5e1), - X(0x35e7ca96), X(0x35f7cfd6), X(0x3607d5a0), X(0x3617dbf3), - X(0x3627e2cd), X(0x3637ea2d), X(0x3647f212), X(0x3657fa7b), - X(0x36680366), X(0x36780cd2), X(0x368816bf), X(0x3698212b), - X(0x36a82c14), X(0x36b83779), X(0x36c8435a), X(0x36d84fb4), - X(0x36e85c88), X(0x36f869d2), X(0x37087793), X(0x371885c9), - X(0x37289473), X(0x3738a38f), X(0x3748b31d), X(0x3758c31a), - X(0x3768d387), X(0x3778e461), X(0x3788f5a7), X(0x37990759), - X(0x37a91975), X(0x37b92bf9), X(0x37c93ee4), X(0x37d95236), - X(0x37e965ed), X(0x37f97a08), X(0x38098e85), X(0x3819a363), - X(0x3829b8a2), X(0x3839ce3f), X(0x3849e43a), X(0x3859fa91), - X(0x386a1143), X(0x387a284f), X(0x388a3fb4), X(0x389a5770), - X(0x38aa6f83), X(0x38ba87ea), X(0x38caa0a5), X(0x38dab9b2), - X(0x38ead311), X(0x38faecbf), X(0x390b06bc), X(0x391b2107), - X(0x392b3b9e), X(0x393b5680), X(0x394b71ac), X(0x395b8d20), - X(0x396ba8dc), X(0x397bc4dd), X(0x398be124), X(0x399bfdae), - X(0x39ac1a7a), X(0x39bc3788), X(0x39cc54d5), X(0x39dc7261), - X(0x39ec902a), X(0x39fcae2f), X(0x3a0ccc70), X(0x3a1ceaea), - X(0x3a2d099c), X(0x3a3d2885), X(0x3a4d47a5), X(0x3a5d66f9), - X(0x3a6d8680), X(0x3a7da63a), X(0x3a8dc625), X(0x3a9de63f), - X(0x3aae0688), X(0x3abe26fe), X(0x3ace47a0), X(0x3ade686d), - X(0x3aee8963), X(0x3afeaa82), X(0x3b0ecbc7), X(0x3b1eed32), - X(0x3b2f0ec2), X(0x3b3f3075), X(0x3b4f524a), X(0x3b5f7440), - X(0x3b6f9656), X(0x3b7fb889), X(0x3b8fdada), X(0x3b9ffd46), - X(0x3bb01fce), X(0x3bc0426e), X(0x3bd06526), X(0x3be087f6), - X(0x3bf0aada), X(0x3c00cdd4), X(0x3c10f0e0), X(0x3c2113fe), - X(0x3c31372d), X(0x3c415a6b), X(0x3c517db7), X(0x3c61a110), - X(0x3c71c475), X(0x3c81e7e4), X(0x3c920b5c), X(0x3ca22edc), - X(0x3cb25262), X(0x3cc275ee), X(0x3cd2997e), X(0x3ce2bd11), - X(0x3cf2e0a6), X(0x3d03043b), X(0x3d1327cf), X(0x3d234b61), - X(0x3d336ef0), X(0x3d43927a), X(0x3d53b5ff), X(0x3d63d97c), - X(0x3d73fcf1), X(0x3d84205c), X(0x3d9443bd), X(0x3da46711), - X(0x3db48a58), X(0x3dc4ad91), X(0x3dd4d0ba), X(0x3de4f3d1), - X(0x3df516d7), X(0x3e0539c9), X(0x3e155ca6), X(0x3e257f6d), - X(0x3e35a21d), X(0x3e45c4b4), X(0x3e55e731), X(0x3e660994), - X(0x3e762bda), X(0x3e864e03), X(0x3e96700d), X(0x3ea691f7), - X(0x3eb6b3bf), X(0x3ec6d565), X(0x3ed6f6e8), X(0x3ee71845), - X(0x3ef7397c), X(0x3f075a8c), X(0x3f177b73), X(0x3f279c30), - X(0x3f37bcc2), X(0x3f47dd27), X(0x3f57fd5f), X(0x3f681d68), - X(0x3f783d40), X(0x3f885ce7), X(0x3f987c5c), X(0x3fa89b9c), - X(0x3fb8baa7), X(0x3fc8d97c), X(0x3fd8f819), X(0x3fe9167e), - X(0x3ff934a8), X(0x40095296), X(0x40197049), X(0x40298dbd), - X(0x4039aaf2), X(0x4049c7e7), X(0x4059e49a), X(0x406a010a), - X(0x407a1d36), X(0x408a391d), X(0x409a54bd), X(0x40aa7015), - X(0x40ba8b25), X(0x40caa5ea), X(0x40dac063), X(0x40eada90), - X(0x40faf46e), X(0x410b0dfe), X(0x411b273d), X(0x412b402a), - X(0x413b58c4), X(0x414b710a), X(0x415b88fa), X(0x416ba093), - X(0x417bb7d5), X(0x418bcebe), X(0x419be54c), X(0x41abfb7e), - X(0x41bc1153), X(0x41cc26ca), X(0x41dc3be2), X(0x41ec5099), - X(0x41fc64ef), X(0x420c78e1), X(0x421c8c6f), X(0x422c9f97), - X(0x423cb258), X(0x424cc4b2), X(0x425cd6a2), X(0x426ce827), - X(0x427cf941), X(0x428d09ee), X(0x429d1a2c), X(0x42ad29fb), - X(0x42bd3959), X(0x42cd4846), X(0x42dd56bf), X(0x42ed64c3), - X(0x42fd7252), X(0x430d7f6a), X(0x431d8c0a), X(0x432d9831), - X(0x433da3dd), X(0x434daf0d), X(0x435db9c0), X(0x436dc3f5), - X(0x437dcdab), X(0x438dd6df), X(0x439ddf92), X(0x43ade7c1), - X(0x43bdef6c), X(0x43cdf691), X(0x43ddfd2f), X(0x43ee0345), - X(0x43fe08d2), X(0x440e0dd4), X(0x441e124b), X(0x442e1634), - X(0x443e198f), X(0x444e1c5a), X(0x445e1e95), X(0x446e203e), - X(0x447e2153), X(0x448e21d5), X(0x449e21c0), X(0x44ae2115), - X(0x44be1fd1), X(0x44ce1df4), X(0x44de1b7d), X(0x44ee186a), - X(0x44fe14ba), X(0x450e106b), X(0x451e0b7e), X(0x452e05ef), - X(0x453dffbf), X(0x454df8eb), X(0x455df173), X(0x456de956), - X(0x457de092), X(0x458dd726), X(0x459dcd10), X(0x45adc251), - X(0x45bdb6e5), X(0x45cdaacd), X(0x45dd9e06), X(0x45ed9091), - X(0x45fd826a), X(0x460d7392), X(0x461d6407), X(0x462d53c8), - X(0x463d42d4), X(0x464d3129), X(0x465d1ec6), X(0x466d0baa), - X(0x467cf7d3), X(0x468ce342), X(0x469ccdf3), X(0x46acb7e7), - X(0x46bca11c), X(0x46cc8990), X(0x46dc7143), X(0x46ec5833), - X(0x46fc3e5f), X(0x470c23c6), X(0x471c0867), X(0x472bec40), - X(0x473bcf50), X(0x474bb196), X(0x475b9311), X(0x476b73c0), - X(0x477b53a1), X(0x478b32b4), X(0x479b10f6), X(0x47aaee67), - X(0x47bacb06), X(0x47caa6d1), X(0x47da81c7), X(0x47ea5be7), - X(0x47fa3530), X(0x480a0da1), X(0x4819e537), X(0x4829bbf3), - X(0x483991d3), X(0x484966d6), X(0x48593afb), X(0x48690e3f), - X(0x4878e0a3), X(0x4888b225), X(0x489882c4), X(0x48a8527e), - X(0x48b82153), X(0x48c7ef41), X(0x48d7bc47), X(0x48e78863), - X(0x48f75396), X(0x49071ddc), X(0x4916e736), X(0x4926afa2), - X(0x4936771f), X(0x49463dac), X(0x49560347), X(0x4965c7ef), - X(0x49758ba4), X(0x49854e63), X(0x4995102c), X(0x49a4d0fe), - X(0x49b490d7), X(0x49c44fb6), X(0x49d40d9a), X(0x49e3ca82), - X(0x49f3866c), X(0x4a034159), X(0x4a12fb45), X(0x4a22b430), - X(0x4a326c19), X(0x4a4222ff), X(0x4a51d8e1), X(0x4a618dbd), - X(0x4a714192), X(0x4a80f45f), X(0x4a90a623), X(0x4aa056dd), - X(0x4ab0068b), X(0x4abfb52c), X(0x4acf62c0), X(0x4adf0f44), - X(0x4aeebab9), X(0x4afe651c), X(0x4b0e0e6c), X(0x4b1db6a9), - X(0x4b2d5dd1), X(0x4b3d03e2), X(0x4b4ca8dd), X(0x4b5c4cbf), - X(0x4b6bef88), X(0x4b7b9136), X(0x4b8b31c8), X(0x4b9ad13d), - X(0x4baa6f93), X(0x4bba0ccb), X(0x4bc9a8e2), X(0x4bd943d7), - X(0x4be8dda9), X(0x4bf87658), X(0x4c080de1), X(0x4c17a444), - X(0x4c27397f), X(0x4c36cd92), X(0x4c46607b), X(0x4c55f239), - X(0x4c6582cb), X(0x4c75122f), X(0x4c84a065), X(0x4c942d6c), - X(0x4ca3b942), X(0x4cb343e6), X(0x4cc2cd57), X(0x4cd25594), - X(0x4ce1dc9c), X(0x4cf1626d), X(0x4d00e707), X(0x4d106a68), - X(0x4d1fec8f), X(0x4d2f6d7a), X(0x4d3eed2a), X(0x4d4e6b9d), - X(0x4d5de8d1), X(0x4d6d64c5), X(0x4d7cdf79), X(0x4d8c58eb), - X(0x4d9bd11a), X(0x4dab4804), X(0x4dbabdaa), X(0x4dca3209), - X(0x4dd9a520), X(0x4de916ef), X(0x4df88774), X(0x4e07f6ae), - X(0x4e17649c), X(0x4e26d13c), X(0x4e363c8f), X(0x4e45a692), - X(0x4e550f44), X(0x4e6476a4), X(0x4e73dcb2), X(0x4e83416c), - X(0x4e92a4d1), X(0x4ea206df), X(0x4eb16796), X(0x4ec0c6f5), - X(0x4ed024fa), X(0x4edf81a5), X(0x4eeedcf3), X(0x4efe36e5), - X(0x4f0d8f79), X(0x4f1ce6ad), X(0x4f2c3c82), X(0x4f3b90f4), - X(0x4f4ae405), X(0x4f5a35b1), X(0x4f6985fa), X(0x4f78d4dc), - X(0x4f882257), X(0x4f976e6a), X(0x4fa6b914), X(0x4fb60254), - X(0x4fc54a28), X(0x4fd49090), X(0x4fe3d58b), X(0x4ff31917), - X(0x50025b33), X(0x50119bde), X(0x5020db17), X(0x503018dd), - X(0x503f552f), X(0x504e900b), X(0x505dc971), X(0x506d0160), - X(0x507c37d7), X(0x508b6cd3), X(0x509aa055), X(0x50a9d25b), - X(0x50b902e4), X(0x50c831ef), X(0x50d75f7b), X(0x50e68b87), - X(0x50f5b612), X(0x5104df1a), X(0x5114069f), X(0x51232ca0), - X(0x5132511a), X(0x5141740f), X(0x5150957b), X(0x515fb55f), - X(0x516ed3b8), X(0x517df087), X(0x518d0bca), X(0x519c257f), - X(0x51ab3da7), X(0x51ba543f), X(0x51c96947), X(0x51d87cbd), - X(0x51e78ea1), X(0x51f69ef1), X(0x5205adad), X(0x5214bad3), - X(0x5223c662), X(0x5232d05a), X(0x5241d8b9), X(0x5250df7d), - X(0x525fe4a7), X(0x526ee835), X(0x527dea26), X(0x528cea78), - X(0x529be92c), X(0x52aae63f), X(0x52b9e1b0), X(0x52c8db80), - X(0x52d7d3ac), X(0x52e6ca33), X(0x52f5bf15), X(0x5304b251), - X(0x5313a3e5), X(0x532293d0), X(0x53318212), X(0x53406ea8), - X(0x534f5993), X(0x535e42d2), X(0x536d2a62), X(0x537c1043), - X(0x538af475), X(0x5399d6f6), X(0x53a8b7c4), X(0x53b796e0), - X(0x53c67447), X(0x53d54ffa), X(0x53e429f6), X(0x53f3023b), - X(0x5401d8c8), X(0x5410ad9c), X(0x541f80b5), X(0x542e5213), - X(0x543d21b5), X(0x544bef9a), X(0x545abbc0), X(0x54698627), - X(0x54784ece), X(0x548715b3), X(0x5495dad6), X(0x54a49e35), - X(0x54b35fd0), X(0x54c21fa6), X(0x54d0ddb5), X(0x54df99fd), - X(0x54ee547c), X(0x54fd0d32), X(0x550bc41d), X(0x551a793d), - X(0x55292c91), X(0x5537de16), X(0x55468dce), X(0x55553bb6), - X(0x5563e7cd), X(0x55729213), X(0x55813a87), X(0x558fe127), - X(0x559e85f2), X(0x55ad28e9), X(0x55bbca08), X(0x55ca6950), - X(0x55d906c0), X(0x55e7a257), X(0x55f63c13), X(0x5604d3f4), - X(0x561369f8), X(0x5621fe1f), X(0x56309067), X(0x563f20d1), - X(0x564daf5a), X(0x565c3c02), X(0x566ac6c7), X(0x56794faa), - X(0x5687d6a8), X(0x56965bc1), X(0x56a4def4), X(0x56b36040), - X(0x56c1dfa4), X(0x56d05d1f), X(0x56ded8af), X(0x56ed5255), - X(0x56fbca0f), X(0x570a3fdc), X(0x5718b3bc), X(0x572725ac), - X(0x573595ad), X(0x574403bd), X(0x57526fdb), X(0x5760da07), - X(0x576f423f), X(0x577da883), X(0x578c0cd1), X(0x579a6f29), - X(0x57a8cf8a), X(0x57b72df2), X(0x57c58a61), X(0x57d3e4d6), - X(0x57e23d50), X(0x57f093cd), X(0x57fee84e), X(0x580d3ad1), - X(0x581b8b54), X(0x5829d9d8), X(0x5838265c), X(0x584670dd), - X(0x5854b95c), X(0x5862ffd8), X(0x5871444f), X(0x587f86c1), - X(0x588dc72c), X(0x589c0591), X(0x58aa41ed), X(0x58b87c40), - X(0x58c6b489), X(0x58d4eac7), X(0x58e31ef9), X(0x58f1511f), - X(0x58ff8137), X(0x590daf40), X(0x591bdb3a), X(0x592a0524), - X(0x59382cfc), X(0x594652c2), X(0x59547675), X(0x59629815), - X(0x5970b79f), X(0x597ed513), X(0x598cf071), X(0x599b09b7), - X(0x59a920e5), X(0x59b735f9), X(0x59c548f4), X(0x59d359d2), - X(0x59e16895), X(0x59ef753b), X(0x59fd7fc4), X(0x5a0b882d), - X(0x5a198e77), X(0x5a2792a0), X(0x5a3594a9), X(0x5a43948e), - X(0x5a519251), X(0x5a5f8df0), X(0x5a6d876a), X(0x5a7b7ebe), - X(0x5a8973ec), X(0x5a9766f2), X(0x5aa557d0), X(0x5ab34685), - X(0x5ac1330f), X(0x5acf1d6f), X(0x5add05a3), X(0x5aeaebaa), - X(0x5af8cf84), X(0x5b06b12f), X(0x5b1490ab), X(0x5b226df7), - X(0x5b304912), X(0x5b3e21fc), X(0x5b4bf8b2), X(0x5b59cd35), - X(0x5b679f84), X(0x5b756f9e), X(0x5b833d82), X(0x5b91092e), - X(0x5b9ed2a3), X(0x5bac99e0), X(0x5bba5ee3), X(0x5bc821ac), - X(0x5bd5e23a), X(0x5be3a08c), X(0x5bf15ca1), X(0x5bff1679), - X(0x5c0cce12), X(0x5c1a836c), X(0x5c283686), X(0x5c35e760), - X(0x5c4395f7), X(0x5c51424c), X(0x5c5eec5e), X(0x5c6c942b), - X(0x5c7a39b4), X(0x5c87dcf7), X(0x5c957df3), X(0x5ca31ca8), - X(0x5cb0b915), X(0x5cbe5338), X(0x5ccbeb12), X(0x5cd980a1), - X(0x5ce713e5), X(0x5cf4a4dd), X(0x5d023387), X(0x5d0fbfe4), - X(0x5d1d49f2), X(0x5d2ad1b1), X(0x5d38571f), X(0x5d45da3c), - X(0x5d535b08), X(0x5d60d981), X(0x5d6e55a7), X(0x5d7bcf78), - X(0x5d8946f5), X(0x5d96bc1c), X(0x5da42eec), X(0x5db19f65), - X(0x5dbf0d86), X(0x5dcc794e), X(0x5dd9e2bd), X(0x5de749d1), - X(0x5df4ae8a), X(0x5e0210e7), X(0x5e0f70e7), X(0x5e1cce8a), - X(0x5e2a29ce), X(0x5e3782b4), X(0x5e44d93a), X(0x5e522d5f), - X(0x5e5f7f23), X(0x5e6cce85), X(0x5e7a1b85), X(0x5e876620), - X(0x5e94ae58), X(0x5ea1f42a), X(0x5eaf3797), X(0x5ebc789d), - X(0x5ec9b73c), X(0x5ed6f372), X(0x5ee42d41), X(0x5ef164a5), - X(0x5efe999f), X(0x5f0bcc2f), X(0x5f18fc52), X(0x5f262a09), - X(0x5f335553), X(0x5f407e2f), X(0x5f4da49d), X(0x5f5ac89b), - X(0x5f67ea29), X(0x5f750946), X(0x5f8225f2), X(0x5f8f402b), - X(0x5f9c57f2), X(0x5fa96d44), X(0x5fb68023), X(0x5fc3908c), - X(0x5fd09e7f), X(0x5fdda9fc), X(0x5feab302), X(0x5ff7b990), - X(0x6004bda5), X(0x6011bf40), X(0x601ebe62), X(0x602bbb09), - X(0x6038b534), X(0x6045ace4), X(0x6052a216), X(0x605f94cb), - X(0x606c8502), X(0x607972b9), X(0x60865df2), X(0x609346aa), - X(0x60a02ce1), X(0x60ad1096), X(0x60b9f1c9), X(0x60c6d079), - X(0x60d3aca5), X(0x60e0864d), X(0x60ed5d70), X(0x60fa320d), - X(0x61070424), X(0x6113d3b4), X(0x6120a0bc), X(0x612d6b3c), - X(0x613a3332), X(0x6146f89f), X(0x6153bb82), X(0x61607bd9), - X(0x616d39a5), X(0x6179f4e5), X(0x6186ad98), X(0x619363bd), - X(0x61a01753), X(0x61acc85b), X(0x61b976d3), X(0x61c622bc), - X(0x61d2cc13), X(0x61df72d8), X(0x61ec170c), X(0x61f8b8ad), - X(0x620557ba), X(0x6211f434), X(0x621e8e18), X(0x622b2568), - X(0x6237ba21), X(0x62444c44), X(0x6250dbd0), X(0x625d68c4), - X(0x6269f320), X(0x62767ae2), X(0x6283000b), X(0x628f829a), - X(0x629c028e), X(0x62a87fe6), X(0x62b4faa2), X(0x62c172c2), - X(0x62cde844), X(0x62da5b29), X(0x62e6cb6e), X(0x62f33915), - X(0x62ffa41c), X(0x630c0c83), X(0x63187248), X(0x6324d56d), - X(0x633135ef), X(0x633d93ce), X(0x6349ef0b), X(0x635647a3), - X(0x63629d97), X(0x636ef0e6), X(0x637b418f), X(0x63878f92), - X(0x6393daef), X(0x63a023a4), X(0x63ac69b1), X(0x63b8ad15), - X(0x63c4edd1), X(0x63d12be3), X(0x63dd674b), X(0x63e9a008), - X(0x63f5d61a), X(0x64020980), X(0x640e3a39), X(0x641a6846), - X(0x642693a5), X(0x6432bc56), X(0x643ee258), X(0x644b05ab), - X(0x6457264e), X(0x64634441), X(0x646f5f83), X(0x647b7814), - X(0x64878df3), X(0x6493a120), X(0x649fb199), X(0x64abbf5f), - X(0x64b7ca71), X(0x64c3d2ce), X(0x64cfd877), X(0x64dbdb69), - X(0x64e7dba6), X(0x64f3d92b), X(0x64ffd3fa), X(0x650bcc11), - X(0x6517c16f), X(0x6523b415), X(0x652fa402), X(0x653b9134), - X(0x65477bad), X(0x6553636a), X(0x655f486d), X(0x656b2ab3), - X(0x65770a3d), X(0x6582e70a), X(0x658ec11a), X(0x659a986d), - X(0x65a66d00), X(0x65b23ed5), X(0x65be0deb), X(0x65c9da41), - X(0x65d5a3d7), X(0x65e16aac), X(0x65ed2ebf), X(0x65f8f011), - X(0x6604aea1), X(0x66106a6e), X(0x661c2377), X(0x6627d9be), - X(0x66338d40), X(0x663f3dfd), X(0x664aebf5), X(0x66569728), - X(0x66623f95), X(0x666de53b), X(0x6679881b), X(0x66852833), - X(0x6690c583), X(0x669c600b), X(0x66a7f7ca), X(0x66b38cc0), - X(0x66bf1eec), X(0x66caae4f), X(0x66d63ae6), X(0x66e1c4b3), - X(0x66ed4bb4), X(0x66f8cfea), X(0x67045153), X(0x670fcfef), - X(0x671b4bbe), X(0x6726c4bf), X(0x67323af3), X(0x673dae58), - X(0x67491eee), X(0x67548cb5), X(0x675ff7ab), X(0x676b5fd2), - X(0x6776c528), X(0x678227ad), X(0x678d8761), X(0x6798e443), - X(0x67a43e52), X(0x67af958f), X(0x67bae9f9), X(0x67c63b8f), - X(0x67d18a52), X(0x67dcd640), X(0x67e81f59), X(0x67f3659d), - X(0x67fea90c), X(0x6809e9a5), X(0x68152768), X(0x68206254), - X(0x682b9a68), X(0x6836cfa6), X(0x6842020b), X(0x684d3199), - X(0x68585e4d), X(0x68638829), X(0x686eaf2b), X(0x6879d354), - X(0x6884f4a2), X(0x68901316), X(0x689b2eb0), X(0x68a6476d), - X(0x68b15d50), X(0x68bc7056), X(0x68c78080), X(0x68d28dcd), - X(0x68dd983e), X(0x68e89fd0), X(0x68f3a486), X(0x68fea65d), - X(0x6909a555), X(0x6914a16f), X(0x691f9aa9), X(0x692a9104), - X(0x69358480), X(0x6940751b), X(0x694b62d5), X(0x69564daf), - X(0x696135a7), X(0x696c1abe), X(0x6976fcf3), X(0x6981dc46), - X(0x698cb8b6), X(0x69979243), X(0x69a268ed), X(0x69ad3cb4), - X(0x69b80d97), X(0x69c2db96), X(0x69cda6b0), X(0x69d86ee5), - X(0x69e33436), X(0x69edf6a1), X(0x69f8b626), X(0x6a0372c5), - X(0x6a0e2c7e), X(0x6a18e350), X(0x6a23973c), X(0x6a2e4840), - X(0x6a38f65d), X(0x6a43a191), X(0x6a4e49de), X(0x6a58ef42), - X(0x6a6391be), X(0x6a6e3151), X(0x6a78cdfa), X(0x6a8367ba), - X(0x6a8dfe90), X(0x6a98927c), X(0x6aa3237d), X(0x6aadb194), - X(0x6ab83cc0), X(0x6ac2c500), X(0x6acd4a55), X(0x6ad7ccbf), - X(0x6ae24c3c), X(0x6aecc8cd), X(0x6af74271), X(0x6b01b929), - X(0x6b0c2cf4), X(0x6b169dd1), X(0x6b210bc1), X(0x6b2b76c2), - X(0x6b35ded6), X(0x6b4043fc), X(0x6b4aa632), X(0x6b55057a), - X(0x6b5f61d3), X(0x6b69bb3d), X(0x6b7411b7), X(0x6b7e6541), - X(0x6b88b5db), X(0x6b930385), X(0x6b9d4e3f), X(0x6ba79607), - X(0x6bb1dadf), X(0x6bbc1cc6), X(0x6bc65bbb), X(0x6bd097bf), - X(0x6bdad0d0), X(0x6be506f0), X(0x6bef3a1d), X(0x6bf96a58), - X(0x6c0397a0), X(0x6c0dc1f5), X(0x6c17e957), X(0x6c220dc6), - X(0x6c2c2f41), X(0x6c364dc9), X(0x6c40695c), X(0x6c4a81fc), - X(0x6c5497a7), X(0x6c5eaa5d), X(0x6c68ba1f), X(0x6c72c6eb), - X(0x6c7cd0c3), X(0x6c86d7a6), X(0x6c90db92), X(0x6c9adc8a), - X(0x6ca4da8b), X(0x6caed596), X(0x6cb8cdab), X(0x6cc2c2ca), - X(0x6cccb4f2), X(0x6cd6a424), X(0x6ce0905e), X(0x6cea79a1), - X(0x6cf45fee), X(0x6cfe4342), X(0x6d0823a0), X(0x6d120105), - X(0x6d1bdb73), X(0x6d25b2e8), X(0x6d2f8765), X(0x6d3958ea), - X(0x6d432777), X(0x6d4cf30a), X(0x6d56bba5), X(0x6d608147), - X(0x6d6a43f0), X(0x6d7403a0), X(0x6d7dc056), X(0x6d877a13), - X(0x6d9130d6), X(0x6d9ae4a0), X(0x6da4956f), X(0x6dae4345), - X(0x6db7ee20), X(0x6dc19601), X(0x6dcb3ae7), X(0x6dd4dcd3), - X(0x6dde7bc4), X(0x6de817bb), X(0x6df1b0b6), X(0x6dfb46b7), - X(0x6e04d9bc), X(0x6e0e69c7), X(0x6e17f6d5), X(0x6e2180e9), - X(0x6e2b0801), X(0x6e348c1d), X(0x6e3e0d3d), X(0x6e478b62), - X(0x6e51068a), X(0x6e5a7eb7), X(0x6e63f3e7), X(0x6e6d661b), - X(0x6e76d552), X(0x6e80418e), X(0x6e89aacc), X(0x6e93110f), - X(0x6e9c7454), X(0x6ea5d49d), X(0x6eaf31e9), X(0x6eb88c37), - X(0x6ec1e389), X(0x6ecb37de), X(0x6ed48936), X(0x6eddd790), - X(0x6ee722ee), X(0x6ef06b4d), X(0x6ef9b0b0), X(0x6f02f315), - X(0x6f0c327c), X(0x6f156ee6), X(0x6f1ea852), X(0x6f27dec1), - X(0x6f311232), X(0x6f3a42a5), X(0x6f43701a), X(0x6f4c9a91), - X(0x6f55c20a), X(0x6f5ee686), X(0x6f680803), X(0x6f712682), - X(0x6f7a4203), X(0x6f835a86), X(0x6f8c700b), X(0x6f958291), - X(0x6f9e921a), X(0x6fa79ea4), X(0x6fb0a830), X(0x6fb9aebd), - X(0x6fc2b24c), X(0x6fcbb2dd), X(0x6fd4b06f), X(0x6fddab03), - X(0x6fe6a299), X(0x6fef9730), X(0x6ff888c9), X(0x70017763), - X(0x700a62ff), X(0x70134b9c), X(0x701c313b), X(0x702513dc), - X(0x702df37e), X(0x7036d021), X(0x703fa9c6), X(0x7048806d), - X(0x70515415), X(0x705a24bf), X(0x7062f26b), X(0x706bbd17), - X(0x707484c6), X(0x707d4976), X(0x70860b28), X(0x708ec9dc), - X(0x70978591), X(0x70a03e48), X(0x70a8f400), X(0x70b1a6bb), - X(0x70ba5677), X(0x70c30335), X(0x70cbacf5), X(0x70d453b6), - X(0x70dcf77a), X(0x70e59840), X(0x70ee3607), X(0x70f6d0d1), - X(0x70ff689d), X(0x7107fd6b), X(0x71108f3b), X(0x71191e0d), - X(0x7121a9e2), X(0x712a32b9), X(0x7132b892), X(0x713b3b6e), - X(0x7143bb4c), X(0x714c382d), X(0x7154b211), X(0x715d28f7), - X(0x71659ce0), X(0x716e0dcc), X(0x71767bbb), X(0x717ee6ac), - X(0x71874ea1), X(0x718fb399), X(0x71981594), X(0x71a07493), - X(0x71a8d094), X(0x71b1299a), X(0x71b97fa2), X(0x71c1d2af), - X(0x71ca22bf), X(0x71d26fd2), X(0x71dab9ea), X(0x71e30106), - X(0x71eb4526), X(0x71f3864a), X(0x71fbc472), X(0x7203ff9e), - X(0x720c37cf), X(0x72146d05), X(0x721c9f3f), X(0x7224ce7e), - X(0x722cfac2), X(0x7235240b), X(0x723d4a59), X(0x72456dad), - X(0x724d8e05), X(0x7255ab63), X(0x725dc5c7), X(0x7265dd31), - X(0x726df1a0), X(0x72760315), X(0x727e1191), X(0x72861d12), - X(0x728e259a), X(0x72962b28), X(0x729e2dbd), X(0x72a62d59), - X(0x72ae29fc), X(0x72b623a5), X(0x72be1a56), X(0x72c60e0e), - X(0x72cdfece), X(0x72d5ec95), X(0x72ddd764), X(0x72e5bf3b), - X(0x72eda41a), X(0x72f58601), X(0x72fd64f1), X(0x730540e9), - X(0x730d19e9), X(0x7314eff3), X(0x731cc305), X(0x73249321), - X(0x732c6046), X(0x73342a75), X(0x733bf1ad), X(0x7343b5ef), - X(0x734b773b), X(0x73533591), X(0x735af0f2), X(0x7362a95d), - X(0x736a5ed3), X(0x73721153), X(0x7379c0df), X(0x73816d76), - X(0x73891719), X(0x7390bdc7), X(0x73986181), X(0x73a00247), - X(0x73a7a01a), X(0x73af3af8), X(0x73b6d2e4), X(0x73be67dc), - X(0x73c5f9e1), X(0x73cd88f3), X(0x73d51513), X(0x73dc9e40), - X(0x73e4247c), X(0x73eba7c5), X(0x73f3281c), X(0x73faa582), - X(0x74021ff7), X(0x7409977b), X(0x74110c0d), X(0x74187daf), - X(0x741fec61), X(0x74275822), X(0x742ec0f3), X(0x743626d5), - X(0x743d89c7), X(0x7444e9c9), X(0x744c46dd), X(0x7453a101), - X(0x745af837), X(0x74624c7f), X(0x74699dd8), X(0x7470ec44), - X(0x747837c2), X(0x747f8052), X(0x7486c5f5), X(0x748e08ac), - X(0x74954875), X(0x749c8552), X(0x74a3bf43), X(0x74aaf648), - X(0x74b22a62), X(0x74b95b90), X(0x74c089d2), X(0x74c7b52a), - X(0x74cedd97), X(0x74d6031a), X(0x74dd25b2), X(0x74e44561), - X(0x74eb6226), X(0x74f27c02), X(0x74f992f5), X(0x7500a6ff), - X(0x7507b820), X(0x750ec659), X(0x7515d1aa), X(0x751cda14), - X(0x7523df96), X(0x752ae231), X(0x7531e1e5), X(0x7538deb2), - X(0x753fd89a), X(0x7546cf9b), X(0x754dc3b7), X(0x7554b4ed), - X(0x755ba33e), X(0x75628eaa), X(0x75697732), X(0x75705cd5), - X(0x75773f95), X(0x757e1f71), X(0x7584fc6a), X(0x758bd67f), - X(0x7592adb2), X(0x75998203), X(0x75a05371), X(0x75a721fe), - X(0x75adeda9), X(0x75b4b673), X(0x75bb7c5c), X(0x75c23f65), - X(0x75c8ff8d), X(0x75cfbcd6), X(0x75d6773f), X(0x75dd2ec8), - X(0x75e3e373), X(0x75ea953f), X(0x75f1442d), X(0x75f7f03d), - X(0x75fe996f), X(0x76053fc5), X(0x760be33d), X(0x761283d8), - X(0x76192197), X(0x761fbc7b), X(0x76265482), X(0x762ce9af), - X(0x76337c01), X(0x763a0b78), X(0x76409814), X(0x764721d7), - X(0x764da8c1), X(0x76542cd1), X(0x765aae08), X(0x76612c67), - X(0x7667a7ee), X(0x766e209d), X(0x76749675), X(0x767b0975), - X(0x7681799f), X(0x7687e6f3), X(0x768e5170), X(0x7694b918), - X(0x769b1deb), X(0x76a17fe9), X(0x76a7df13), X(0x76ae3b68), - X(0x76b494ea), X(0x76baeb98), X(0x76c13f74), X(0x76c7907c), - X(0x76cddeb3), X(0x76d42a18), X(0x76da72ab), X(0x76e0b86d), - X(0x76e6fb5e), X(0x76ed3b7f), X(0x76f378d0), X(0x76f9b352), - X(0x76ffeb05), X(0x77061fe8), X(0x770c51fe), X(0x77128145), - X(0x7718adbf), X(0x771ed76c), X(0x7724fe4c), X(0x772b225f), - X(0x773143a7), X(0x77376223), X(0x773d7dd3), X(0x774396ba), - X(0x7749acd5), X(0x774fc027), X(0x7755d0af), X(0x775bde6f), - X(0x7761e965), X(0x7767f193), X(0x776df6fa), X(0x7773f998), - X(0x7779f970), X(0x777ff681), X(0x7785f0cd), X(0x778be852), - X(0x7791dd12), X(0x7797cf0d), X(0x779dbe43), X(0x77a3aab6), - X(0x77a99465), X(0x77af7b50), X(0x77b55f79), X(0x77bb40e0), - X(0x77c11f85), X(0x77c6fb68), X(0x77ccd48a), X(0x77d2aaec), - X(0x77d87e8d), X(0x77de4f6f), X(0x77e41d92), X(0x77e9e8f5), - X(0x77efb19b), X(0x77f57782), X(0x77fb3aad), X(0x7800fb1a), - X(0x7806b8ca), X(0x780c73bf), X(0x78122bf7), X(0x7817e175), - X(0x781d9438), X(0x78234440), X(0x7828f18f), X(0x782e9c25), - X(0x78344401), X(0x7839e925), X(0x783f8b92), X(0x78452b46), - X(0x784ac844), X(0x7850628b), X(0x7855fa1c), X(0x785b8ef8), - X(0x7861211e), X(0x7866b090), X(0x786c3d4d), X(0x7871c757), - X(0x78774ead), X(0x787cd351), X(0x78825543), X(0x7887d483), - X(0x788d5111), X(0x7892caef), X(0x7898421c), X(0x789db69a), - X(0x78a32868), X(0x78a89787), X(0x78ae03f8), X(0x78b36dbb), - X(0x78b8d4d1), X(0x78be393a), X(0x78c39af6), X(0x78c8fa06), - X(0x78ce566c), X(0x78d3b026), X(0x78d90736), X(0x78de5b9c), - X(0x78e3ad58), X(0x78e8fc6c), X(0x78ee48d7), X(0x78f3929b), - X(0x78f8d9b7), X(0x78fe1e2c), X(0x79035ffb), X(0x79089f24), - X(0x790ddba8), X(0x79131587), X(0x79184cc2), X(0x791d8159), - X(0x7922b34d), X(0x7927e29e), X(0x792d0f4d), X(0x7932395a), - X(0x793760c6), X(0x793c8591), X(0x7941a7bd), X(0x7946c749), - X(0x794be435), X(0x7950fe84), X(0x79561634), X(0x795b2b47), - X(0x79603dbc), X(0x79654d96), X(0x796a5ad4), X(0x796f6576), - X(0x79746d7e), X(0x797972eb), X(0x797e75bf), X(0x798375f9), - X(0x7988739b), X(0x798d6ea5), X(0x79926717), X(0x79975cf2), - X(0x799c5037), X(0x79a140e6), X(0x79a62f00), X(0x79ab1a85), - X(0x79b00376), X(0x79b4e9d3), X(0x79b9cd9d), X(0x79beaed4), - X(0x79c38d79), X(0x79c8698d), X(0x79cd4310), X(0x79d21a03), - X(0x79d6ee66), X(0x79dbc03a), X(0x79e08f7f), X(0x79e55c36), - X(0x79ea265f), X(0x79eeedfc), X(0x79f3b30c), X(0x79f87590), - X(0x79fd3589), X(0x7a01f2f7), X(0x7a06addc), X(0x7a0b6636), - X(0x7a101c08), X(0x7a14cf52), X(0x7a198013), X(0x7a1e2e4d), - X(0x7a22da01), X(0x7a27832f), X(0x7a2c29d7), X(0x7a30cdfa), - X(0x7a356f99), X(0x7a3a0eb4), X(0x7a3eab4c), X(0x7a434561), - X(0x7a47dcf5), X(0x7a4c7207), X(0x7a510498), X(0x7a5594a9), - X(0x7a5a223a), X(0x7a5ead4d), X(0x7a6335e0), X(0x7a67bbf6), - X(0x7a6c3f8f), X(0x7a70c0ab), X(0x7a753f4b), X(0x7a79bb6f), - X(0x7a7e3519), X(0x7a82ac48), X(0x7a8720fe), X(0x7a8b933b), - X(0x7a9002ff), X(0x7a94704b), X(0x7a98db20), X(0x7a9d437e), - X(0x7aa1a967), X(0x7aa60cd9), X(0x7aaa6dd7), X(0x7aaecc61), - X(0x7ab32877), X(0x7ab7821b), X(0x7abbd94b), X(0x7ac02e0a), - X(0x7ac48058), X(0x7ac8d035), X(0x7acd1da3), X(0x7ad168a1), - X(0x7ad5b130), X(0x7ad9f751), X(0x7ade3b05), X(0x7ae27c4c), - X(0x7ae6bb27), X(0x7aeaf796), X(0x7aef319a), X(0x7af36934), - X(0x7af79e64), X(0x7afbd12c), X(0x7b00018a), X(0x7b042f81), - X(0x7b085b10), X(0x7b0c8439), X(0x7b10aafc), X(0x7b14cf5a), - X(0x7b18f153), X(0x7b1d10e8), X(0x7b212e1a), X(0x7b2548e9), - X(0x7b296155), X(0x7b2d7761), X(0x7b318b0b), X(0x7b359c55), - X(0x7b39ab3f), X(0x7b3db7cb), X(0x7b41c1f8), X(0x7b45c9c8), - X(0x7b49cf3b), X(0x7b4dd251), X(0x7b51d30b), X(0x7b55d16b), - X(0x7b59cd70), X(0x7b5dc71b), X(0x7b61be6d), X(0x7b65b366), - X(0x7b69a608), X(0x7b6d9653), X(0x7b718447), X(0x7b756fe5), - X(0x7b79592e), X(0x7b7d4022), X(0x7b8124c3), X(0x7b850710), - X(0x7b88e70a), X(0x7b8cc4b3), X(0x7b90a00a), X(0x7b947911), - X(0x7b984fc8), X(0x7b9c242f), X(0x7b9ff648), X(0x7ba3c612), - X(0x7ba79390), X(0x7bab5ec1), X(0x7baf27a5), X(0x7bb2ee3f), - X(0x7bb6b28e), X(0x7bba7493), X(0x7bbe344e), X(0x7bc1f1c1), - X(0x7bc5acec), X(0x7bc965cf), X(0x7bcd1c6c), X(0x7bd0d0c3), - X(0x7bd482d4), X(0x7bd832a1), X(0x7bdbe02a), X(0x7bdf8b70), - X(0x7be33473), X(0x7be6db34), X(0x7bea7fb4), X(0x7bee21f4), - X(0x7bf1c1f3), X(0x7bf55fb3), X(0x7bf8fb35), X(0x7bfc9479), - X(0x7c002b7f), X(0x7c03c04a), X(0x7c0752d8), X(0x7c0ae32b), - X(0x7c0e7144), X(0x7c11fd23), X(0x7c1586c9), X(0x7c190e36), - X(0x7c1c936c), X(0x7c20166b), X(0x7c239733), X(0x7c2715c6), - X(0x7c2a9224), X(0x7c2e0c4e), X(0x7c318444), X(0x7c34fa07), - X(0x7c386d98), X(0x7c3bdef8), X(0x7c3f4e26), X(0x7c42bb25), - X(0x7c4625f4), X(0x7c498e95), X(0x7c4cf507), X(0x7c50594c), - X(0x7c53bb65), X(0x7c571b51), X(0x7c5a7913), X(0x7c5dd4aa), - X(0x7c612e17), X(0x7c64855b), X(0x7c67da76), X(0x7c6b2d6a), - X(0x7c6e7e37), X(0x7c71ccdd), X(0x7c75195e), X(0x7c7863ba), - X(0x7c7babf1), X(0x7c7ef206), X(0x7c8235f7), X(0x7c8577c6), - X(0x7c88b774), X(0x7c8bf502), X(0x7c8f306f), X(0x7c9269bd), - X(0x7c95a0ec), X(0x7c98d5fe), X(0x7c9c08f2), X(0x7c9f39cb), - X(0x7ca26887), X(0x7ca59528), X(0x7ca8bfb0), X(0x7cabe81d), - X(0x7caf0e72), X(0x7cb232af), X(0x7cb554d4), X(0x7cb874e2), - X(0x7cbb92db), X(0x7cbeaebe), X(0x7cc1c88d), X(0x7cc4e047), - X(0x7cc7f5ef), X(0x7ccb0984), X(0x7cce1b08), X(0x7cd12a7b), - X(0x7cd437dd), X(0x7cd74330), X(0x7cda4c74), X(0x7cdd53aa), - X(0x7ce058d3), X(0x7ce35bef), X(0x7ce65cff), X(0x7ce95c04), - X(0x7cec58ff), X(0x7cef53f0), X(0x7cf24cd7), X(0x7cf543b7), - X(0x7cf8388f), X(0x7cfb2b60), X(0x7cfe1c2b), X(0x7d010af1), - X(0x7d03f7b2), X(0x7d06e26f), X(0x7d09cb29), X(0x7d0cb1e0), - X(0x7d0f9696), X(0x7d12794b), X(0x7d1559ff), X(0x7d1838b4), - X(0x7d1b156a), X(0x7d1df022), X(0x7d20c8dd), X(0x7d239f9b), - X(0x7d26745e), X(0x7d294725), X(0x7d2c17f1), X(0x7d2ee6c4), - X(0x7d31b39f), X(0x7d347e81), X(0x7d37476b), X(0x7d3a0e5f), - X(0x7d3cd35d), X(0x7d3f9665), X(0x7d425779), X(0x7d451699), - X(0x7d47d3c6), X(0x7d4a8f01), X(0x7d4d484b), X(0x7d4fffa3), - X(0x7d52b50c), X(0x7d556885), X(0x7d581a0f), X(0x7d5ac9ac), - X(0x7d5d775c), X(0x7d60231f), X(0x7d62ccf6), X(0x7d6574e3), - X(0x7d681ae6), X(0x7d6abeff), X(0x7d6d612f), X(0x7d700178), - X(0x7d729fd9), X(0x7d753c54), X(0x7d77d6e9), X(0x7d7a6f9a), - X(0x7d7d0666), X(0x7d7f9b4f), X(0x7d822e55), X(0x7d84bf79), - X(0x7d874ebc), X(0x7d89dc1e), X(0x7d8c67a1), X(0x7d8ef144), - X(0x7d91790a), X(0x7d93fef2), X(0x7d9682fd), X(0x7d99052d), - X(0x7d9b8581), X(0x7d9e03fb), X(0x7da0809b), X(0x7da2fb62), - X(0x7da57451), X(0x7da7eb68), X(0x7daa60a8), X(0x7dacd413), - X(0x7daf45a9), X(0x7db1b56a), X(0x7db42357), X(0x7db68f71), - X(0x7db8f9b9), X(0x7dbb6230), X(0x7dbdc8d6), X(0x7dc02dac), - X(0x7dc290b3), X(0x7dc4f1eb), X(0x7dc75156), X(0x7dc9aef4), - X(0x7dcc0ac5), X(0x7dce64cc), X(0x7dd0bd07), X(0x7dd31379), - X(0x7dd56821), X(0x7dd7bb01), X(0x7dda0c1a), X(0x7ddc5b6b), - X(0x7ddea8f7), X(0x7de0f4bd), X(0x7de33ebe), X(0x7de586fc), - X(0x7de7cd76), X(0x7dea122e), X(0x7dec5525), X(0x7dee965a), - X(0x7df0d5d0), X(0x7df31386), X(0x7df54f7e), X(0x7df789b8), - X(0x7df9c235), X(0x7dfbf8f5), X(0x7dfe2dfa), X(0x7e006145), - X(0x7e0292d5), X(0x7e04c2ac), X(0x7e06f0cb), X(0x7e091d32), - X(0x7e0b47e1), X(0x7e0d70db), X(0x7e0f981f), X(0x7e11bdaf), - X(0x7e13e18a), X(0x7e1603b3), X(0x7e182429), X(0x7e1a42ed), - X(0x7e1c6001), X(0x7e1e7b64), X(0x7e209518), X(0x7e22ad1d), - X(0x7e24c375), X(0x7e26d81f), X(0x7e28eb1d), X(0x7e2afc70), - X(0x7e2d0c17), X(0x7e2f1a15), X(0x7e31266a), X(0x7e333115), - X(0x7e353a1a), X(0x7e374177), X(0x7e39472e), X(0x7e3b4b3f), - X(0x7e3d4dac), X(0x7e3f4e75), X(0x7e414d9a), X(0x7e434b1e), - X(0x7e4546ff), X(0x7e474140), X(0x7e4939e0), X(0x7e4b30e2), - X(0x7e4d2644), X(0x7e4f1a09), X(0x7e510c30), X(0x7e52fcbc), - X(0x7e54ebab), X(0x7e56d900), X(0x7e58c4bb), X(0x7e5aaedd), - X(0x7e5c9766), X(0x7e5e7e57), X(0x7e6063b2), X(0x7e624776), - X(0x7e6429a5), X(0x7e660a3f), X(0x7e67e945), X(0x7e69c6b8), - X(0x7e6ba299), X(0x7e6d7ce7), X(0x7e6f55a5), X(0x7e712cd3), - X(0x7e730272), X(0x7e74d682), X(0x7e76a904), X(0x7e7879f9), - X(0x7e7a4962), X(0x7e7c173f), X(0x7e7de392), X(0x7e7fae5a), - X(0x7e817799), X(0x7e833f50), X(0x7e85057f), X(0x7e86ca27), - X(0x7e888d49), X(0x7e8a4ee5), X(0x7e8c0efd), X(0x7e8dcd91), - X(0x7e8f8aa1), X(0x7e914630), X(0x7e93003c), X(0x7e94b8c8), - X(0x7e966fd4), X(0x7e982560), X(0x7e99d96e), X(0x7e9b8bfe), - X(0x7e9d3d10), X(0x7e9eeca7), X(0x7ea09ac2), X(0x7ea24762), - X(0x7ea3f288), X(0x7ea59c35), X(0x7ea7446a), X(0x7ea8eb27), - X(0x7eaa906c), X(0x7eac343c), X(0x7eadd696), X(0x7eaf777b), - X(0x7eb116ed), X(0x7eb2b4eb), X(0x7eb45177), X(0x7eb5ec91), - X(0x7eb7863b), X(0x7eb91e74), X(0x7ebab53e), X(0x7ebc4a99), - X(0x7ebdde87), X(0x7ebf7107), X(0x7ec1021b), X(0x7ec291c3), - X(0x7ec42001), X(0x7ec5acd5), X(0x7ec7383f), X(0x7ec8c241), - X(0x7eca4adb), X(0x7ecbd20d), X(0x7ecd57da), X(0x7ecedc41), - X(0x7ed05f44), X(0x7ed1e0e2), X(0x7ed3611d), X(0x7ed4dff6), - X(0x7ed65d6d), X(0x7ed7d983), X(0x7ed95438), X(0x7edacd8f), - X(0x7edc4586), X(0x7eddbc20), X(0x7edf315c), X(0x7ee0a53c), - X(0x7ee217c1), X(0x7ee388ea), X(0x7ee4f8b9), X(0x7ee6672f), - X(0x7ee7d44c), X(0x7ee94012), X(0x7eeaaa80), X(0x7eec1397), - X(0x7eed7b59), X(0x7eeee1c6), X(0x7ef046df), X(0x7ef1aaa5), - X(0x7ef30d18), X(0x7ef46e39), X(0x7ef5ce09), X(0x7ef72c88), - X(0x7ef889b8), X(0x7ef9e599), X(0x7efb402c), X(0x7efc9972), - X(0x7efdf16b), X(0x7eff4818), X(0x7f009d79), X(0x7f01f191), - X(0x7f03445f), X(0x7f0495e4), X(0x7f05e620), X(0x7f073516), - X(0x7f0882c5), X(0x7f09cf2d), X(0x7f0b1a51), X(0x7f0c6430), - X(0x7f0daccc), X(0x7f0ef425), X(0x7f103a3b), X(0x7f117f11), - X(0x7f12c2a5), X(0x7f1404fa), X(0x7f15460f), X(0x7f1685e6), - X(0x7f17c47f), X(0x7f1901db), X(0x7f1a3dfb), X(0x7f1b78e0), - X(0x7f1cb28a), X(0x7f1deafa), X(0x7f1f2231), X(0x7f20582f), - X(0x7f218cf5), X(0x7f22c085), X(0x7f23f2de), X(0x7f252401), - X(0x7f2653f0), X(0x7f2782ab), X(0x7f28b032), X(0x7f29dc87), - X(0x7f2b07aa), X(0x7f2c319c), X(0x7f2d5a5e), X(0x7f2e81f0), - X(0x7f2fa853), X(0x7f30cd88), X(0x7f31f18f), X(0x7f33146a), - X(0x7f343619), X(0x7f35569c), X(0x7f3675f6), X(0x7f379425), - X(0x7f38b12c), X(0x7f39cd0a), X(0x7f3ae7c0), X(0x7f3c0150), - X(0x7f3d19ba), X(0x7f3e30fe), X(0x7f3f471e), X(0x7f405c1a), - X(0x7f416ff3), X(0x7f4282a9), X(0x7f43943e), X(0x7f44a4b2), - X(0x7f45b405), X(0x7f46c239), X(0x7f47cf4e), X(0x7f48db45), - X(0x7f49e61f), X(0x7f4aefdc), X(0x7f4bf87e), X(0x7f4d0004), - X(0x7f4e0670), X(0x7f4f0bc2), X(0x7f500ffb), X(0x7f51131c), - X(0x7f521525), X(0x7f531618), X(0x7f5415f4), X(0x7f5514bb), - X(0x7f56126e), X(0x7f570f0c), X(0x7f580a98), X(0x7f590511), - X(0x7f59fe78), X(0x7f5af6ce), X(0x7f5bee14), X(0x7f5ce44a), - X(0x7f5dd972), X(0x7f5ecd8b), X(0x7f5fc097), X(0x7f60b296), - X(0x7f61a389), X(0x7f629370), X(0x7f63824e), X(0x7f647021), - X(0x7f655ceb), X(0x7f6648ad), X(0x7f673367), X(0x7f681d19), - X(0x7f6905c6), X(0x7f69ed6d), X(0x7f6ad40f), X(0x7f6bb9ad), - X(0x7f6c9e48), X(0x7f6d81e0), X(0x7f6e6475), X(0x7f6f460a), - X(0x7f70269d), X(0x7f710631), X(0x7f71e4c6), X(0x7f72c25c), - X(0x7f739ef4), X(0x7f747a8f), X(0x7f75552e), X(0x7f762ed1), - X(0x7f770779), X(0x7f77df27), X(0x7f78b5db), X(0x7f798b97), - X(0x7f7a605a), X(0x7f7b3425), X(0x7f7c06fa), X(0x7f7cd8d9), - X(0x7f7da9c2), X(0x7f7e79b7), X(0x7f7f48b8), X(0x7f8016c5), - X(0x7f80e3e0), X(0x7f81b009), X(0x7f827b40), X(0x7f834588), - X(0x7f840edf), X(0x7f84d747), X(0x7f859ec1), X(0x7f86654d), - X(0x7f872aec), X(0x7f87ef9e), X(0x7f88b365), X(0x7f897641), - X(0x7f8a3832), X(0x7f8af93a), X(0x7f8bb959), X(0x7f8c7890), - X(0x7f8d36df), X(0x7f8df448), X(0x7f8eb0ca), X(0x7f8f6c67), - X(0x7f90271e), X(0x7f90e0f2), X(0x7f9199e2), X(0x7f9251f0), - X(0x7f93091b), X(0x7f93bf65), X(0x7f9474ce), X(0x7f952958), - X(0x7f95dd01), X(0x7f968fcd), X(0x7f9741ba), X(0x7f97f2ca), - X(0x7f98a2fd), X(0x7f995254), X(0x7f9a00d0), X(0x7f9aae71), - X(0x7f9b5b38), X(0x7f9c0726), X(0x7f9cb23b), X(0x7f9d5c78), - X(0x7f9e05de), X(0x7f9eae6e), X(0x7f9f5627), X(0x7f9ffd0b), - X(0x7fa0a31b), X(0x7fa14856), X(0x7fa1ecbf), X(0x7fa29054), - X(0x7fa33318), X(0x7fa3d50b), X(0x7fa4762c), X(0x7fa5167e), - X(0x7fa5b601), X(0x7fa654b5), X(0x7fa6f29b), X(0x7fa78fb3), - X(0x7fa82bff), X(0x7fa8c77f), X(0x7fa96234), X(0x7fa9fc1e), - X(0x7faa953e), X(0x7fab2d94), X(0x7fabc522), X(0x7fac5be8), - X(0x7facf1e6), X(0x7fad871d), X(0x7fae1b8f), X(0x7faeaf3b), - X(0x7faf4222), X(0x7fafd445), X(0x7fb065a4), X(0x7fb0f641), - X(0x7fb1861b), X(0x7fb21534), X(0x7fb2a38c), X(0x7fb33124), - X(0x7fb3bdfb), X(0x7fb44a14), X(0x7fb4d56f), X(0x7fb5600c), - X(0x7fb5e9ec), X(0x7fb6730f), X(0x7fb6fb76), X(0x7fb78323), - X(0x7fb80a15), X(0x7fb8904d), X(0x7fb915cc), X(0x7fb99a92), - X(0x7fba1ea0), X(0x7fbaa1f7), X(0x7fbb2497), X(0x7fbba681), - X(0x7fbc27b5), X(0x7fbca835), X(0x7fbd2801), X(0x7fbda719), - X(0x7fbe257e), X(0x7fbea331), X(0x7fbf2032), X(0x7fbf9c82), - X(0x7fc01821), X(0x7fc09311), X(0x7fc10d52), X(0x7fc186e4), - X(0x7fc1ffc8), X(0x7fc277ff), X(0x7fc2ef89), X(0x7fc36667), - X(0x7fc3dc9a), X(0x7fc45221), X(0x7fc4c6ff), X(0x7fc53b33), - X(0x7fc5aebe), X(0x7fc621a0), X(0x7fc693db), X(0x7fc7056f), - X(0x7fc7765c), X(0x7fc7e6a3), X(0x7fc85645), X(0x7fc8c542), - X(0x7fc9339b), X(0x7fc9a150), X(0x7fca0e63), X(0x7fca7ad3), - X(0x7fcae6a2), X(0x7fcb51cf), X(0x7fcbbc5c), X(0x7fcc2649), - X(0x7fcc8f97), X(0x7fccf846), X(0x7fcd6058), X(0x7fcdc7cb), - X(0x7fce2ea2), X(0x7fce94dd), X(0x7fcefa7b), X(0x7fcf5f7f), - X(0x7fcfc3e8), X(0x7fd027b7), X(0x7fd08aed), X(0x7fd0ed8b), - X(0x7fd14f90), X(0x7fd1b0fd), X(0x7fd211d4), X(0x7fd27214), - X(0x7fd2d1bf), X(0x7fd330d4), X(0x7fd38f55), X(0x7fd3ed41), - X(0x7fd44a9a), X(0x7fd4a761), X(0x7fd50395), X(0x7fd55f37), - X(0x7fd5ba48), X(0x7fd614c9), X(0x7fd66eba), X(0x7fd6c81b), - X(0x7fd720ed), X(0x7fd77932), X(0x7fd7d0e8), X(0x7fd82812), - X(0x7fd87eae), X(0x7fd8d4bf), X(0x7fd92a45), X(0x7fd97f40), - X(0x7fd9d3b0), X(0x7fda2797), X(0x7fda7af5), X(0x7fdacdca), - X(0x7fdb2018), X(0x7fdb71dd), X(0x7fdbc31c), X(0x7fdc13d5), - X(0x7fdc6408), X(0x7fdcb3b6), X(0x7fdd02df), X(0x7fdd5184), - X(0x7fdd9fa5), X(0x7fdded44), X(0x7fde3a60), X(0x7fde86fb), - X(0x7fded314), X(0x7fdf1eac), X(0x7fdf69c4), X(0x7fdfb45d), - X(0x7fdffe76), X(0x7fe04811), X(0x7fe0912e), X(0x7fe0d9ce), - X(0x7fe121f0), X(0x7fe16996), X(0x7fe1b0c1), X(0x7fe1f770), - X(0x7fe23da4), X(0x7fe2835f), X(0x7fe2c89f), X(0x7fe30d67), - X(0x7fe351b5), X(0x7fe3958c), X(0x7fe3d8ec), X(0x7fe41bd4), - X(0x7fe45e46), X(0x7fe4a042), X(0x7fe4e1c8), X(0x7fe522da), - X(0x7fe56378), X(0x7fe5a3a1), X(0x7fe5e358), X(0x7fe6229b), - X(0x7fe6616d), X(0x7fe69fcc), X(0x7fe6ddbb), X(0x7fe71b39), - X(0x7fe75847), X(0x7fe794e5), X(0x7fe7d114), X(0x7fe80cd5), - X(0x7fe84827), X(0x7fe8830c), X(0x7fe8bd84), X(0x7fe8f78f), - X(0x7fe9312f), X(0x7fe96a62), X(0x7fe9a32b), X(0x7fe9db8a), - X(0x7fea137e), X(0x7fea4b09), X(0x7fea822b), X(0x7feab8e5), - X(0x7feaef37), X(0x7feb2521), X(0x7feb5aa4), X(0x7feb8fc1), - X(0x7febc478), X(0x7febf8ca), X(0x7fec2cb6), X(0x7fec603e), - X(0x7fec9363), X(0x7fecc623), X(0x7fecf881), X(0x7fed2a7c), - X(0x7fed5c16), X(0x7fed8d4e), X(0x7fedbe24), X(0x7fedee9b), - X(0x7fee1eb1), X(0x7fee4e68), X(0x7fee7dc0), X(0x7feeacb9), - X(0x7feedb54), X(0x7fef0991), X(0x7fef3771), X(0x7fef64f5), - X(0x7fef921d), X(0x7fefbee8), X(0x7fefeb59), X(0x7ff0176f), - X(0x7ff0432a), X(0x7ff06e8c), X(0x7ff09995), X(0x7ff0c444), - X(0x7ff0ee9c), X(0x7ff1189b), X(0x7ff14243), X(0x7ff16b94), - X(0x7ff1948e), X(0x7ff1bd32), X(0x7ff1e581), X(0x7ff20d7b), - X(0x7ff2351f), X(0x7ff25c70), X(0x7ff2836d), X(0x7ff2aa17), - X(0x7ff2d06d), X(0x7ff2f672), X(0x7ff31c24), X(0x7ff34185), - X(0x7ff36695), X(0x7ff38b55), X(0x7ff3afc4), X(0x7ff3d3e4), - X(0x7ff3f7b4), X(0x7ff41b35), X(0x7ff43e69), X(0x7ff4614e), - X(0x7ff483e6), X(0x7ff4a631), X(0x7ff4c82f), X(0x7ff4e9e1), - X(0x7ff50b47), X(0x7ff52c62), X(0x7ff54d33), X(0x7ff56db9), - X(0x7ff58df5), X(0x7ff5ade7), X(0x7ff5cd90), X(0x7ff5ecf1), - X(0x7ff60c09), X(0x7ff62ada), X(0x7ff64963), X(0x7ff667a5), - X(0x7ff685a1), X(0x7ff6a357), X(0x7ff6c0c7), X(0x7ff6ddf1), - X(0x7ff6fad7), X(0x7ff71778), X(0x7ff733d6), X(0x7ff74fef), - X(0x7ff76bc6), X(0x7ff78759), X(0x7ff7a2ab), X(0x7ff7bdba), - X(0x7ff7d888), X(0x7ff7f315), X(0x7ff80d61), X(0x7ff8276c), - X(0x7ff84138), X(0x7ff85ac4), X(0x7ff87412), X(0x7ff88d20), - X(0x7ff8a5f0), X(0x7ff8be82), X(0x7ff8d6d7), X(0x7ff8eeef), - X(0x7ff906c9), X(0x7ff91e68), X(0x7ff935cb), X(0x7ff94cf2), - X(0x7ff963dd), X(0x7ff97a8f), X(0x7ff99105), X(0x7ff9a742), - X(0x7ff9bd45), X(0x7ff9d30f), X(0x7ff9e8a0), X(0x7ff9fdf9), - X(0x7ffa131a), X(0x7ffa2803), X(0x7ffa3cb4), X(0x7ffa512f), - X(0x7ffa6573), X(0x7ffa7981), X(0x7ffa8d59), X(0x7ffaa0fc), - X(0x7ffab46a), X(0x7ffac7a3), X(0x7ffadaa8), X(0x7ffaed78), - X(0x7ffb0015), X(0x7ffb127f), X(0x7ffb24b6), X(0x7ffb36bb), - X(0x7ffb488d), X(0x7ffb5a2e), X(0x7ffb6b9d), X(0x7ffb7cdb), - X(0x7ffb8de9), X(0x7ffb9ec6), X(0x7ffbaf73), X(0x7ffbbff1), - X(0x7ffbd03f), X(0x7ffbe05e), X(0x7ffbf04f), X(0x7ffc0012), - X(0x7ffc0fa6), X(0x7ffc1f0d), X(0x7ffc2e47), X(0x7ffc3d54), - X(0x7ffc4c35), X(0x7ffc5ae9), X(0x7ffc6971), X(0x7ffc77ce), - X(0x7ffc8600), X(0x7ffc9407), X(0x7ffca1e4), X(0x7ffcaf96), - X(0x7ffcbd1f), X(0x7ffcca7e), X(0x7ffcd7b4), X(0x7ffce4c1), - X(0x7ffcf1a5), X(0x7ffcfe62), X(0x7ffd0af6), X(0x7ffd1763), - X(0x7ffd23a9), X(0x7ffd2fc8), X(0x7ffd3bc1), X(0x7ffd4793), - X(0x7ffd533f), X(0x7ffd5ec5), X(0x7ffd6a27), X(0x7ffd7563), - X(0x7ffd807a), X(0x7ffd8b6e), X(0x7ffd963d), X(0x7ffda0e8), - X(0x7ffdab70), X(0x7ffdb5d5), X(0x7ffdc017), X(0x7ffdca36), - X(0x7ffdd434), X(0x7ffdde0f), X(0x7ffde7c9), X(0x7ffdf161), - X(0x7ffdfad8), X(0x7ffe042f), X(0x7ffe0d65), X(0x7ffe167b), - X(0x7ffe1f71), X(0x7ffe2848), X(0x7ffe30ff), X(0x7ffe3997), - X(0x7ffe4211), X(0x7ffe4a6c), X(0x7ffe52a9), X(0x7ffe5ac8), - X(0x7ffe62c9), X(0x7ffe6aae), X(0x7ffe7275), X(0x7ffe7a1f), - X(0x7ffe81ad), X(0x7ffe891f), X(0x7ffe9075), X(0x7ffe97b0), - X(0x7ffe9ece), X(0x7ffea5d2), X(0x7ffeacbb), X(0x7ffeb38a), - X(0x7ffeba3e), X(0x7ffec0d8), X(0x7ffec758), X(0x7ffecdbf), - X(0x7ffed40d), X(0x7ffeda41), X(0x7ffee05d), X(0x7ffee660), - X(0x7ffeec4b), X(0x7ffef21f), X(0x7ffef7da), X(0x7ffefd7e), - X(0x7fff030b), X(0x7fff0881), X(0x7fff0de0), X(0x7fff1328), - X(0x7fff185b), X(0x7fff1d77), X(0x7fff227e), X(0x7fff276f), - X(0x7fff2c4b), X(0x7fff3112), X(0x7fff35c4), X(0x7fff3a62), - X(0x7fff3eeb), X(0x7fff4360), X(0x7fff47c2), X(0x7fff4c0f), - X(0x7fff504a), X(0x7fff5471), X(0x7fff5885), X(0x7fff5c87), - X(0x7fff6076), X(0x7fff6452), X(0x7fff681d), X(0x7fff6bd6), - X(0x7fff6f7d), X(0x7fff7313), X(0x7fff7698), X(0x7fff7a0c), - X(0x7fff7d6f), X(0x7fff80c2), X(0x7fff8404), X(0x7fff8736), - X(0x7fff8a58), X(0x7fff8d6b), X(0x7fff906e), X(0x7fff9362), - X(0x7fff9646), X(0x7fff991c), X(0x7fff9be3), X(0x7fff9e9c), - X(0x7fffa146), X(0x7fffa3e2), X(0x7fffa671), X(0x7fffa8f1), - X(0x7fffab65), X(0x7fffadca), X(0x7fffb023), X(0x7fffb26f), - X(0x7fffb4ae), X(0x7fffb6e0), X(0x7fffb906), X(0x7fffbb20), - X(0x7fffbd2e), X(0x7fffbf30), X(0x7fffc126), X(0x7fffc311), - X(0x7fffc4f1), X(0x7fffc6c5), X(0x7fffc88f), X(0x7fffca4d), - X(0x7fffcc01), X(0x7fffcdab), X(0x7fffcf4a), X(0x7fffd0e0), - X(0x7fffd26b), X(0x7fffd3ec), X(0x7fffd564), X(0x7fffd6d2), - X(0x7fffd838), X(0x7fffd993), X(0x7fffdae6), X(0x7fffdc31), - X(0x7fffdd72), X(0x7fffdeab), X(0x7fffdfdb), X(0x7fffe104), - X(0x7fffe224), X(0x7fffe33c), X(0x7fffe44d), X(0x7fffe556), - X(0x7fffe657), X(0x7fffe751), X(0x7fffe844), X(0x7fffe930), - X(0x7fffea15), X(0x7fffeaf3), X(0x7fffebca), X(0x7fffec9b), - X(0x7fffed66), X(0x7fffee2a), X(0x7fffeee8), X(0x7fffefa0), - X(0x7ffff053), X(0x7ffff0ff), X(0x7ffff1a6), X(0x7ffff247), - X(0x7ffff2e4), X(0x7ffff37a), X(0x7ffff40c), X(0x7ffff499), - X(0x7ffff520), X(0x7ffff5a3), X(0x7ffff621), X(0x7ffff69b), - X(0x7ffff710), X(0x7ffff781), X(0x7ffff7ee), X(0x7ffff857), - X(0x7ffff8bb), X(0x7ffff91c), X(0x7ffff979), X(0x7ffff9d2), - X(0x7ffffa27), X(0x7ffffa79), X(0x7ffffac8), X(0x7ffffb13), - X(0x7ffffb5b), X(0x7ffffba0), X(0x7ffffbe2), X(0x7ffffc21), - X(0x7ffffc5d), X(0x7ffffc96), X(0x7ffffccd), X(0x7ffffd01), - X(0x7ffffd32), X(0x7ffffd61), X(0x7ffffd8e), X(0x7ffffdb8), - X(0x7ffffde0), X(0x7ffffe07), X(0x7ffffe2b), X(0x7ffffe4d), - X(0x7ffffe6d), X(0x7ffffe8b), X(0x7ffffea8), X(0x7ffffec3), - X(0x7ffffedc), X(0x7ffffef4), X(0x7fffff0a), X(0x7fffff1f), - X(0x7fffff33), X(0x7fffff45), X(0x7fffff56), X(0x7fffff66), - X(0x7fffff75), X(0x7fffff82), X(0x7fffff8f), X(0x7fffff9a), - X(0x7fffffa5), X(0x7fffffaf), X(0x7fffffb8), X(0x7fffffc0), - X(0x7fffffc8), X(0x7fffffce), X(0x7fffffd5), X(0x7fffffda), - X(0x7fffffdf), X(0x7fffffe4), X(0x7fffffe8), X(0x7fffffeb), - X(0x7fffffef), X(0x7ffffff1), X(0x7ffffff4), X(0x7ffffff6), - X(0x7ffffff8), X(0x7ffffff9), X(0x7ffffffb), X(0x7ffffffc), - X(0x7ffffffd), X(0x7ffffffd), X(0x7ffffffe), X(0x7fffffff), - X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), - X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), - X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), X(0x7fffffff), -}; - -#endif diff --git a/external/linux-specific/fmod/CMakeLists.txt b/external/linux-specific/fmod/CMakeLists.txt deleted file mode 100644 index 4620339..0000000 --- a/external/linux-specific/fmod/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 3.6) - -set(lib_name fmod) -set(target_name ext_${lib_name}) - -project(${lib_name}) - -add_library(${target_name} SHARED IMPORTED GLOBAL) - -set_target_properties(${target_name} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include" - IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/64-bit/lib${lib_name}.so" -) - diff --git a/external/linux-specific/fmod/include/fmod.h b/external/linux-specific/fmod/include/fmod.h deleted file mode 100644 index 5fefd39..0000000 --- a/external/linux-specific/fmod/include/fmod.h +++ /dev/null @@ -1,718 +0,0 @@ -/*$ preserve start $*/ - -/* ======================================================================================== */ -/* FMOD Studio Low Level API - C header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2012-2015. */ -/* */ -/* Use this header in conjunction with fmod_common.h (which contains all the constants / */ -/* callbacks) to develop using C interface. */ -/* ======================================================================================== */ - -#ifndef _FMOD_H -#define _FMOD_H - -#include "fmod_common.h" - -/* ========================================================================================== */ -/* FUNCTION PROTOTYPES */ -/* ========================================================================================== */ - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* - FMOD global system functions (optional). -*/ - -FMOD_RESULT F_API FMOD_Memory_Initialize (void *poolmem, int poollen, FMOD_MEMORY_ALLOC_CALLBACK useralloc, FMOD_MEMORY_REALLOC_CALLBACK userrealloc, FMOD_MEMORY_FREE_CALLBACK userfree, FMOD_MEMORY_TYPE memtypeflags); -FMOD_RESULT F_API FMOD_Memory_GetStats (int *currentalloced, int *maxalloced, FMOD_BOOL blocking); -FMOD_RESULT F_API FMOD_Debug_Initialize (FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode, FMOD_DEBUG_CALLBACK callback, const char *filename); -FMOD_RESULT F_API FMOD_File_SetDiskBusy (int busy); -FMOD_RESULT F_API FMOD_File_GetDiskBusy (int *busy); - -/* - FMOD System factory functions. Use this to create an FMOD System Instance. below you will see FMOD_System_Init/Close to get started. -*/ - -FMOD_RESULT F_API FMOD_System_Create (FMOD_SYSTEM **system); -FMOD_RESULT F_API FMOD_System_Release (FMOD_SYSTEM *system); - -/*$ preserve end $*/ - -/* - 'System' API -*/ - -/* - Setup functions. -*/ - -FMOD_RESULT F_API FMOD_System_SetOutput (FMOD_SYSTEM *system, FMOD_OUTPUTTYPE output); -FMOD_RESULT F_API FMOD_System_GetOutput (FMOD_SYSTEM *system, FMOD_OUTPUTTYPE *output); -FMOD_RESULT F_API FMOD_System_GetNumDrivers (FMOD_SYSTEM *system, int *numdrivers); -FMOD_RESULT F_API FMOD_System_GetDriverInfo (FMOD_SYSTEM *system, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels); -FMOD_RESULT F_API FMOD_System_SetDriver (FMOD_SYSTEM *system, int driver); -FMOD_RESULT F_API FMOD_System_GetDriver (FMOD_SYSTEM *system, int *driver); -FMOD_RESULT F_API FMOD_System_SetSoftwareChannels (FMOD_SYSTEM *system, int numsoftwarechannels); -FMOD_RESULT F_API FMOD_System_GetSoftwareChannels (FMOD_SYSTEM *system, int *numsoftwarechannels); -FMOD_RESULT F_API FMOD_System_SetSoftwareFormat (FMOD_SYSTEM *system, int samplerate, FMOD_SPEAKERMODE speakermode, int numrawspeakers); -FMOD_RESULT F_API FMOD_System_GetSoftwareFormat (FMOD_SYSTEM *system, int *samplerate, FMOD_SPEAKERMODE *speakermode, int *numrawspeakers); -FMOD_RESULT F_API FMOD_System_SetDSPBufferSize (FMOD_SYSTEM *system, unsigned int bufferlength, int numbuffers); -FMOD_RESULT F_API FMOD_System_GetDSPBufferSize (FMOD_SYSTEM *system, unsigned int *bufferlength, int *numbuffers); -FMOD_RESULT F_API FMOD_System_SetFileSystem (FMOD_SYSTEM *system, FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek, FMOD_FILE_ASYNCREAD_CALLBACK userasyncread, FMOD_FILE_ASYNCCANCEL_CALLBACK userasynccancel, int blockalign); -FMOD_RESULT F_API FMOD_System_AttachFileSystem (FMOD_SYSTEM *system, FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek); -FMOD_RESULT F_API FMOD_System_SetAdvancedSettings (FMOD_SYSTEM *system, FMOD_ADVANCEDSETTINGS *settings); -FMOD_RESULT F_API FMOD_System_GetAdvancedSettings (FMOD_SYSTEM *system, FMOD_ADVANCEDSETTINGS *settings); -FMOD_RESULT F_API FMOD_System_SetCallback (FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK callback, FMOD_SYSTEM_CALLBACK_TYPE callbackmask); - -/* - Plug-in support. -*/ - -FMOD_RESULT F_API FMOD_System_SetPluginPath (FMOD_SYSTEM *system, const char *path); -FMOD_RESULT F_API FMOD_System_LoadPlugin (FMOD_SYSTEM *system, const char *filename, unsigned int *handle, unsigned int priority); -FMOD_RESULT F_API FMOD_System_UnloadPlugin (FMOD_SYSTEM *system, unsigned int handle); -FMOD_RESULT F_API FMOD_System_GetNumPlugins (FMOD_SYSTEM *system, FMOD_PLUGINTYPE plugintype, int *numplugins); -FMOD_RESULT F_API FMOD_System_GetPluginHandle (FMOD_SYSTEM *system, FMOD_PLUGINTYPE plugintype, int index, unsigned int *handle); -FMOD_RESULT F_API FMOD_System_GetPluginInfo (FMOD_SYSTEM *system, unsigned int handle, FMOD_PLUGINTYPE *plugintype, char *name, int namelen, unsigned int *version); -FMOD_RESULT F_API FMOD_System_SetOutputByPlugin (FMOD_SYSTEM *system, unsigned int handle); -FMOD_RESULT F_API FMOD_System_GetOutputByPlugin (FMOD_SYSTEM *system, unsigned int *handle); -FMOD_RESULT F_API FMOD_System_CreateDSPByPlugin (FMOD_SYSTEM *system, unsigned int handle, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_System_GetDSPInfoByPlugin (FMOD_SYSTEM *system, unsigned int handle, const FMOD_DSP_DESCRIPTION **description); -FMOD_RESULT F_API FMOD_System_RegisterCodec (FMOD_SYSTEM *system, FMOD_CODEC_DESCRIPTION *description, unsigned int *handle, unsigned int priority); -FMOD_RESULT F_API FMOD_System_RegisterDSP (FMOD_SYSTEM *system, const FMOD_DSP_DESCRIPTION *description, unsigned int *handle); -FMOD_RESULT F_API FMOD_System_RegisterOutput (FMOD_SYSTEM *system, const FMOD_OUTPUT_DESCRIPTION *description, unsigned int *handle); - -/* - Init/Close. -*/ - -FMOD_RESULT F_API FMOD_System_Init (FMOD_SYSTEM *system, int maxchannels, FMOD_INITFLAGS flags, void *extradriverdata); -FMOD_RESULT F_API FMOD_System_Close (FMOD_SYSTEM *system); - -/* - General post-init system functions. -*/ - -FMOD_RESULT F_API FMOD_System_Update (FMOD_SYSTEM *system); - -FMOD_RESULT F_API FMOD_System_SetSpeakerPosition (FMOD_SYSTEM *system, FMOD_SPEAKER speaker, float x, float y, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_System_GetSpeakerPosition (FMOD_SYSTEM *system, FMOD_SPEAKER speaker, float *x, float *y, FMOD_BOOL *active); -FMOD_RESULT F_API FMOD_System_SetStreamBufferSize (FMOD_SYSTEM *system, unsigned int filebuffersize, FMOD_TIMEUNIT filebuffersizetype); -FMOD_RESULT F_API FMOD_System_GetStreamBufferSize (FMOD_SYSTEM *system, unsigned int *filebuffersize, FMOD_TIMEUNIT *filebuffersizetype); -FMOD_RESULT F_API FMOD_System_Set3DSettings (FMOD_SYSTEM *system, float dopplerscale, float distancefactor, float rolloffscale); -FMOD_RESULT F_API FMOD_System_Get3DSettings (FMOD_SYSTEM *system, float *dopplerscale, float *distancefactor, float *rolloffscale); -FMOD_RESULT F_API FMOD_System_Set3DNumListeners (FMOD_SYSTEM *system, int numlisteners); -FMOD_RESULT F_API FMOD_System_Get3DNumListeners (FMOD_SYSTEM *system, int *numlisteners); -FMOD_RESULT F_API FMOD_System_Set3DListenerAttributes (FMOD_SYSTEM *system, int listener, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *forward, const FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_System_Get3DListenerAttributes (FMOD_SYSTEM *system, int listener, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *forward, FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_System_Set3DRolloffCallback (FMOD_SYSTEM *system, FMOD_3D_ROLLOFF_CALLBACK callback); -FMOD_RESULT F_API FMOD_System_MixerSuspend (FMOD_SYSTEM *system); -FMOD_RESULT F_API FMOD_System_MixerResume (FMOD_SYSTEM *system); -FMOD_RESULT F_API FMOD_System_GetDefaultMixMatrix (FMOD_SYSTEM *system, FMOD_SPEAKERMODE sourcespeakermode, FMOD_SPEAKERMODE targetspeakermode, float *matrix, int matrixhop); -FMOD_RESULT F_API FMOD_System_GetSpeakerModeChannels (FMOD_SYSTEM *system, FMOD_SPEAKERMODE mode, int *channels); - -/* - System information functions. -*/ - -FMOD_RESULT F_API FMOD_System_GetVersion (FMOD_SYSTEM *system, unsigned int *version); -FMOD_RESULT F_API FMOD_System_GetOutputHandle (FMOD_SYSTEM *system, void **handle); -FMOD_RESULT F_API FMOD_System_GetChannelsPlaying (FMOD_SYSTEM *system, int *channels); -FMOD_RESULT F_API FMOD_System_GetCPUUsage (FMOD_SYSTEM *system, float *dsp, float *stream, float *geometry, float *update, float *total); -FMOD_RESULT F_API FMOD_System_GetSoundRAM (FMOD_SYSTEM *system, int *currentalloced, int *maxalloced, int *total); - -/* - Sound/DSP/Channel/FX creation and retrieval. -*/ - -FMOD_RESULT F_API FMOD_System_CreateSound (FMOD_SYSTEM *system, const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_System_CreateStream (FMOD_SYSTEM *system, const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_System_CreateDSP (FMOD_SYSTEM *system, const FMOD_DSP_DESCRIPTION *description, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_System_CreateDSPByType (FMOD_SYSTEM *system, FMOD_DSP_TYPE type, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_System_CreateChannelGroup (FMOD_SYSTEM *system, const char *name, FMOD_CHANNELGROUP **channelgroup); -FMOD_RESULT F_API FMOD_System_CreateSoundGroup (FMOD_SYSTEM *system, const char *name, FMOD_SOUNDGROUP **soundgroup); -FMOD_RESULT F_API FMOD_System_CreateReverb3D (FMOD_SYSTEM *system, FMOD_REVERB3D **reverb); - -FMOD_RESULT F_API FMOD_System_PlaySound (FMOD_SYSTEM *system, FMOD_SOUND *sound, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel); -FMOD_RESULT F_API FMOD_System_PlayDSP (FMOD_SYSTEM *system, FMOD_DSP *dsp, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel); -FMOD_RESULT F_API FMOD_System_GetChannel (FMOD_SYSTEM *system, int channelid, FMOD_CHANNEL **channel); -FMOD_RESULT F_API FMOD_System_GetMasterChannelGroup (FMOD_SYSTEM *system, FMOD_CHANNELGROUP **channelgroup); -FMOD_RESULT F_API FMOD_System_GetMasterSoundGroup (FMOD_SYSTEM *system, FMOD_SOUNDGROUP **soundgroup); - -/* - Routing to ports. -*/ - -FMOD_RESULT F_API FMOD_System_AttachChannelGroupToPort (FMOD_SYSTEM *system, FMOD_PORT_TYPE portType, FMOD_PORT_INDEX portIndex, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL passThru); -FMOD_RESULT F_API FMOD_System_DetachChannelGroupFromPort(FMOD_SYSTEM *system, FMOD_CHANNELGROUP *channelgroup); - -/* - Reverb API. -*/ - -FMOD_RESULT F_API FMOD_System_SetReverbProperties (FMOD_SYSTEM *system, int instance, const FMOD_REVERB_PROPERTIES *prop); -FMOD_RESULT F_API FMOD_System_GetReverbProperties (FMOD_SYSTEM *system, int instance, FMOD_REVERB_PROPERTIES *prop); - -/* - System level DSP functionality. -*/ - -FMOD_RESULT F_API FMOD_System_LockDSP (FMOD_SYSTEM *system); -FMOD_RESULT F_API FMOD_System_UnlockDSP (FMOD_SYSTEM *system); - -/* - Recording API. -*/ - -FMOD_RESULT F_API FMOD_System_GetRecordNumDrivers (FMOD_SYSTEM *system, int *numdrivers, int *numconnected); -FMOD_RESULT F_API FMOD_System_GetRecordDriverInfo (FMOD_SYSTEM *system, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels, FMOD_DRIVER_STATE *state); -FMOD_RESULT F_API FMOD_System_GetRecordPosition (FMOD_SYSTEM *system, int id, unsigned int *position); -FMOD_RESULT F_API FMOD_System_RecordStart (FMOD_SYSTEM *system, int id, FMOD_SOUND *sound, FMOD_BOOL loop); -FMOD_RESULT F_API FMOD_System_RecordStop (FMOD_SYSTEM *system, int id); -FMOD_RESULT F_API FMOD_System_IsRecording (FMOD_SYSTEM *system, int id, FMOD_BOOL *recording); - -/* - Geometry API. -*/ - -FMOD_RESULT F_API FMOD_System_CreateGeometry (FMOD_SYSTEM *system, int maxpolygons, int maxvertices, FMOD_GEOMETRY **geometry); -FMOD_RESULT F_API FMOD_System_SetGeometrySettings (FMOD_SYSTEM *system, float maxworldsize); -FMOD_RESULT F_API FMOD_System_GetGeometrySettings (FMOD_SYSTEM *system, float *maxworldsize); -FMOD_RESULT F_API FMOD_System_LoadGeometry (FMOD_SYSTEM *system, const void *data, int datasize, FMOD_GEOMETRY **geometry); -FMOD_RESULT F_API FMOD_System_GetGeometryOcclusion (FMOD_SYSTEM *system, const FMOD_VECTOR *listener, const FMOD_VECTOR *source, float *direct, float *reverb); - -/* - Network functions. -*/ - -FMOD_RESULT F_API FMOD_System_SetNetworkProxy (FMOD_SYSTEM *system, const char *proxy); -FMOD_RESULT F_API FMOD_System_GetNetworkProxy (FMOD_SYSTEM *system, char *proxy, int proxylen); -FMOD_RESULT F_API FMOD_System_SetNetworkTimeout (FMOD_SYSTEM *system, int timeout); -FMOD_RESULT F_API FMOD_System_GetNetworkTimeout (FMOD_SYSTEM *system, int *timeout); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_System_SetUserData (FMOD_SYSTEM *system, void *userdata); -FMOD_RESULT F_API FMOD_System_GetUserData (FMOD_SYSTEM *system, void **userdata); - -/* - 'Sound' API -*/ - -FMOD_RESULT F_API FMOD_Sound_Release (FMOD_SOUND *sound); -FMOD_RESULT F_API FMOD_Sound_GetSystemObject (FMOD_SOUND *sound, FMOD_SYSTEM **system); - -/* - Standard sound manipulation functions. -*/ - -FMOD_RESULT F_API FMOD_Sound_Lock (FMOD_SOUND *sound, unsigned int offset, unsigned int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2); -FMOD_RESULT F_API FMOD_Sound_Unlock (FMOD_SOUND *sound, void *ptr1, void *ptr2, unsigned int len1, unsigned int len2); -FMOD_RESULT F_API FMOD_Sound_SetDefaults (FMOD_SOUND *sound, float frequency, int priority); -FMOD_RESULT F_API FMOD_Sound_GetDefaults (FMOD_SOUND *sound, float *frequency, int *priority); -FMOD_RESULT F_API FMOD_Sound_Set3DMinMaxDistance (FMOD_SOUND *sound, float min, float max); -FMOD_RESULT F_API FMOD_Sound_Get3DMinMaxDistance (FMOD_SOUND *sound, float *min, float *max); -FMOD_RESULT F_API FMOD_Sound_Set3DConeSettings (FMOD_SOUND *sound, float insideconeangle, float outsideconeangle, float outsidevolume); -FMOD_RESULT F_API FMOD_Sound_Get3DConeSettings (FMOD_SOUND *sound, float *insideconeangle, float *outsideconeangle, float *outsidevolume); -FMOD_RESULT F_API FMOD_Sound_Set3DCustomRolloff (FMOD_SOUND *sound, FMOD_VECTOR *points, int numpoints); -FMOD_RESULT F_API FMOD_Sound_Get3DCustomRolloff (FMOD_SOUND *sound, FMOD_VECTOR **points, int *numpoints); -FMOD_RESULT F_API FMOD_Sound_SetSubSound (FMOD_SOUND *sound, int index, FMOD_SOUND *subsound); -FMOD_RESULT F_API FMOD_Sound_GetSubSound (FMOD_SOUND *sound, int index, FMOD_SOUND **subsound); -FMOD_RESULT F_API FMOD_Sound_GetSubSoundParent (FMOD_SOUND *sound, FMOD_SOUND **parentsound); -FMOD_RESULT F_API FMOD_Sound_GetName (FMOD_SOUND *sound, char *name, int namelen); -FMOD_RESULT F_API FMOD_Sound_GetLength (FMOD_SOUND *sound, unsigned int *length, FMOD_TIMEUNIT lengthtype); -FMOD_RESULT F_API FMOD_Sound_GetFormat (FMOD_SOUND *sound, FMOD_SOUND_TYPE *type, FMOD_SOUND_FORMAT *format, int *channels, int *bits); -FMOD_RESULT F_API FMOD_Sound_GetNumSubSounds (FMOD_SOUND *sound, int *numsubsounds); -FMOD_RESULT F_API FMOD_Sound_GetNumTags (FMOD_SOUND *sound, int *numtags, int *numtagsupdated); -FMOD_RESULT F_API FMOD_Sound_GetTag (FMOD_SOUND *sound, const char *name, int index, FMOD_TAG *tag); -FMOD_RESULT F_API FMOD_Sound_GetOpenState (FMOD_SOUND *sound, FMOD_OPENSTATE *openstate, unsigned int *percentbuffered, FMOD_BOOL *starving, FMOD_BOOL *diskbusy); -FMOD_RESULT F_API FMOD_Sound_ReadData (FMOD_SOUND *sound, void *buffer, unsigned int lenbytes, unsigned int *read); -FMOD_RESULT F_API FMOD_Sound_SeekData (FMOD_SOUND *sound, unsigned int pcm); - -FMOD_RESULT F_API FMOD_Sound_SetSoundGroup (FMOD_SOUND *sound, FMOD_SOUNDGROUP *soundgroup); -FMOD_RESULT F_API FMOD_Sound_GetSoundGroup (FMOD_SOUND *sound, FMOD_SOUNDGROUP **soundgroup); - -/* - Synchronization point API. These points can come from markers embedded in wav files, and can also generate channel callbacks. -*/ - -FMOD_RESULT F_API FMOD_Sound_GetNumSyncPoints (FMOD_SOUND *sound, int *numsyncpoints); -FMOD_RESULT F_API FMOD_Sound_GetSyncPoint (FMOD_SOUND *sound, int index, FMOD_SYNCPOINT **point); -FMOD_RESULT F_API FMOD_Sound_GetSyncPointInfo (FMOD_SOUND *sound, FMOD_SYNCPOINT *point, char *name, int namelen, unsigned int *offset, FMOD_TIMEUNIT offsettype); -FMOD_RESULT F_API FMOD_Sound_AddSyncPoint (FMOD_SOUND *sound, unsigned int offset, FMOD_TIMEUNIT offsettype, const char *name, FMOD_SYNCPOINT **point); -FMOD_RESULT F_API FMOD_Sound_DeleteSyncPoint (FMOD_SOUND *sound, FMOD_SYNCPOINT *point); - -/* - Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time. -*/ - -FMOD_RESULT F_API FMOD_Sound_SetMode (FMOD_SOUND *sound, FMOD_MODE mode); -FMOD_RESULT F_API FMOD_Sound_GetMode (FMOD_SOUND *sound, FMOD_MODE *mode); -FMOD_RESULT F_API FMOD_Sound_SetLoopCount (FMOD_SOUND *sound, int loopcount); -FMOD_RESULT F_API FMOD_Sound_GetLoopCount (FMOD_SOUND *sound, int *loopcount); -FMOD_RESULT F_API FMOD_Sound_SetLoopPoints (FMOD_SOUND *sound, unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); -FMOD_RESULT F_API FMOD_Sound_GetLoopPoints (FMOD_SOUND *sound, unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - -/* - For MOD/S3M/XM/IT/MID sequenced formats only. -*/ - -FMOD_RESULT F_API FMOD_Sound_GetMusicNumChannels (FMOD_SOUND *sound, int *numchannels); -FMOD_RESULT F_API FMOD_Sound_SetMusicChannelVolume (FMOD_SOUND *sound, int channel, float volume); -FMOD_RESULT F_API FMOD_Sound_GetMusicChannelVolume (FMOD_SOUND *sound, int channel, float *volume); -FMOD_RESULT F_API FMOD_Sound_SetMusicSpeed (FMOD_SOUND *sound, float speed); -FMOD_RESULT F_API FMOD_Sound_GetMusicSpeed (FMOD_SOUND *sound, float *speed); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Sound_SetUserData (FMOD_SOUND *sound, void *userdata); -FMOD_RESULT F_API FMOD_Sound_GetUserData (FMOD_SOUND *sound, void **userdata); - -/* - 'Channel' API -*/ - -FMOD_RESULT F_API FMOD_Channel_GetSystemObject (FMOD_CHANNEL *channel, FMOD_SYSTEM **system); - -/* - General control functionality for Channels and ChannelGroups. -*/ - -FMOD_RESULT F_API FMOD_Channel_Stop (FMOD_CHANNEL *channel); -FMOD_RESULT F_API FMOD_Channel_SetPaused (FMOD_CHANNEL *channel, FMOD_BOOL paused); -FMOD_RESULT F_API FMOD_Channel_GetPaused (FMOD_CHANNEL *channel, FMOD_BOOL *paused); -FMOD_RESULT F_API FMOD_Channel_SetVolume (FMOD_CHANNEL *channel, float volume); -FMOD_RESULT F_API FMOD_Channel_GetVolume (FMOD_CHANNEL *channel, float *volume); -FMOD_RESULT F_API FMOD_Channel_SetVolumeRamp (FMOD_CHANNEL *channel, FMOD_BOOL ramp); -FMOD_RESULT F_API FMOD_Channel_GetVolumeRamp (FMOD_CHANNEL *channel, FMOD_BOOL *ramp); -FMOD_RESULT F_API FMOD_Channel_GetAudibility (FMOD_CHANNEL *channel, float *audibility); -FMOD_RESULT F_API FMOD_Channel_SetPitch (FMOD_CHANNEL *channel, float pitch); -FMOD_RESULT F_API FMOD_Channel_GetPitch (FMOD_CHANNEL *channel, float *pitch); -FMOD_RESULT F_API FMOD_Channel_SetMute (FMOD_CHANNEL *channel, FMOD_BOOL mute); -FMOD_RESULT F_API FMOD_Channel_GetMute (FMOD_CHANNEL *channel, FMOD_BOOL *mute); -FMOD_RESULT F_API FMOD_Channel_SetReverbProperties (FMOD_CHANNEL *channel, int instance, float wet); -FMOD_RESULT F_API FMOD_Channel_GetReverbProperties (FMOD_CHANNEL *channel, int instance, float *wet); -FMOD_RESULT F_API FMOD_Channel_SetLowPassGain (FMOD_CHANNEL *channel, float gain); -FMOD_RESULT F_API FMOD_Channel_GetLowPassGain (FMOD_CHANNEL *channel, float *gain); -FMOD_RESULT F_API FMOD_Channel_SetMode (FMOD_CHANNEL *channel, FMOD_MODE mode); -FMOD_RESULT F_API FMOD_Channel_GetMode (FMOD_CHANNEL *channel, FMOD_MODE *mode); -FMOD_RESULT F_API FMOD_Channel_SetCallback (FMOD_CHANNEL *channel, FMOD_CHANNELCONTROL_CALLBACK callback); -FMOD_RESULT F_API FMOD_Channel_IsPlaying (FMOD_CHANNEL *channel, FMOD_BOOL *isplaying); - -/* - Note all 'set' functions alter a final matrix, this is why the only get function is getMixMatrix, to avoid other get functions returning incorrect/obsolete values. -*/ - -FMOD_RESULT F_API FMOD_Channel_SetPan (FMOD_CHANNEL *channel, float pan); -FMOD_RESULT F_API FMOD_Channel_SetMixLevelsOutput (FMOD_CHANNEL *channel, float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright); -FMOD_RESULT F_API FMOD_Channel_SetMixLevelsInput (FMOD_CHANNEL *channel, float *levels, int numlevels); -FMOD_RESULT F_API FMOD_Channel_SetMixMatrix (FMOD_CHANNEL *channel, float *matrix, int outchannels, int inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_Channel_GetMixMatrix (FMOD_CHANNEL *channel, float *matrix, int *outchannels, int *inchannels, int inchannel_hop); - -/* - Clock based functionality. -*/ - -FMOD_RESULT F_API FMOD_Channel_GetDSPClock (FMOD_CHANNEL *channel, unsigned long long *dspclock, unsigned long long *parentclock); -FMOD_RESULT F_API FMOD_Channel_SetDelay (FMOD_CHANNEL *channel, unsigned long long dspclock_start, unsigned long long dspclock_end, FMOD_BOOL stopchannels); -FMOD_RESULT F_API FMOD_Channel_GetDelay (FMOD_CHANNEL *channel, unsigned long long *dspclock_start, unsigned long long *dspclock_end, FMOD_BOOL *stopchannels); -FMOD_RESULT F_API FMOD_Channel_AddFadePoint (FMOD_CHANNEL *channel, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_Channel_SetFadePointRamp (FMOD_CHANNEL *channel, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_Channel_RemoveFadePoints (FMOD_CHANNEL *channel, unsigned long long dspclock_start, unsigned long long dspclock_end); -FMOD_RESULT F_API FMOD_Channel_GetFadePoints (FMOD_CHANNEL *channel, unsigned int *numpoints, unsigned long long *point_dspclock, float *point_volume); - -/* - DSP effects. -*/ - -FMOD_RESULT F_API FMOD_Channel_GetDSP (FMOD_CHANNEL *channel, int index, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_Channel_AddDSP (FMOD_CHANNEL *channel, int index, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_Channel_RemoveDSP (FMOD_CHANNEL *channel, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_Channel_GetNumDSPs (FMOD_CHANNEL *channel, int *numdsps); -FMOD_RESULT F_API FMOD_Channel_SetDSPIndex (FMOD_CHANNEL *channel, FMOD_DSP *dsp, int index); -FMOD_RESULT F_API FMOD_Channel_GetDSPIndex (FMOD_CHANNEL *channel, FMOD_DSP *dsp, int *index); -FMOD_RESULT F_API FMOD_Channel_OverridePanDSP (FMOD_CHANNEL *channel, FMOD_DSP *pan); - -/* - 3D functionality. -*/ - -FMOD_RESULT F_API FMOD_Channel_Set3DAttributes (FMOD_CHANNEL *channel, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_Channel_Get3DAttributes (FMOD_CHANNEL *channel, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_Channel_Set3DMinMaxDistance (FMOD_CHANNEL *channel, float mindistance, float maxdistance); -FMOD_RESULT F_API FMOD_Channel_Get3DMinMaxDistance (FMOD_CHANNEL *channel, float *mindistance, float *maxdistance); -FMOD_RESULT F_API FMOD_Channel_Set3DConeSettings (FMOD_CHANNEL *channel, float insideconeangle, float outsideconeangle, float outsidevolume); -FMOD_RESULT F_API FMOD_Channel_Get3DConeSettings (FMOD_CHANNEL *channel, float *insideconeangle, float *outsideconeangle, float *outsidevolume); -FMOD_RESULT F_API FMOD_Channel_Set3DConeOrientation (FMOD_CHANNEL *channel, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_Channel_Get3DConeOrientation (FMOD_CHANNEL *channel, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_Channel_Set3DCustomRolloff (FMOD_CHANNEL *channel, FMOD_VECTOR *points, int numpoints); -FMOD_RESULT F_API FMOD_Channel_Get3DCustomRolloff (FMOD_CHANNEL *channel, FMOD_VECTOR **points, int *numpoints); -FMOD_RESULT F_API FMOD_Channel_Set3DOcclusion (FMOD_CHANNEL *channel, float directocclusion, float reverbocclusion); -FMOD_RESULT F_API FMOD_Channel_Get3DOcclusion (FMOD_CHANNEL *channel, float *directocclusion, float *reverbocclusion); -FMOD_RESULT F_API FMOD_Channel_Set3DSpread (FMOD_CHANNEL *channel, float angle); -FMOD_RESULT F_API FMOD_Channel_Get3DSpread (FMOD_CHANNEL *channel, float *angle); -FMOD_RESULT F_API FMOD_Channel_Set3DLevel (FMOD_CHANNEL *channel, float level); -FMOD_RESULT F_API FMOD_Channel_Get3DLevel (FMOD_CHANNEL *channel, float *level); -FMOD_RESULT F_API FMOD_Channel_Set3DDopplerLevel (FMOD_CHANNEL *channel, float level); -FMOD_RESULT F_API FMOD_Channel_Get3DDopplerLevel (FMOD_CHANNEL *channel, float *level); -FMOD_RESULT F_API FMOD_Channel_Set3DDistanceFilter (FMOD_CHANNEL *channel, FMOD_BOOL custom, float customLevel, float centerFreq); -FMOD_RESULT F_API FMOD_Channel_Get3DDistanceFilter (FMOD_CHANNEL *channel, FMOD_BOOL *custom, float *customLevel, float *centerFreq); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Channel_SetUserData (FMOD_CHANNEL *channel, void *userdata); -FMOD_RESULT F_API FMOD_Channel_GetUserData (FMOD_CHANNEL *channel, void **userdata); - -/* - Channel specific control functionality. -*/ - -FMOD_RESULT F_API FMOD_Channel_SetFrequency (FMOD_CHANNEL *channel, float frequency); -FMOD_RESULT F_API FMOD_Channel_GetFrequency (FMOD_CHANNEL *channel, float *frequency); -FMOD_RESULT F_API FMOD_Channel_SetPriority (FMOD_CHANNEL *channel, int priority); -FMOD_RESULT F_API FMOD_Channel_GetPriority (FMOD_CHANNEL *channel, int *priority); -FMOD_RESULT F_API FMOD_Channel_SetPosition (FMOD_CHANNEL *channel, unsigned int position, FMOD_TIMEUNIT postype); -FMOD_RESULT F_API FMOD_Channel_GetPosition (FMOD_CHANNEL *channel, unsigned int *position, FMOD_TIMEUNIT postype); -FMOD_RESULT F_API FMOD_Channel_SetChannelGroup (FMOD_CHANNEL *channel, FMOD_CHANNELGROUP *channelgroup); -FMOD_RESULT F_API FMOD_Channel_GetChannelGroup (FMOD_CHANNEL *channel, FMOD_CHANNELGROUP **channelgroup); -FMOD_RESULT F_API FMOD_Channel_SetLoopCount (FMOD_CHANNEL *channel, int loopcount); -FMOD_RESULT F_API FMOD_Channel_GetLoopCount (FMOD_CHANNEL *channel, int *loopcount); -FMOD_RESULT F_API FMOD_Channel_SetLoopPoints (FMOD_CHANNEL *channel, unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); -FMOD_RESULT F_API FMOD_Channel_GetLoopPoints (FMOD_CHANNEL *channel, unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - -/* - Information only functions. -*/ - -FMOD_RESULT F_API FMOD_Channel_IsVirtual (FMOD_CHANNEL *channel, FMOD_BOOL *isvirtual); -FMOD_RESULT F_API FMOD_Channel_GetCurrentSound (FMOD_CHANNEL *channel, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_Channel_GetIndex (FMOD_CHANNEL *channel, int *index); - -/* - 'ChannelGroup' API -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetSystemObject (FMOD_CHANNELGROUP *channelgroup, FMOD_SYSTEM **system); - -/* - General control functionality for Channels and ChannelGroups. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_Stop (FMOD_CHANNELGROUP *channelgroup); -FMOD_RESULT F_API FMOD_ChannelGroup_SetPaused (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused); -FMOD_RESULT F_API FMOD_ChannelGroup_GetPaused (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *paused); -FMOD_RESULT F_API FMOD_ChannelGroup_SetVolume (FMOD_CHANNELGROUP *channelgroup, float volume); -FMOD_RESULT F_API FMOD_ChannelGroup_GetVolume (FMOD_CHANNELGROUP *channelgroup, float *volume); -FMOD_RESULT F_API FMOD_ChannelGroup_SetVolumeRamp (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL ramp); -FMOD_RESULT F_API FMOD_ChannelGroup_GetVolumeRamp (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *ramp); -FMOD_RESULT F_API FMOD_ChannelGroup_GetAudibility (FMOD_CHANNELGROUP *channelgroup, float *audibility); -FMOD_RESULT F_API FMOD_ChannelGroup_SetPitch (FMOD_CHANNELGROUP *channelgroup, float pitch); -FMOD_RESULT F_API FMOD_ChannelGroup_GetPitch (FMOD_CHANNELGROUP *channelgroup, float *pitch); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMute (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL mute); -FMOD_RESULT F_API FMOD_ChannelGroup_GetMute (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *mute); -FMOD_RESULT F_API FMOD_ChannelGroup_SetReverbProperties (FMOD_CHANNELGROUP *channelgroup, int instance, float wet); -FMOD_RESULT F_API FMOD_ChannelGroup_GetReverbProperties (FMOD_CHANNELGROUP *channelgroup, int instance, float *wet); -FMOD_RESULT F_API FMOD_ChannelGroup_SetLowPassGain (FMOD_CHANNELGROUP *channelgroup, float gain); -FMOD_RESULT F_API FMOD_ChannelGroup_GetLowPassGain (FMOD_CHANNELGROUP *channelgroup, float *gain); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMode (FMOD_CHANNELGROUP *channelgroup, FMOD_MODE mode); -FMOD_RESULT F_API FMOD_ChannelGroup_GetMode (FMOD_CHANNELGROUP *channelgroup, FMOD_MODE *mode); -FMOD_RESULT F_API FMOD_ChannelGroup_SetCallback (FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELCONTROL_CALLBACK callback); -FMOD_RESULT F_API FMOD_ChannelGroup_IsPlaying (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *isplaying); - -/* - Note all 'set' functions alter a final matrix, this is why the only get function is getMixMatrix, to avoid other get functions returning incorrect/obsolete values. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_SetPan (FMOD_CHANNELGROUP *channelgroup, float pan); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMixLevelsOutput (FMOD_CHANNELGROUP *channelgroup, float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMixLevelsInput (FMOD_CHANNELGROUP *channelgroup, float *levels, int numlevels); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMixMatrix (FMOD_CHANNELGROUP *channelgroup, float *matrix, int outchannels, int inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_ChannelGroup_GetMixMatrix (FMOD_CHANNELGROUP *channelgroup, float *matrix, int *outchannels, int *inchannels, int inchannel_hop); - -/* - Clock based functionality. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetDSPClock (FMOD_CHANNELGROUP *channelgroup, unsigned long long *dspclock, unsigned long long *parentclock); -FMOD_RESULT F_API FMOD_ChannelGroup_SetDelay (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock_start, unsigned long long dspclock_end, FMOD_BOOL stopchannels); -FMOD_RESULT F_API FMOD_ChannelGroup_GetDelay (FMOD_CHANNELGROUP *channelgroup, unsigned long long *dspclock_start, unsigned long long *dspclock_end, FMOD_BOOL *stopchannels); -FMOD_RESULT F_API FMOD_ChannelGroup_AddFadePoint (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_ChannelGroup_SetFadePointRamp (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_ChannelGroup_RemoveFadePoints (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock_start, unsigned long long dspclock_end); -FMOD_RESULT F_API FMOD_ChannelGroup_GetFadePoints (FMOD_CHANNELGROUP *channelgroup, unsigned int *numpoints, unsigned long long *point_dspclock, float *point_volume); - -/* - DSP effects. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetDSP (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_ChannelGroup_AddDSP (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_ChannelGroup_RemoveDSP (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_ChannelGroup_GetNumDSPs (FMOD_CHANNELGROUP *channelgroup, int *numdsps); -FMOD_RESULT F_API FMOD_ChannelGroup_SetDSPIndex (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp, int index); -FMOD_RESULT F_API FMOD_ChannelGroup_GetDSPIndex (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp, int *index); -FMOD_RESULT F_API FMOD_ChannelGroup_OverridePanDSP (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *pan); - -/* - 3D functionality. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DAttributes (FMOD_CHANNELGROUP *channelgroup, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DAttributes (FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DMinMaxDistance (FMOD_CHANNELGROUP *channelgroup, float mindistance, float maxdistance); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DMinMaxDistance (FMOD_CHANNELGROUP *channelgroup, float *mindistance, float *maxdistance); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DConeSettings (FMOD_CHANNELGROUP *channelgroup, float insideconeangle, float outsideconeangle, float outsidevolume); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DConeSettings (FMOD_CHANNELGROUP *channelgroup, float *insideconeangle, float *outsideconeangle, float *outsidevolume); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DConeOrientation(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DConeOrientation(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DCustomRolloff (FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *points, int numpoints); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DCustomRolloff (FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR **points, int *numpoints); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DOcclusion (FMOD_CHANNELGROUP *channelgroup, float directocclusion, float reverbocclusion); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DOcclusion (FMOD_CHANNELGROUP *channelgroup, float *directocclusion, float *reverbocclusion); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DSpread (FMOD_CHANNELGROUP *channelgroup, float angle); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DSpread (FMOD_CHANNELGROUP *channelgroup, float *angle); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DLevel (FMOD_CHANNELGROUP *channelgroup, float level); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DLevel (FMOD_CHANNELGROUP *channelgroup, float *level); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DDopplerLevel (FMOD_CHANNELGROUP *channelgroup, float level); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DDopplerLevel (FMOD_CHANNELGROUP *channelgroup, float *level); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DDistanceFilter (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL custom, float customLevel, float centerFreq); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DDistanceFilter (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *custom, float *customLevel, float *centerFreq); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_SetUserData (FMOD_CHANNELGROUP *channelgroup, void *userdata); -FMOD_RESULT F_API FMOD_ChannelGroup_GetUserData (FMOD_CHANNELGROUP *channelgroup, void **userdata); - -FMOD_RESULT F_API FMOD_ChannelGroup_Release (FMOD_CHANNELGROUP *channelgroup); - -/* - Nested channel groups. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_AddGroup (FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELGROUP *group, FMOD_BOOL propagatedspclock, FMOD_DSPCONNECTION **connection); -FMOD_RESULT F_API FMOD_ChannelGroup_GetNumGroups (FMOD_CHANNELGROUP *channelgroup, int *numgroups); -FMOD_RESULT F_API FMOD_ChannelGroup_GetGroup (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_CHANNELGROUP **group); -FMOD_RESULT F_API FMOD_ChannelGroup_GetParentGroup (FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELGROUP **group); - -/* - Information only functions. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetName (FMOD_CHANNELGROUP *channelgroup, char *name, int namelen); -FMOD_RESULT F_API FMOD_ChannelGroup_GetNumChannels (FMOD_CHANNELGROUP *channelgroup, int *numchannels); -FMOD_RESULT F_API FMOD_ChannelGroup_GetChannel (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_CHANNEL **channel); - -/* - 'SoundGroup' API -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_Release (FMOD_SOUNDGROUP *soundgroup); -FMOD_RESULT F_API FMOD_SoundGroup_GetSystemObject (FMOD_SOUNDGROUP *soundgroup, FMOD_SYSTEM **system); - -/* - SoundGroup control functions. -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_SetMaxAudible (FMOD_SOUNDGROUP *soundgroup, int maxaudible); -FMOD_RESULT F_API FMOD_SoundGroup_GetMaxAudible (FMOD_SOUNDGROUP *soundgroup, int *maxaudible); -FMOD_RESULT F_API FMOD_SoundGroup_SetMaxAudibleBehavior (FMOD_SOUNDGROUP *soundgroup, FMOD_SOUNDGROUP_BEHAVIOR behavior); -FMOD_RESULT F_API FMOD_SoundGroup_GetMaxAudibleBehavior (FMOD_SOUNDGROUP *soundgroup, FMOD_SOUNDGROUP_BEHAVIOR *behavior); -FMOD_RESULT F_API FMOD_SoundGroup_SetMuteFadeSpeed (FMOD_SOUNDGROUP *soundgroup, float speed); -FMOD_RESULT F_API FMOD_SoundGroup_GetMuteFadeSpeed (FMOD_SOUNDGROUP *soundgroup, float *speed); -FMOD_RESULT F_API FMOD_SoundGroup_SetVolume (FMOD_SOUNDGROUP *soundgroup, float volume); -FMOD_RESULT F_API FMOD_SoundGroup_GetVolume (FMOD_SOUNDGROUP *soundgroup, float *volume); -FMOD_RESULT F_API FMOD_SoundGroup_Stop (FMOD_SOUNDGROUP *soundgroup); - -/* - Information only functions. -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_GetName (FMOD_SOUNDGROUP *soundgroup, char *name, int namelen); -FMOD_RESULT F_API FMOD_SoundGroup_GetNumSounds (FMOD_SOUNDGROUP *soundgroup, int *numsounds); -FMOD_RESULT F_API FMOD_SoundGroup_GetSound (FMOD_SOUNDGROUP *soundgroup, int index, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_SoundGroup_GetNumPlaying (FMOD_SOUNDGROUP *soundgroup, int *numplaying); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_SetUserData (FMOD_SOUNDGROUP *soundgroup, void *userdata); -FMOD_RESULT F_API FMOD_SoundGroup_GetUserData (FMOD_SOUNDGROUP *soundgroup, void **userdata); - -/* - 'DSP' API -*/ - -FMOD_RESULT F_API FMOD_DSP_Release (FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_DSP_GetSystemObject (FMOD_DSP *dsp, FMOD_SYSTEM **system); - -/* - Connection / disconnection / input and output enumeration. -*/ - -FMOD_RESULT F_API FMOD_DSP_AddInput (FMOD_DSP *dsp, FMOD_DSP *input, FMOD_DSPCONNECTION **connection, FMOD_DSPCONNECTION_TYPE type); -FMOD_RESULT F_API FMOD_DSP_DisconnectFrom (FMOD_DSP *dsp, FMOD_DSP *target, FMOD_DSPCONNECTION *connection); -FMOD_RESULT F_API FMOD_DSP_DisconnectAll (FMOD_DSP *dsp, FMOD_BOOL inputs, FMOD_BOOL outputs); -FMOD_RESULT F_API FMOD_DSP_GetNumInputs (FMOD_DSP *dsp, int *numinputs); -FMOD_RESULT F_API FMOD_DSP_GetNumOutputs (FMOD_DSP *dsp, int *numoutputs); -FMOD_RESULT F_API FMOD_DSP_GetInput (FMOD_DSP *dsp, int index, FMOD_DSP **input, FMOD_DSPCONNECTION **inputconnection); -FMOD_RESULT F_API FMOD_DSP_GetOutput (FMOD_DSP *dsp, int index, FMOD_DSP **output, FMOD_DSPCONNECTION **outputconnection); - -/* - DSP unit control. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetActive (FMOD_DSP *dsp, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_DSP_GetActive (FMOD_DSP *dsp, FMOD_BOOL *active); -FMOD_RESULT F_API FMOD_DSP_SetBypass (FMOD_DSP *dsp, FMOD_BOOL bypass); -FMOD_RESULT F_API FMOD_DSP_GetBypass (FMOD_DSP *dsp, FMOD_BOOL *bypass); -FMOD_RESULT F_API FMOD_DSP_SetWetDryMix (FMOD_DSP *dsp, float prewet, float postwet, float dry); -FMOD_RESULT F_API FMOD_DSP_GetWetDryMix (FMOD_DSP *dsp, float *prewet, float *postwet, float *dry); -FMOD_RESULT F_API FMOD_DSP_SetChannelFormat (FMOD_DSP *dsp, FMOD_CHANNELMASK channelmask, int numchannels, FMOD_SPEAKERMODE source_speakermode); -FMOD_RESULT F_API FMOD_DSP_GetChannelFormat (FMOD_DSP *dsp, FMOD_CHANNELMASK *channelmask, int *numchannels, FMOD_SPEAKERMODE *source_speakermode); -FMOD_RESULT F_API FMOD_DSP_GetOutputChannelFormat (FMOD_DSP *dsp, FMOD_CHANNELMASK inmask, int inchannels, FMOD_SPEAKERMODE inspeakermode, FMOD_CHANNELMASK *outmask, int *outchannels, FMOD_SPEAKERMODE *outspeakermode); -FMOD_RESULT F_API FMOD_DSP_Reset (FMOD_DSP *dsp); - -/* - DSP parameter control. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetParameterFloat (FMOD_DSP *dsp, int index, float value); -FMOD_RESULT F_API FMOD_DSP_SetParameterInt (FMOD_DSP *dsp, int index, int value); -FMOD_RESULT F_API FMOD_DSP_SetParameterBool (FMOD_DSP *dsp, int index, FMOD_BOOL value); -FMOD_RESULT F_API FMOD_DSP_SetParameterData (FMOD_DSP *dsp, int index, void *data, unsigned int length); -FMOD_RESULT F_API FMOD_DSP_GetParameterFloat (FMOD_DSP *dsp, int index, float *value, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetParameterInt (FMOD_DSP *dsp, int index, int *value, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetParameterBool (FMOD_DSP *dsp, int index, FMOD_BOOL *value, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetParameterData (FMOD_DSP *dsp, int index, void **data, unsigned int *length, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetNumParameters (FMOD_DSP *dsp, int *numparams); -FMOD_RESULT F_API FMOD_DSP_GetParameterInfo (FMOD_DSP *dsp, int index, FMOD_DSP_PARAMETER_DESC **desc); -FMOD_RESULT F_API FMOD_DSP_GetDataParameterIndex (FMOD_DSP *dsp, int datatype, int *index); -FMOD_RESULT F_API FMOD_DSP_ShowConfigDialog (FMOD_DSP *dsp, void *hwnd, FMOD_BOOL show); - -/* - DSP attributes. -*/ - -FMOD_RESULT F_API FMOD_DSP_GetInfo (FMOD_DSP *dsp, char *name, unsigned int *version, int *channels, int *configwidth, int *configheight); -FMOD_RESULT F_API FMOD_DSP_GetType (FMOD_DSP *dsp, FMOD_DSP_TYPE *type); -FMOD_RESULT F_API FMOD_DSP_GetIdle (FMOD_DSP *dsp, FMOD_BOOL *idle); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetUserData (FMOD_DSP *dsp, void *userdata); -FMOD_RESULT F_API FMOD_DSP_GetUserData (FMOD_DSP *dsp, void **userdata); - -/* - Metering. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetMeteringEnabled (FMOD_DSP *dsp, FMOD_BOOL inputEnabled, FMOD_BOOL outputEnabled); -FMOD_RESULT F_API FMOD_DSP_GetMeteringEnabled (FMOD_DSP *dsp, FMOD_BOOL *inputEnabled, FMOD_BOOL *outputEnabled); -FMOD_RESULT F_API FMOD_DSP_GetMeteringInfo (FMOD_DSP *dsp, FMOD_DSP_METERING_INFO *inputInfo, FMOD_DSP_METERING_INFO *outputInfo); - -/* - 'DSPConnection' API -*/ - -FMOD_RESULT F_API FMOD_DSPConnection_GetInput (FMOD_DSPCONNECTION *dspconnection, FMOD_DSP **input); -FMOD_RESULT F_API FMOD_DSPConnection_GetOutput (FMOD_DSPCONNECTION *dspconnection, FMOD_DSP **output); -FMOD_RESULT F_API FMOD_DSPConnection_SetMix (FMOD_DSPCONNECTION *dspconnection, float volume); -FMOD_RESULT F_API FMOD_DSPConnection_GetMix (FMOD_DSPCONNECTION *dspconnection, float *volume); -FMOD_RESULT F_API FMOD_DSPConnection_SetMixMatrix (FMOD_DSPCONNECTION *dspconnection, float *matrix, int outchannels, int inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_DSPConnection_GetMixMatrix (FMOD_DSPCONNECTION *dspconnection, float *matrix, int *outchannels, int *inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_DSPConnection_GetType (FMOD_DSPCONNECTION *dspconnection, FMOD_DSPCONNECTION_TYPE *type); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_DSPConnection_SetUserData (FMOD_DSPCONNECTION *dspconnection, void *userdata); -FMOD_RESULT F_API FMOD_DSPConnection_GetUserData (FMOD_DSPCONNECTION *dspconnection, void **userdata); - -/* - 'Geometry' API -*/ - -FMOD_RESULT F_API FMOD_Geometry_Release (FMOD_GEOMETRY *geometry); - -/* - Polygon manipulation. -*/ - -FMOD_RESULT F_API FMOD_Geometry_AddPolygon (FMOD_GEOMETRY *geometry, float directocclusion, float reverbocclusion, FMOD_BOOL doublesided, int numvertices, const FMOD_VECTOR *vertices, int *polygonindex); -FMOD_RESULT F_API FMOD_Geometry_GetNumPolygons (FMOD_GEOMETRY *geometry, int *numpolygons); -FMOD_RESULT F_API FMOD_Geometry_GetMaxPolygons (FMOD_GEOMETRY *geometry, int *maxpolygons, int *maxvertices); -FMOD_RESULT F_API FMOD_Geometry_GetPolygonNumVertices (FMOD_GEOMETRY *geometry, int index, int *numvertices); -FMOD_RESULT F_API FMOD_Geometry_SetPolygonVertex (FMOD_GEOMETRY *geometry, int index, int vertexindex, const FMOD_VECTOR *vertex); -FMOD_RESULT F_API FMOD_Geometry_GetPolygonVertex (FMOD_GEOMETRY *geometry, int index, int vertexindex, FMOD_VECTOR *vertex); -FMOD_RESULT F_API FMOD_Geometry_SetPolygonAttributes (FMOD_GEOMETRY *geometry, int index, float directocclusion, float reverbocclusion, FMOD_BOOL doublesided); -FMOD_RESULT F_API FMOD_Geometry_GetPolygonAttributes (FMOD_GEOMETRY *geometry, int index, float *directocclusion, float *reverbocclusion, FMOD_BOOL *doublesided); - -/* - Object manipulation. -*/ - -FMOD_RESULT F_API FMOD_Geometry_SetActive (FMOD_GEOMETRY *geometry, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_Geometry_GetActive (FMOD_GEOMETRY *geometry, FMOD_BOOL *active); -FMOD_RESULT F_API FMOD_Geometry_SetRotation (FMOD_GEOMETRY *geometry, const FMOD_VECTOR *forward, const FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_Geometry_GetRotation (FMOD_GEOMETRY *geometry, FMOD_VECTOR *forward, FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_Geometry_SetPosition (FMOD_GEOMETRY *geometry, const FMOD_VECTOR *position); -FMOD_RESULT F_API FMOD_Geometry_GetPosition (FMOD_GEOMETRY *geometry, FMOD_VECTOR *position); -FMOD_RESULT F_API FMOD_Geometry_SetScale (FMOD_GEOMETRY *geometry, const FMOD_VECTOR *scale); -FMOD_RESULT F_API FMOD_Geometry_GetScale (FMOD_GEOMETRY *geometry, FMOD_VECTOR *scale); -FMOD_RESULT F_API FMOD_Geometry_Save (FMOD_GEOMETRY *geometry, void *data, int *datasize); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Geometry_SetUserData (FMOD_GEOMETRY *geometry, void *userdata); -FMOD_RESULT F_API FMOD_Geometry_GetUserData (FMOD_GEOMETRY *geometry, void **userdata); - -/* - 'Reverb3D' API -*/ - -FMOD_RESULT F_API FMOD_Reverb3D_Release (FMOD_REVERB3D *reverb3d); - -/* - Reverb manipulation. -*/ - -FMOD_RESULT F_API FMOD_Reverb3D_Set3DAttributes (FMOD_REVERB3D *reverb3d, const FMOD_VECTOR *position, float mindistance, float maxdistance); -FMOD_RESULT F_API FMOD_Reverb3D_Get3DAttributes (FMOD_REVERB3D *reverb3d, FMOD_VECTOR *position, float *mindistance, float *maxdistance); -FMOD_RESULT F_API FMOD_Reverb3D_SetProperties (FMOD_REVERB3D *reverb3d, const FMOD_REVERB_PROPERTIES *properties); -FMOD_RESULT F_API FMOD_Reverb3D_GetProperties (FMOD_REVERB3D *reverb3d, FMOD_REVERB_PROPERTIES *properties); -FMOD_RESULT F_API FMOD_Reverb3D_SetActive (FMOD_REVERB3D *reverb3d, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_Reverb3D_GetActive (FMOD_REVERB3D *reverb3d, FMOD_BOOL *active); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Reverb3D_SetUserData (FMOD_REVERB3D *reverb3d, void *userdata); -FMOD_RESULT F_API FMOD_Reverb3D_GetUserData (FMOD_REVERB3D *reverb3d, void **userdata); - -/*$ preserve start $*/ - -#ifdef __cplusplus -} -#endif - -#endif /* _FMOD_H */ - -/*$ preserve end $*/ diff --git a/external/linux-specific/fmod/include/fmod.hpp b/external/linux-specific/fmod/include/fmod.hpp deleted file mode 100644 index f071e6c..0000000 --- a/external/linux-specific/fmod/include/fmod.hpp +++ /dev/null @@ -1,604 +0,0 @@ -/* ========================================================================================== */ -/* FMOD Studio - C++ header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2015. */ -/* */ -/* Use this header in conjunction with fmod_common.h (which contains all the constants / */ -/* callbacks) to develop using C++ classes. */ -/* ========================================================================================== */ - -#ifndef _FMOD_HPP -#define _FMOD_HPP - -#include "fmod_common.h" -#include "fmod.h" - -/* - Constant and defines -*/ - -/* - FMOD Namespace -*/ -namespace FMOD -{ - class System; - class Sound; - class ChannelControl; - class Channel; - class ChannelGroup; - class SoundGroup; - class DSP; - class DSPConnection; - class Geometry; - class Reverb3D; - - /* - FMOD global system functions (optional). - */ - inline FMOD_RESULT Memory_Initialize (void *poolmem, int poollen, FMOD_MEMORY_ALLOC_CALLBACK useralloc, FMOD_MEMORY_REALLOC_CALLBACK userrealloc, FMOD_MEMORY_FREE_CALLBACK userfree, FMOD_MEMORY_TYPE memtypeflags = FMOD_MEMORY_ALL) { return FMOD_Memory_Initialize(poolmem, poollen, useralloc, userrealloc, userfree, memtypeflags); } - inline FMOD_RESULT Memory_GetStats (int *currentalloced, int *maxalloced, bool blocking = true) { return FMOD_Memory_GetStats(currentalloced, maxalloced, blocking); } - inline FMOD_RESULT Debug_Initialize (FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode = FMOD_DEBUG_MODE_TTY, FMOD_DEBUG_CALLBACK callback = 0, const char *filename = 0) { return FMOD_Debug_Initialize(flags, mode, callback, filename); } - inline FMOD_RESULT File_SetDiskBusy (int busy) { return FMOD_File_SetDiskBusy(busy); } - inline FMOD_RESULT File_GetDiskBusy (int *busy) { return FMOD_File_GetDiskBusy(busy); } - - /* - FMOD System factory functions. - */ - inline FMOD_RESULT System_Create (System **system) { return FMOD_System_Create((FMOD_SYSTEM **)system); } - - /* - 'System' API - */ - class System - { - private: - - // Constructor made private so user cannot statically instance a System class. System_Create must be used. - System(); - System(const System &); - - public: - - FMOD_RESULT F_API release (); - - // Setup functions. - FMOD_RESULT F_API setOutput (FMOD_OUTPUTTYPE output); - FMOD_RESULT F_API getOutput (FMOD_OUTPUTTYPE *output); - FMOD_RESULT F_API getNumDrivers (int *numdrivers); - FMOD_RESULT F_API getDriverInfo (int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels); - FMOD_RESULT F_API setDriver (int driver); - FMOD_RESULT F_API getDriver (int *driver); - FMOD_RESULT F_API setSoftwareChannels (int numsoftwarechannels); - FMOD_RESULT F_API getSoftwareChannels (int *numsoftwarechannels); - FMOD_RESULT F_API setSoftwareFormat (int samplerate, FMOD_SPEAKERMODE speakermode, int numrawspeakers); - FMOD_RESULT F_API getSoftwareFormat (int *samplerate, FMOD_SPEAKERMODE *speakermode, int *numrawspeakers); - FMOD_RESULT F_API setDSPBufferSize (unsigned int bufferlength, int numbuffers); - FMOD_RESULT F_API getDSPBufferSize (unsigned int *bufferlength, int *numbuffers); - FMOD_RESULT F_API setFileSystem (FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek, FMOD_FILE_ASYNCREAD_CALLBACK userasyncread, FMOD_FILE_ASYNCCANCEL_CALLBACK userasynccancel, int blockalign); - FMOD_RESULT F_API attachFileSystem (FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek); - FMOD_RESULT F_API setAdvancedSettings (FMOD_ADVANCEDSETTINGS *settings); - FMOD_RESULT F_API getAdvancedSettings (FMOD_ADVANCEDSETTINGS *settings); - FMOD_RESULT F_API setCallback (FMOD_SYSTEM_CALLBACK callback, FMOD_SYSTEM_CALLBACK_TYPE callbackmask = 0xFFFFFFFF); - - // Plug-in support. - FMOD_RESULT F_API setPluginPath (const char *path); - FMOD_RESULT F_API loadPlugin (const char *filename, unsigned int *handle, unsigned int priority = 0); - FMOD_RESULT F_API unloadPlugin (unsigned int handle); - FMOD_RESULT F_API getNumPlugins (FMOD_PLUGINTYPE plugintype, int *numplugins); - FMOD_RESULT F_API getPluginHandle (FMOD_PLUGINTYPE plugintype, int index, unsigned int *handle); - FMOD_RESULT F_API getPluginInfo (unsigned int handle, FMOD_PLUGINTYPE *plugintype, char *name, int namelen, unsigned int *version); - FMOD_RESULT F_API setOutputByPlugin (unsigned int handle); - FMOD_RESULT F_API getOutputByPlugin (unsigned int *handle); - FMOD_RESULT F_API createDSPByPlugin (unsigned int handle, DSP **dsp); - FMOD_RESULT F_API getDSPInfoByPlugin (unsigned int handle, const FMOD_DSP_DESCRIPTION **description); - FMOD_RESULT F_API registerCodec (FMOD_CODEC_DESCRIPTION *description, unsigned int *handle, unsigned int priority = 0); - FMOD_RESULT F_API registerDSP (const FMOD_DSP_DESCRIPTION *description, unsigned int *handle); - FMOD_RESULT F_API registerOutput (const FMOD_OUTPUT_DESCRIPTION *description, unsigned int *handle); - - // Init/Close. - FMOD_RESULT F_API init (int maxchannels, FMOD_INITFLAGS flags, void *extradriverdata); - FMOD_RESULT F_API close (); - - // General post-init system functions. - FMOD_RESULT F_API update (); /* IMPORTANT! CALL THIS ONCE PER FRAME! */ - - FMOD_RESULT F_API setSpeakerPosition (FMOD_SPEAKER speaker, float x, float y, bool active); - FMOD_RESULT F_API getSpeakerPosition (FMOD_SPEAKER speaker, float *x, float *y, bool *active); - FMOD_RESULT F_API setStreamBufferSize (unsigned int filebuffersize, FMOD_TIMEUNIT filebuffersizetype); - FMOD_RESULT F_API getStreamBufferSize (unsigned int *filebuffersize, FMOD_TIMEUNIT *filebuffersizetype); - FMOD_RESULT F_API set3DSettings (float dopplerscale, float distancefactor, float rolloffscale); - FMOD_RESULT F_API get3DSettings (float *dopplerscale, float *distancefactor, float *rolloffscale); - FMOD_RESULT F_API set3DNumListeners (int numlisteners); - FMOD_RESULT F_API get3DNumListeners (int *numlisteners); - FMOD_RESULT F_API set3DListenerAttributes (int listener, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *forward, const FMOD_VECTOR *up); - FMOD_RESULT F_API get3DListenerAttributes (int listener, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *forward, FMOD_VECTOR *up); - FMOD_RESULT F_API set3DRolloffCallback (FMOD_3D_ROLLOFF_CALLBACK callback); - FMOD_RESULT F_API mixerSuspend (); - FMOD_RESULT F_API mixerResume (); - FMOD_RESULT F_API getDefaultMixMatrix (FMOD_SPEAKERMODE sourcespeakermode, FMOD_SPEAKERMODE targetspeakermode, float *matrix, int matrixhop); - FMOD_RESULT F_API getSpeakerModeChannels (FMOD_SPEAKERMODE mode, int *channels); - - // System information functions. - FMOD_RESULT F_API getVersion (unsigned int *version); - FMOD_RESULT F_API getOutputHandle (void **handle); - FMOD_RESULT F_API getChannelsPlaying (int *channels); - FMOD_RESULT F_API getCPUUsage (float *dsp, float *stream, float *geometry, float *update, float *total); - FMOD_RESULT F_API getSoundRAM (int *currentalloced, int *maxalloced, int *total); - - // Sound/DSP/Channel/FX creation and retrieval. - FMOD_RESULT F_API createSound (const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, Sound **sound); - FMOD_RESULT F_API createStream (const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, Sound **sound); - FMOD_RESULT F_API createDSP (const FMOD_DSP_DESCRIPTION *description, DSP **dsp); - FMOD_RESULT F_API createDSPByType (FMOD_DSP_TYPE type, DSP **dsp); - FMOD_RESULT F_API createChannelGroup (const char *name, ChannelGroup **channelgroup); - FMOD_RESULT F_API createSoundGroup (const char *name, SoundGroup **soundgroup); - FMOD_RESULT F_API createReverb3D (Reverb3D **reverb); - - FMOD_RESULT F_API playSound (Sound *sound, ChannelGroup *channelgroup, bool paused, Channel **channel); - FMOD_RESULT F_API playDSP (DSP *dsp, ChannelGroup *channelgroup, bool paused, Channel **channel); - FMOD_RESULT F_API getChannel (int channelid, Channel **channel); - FMOD_RESULT F_API getMasterChannelGroup (ChannelGroup **channelgroup); - FMOD_RESULT F_API getMasterSoundGroup (SoundGroup **soundgroup); - - // Routing to ports. - FMOD_RESULT F_API attachChannelGroupToPort (FMOD_PORT_TYPE portType, FMOD_PORT_INDEX portIndex, ChannelGroup *channelgroup, bool passThru = false); - FMOD_RESULT F_API detachChannelGroupFromPort (ChannelGroup *channelgroup); - - // Reverb API. - FMOD_RESULT F_API setReverbProperties (int instance, const FMOD_REVERB_PROPERTIES *prop); - FMOD_RESULT F_API getReverbProperties (int instance, FMOD_REVERB_PROPERTIES *prop); - - // System level DSP functionality. - FMOD_RESULT F_API lockDSP (); - FMOD_RESULT F_API unlockDSP (); - - // Recording API. - FMOD_RESULT F_API getRecordNumDrivers (int *numdrivers, int *numconnected); - FMOD_RESULT F_API getRecordDriverInfo (int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels, FMOD_DRIVER_STATE *state); - FMOD_RESULT F_API getRecordPosition (int id, unsigned int *position); - FMOD_RESULT F_API recordStart (int id, Sound *sound, bool loop); - FMOD_RESULT F_API recordStop (int id); - FMOD_RESULT F_API isRecording (int id, bool *recording); - - // Geometry API. - FMOD_RESULT F_API createGeometry (int maxpolygons, int maxvertices, Geometry **geometry); - FMOD_RESULT F_API setGeometrySettings (float maxworldsize); - FMOD_RESULT F_API getGeometrySettings (float *maxworldsize); - FMOD_RESULT F_API loadGeometry (const void *data, int datasize, Geometry **geometry); - FMOD_RESULT F_API getGeometryOcclusion (const FMOD_VECTOR *listener, const FMOD_VECTOR *source, float *direct, float *reverb); - - // Network functions. - FMOD_RESULT F_API setNetworkProxy (const char *proxy); - FMOD_RESULT F_API getNetworkProxy (char *proxy, int proxylen); - FMOD_RESULT F_API setNetworkTimeout (int timeout); - FMOD_RESULT F_API getNetworkTimeout (int *timeout); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - /* - 'Sound' API - */ - class Sound - { - private: - - // Constructor made private so user cannot statically instance a Sound class. Appropriate Sound creation or retrieval function must be used. - Sound(); - Sound(const Sound &); - - public: - - FMOD_RESULT F_API release (); - FMOD_RESULT F_API getSystemObject (System **system); - - // Standard sound manipulation functions. - FMOD_RESULT F_API lock (unsigned int offset, unsigned int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2); - FMOD_RESULT F_API unlock (void *ptr1, void *ptr2, unsigned int len1, unsigned int len2); - FMOD_RESULT F_API setDefaults (float frequency, int priority); - FMOD_RESULT F_API getDefaults (float *frequency, int *priority); - FMOD_RESULT F_API set3DMinMaxDistance (float min, float max); - FMOD_RESULT F_API get3DMinMaxDistance (float *min, float *max); - FMOD_RESULT F_API set3DConeSettings (float insideconeangle, float outsideconeangle, float outsidevolume); - FMOD_RESULT F_API get3DConeSettings (float *insideconeangle, float *outsideconeangle, float *outsidevolume); - FMOD_RESULT F_API set3DCustomRolloff (FMOD_VECTOR *points, int numpoints); - FMOD_RESULT F_API get3DCustomRolloff (FMOD_VECTOR **points, int *numpoints); - FMOD_RESULT F_API setSubSound (int index, Sound *subsound); - FMOD_RESULT F_API getSubSound (int index, Sound **subsound); - FMOD_RESULT F_API getSubSoundParent (Sound **parentsound); - FMOD_RESULT F_API getName (char *name, int namelen); - FMOD_RESULT F_API getLength (unsigned int *length, FMOD_TIMEUNIT lengthtype); - FMOD_RESULT F_API getFormat (FMOD_SOUND_TYPE *type, FMOD_SOUND_FORMAT *format, int *channels, int *bits); - FMOD_RESULT F_API getNumSubSounds (int *numsubsounds); - FMOD_RESULT F_API getNumTags (int *numtags, int *numtagsupdated); - FMOD_RESULT F_API getTag (const char *name, int index, FMOD_TAG *tag); - FMOD_RESULT F_API getOpenState (FMOD_OPENSTATE *openstate, unsigned int *percentbuffered, bool *starving, bool *diskbusy); - FMOD_RESULT F_API readData (void *buffer, unsigned int lenbytes, unsigned int *read); - FMOD_RESULT F_API seekData (unsigned int pcm); - - FMOD_RESULT F_API setSoundGroup (SoundGroup *soundgroup); - FMOD_RESULT F_API getSoundGroup (SoundGroup **soundgroup); - - // Synchronization point API. These points can come from markers embedded in wav files, and can also generate channel callbacks. - FMOD_RESULT F_API getNumSyncPoints (int *numsyncpoints); - FMOD_RESULT F_API getSyncPoint (int index, FMOD_SYNCPOINT **point); - FMOD_RESULT F_API getSyncPointInfo (FMOD_SYNCPOINT *point, char *name, int namelen, unsigned int *offset, FMOD_TIMEUNIT offsettype); - FMOD_RESULT F_API addSyncPoint (unsigned int offset, FMOD_TIMEUNIT offsettype, const char *name, FMOD_SYNCPOINT **point); - FMOD_RESULT F_API deleteSyncPoint (FMOD_SYNCPOINT *point); - - // Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time. - FMOD_RESULT F_API setMode (FMOD_MODE mode); - FMOD_RESULT F_API getMode (FMOD_MODE *mode); - FMOD_RESULT F_API setLoopCount (int loopcount); - FMOD_RESULT F_API getLoopCount (int *loopcount); - FMOD_RESULT F_API setLoopPoints (unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); - FMOD_RESULT F_API getLoopPoints (unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - - // For MOD/S3M/XM/IT/MID sequenced formats only. - FMOD_RESULT F_API getMusicNumChannels (int *numchannels); - FMOD_RESULT F_API setMusicChannelVolume (int channel, float volume); - FMOD_RESULT F_API getMusicChannelVolume (int channel, float *volume); - FMOD_RESULT F_API setMusicSpeed (float speed); - FMOD_RESULT F_API getMusicSpeed (float *speed); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - - /* - 'ChannelControl API'. This is a base class for Channel and ChannelGroup so they can share the same functionality. This cannot be used or instansiated explicitly. - */ - class ChannelControl - { - private: - - // Constructor made private so user cannot statically instance a Control class. - ChannelControl(); - ChannelControl(const ChannelControl &); - - public: - - FMOD_RESULT F_API getSystemObject (System **system); - - // General control functionality for Channels and ChannelGroups. - FMOD_RESULT F_API stop (); - FMOD_RESULT F_API setPaused (bool paused); - FMOD_RESULT F_API getPaused (bool *paused); - FMOD_RESULT F_API setVolume (float volume); - FMOD_RESULT F_API getVolume (float *volume); - FMOD_RESULT F_API setVolumeRamp (bool ramp); - FMOD_RESULT F_API getVolumeRamp (bool *ramp); - FMOD_RESULT F_API getAudibility (float *audibility); - FMOD_RESULT F_API setPitch (float pitch); - FMOD_RESULT F_API getPitch (float *pitch); - FMOD_RESULT F_API setMute (bool mute); - FMOD_RESULT F_API getMute (bool *mute); - FMOD_RESULT F_API setReverbProperties (int instance, float wet); - FMOD_RESULT F_API getReverbProperties (int instance, float *wet); - FMOD_RESULT F_API setLowPassGain (float gain); - FMOD_RESULT F_API getLowPassGain (float *gain); - FMOD_RESULT F_API setMode (FMOD_MODE mode); - FMOD_RESULT F_API getMode (FMOD_MODE *mode); - FMOD_RESULT F_API setCallback (FMOD_CHANNELCONTROL_CALLBACK callback); - FMOD_RESULT F_API isPlaying (bool *isplaying); - - // Panning and level adjustment. - // Note all 'set' functions alter a final matrix, this is why the only get function is getMixMatrix, to avoid other get functions returning incorrect/obsolete values. - FMOD_RESULT F_API setPan (float pan); - FMOD_RESULT F_API setMixLevelsOutput (float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright); - FMOD_RESULT F_API setMixLevelsInput (float *levels, int numlevels); - FMOD_RESULT F_API setMixMatrix (float *matrix, int outchannels, int inchannels, int inchannel_hop = 0); - FMOD_RESULT F_API getMixMatrix (float *matrix, int *outchannels, int *inchannels, int inchannel_hop = 0); - - // Clock based functionality. - FMOD_RESULT F_API getDSPClock (unsigned long long *dspclock, unsigned long long *parentclock); - FMOD_RESULT F_API setDelay (unsigned long long dspclock_start, unsigned long long dspclock_end, bool stopchannels = true); - FMOD_RESULT F_API getDelay (unsigned long long *dspclock_start, unsigned long long *dspclock_end, bool *stopchannels = 0); - FMOD_RESULT F_API addFadePoint (unsigned long long dspclock, float volume); - FMOD_RESULT F_API setFadePointRamp (unsigned long long dspclock, float volume); - FMOD_RESULT F_API removeFadePoints (unsigned long long dspclock_start, unsigned long long dspclock_end); - FMOD_RESULT F_API getFadePoints (unsigned int *numpoints, unsigned long long *point_dspclock, float *point_volume); - - // DSP effects. - FMOD_RESULT F_API getDSP (int index, DSP **dsp); - FMOD_RESULT F_API addDSP (int index, DSP *dsp); - FMOD_RESULT F_API removeDSP (DSP *dsp); - FMOD_RESULT F_API getNumDSPs (int *numdsps); - FMOD_RESULT F_API setDSPIndex (DSP *dsp, int index); - FMOD_RESULT F_API getDSPIndex (DSP *dsp, int *index); - FMOD_RESULT F_API overridePanDSP (DSP *pan); - - // 3D functionality. - FMOD_RESULT F_API set3DAttributes (const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos = 0); - FMOD_RESULT F_API get3DAttributes (FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos = 0); - FMOD_RESULT F_API set3DMinMaxDistance (float mindistance, float maxdistance); - FMOD_RESULT F_API get3DMinMaxDistance (float *mindistance, float *maxdistance); - FMOD_RESULT F_API set3DConeSettings (float insideconeangle, float outsideconeangle, float outsidevolume); - FMOD_RESULT F_API get3DConeSettings (float *insideconeangle, float *outsideconeangle, float *outsidevolume); - FMOD_RESULT F_API set3DConeOrientation (FMOD_VECTOR *orientation); - FMOD_RESULT F_API get3DConeOrientation (FMOD_VECTOR *orientation); - FMOD_RESULT F_API set3DCustomRolloff (FMOD_VECTOR *points, int numpoints); - FMOD_RESULT F_API get3DCustomRolloff (FMOD_VECTOR **points, int *numpoints); - FMOD_RESULT F_API set3DOcclusion (float directocclusion, float reverbocclusion); - FMOD_RESULT F_API get3DOcclusion (float *directocclusion, float *reverbocclusion); - FMOD_RESULT F_API set3DSpread (float angle); - FMOD_RESULT F_API get3DSpread (float *angle); - FMOD_RESULT F_API set3DLevel (float level); - FMOD_RESULT F_API get3DLevel (float *level); - FMOD_RESULT F_API set3DDopplerLevel (float level); - FMOD_RESULT F_API get3DDopplerLevel (float *level); - FMOD_RESULT F_API set3DDistanceFilter (bool custom, float customLevel, float centerFreq); - FMOD_RESULT F_API get3DDistanceFilter (bool *custom, float *customLevel, float *centerFreq); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - /* - 'Channel' API. - */ - class Channel : public ChannelControl - { - private: - - // Constructor made private so user cannot statically instance a Channel class. Appropriate Channel creation or retrieval function must be used. - Channel(); - Channel(const Channel &); - - public: - - // Channel specific control functionality. - FMOD_RESULT F_API setFrequency (float frequency); - FMOD_RESULT F_API getFrequency (float *frequency); - FMOD_RESULT F_API setPriority (int priority); - FMOD_RESULT F_API getPriority (int *priority); - FMOD_RESULT F_API setPosition (unsigned int position, FMOD_TIMEUNIT postype); - FMOD_RESULT F_API getPosition (unsigned int *position, FMOD_TIMEUNIT postype); - FMOD_RESULT F_API setChannelGroup (ChannelGroup *channelgroup); - FMOD_RESULT F_API getChannelGroup (ChannelGroup **channelgroup); - FMOD_RESULT F_API setLoopCount (int loopcount); - FMOD_RESULT F_API getLoopCount (int *loopcount); - FMOD_RESULT F_API setLoopPoints (unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); - FMOD_RESULT F_API getLoopPoints (unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - - // Information only functions. - FMOD_RESULT F_API isVirtual (bool *isvirtual); - FMOD_RESULT F_API getCurrentSound (Sound **sound); - FMOD_RESULT F_API getIndex (int *index); - }; - - /* - 'ChannelGroup' API - */ - class ChannelGroup : public ChannelControl - { - private: - - // Constructor made private so user cannot statically instance a ChannelGroup class. Appropriate ChannelGroup creation or retrieval function must be used. - ChannelGroup(); - ChannelGroup(const ChannelGroup &); - - public: - - FMOD_RESULT F_API release (); - - // Nested channel groups. - FMOD_RESULT F_API addGroup (ChannelGroup *group, bool propagatedspclock = true, DSPConnection **connection = 0); - FMOD_RESULT F_API getNumGroups (int *numgroups); - FMOD_RESULT F_API getGroup (int index, ChannelGroup **group); - FMOD_RESULT F_API getParentGroup (ChannelGroup **group); - - // Information only functions. - FMOD_RESULT F_API getName (char *name, int namelen); - FMOD_RESULT F_API getNumChannels (int *numchannels); - FMOD_RESULT F_API getChannel (int index, Channel **channel); - }; - - /* - 'SoundGroup' API - */ - class SoundGroup - { - private: - - // Constructor made private so user cannot statically instance a SoundGroup class. Appropriate SoundGroup creation or retrieval function must be used. - SoundGroup(); - SoundGroup(const SoundGroup &); - - public: - - FMOD_RESULT F_API release (); - FMOD_RESULT F_API getSystemObject (System **system); - - // SoundGroup control functions. - FMOD_RESULT F_API setMaxAudible (int maxaudible); - FMOD_RESULT F_API getMaxAudible (int *maxaudible); - FMOD_RESULT F_API setMaxAudibleBehavior (FMOD_SOUNDGROUP_BEHAVIOR behavior); - FMOD_RESULT F_API getMaxAudibleBehavior (FMOD_SOUNDGROUP_BEHAVIOR *behavior); - FMOD_RESULT F_API setMuteFadeSpeed (float speed); - FMOD_RESULT F_API getMuteFadeSpeed (float *speed); - FMOD_RESULT F_API setVolume (float volume); - FMOD_RESULT F_API getVolume (float *volume); - FMOD_RESULT F_API stop (); - - // Information only functions. - FMOD_RESULT F_API getName (char *name, int namelen); - FMOD_RESULT F_API getNumSounds (int *numsounds); - FMOD_RESULT F_API getSound (int index, Sound **sound); - FMOD_RESULT F_API getNumPlaying (int *numplaying); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - /* - 'DSP' API - */ - class DSP - { - private: - - // Constructor made private so user cannot statically instance a DSP class. Appropriate DSP creation or retrieval function must be used. - DSP(); - DSP(const DSP &); - - public: - - FMOD_RESULT F_API release (); - FMOD_RESULT F_API getSystemObject (System **system); - - // Connection / disconnection / input and output enumeration. - FMOD_RESULT F_API addInput (DSP *input, DSPConnection **connection = 0, FMOD_DSPCONNECTION_TYPE type = FMOD_DSPCONNECTION_TYPE_STANDARD); - FMOD_RESULT F_API disconnectFrom (DSP *target, DSPConnection *connection = 0); - FMOD_RESULT F_API disconnectAll (bool inputs, bool outputs); - FMOD_RESULT F_API getNumInputs (int *numinputs); - FMOD_RESULT F_API getNumOutputs (int *numoutputs); - FMOD_RESULT F_API getInput (int index, DSP **input, DSPConnection **inputconnection); - FMOD_RESULT F_API getOutput (int index, DSP **output, DSPConnection **outputconnection); - - // DSP unit control. - FMOD_RESULT F_API setActive (bool active); - FMOD_RESULT F_API getActive (bool *active); - FMOD_RESULT F_API setBypass (bool bypass); - FMOD_RESULT F_API getBypass (bool *bypass); - FMOD_RESULT F_API setWetDryMix (float prewet, float postwet, float dry); - FMOD_RESULT F_API getWetDryMix (float *prewet, float *postwet, float *dry); - FMOD_RESULT F_API setChannelFormat (FMOD_CHANNELMASK channelmask, int numchannels, FMOD_SPEAKERMODE source_speakermode); - FMOD_RESULT F_API getChannelFormat (FMOD_CHANNELMASK *channelmask, int *numchannels, FMOD_SPEAKERMODE *source_speakermode); - FMOD_RESULT F_API getOutputChannelFormat (FMOD_CHANNELMASK inmask, int inchannels, FMOD_SPEAKERMODE inspeakermode, FMOD_CHANNELMASK *outmask, int *outchannels, FMOD_SPEAKERMODE *outspeakermode); - FMOD_RESULT F_API reset (); - - // DSP parameter control. - FMOD_RESULT F_API setParameterFloat (int index, float value); - FMOD_RESULT F_API setParameterInt (int index, int value); - FMOD_RESULT F_API setParameterBool (int index, bool value); - FMOD_RESULT F_API setParameterData (int index, void *data, unsigned int length); - FMOD_RESULT F_API getParameterFloat (int index, float *value, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getParameterInt (int index, int *value, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getParameterBool (int index, bool *value, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getParameterData (int index, void **data, unsigned int *length, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getNumParameters (int *numparams); - FMOD_RESULT F_API getParameterInfo (int index, FMOD_DSP_PARAMETER_DESC **desc); - FMOD_RESULT F_API getDataParameterIndex (int datatype, int *index); - FMOD_RESULT F_API showConfigDialog (void *hwnd, bool show); - - // DSP attributes. - FMOD_RESULT F_API getInfo (char *name, unsigned int *version, int *channels, int *configwidth, int *configheight); - FMOD_RESULT F_API getType (FMOD_DSP_TYPE *type); - FMOD_RESULT F_API getIdle (bool *idle); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - - // Metering. - FMOD_RESULT F_API setMeteringEnabled (bool inputEnabled, bool outputEnabled); - FMOD_RESULT F_API getMeteringEnabled (bool *inputEnabled, bool *outputEnabled); - FMOD_RESULT F_API getMeteringInfo (FMOD_DSP_METERING_INFO *inputInfo, FMOD_DSP_METERING_INFO *outputInfo); - }; - - - /* - 'DSPConnection' API - */ - class DSPConnection - { - private: - - // Constructor made private so user cannot statically instance a DSPConnection class. Appropriate DSPConnection creation or retrieval function must be used. - DSPConnection(); - DSPConnection(const DSPConnection &); - - public: - - FMOD_RESULT F_API getInput (DSP **input); - FMOD_RESULT F_API getOutput (DSP **output); - FMOD_RESULT F_API setMix (float volume); - FMOD_RESULT F_API getMix (float *volume); - FMOD_RESULT F_API setMixMatrix (float *matrix, int outchannels, int inchannels, int inchannel_hop = 0); - FMOD_RESULT F_API getMixMatrix (float *matrix, int *outchannels, int *inchannels, int inchannel_hop = 0); - FMOD_RESULT F_API getType (FMOD_DSPCONNECTION_TYPE *type); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - - /* - 'Geometry' API - */ - class Geometry - { - private: - - // Constructor made private so user cannot statically instance a Geometry class. Appropriate Geometry creation or retrieval function must be used. - Geometry(); - Geometry(const Geometry &); - - public: - - FMOD_RESULT F_API release (); - - // Polygon manipulation. - FMOD_RESULT F_API addPolygon (float directocclusion, float reverbocclusion, bool doublesided, int numvertices, const FMOD_VECTOR *vertices, int *polygonindex); - FMOD_RESULT F_API getNumPolygons (int *numpolygons); - FMOD_RESULT F_API getMaxPolygons (int *maxpolygons, int *maxvertices); - FMOD_RESULT F_API getPolygonNumVertices (int index, int *numvertices); - FMOD_RESULT F_API setPolygonVertex (int index, int vertexindex, const FMOD_VECTOR *vertex); - FMOD_RESULT F_API getPolygonVertex (int index, int vertexindex, FMOD_VECTOR *vertex); - FMOD_RESULT F_API setPolygonAttributes (int index, float directocclusion, float reverbocclusion, bool doublesided); - FMOD_RESULT F_API getPolygonAttributes (int index, float *directocclusion, float *reverbocclusion, bool *doublesided); - - // Object manipulation. - FMOD_RESULT F_API setActive (bool active); - FMOD_RESULT F_API getActive (bool *active); - FMOD_RESULT F_API setRotation (const FMOD_VECTOR *forward, const FMOD_VECTOR *up); - FMOD_RESULT F_API getRotation (FMOD_VECTOR *forward, FMOD_VECTOR *up); - FMOD_RESULT F_API setPosition (const FMOD_VECTOR *position); - FMOD_RESULT F_API getPosition (FMOD_VECTOR *position); - FMOD_RESULT F_API setScale (const FMOD_VECTOR *scale); - FMOD_RESULT F_API getScale (FMOD_VECTOR *scale); - FMOD_RESULT F_API save (void *data, int *datasize); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - - /* - 'Reverb' API - */ - class Reverb3D - { - private: - - // Constructor made private so user cannot statically instance a Reverb3D class. Appropriate Reverb creation or retrieval function must be used. - Reverb3D(); - Reverb3D(const Reverb3D &); - - public: - - FMOD_RESULT F_API release (); - - // Reverb manipulation. - FMOD_RESULT F_API set3DAttributes (const FMOD_VECTOR *position, float mindistance, float maxdistance); - FMOD_RESULT F_API get3DAttributes (FMOD_VECTOR *position, float *mindistance,float *maxdistance); - FMOD_RESULT F_API setProperties (const FMOD_REVERB_PROPERTIES *properties); - FMOD_RESULT F_API getProperties (FMOD_REVERB_PROPERTIES *properties); - FMOD_RESULT F_API setActive (bool active); - FMOD_RESULT F_API getActive (bool *active); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; -} - -#endif diff --git a/external/linux-specific/fmod/include/fmod_codec.h b/external/linux-specific/fmod/include/fmod_codec.h deleted file mode 100644 index f66169b..0000000 --- a/external/linux-specific/fmod/include/fmod_codec.h +++ /dev/null @@ -1,179 +0,0 @@ -/* ======================================================================================================== */ -/* FMOD Studio - codec development header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2015. */ -/* */ -/* Use this header if you are wanting to develop your own file format plugin to use with */ -/* FMOD's codec system. With this header you can make your own fileformat plugin that FMOD */ -/* can register and use. See the documentation and examples on how to make a working plugin. */ -/* */ -/* ======================================================================================================== */ - -#ifndef _FMOD_CODEC_H -#define _FMOD_CODEC_H - -typedef struct FMOD_CODEC_STATE FMOD_CODEC_STATE; -typedef struct FMOD_CODEC_WAVEFORMAT FMOD_CODEC_WAVEFORMAT; - -/* - Codec callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_OPEN_CALLBACK) (FMOD_CODEC_STATE *codec_state, FMOD_MODE usermode, FMOD_CREATESOUNDEXINFO *userexinfo); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_CLOSE_CALLBACK) (FMOD_CODEC_STATE *codec_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_READ_CALLBACK) (FMOD_CODEC_STATE *codec_state, void *buffer, unsigned int sizebytes, unsigned int *bytesread); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_GETLENGTH_CALLBACK) (FMOD_CODEC_STATE *codec_state, unsigned int *length, FMOD_TIMEUNIT lengthtype); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_SETPOSITION_CALLBACK) (FMOD_CODEC_STATE *codec_state, int subsound, unsigned int position, FMOD_TIMEUNIT postype); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_GETPOSITION_CALLBACK) (FMOD_CODEC_STATE *codec_state, unsigned int *position, FMOD_TIMEUNIT postype); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_SOUNDCREATE_CALLBACK) (FMOD_CODEC_STATE *codec_state, int subsound, FMOD_SOUND *sound); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_METADATA_CALLBACK) (FMOD_CODEC_STATE *codec_state, FMOD_TAGTYPE tagtype, char *name, void *data, unsigned int datalen, FMOD_TAGDATATYPE datatype, int unique); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_GETWAVEFORMAT_CALLBACK)(FMOD_CODEC_STATE *codec_state, int index, FMOD_CODEC_WAVEFORMAT *waveformat); - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - When creating a codec, declare one of these and provide the relevant callbacks and name for FMOD to use when it opens and reads a file. - - [REMARKS] - Members marked with [in] mean the variable can be written to. The user can set the value.
- Members marked with [out] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
- - [SEE_ALSO] - FMOD_CODEC_STATE - FMOD_CODEC_WAVEFORMAT -] -*/ -typedef struct FMOD_CODEC_DESCRIPTION -{ - const char *name; /* [in] Name of the codec. */ - unsigned int version; /* [in] Plugin writer's version number. */ - int defaultasstream; /* [in] Tells FMOD to open the file as a stream when calling System::createSound, and not a static sample. Should normally be 0 (FALSE), because generally the user wants to decode the file into memory when using System::createSound. Mainly used for formats that decode for a very long time, or could use large amounts of memory when decoded. Usually sequenced formats such as mod/s3m/xm/it/midi fall into this category. It is mainly to stop users that don't know what they're doing from getting FMOD_ERR_MEMORY returned from createSound when they should have in fact called System::createStream or used FMOD_CREATESTREAM in System::createSound. */ - FMOD_TIMEUNIT timeunits; /* [in] When setposition codec is called, only these time formats will be passed to the codec. Use bitwise OR to accumulate different types. */ - FMOD_CODEC_OPEN_CALLBACK open; /* [in] Open callback for the codec for when FMOD tries to open a sound using this codec. */ - FMOD_CODEC_CLOSE_CALLBACK close; /* [in] Close callback for the codec for when FMOD tries to close a sound using this codec. */ - FMOD_CODEC_READ_CALLBACK read; /* [in] Read callback for the codec for when FMOD tries to read some data from the file to the destination format (specified in the open callback). */ - FMOD_CODEC_GETLENGTH_CALLBACK getlength; /* [in] Callback to return the length of the song in whatever format required when Sound::getLength is called. */ - FMOD_CODEC_SETPOSITION_CALLBACK setposition; /* [in] Seek callback for the codec for when FMOD tries to seek within the file with Channel::setPosition. */ - FMOD_CODEC_GETPOSITION_CALLBACK getposition; /* [in] Tell callback for the codec for when FMOD tries to get the current position within the with Channel::getPosition. */ - FMOD_CODEC_SOUNDCREATE_CALLBACK soundcreate; /* [in] Sound creation callback for the codec when FMOD finishes creating the sound. (So the codec can set more parameters for the related created sound, ie loop points/mode or 3D attributes etc). */ - FMOD_CODEC_GETWAVEFORMAT_CALLBACK getwaveformat; /* [in] Callback to tell FMOD about the waveformat of a particular subsound. This is to save memory, rather than saving 1000 FMOD_CODEC_WAVEFORMAT structures in the codec, the codec might have a more optimal way of storing this information. */ -} FMOD_CODEC_DESCRIPTION; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Set these values marked 'in' to tell fmod what sort of sound to create.
- The format, channels and frequency tell FMOD what sort of hardware buffer to create when you initialize your code. So if you wrote an MP3 codec that decoded to stereo 16bit integer PCM, you would specify FMOD_SOUND_FORMAT_PCM16, and channels would be equal to 2.
- Members marked as 'out' are set by fmod. Do not modify these. Simply specify 0 for these values when declaring the structure, FMOD will fill in the values for you after creation with the correct function pointers.
- - [REMARKS] - Members marked with [in] mean the variable can be written to. The user can set the value.
- Members marked with [out] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
-
- An FMOD file might be from disk, memory or network, however the file may be opened by the user.
-
- 'numsubsounds' should be 0 if the file is a normal single sound stream or sound. Examples of this would be .WAV, .WMA, .MP3, .AIFF.
- 'numsubsounds' should be 1+ if the file is a container format, and does not contain wav data itself. Examples of these types would be FSB (contains multiple sounds), MIDI/MOD/S3M/XM/IT (contain instruments).
- The arrays of format, channel, frequency, length and blockalign should point to arrays of information based on how many subsounds are in the format. If the number of subsounds is 0 then it should point to 1 of each attribute, the same as if the number of subsounds was 1. If subsounds was 100 for example, each pointer should point to an array of 100 of each attribute.
- When a sound has 1 or more subsounds, you must play the individual sounds specified by first obtaining the subsound with Sound::getSubSound. - - [SEE_ALSO] - FMOD_SOUND_FORMAT - FMOD_MODE - FMOD_CHANNELMASK - FMOD_CHANNELORDER - FMOD_SPEAKER - FMOD_FILE_READCALLBACK - FMOD_FILE_SEEKCALLBACK - FMOD_CODEC_METADATACALLBACK - Sound::getSubSound - Sound::getNumSubSounds -] -*/ -struct FMOD_CODEC_WAVEFORMAT -{ - char name[256]; /* [in] Name of sound.*/ - FMOD_SOUND_FORMAT format; /* [in] Format for (decompressed) codec output, ie FMOD_SOUND_FORMAT_PCM8, FMOD_SOUND_FORMAT_PCM16.*/ - int channels; /* [in] Number of channels used by codec, ie mono = 1, stereo = 2. */ - int frequency; /* [in] Default frequency in hz of the codec, ie 44100. */ - unsigned int lengthbytes; /* [in] Length in bytes of the source data. */ - unsigned int lengthpcm; /* [in] Length in decompressed, PCM samples of the file, ie length in seconds * frequency. Used for Sound::getLength and for memory allocation of static decompressed sample data. */ - int blockalign; /* [in] Blockalign in decompressed, PCM samples of the optimal decode chunk size for this format. The codec read callback will be called in multiples of this value. */ - int loopstart; /* [in] Loopstart in decompressed, PCM samples of file. */ - int loopend; /* [in] Loopend in decompressed, PCM samples of file. */ - FMOD_MODE mode; /* [in] Mode to determine whether the sound should by default load as looping, non looping, 2d or 3d. */ - FMOD_CHANNELMASK channelmask; /* [in] Defined channel bitmask to describe which speakers the channels in the codec map to, in order of channel count. See fmod_common.h. Leave at 0 to map to the speaker layout defined in FMOD_SPEAKER. */ - FMOD_CHANNELORDER channelorder; /* [in] Defined channel order type, to describe where each sound channel should pan for the number of channels specified. See fmod_common.h. Leave at 0 to play in default speaker order. */ - float peakvolume; /* [in] Peak volume of sound, or 0 if not used. */ -}; - -/* -[DEFINE] -[ - [NAME] - FMOD_CODEC_WAVEFORMAT_VERSION - - [DESCRIPTION] - Version number of FMOD_CODEC_WAVEFORMAT structure. Should be set into FMOD_CODEC_STATE in the FMOD_CODEC_OPEN_CALLBACK. - - [REMARKS] - - [SEE_ALSO] - FMOD_CODEC_STATE - FMOD_CODEC_DESCRIPTION - FMOD_CODEC_OPEN_CALLBACK -] -*/ -#define FMOD_CODEC_WAVEFORMAT_VERSION 1 -/* [DEFINE_END] */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Codec plugin structure that is passed into each callback. - - Set these numsubsounds and waveformat members when called in FMOD_CODEC_OPEN_CALLBACK to tell fmod what sort of sound to create. - - The format, channels and frequency tell FMOD what sort of hardware buffer to create when you initialize your code. So if you wrote an MP3 codec that decoded to stereo 16bit integer PCM, you would specify FMOD_SOUND_FORMAT_PCM16, and channels would be equal to 2. - - [REMARKS] - Members marked with [in] mean the variable can be written to. The user can set the value.
- Members marked with [out] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
-
- An FMOD file might be from disk, memory or internet, however the file may be opened by the user.
-
- 'numsubsounds' should be 0 if the file is a normal single sound stream or sound. Examples of this would be .WAV, .WMA, .MP3, .AIFF.
- 'numsubsounds' should be 1+ if the file is a container format, and does not contain wav data itself. Examples of these types would be FSB (contains multiple sounds), DLS (contain instruments).
- The arrays of format, channel, frequency, length and blockalign should point to arrays of information based on how many subsounds are in the format. If the number of subsounds is 0 then it should point to 1 of each attribute, the same as if the number of subsounds was 1. If subsounds was 100 for example, each pointer should point to an array of 100 of each attribute.
- When a sound has 1 or more subsounds, you must play the individual sounds specified by first obtaining the subsound with Sound::getSubSound. - - [SEE_ALSO] - FMOD_SOUND_FORMAT - FMOD_FILE_READ_CALLBACK - FMOD_FILE_SEEK_CALLBACK - FMOD_CODEC_METADATA_CALLBACK - Sound::getSubSound - Sound::getNumSubSounds -] -*/ -struct FMOD_CODEC_STATE -{ - int numsubsounds; /* [in] Number of 'subsounds' in this sound. Anything other than 0 makes it a 'container' format (ie DLS/FSB etc which contain 1 or more subsounds). For most normal, single sound codec such as WAV/AIFF/MP3, this should be 0 as they are not a container for subsounds, they are the sound by itself. */ - FMOD_CODEC_WAVEFORMAT *waveformat; /* [in] Pointer to an array of format structures containing information about each sample. Can be 0 or NULL if FMOD_CODEC_GETWAVEFORMAT_CALLBACK callback is preferred. The number of entries here must equal the number of subsounds defined in the subsound parameter. If numsubsounds = 0 then there should be 1 instance of this structure. */ - void *plugindata; /* [in] Plugin writer created data the codec author wants to attach to this object. */ - - void *filehandle; /* [out] This will return an internal FMOD file handle to use with the callbacks provided. */ - unsigned int filesize; /* [out] This will contain the size of the file in bytes. */ - FMOD_FILE_READ_CALLBACK fileread; /* [out] This will return a callable FMOD file function to use from codec. */ - FMOD_FILE_SEEK_CALLBACK fileseek; /* [out] This will return a callable FMOD file function to use from codec. */ - FMOD_CODEC_METADATA_CALLBACK metadata; /* [out] This will return a callable FMOD metadata function to use from codec. */ - - int waveformatversion; /* [in] Must be set to FMOD_CODEC_WAVEFORMAT_VERSION in the FMOD_CODEC_OPEN_CALLBACK. */ -}; - -#endif - - diff --git a/external/linux-specific/fmod/include/fmod_common.h b/external/linux-specific/fmod/include/fmod_common.h deleted file mode 100644 index b60d7a8..0000000 --- a/external/linux-specific/fmod/include/fmod_common.h +++ /dev/null @@ -1,1702 +0,0 @@ -/*$ preserve start $*/ - -/* ================================================================================================== */ -/* FMOD Studio - Common C/C++ header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2015. */ -/* */ -/* This header is included by fmod.hpp (C++ interface) and fmod.h (C interface) therefore is the */ -/* base header for all FMOD headers. */ -/* ================================================================================================== */ - -#ifndef _FMOD_COMMON_H -#define _FMOD_COMMON_H - -/* - FMOD version number. Check this against FMOD::System::getVersion. - 0xaaaabbcc -> aaaa = major version number. bb = minor version number. cc = development version number. -*/ - -#define FMOD_VERSION 0x00010608 - -/* - Compiler specific settings. -*/ - -#if defined(__CYGWIN32__) || defined(__MINGW32__) - #define F_STDCALL __stdcall - #define F_DECLSPEC __declspec - #define F_DLLEXPORT ( dllexport ) -#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64) - #define F_STDCALL _stdcall - #define F_DECLSPEC __declspec - #define F_DLLEXPORT ( dllexport ) -#elif defined(__MACH__) || defined(__ANDROID__) || defined(__linux__) - #define F_STDCALL - #define F_DECLSPEC - #define F_DLLEXPORT __attribute__ ((visibility("default"))) -#elif defined(__ORBIS__) || defined(__psp2__) - #define F_CDECL - #define F_STDCALL - #define F_DECLSPEC __declspec - #define F_DLLEXPORT ( dllexport ) -#else - #define F_STDCALL - #define F_DECLSPEC - #define F_DLLEXPORT -#endif - -#ifdef DLL_EXPORTS - #define F_API F_DECLSPEC F_DLLEXPORT F_STDCALL -#else - #define F_API F_STDCALL -#endif - -#define F_CALLBACK F_STDCALL - -/* - FMOD types. -*/ - -typedef int FMOD_BOOL; -typedef struct FMOD_SYSTEM FMOD_SYSTEM; -typedef struct FMOD_SOUND FMOD_SOUND; -typedef struct FMOD_CHANNELCONTROL FMOD_CHANNELCONTROL; -typedef struct FMOD_CHANNEL FMOD_CHANNEL; -typedef struct FMOD_CHANNELGROUP FMOD_CHANNELGROUP; -typedef struct FMOD_SOUNDGROUP FMOD_SOUNDGROUP; -typedef struct FMOD_REVERB3D FMOD_REVERB3D; -typedef struct FMOD_DSP FMOD_DSP; -typedef struct FMOD_DSPCONNECTION FMOD_DSPCONNECTION; -typedef struct FMOD_POLYGON FMOD_POLYGON; -typedef struct FMOD_GEOMETRY FMOD_GEOMETRY; -typedef struct FMOD_SYNCPOINT FMOD_SYNCPOINT; -typedef struct FMOD_ASYNCREADINFO FMOD_ASYNCREADINFO; -typedef unsigned int FMOD_MODE; -typedef unsigned int FMOD_TIMEUNIT; -typedef unsigned int FMOD_INITFLAGS; -typedef unsigned int FMOD_DEBUG_FLAGS; -typedef unsigned int FMOD_MEMORY_TYPE; -typedef unsigned int FMOD_SYSTEM_CALLBACK_TYPE; -typedef unsigned int FMOD_CHANNELMASK; -typedef unsigned int FMOD_DRIVER_STATE; -typedef unsigned int FMOD_PORT_TYPE; -typedef unsigned long long FMOD_PORT_INDEX; - -/*$ fmod result start $*/ -/* -[ENUM] -[ - [DESCRIPTION] - error codes. Returned from every function. - - [REMARKS] - - [SEE_ALSO] -] -*/ -typedef enum -{ - FMOD_OK, /* No errors. */ - FMOD_ERR_BADCOMMAND, /* Tried to call a function on a data type that does not allow this type of functionality (ie calling Sound::lock on a streaming sound). */ - FMOD_ERR_CHANNEL_ALLOC, /* Error trying to allocate a channel. */ - FMOD_ERR_CHANNEL_STOLEN, /* The specified channel has been reused to play another sound. */ - FMOD_ERR_DMA, /* DMA Failure. See debug output for more information. */ - FMOD_ERR_DSP_CONNECTION, /* DSP connection error. Connection possibly caused a cyclic dependency or connected dsps with incompatible buffer counts. */ - FMOD_ERR_DSP_DONTPROCESS, /* DSP return code from a DSP process query callback. Tells mixer not to call the process callback and therefore not consume CPU. Use this to optimize the DSP graph. */ - FMOD_ERR_DSP_FORMAT, /* DSP Format error. A DSP unit may have attempted to connect to this network with the wrong format, or a matrix may have been set with the wrong size if the target unit has a specified channel map. */ - FMOD_ERR_DSP_INUSE, /* DSP is already in the mixer's DSP network. It must be removed before being reinserted or released. */ - FMOD_ERR_DSP_NOTFOUND, /* DSP connection error. Couldn't find the DSP unit specified. */ - FMOD_ERR_DSP_RESERVED, /* DSP operation error. Cannot perform operation on this DSP as it is reserved by the system. */ - FMOD_ERR_DSP_SILENCE, /* DSP return code from a DSP process query callback. Tells mixer silence would be produced from read, so go idle and not consume CPU. Use this to optimize the DSP graph. */ - FMOD_ERR_DSP_TYPE, /* DSP operation cannot be performed on a DSP of this type. */ - FMOD_ERR_FILE_BAD, /* Error loading file. */ - FMOD_ERR_FILE_COULDNOTSEEK, /* Couldn't perform seek operation. This is a limitation of the medium (ie netstreams) or the file format. */ - FMOD_ERR_FILE_DISKEJECTED, /* Media was ejected while reading. */ - FMOD_ERR_FILE_EOF, /* End of file unexpectedly reached while trying to read essential data (truncated?). */ - FMOD_ERR_FILE_ENDOFDATA, /* End of current chunk reached while trying to read data. */ - FMOD_ERR_FILE_NOTFOUND, /* File not found. */ - FMOD_ERR_FORMAT, /* Unsupported file or audio format. */ - FMOD_ERR_HEADER_MISMATCH, /* There is a version mismatch between the FMOD header and either the FMOD Studio library or the FMOD Low Level library. */ - FMOD_ERR_HTTP, /* A HTTP error occurred. This is a catch-all for HTTP errors not listed elsewhere. */ - FMOD_ERR_HTTP_ACCESS, /* The specified resource requires authentication or is forbidden. */ - FMOD_ERR_HTTP_PROXY_AUTH, /* Proxy authentication is required to access the specified resource. */ - FMOD_ERR_HTTP_SERVER_ERROR, /* A HTTP server error occurred. */ - FMOD_ERR_HTTP_TIMEOUT, /* The HTTP request timed out. */ - FMOD_ERR_INITIALIZATION, /* FMOD was not initialized correctly to support this function. */ - FMOD_ERR_INITIALIZED, /* Cannot call this command after System::init. */ - FMOD_ERR_INTERNAL, /* An error occurred that wasn't supposed to. Contact support. */ - FMOD_ERR_INVALID_FLOAT, /* Value passed in was a NaN, Inf or denormalized float. */ - FMOD_ERR_INVALID_HANDLE, /* An invalid object handle was used. */ - FMOD_ERR_INVALID_PARAM, /* An invalid parameter was passed to this function. */ - FMOD_ERR_INVALID_POSITION, /* An invalid seek position was passed to this function. */ - FMOD_ERR_INVALID_SPEAKER, /* An invalid speaker was passed to this function based on the current speaker mode. */ - FMOD_ERR_INVALID_SYNCPOINT, /* The syncpoint did not come from this sound handle. */ - FMOD_ERR_INVALID_THREAD, /* Tried to call a function on a thread that is not supported. */ - FMOD_ERR_INVALID_VECTOR, /* The vectors passed in are not unit length, or perpendicular. */ - FMOD_ERR_MAXAUDIBLE, /* Reached maximum audible playback count for this sound's soundgroup. */ - FMOD_ERR_MEMORY, /* Not enough memory or resources. */ - FMOD_ERR_MEMORY_CANTPOINT, /* Can't use FMOD_OPENMEMORY_POINT on non PCM source data, or non mp3/xma/adpcm data if FMOD_CREATECOMPRESSEDSAMPLE was used. */ - FMOD_ERR_NEEDS3D, /* Tried to call a command on a 2d sound when the command was meant for 3d sound. */ - FMOD_ERR_NEEDSHARDWARE, /* Tried to use a feature that requires hardware support. */ - FMOD_ERR_NET_CONNECT, /* Couldn't connect to the specified host. */ - FMOD_ERR_NET_SOCKET_ERROR, /* A socket error occurred. This is a catch-all for socket-related errors not listed elsewhere. */ - FMOD_ERR_NET_URL, /* The specified URL couldn't be resolved. */ - FMOD_ERR_NET_WOULD_BLOCK, /* Operation on a non-blocking socket could not complete immediately. */ - FMOD_ERR_NOTREADY, /* Operation could not be performed because specified sound/DSP connection is not ready. */ - FMOD_ERR_OUTPUT_ALLOCATED, /* Error initializing output device, but more specifically, the output device is already in use and cannot be reused. */ - FMOD_ERR_OUTPUT_CREATEBUFFER, /* Error creating hardware sound buffer. */ - FMOD_ERR_OUTPUT_DRIVERCALL, /* A call to a standard soundcard driver failed, which could possibly mean a bug in the driver or resources were missing or exhausted. */ - FMOD_ERR_OUTPUT_FORMAT, /* Soundcard does not support the specified format. */ - FMOD_ERR_OUTPUT_INIT, /* Error initializing output device. */ - FMOD_ERR_OUTPUT_NODRIVERS, /* The output device has no drivers installed. If pre-init, FMOD_OUTPUT_NOSOUND is selected as the output mode. If post-init, the function just fails. */ - FMOD_ERR_PLUGIN, /* An unspecified error has been returned from a plugin. */ - FMOD_ERR_PLUGIN_MISSING, /* A requested output, dsp unit type or codec was not available. */ - FMOD_ERR_PLUGIN_RESOURCE, /* A resource that the plugin requires cannot be found. (ie the DLS file for MIDI playback) */ - FMOD_ERR_PLUGIN_VERSION, /* A plugin was built with an unsupported SDK version. */ - FMOD_ERR_RECORD, /* An error occurred trying to initialize the recording device. */ - FMOD_ERR_REVERB_CHANNELGROUP, /* Reverb properties cannot be set on this channel because a parent channelgroup owns the reverb connection. */ - FMOD_ERR_REVERB_INSTANCE, /* Specified instance in FMOD_REVERB_PROPERTIES couldn't be set. Most likely because it is an invalid instance number or the reverb doesn't exist. */ - FMOD_ERR_SUBSOUNDS, /* The error occurred because the sound referenced contains subsounds when it shouldn't have, or it doesn't contain subsounds when it should have. The operation may also not be able to be performed on a parent sound. */ - FMOD_ERR_SUBSOUND_ALLOCATED, /* This subsound is already being used by another sound, you cannot have more than one parent to a sound. Null out the other parent's entry first. */ - FMOD_ERR_SUBSOUND_CANTMOVE, /* Shared subsounds cannot be replaced or moved from their parent stream, such as when the parent stream is an FSB file. */ - FMOD_ERR_TAGNOTFOUND, /* The specified tag could not be found or there are no tags. */ - FMOD_ERR_TOOMANYCHANNELS, /* The sound created exceeds the allowable input channel count. This can be increased using the 'maxinputchannels' parameter in System::setSoftwareFormat. */ - FMOD_ERR_TRUNCATED, /* The retrieved string is too long to fit in the supplied buffer and has been truncated. */ - FMOD_ERR_UNIMPLEMENTED, /* Something in FMOD hasn't been implemented when it should be! contact support! */ - FMOD_ERR_UNINITIALIZED, /* This command failed because System::init or System::setDriver was not called. */ - FMOD_ERR_UNSUPPORTED, /* A command issued was not supported by this object. Possibly a plugin without certain callbacks specified. */ - FMOD_ERR_VERSION, /* The version number of this file format is not supported. */ - FMOD_ERR_EVENT_ALREADY_LOADED, /* The specified bank has already been loaded. */ - FMOD_ERR_EVENT_LIVEUPDATE_BUSY, /* The live update connection failed due to the game already being connected. */ - FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH, /* The live update connection failed due to the game data being out of sync with the tool. */ - FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT, /* The live update connection timed out. */ - FMOD_ERR_EVENT_NOTFOUND, /* The requested event, bus or vca could not be found. */ - FMOD_ERR_STUDIO_UNINITIALIZED, /* The Studio::System object is not yet initialized. */ - FMOD_ERR_STUDIO_NOT_LOADED, /* The specified resource is not loaded, so it can't be unloaded. */ - - FMOD_ERR_INVALID_STRING, /* An invalid string was passed to this function. */ - FMOD_ERR_ALREADY_LOCKED, /* The specified resource is already locked. */ - FMOD_ERR_NOT_LOCKED, /* The specified resource is not locked, so it can't be unlocked. */ - - FMOD_RESULT_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_RESULT; -/*$ fmod result end $*/ - - -/* -[ENUM] -[ - [DESCRIPTION] - Used to distinguish if a FMOD_CHANNELCONTROL parameter is actually a channel or a channelgroup. - - [REMARKS] - Cast the FMOD_CHANNELCONTROL to an FMOD_CHANNEL/FMOD::Channel, or FMOD_CHANNELGROUP/FMOD::ChannelGroup if specific functionality is needed for either class. - Otherwise use as FMOD_CHANNELCONTROL/FMOD::ChannelControl and use that API. - - [SEE_ALSO] - Channel::setCallback - ChannelGroup::setCallback -] -*/ -typedef enum -{ - FMOD_CHANNELCONTROL_CHANNEL, - FMOD_CHANNELCONTROL_CHANNELGROUP, - - FMOD_CHANNELCONTROL_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELCONTROL_TYPE; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a point in 3D space. - - [REMARKS] - FMOD uses a left handed co-ordinate system by default.
- To use a right handed co-ordinate system specify FMOD_INIT_3D_RIGHTHANDED from FMOD_INITFLAGS in System::init. - - [SEE_ALSO] - System::set3DListenerAttributes - System::get3DListenerAttributes - Channel::set3DAttributes - Channel::get3DAttributes - Channel::set3DCustomRolloff - Channel::get3DCustomRolloff - Sound::set3DCustomRolloff - Sound::get3DCustomRolloff - Geometry::addPolygon - Geometry::setPolygonVertex - Geometry::getPolygonVertex - Geometry::setRotation - Geometry::getRotation - Geometry::setPosition - Geometry::getPosition - Geometry::setScale - Geometry::getScale - FMOD_INITFLAGS -] -*/ -typedef struct -{ - float x; /* X co-ordinate in 3D space. */ - float y; /* Y co-ordinate in 3D space. */ - float z; /* Z co-ordinate in 3D space. */ -} FMOD_VECTOR; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a position, velocity and orientation. - - [REMARKS] - - [SEE_ALSO] - FMOD_VECTOR - FMOD_DSP_PARAMETER_3DATTRIBUTES -] -*/ -typedef struct FMOD_3D_ATTRIBUTES -{ - FMOD_VECTOR position; - FMOD_VECTOR velocity; - FMOD_VECTOR forward; - FMOD_VECTOR up; -} FMOD_3D_ATTRIBUTES; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a globally unique identifier. - - [REMARKS] - - [SEE_ALSO] - System::getDriverInfo -] -*/ -typedef struct -{ - unsigned int Data1; /* Specifies the first 8 hexadecimal digits of the GUID */ - unsigned short Data2; /* Specifies the first group of 4 hexadecimal digits. */ - unsigned short Data3; /* Specifies the second group of 4 hexadecimal digits. */ - unsigned char Data4[8]; /* Array of 8 bytes. The first 2 bytes contain the third group of 4 hexadecimal digits. The remaining 6 bytes contain the final 12 hexadecimal digits. */ -} FMOD_GUID; - -typedef void (F_CALLBACK *FMOD_FILE_ASYNCDONE) (FMOD_ASYNCREADINFO *info, FMOD_RESULT result); - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure that is passed into FMOD_FILE_ASYNCREAD_CALLBACK. Use the information in this structure to perform - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
- Members marked with [w] mean the variable can be written to. The user can set the value.
-
- Instructions: write to 'buffer', and 'bytesread' BEFORE calling 'done'.
- As soon as done is called, FMOD will asynchronously continue internally using the data provided in this structure.
-
- Set result in the 'done' function pointer to the result expected from a normal file read callback.
- If the read was successful, set it to FMOD_OK.
- If it read some data but hit the end of the file, set it to FMOD_ERR_FILE_EOF.
- If a bad error occurred, return FMOD_ERR_FILE_BAD
- If a disk was ejected, return FMOD_ERR_FILE_DISKEJECTED.
- - [SEE_ALSO] - FMOD_FILE_ASYNCREAD_CALLBACK - FMOD_FILE_ASYNCCANCEL_CALLBACK - FMOD_FILE_ASYNCDONE -] -*/ -struct FMOD_ASYNCREADINFO -{ - void *handle; /* [r] The file handle that was filled out in the open callback. */ - unsigned int offset; /* [r] Seek position, make sure you read from this file offset. */ - unsigned int sizebytes; /* [r] how many bytes requested for read. */ - int priority; /* [r] 0 = low importance. 100 = extremely important (ie 'must read now or stuttering may occur') */ - - void *userdata; /* [r/w] User data pointer specific to this request. Initially 0, can be ignored or set by the user. Not related to the file's main userdata member. */ - - void *buffer; /* [w] Buffer to read file data into. */ - unsigned int bytesread; /* [w] Fill this in before setting result code to tell FMOD how many bytes were read. */ - - FMOD_FILE_ASYNCDONE done; /* [r] FMOD file system wake up function. Call this when user file read is finished. Pass result of file read as a parameter. */ -}; - - -/* -[ENUM] -[ - [DESCRIPTION] - These output types are used with System::setOutput / System::getOutput, to choose which output method to use. - - [REMARKS] - To pass information to the driver when initializing fmod use the *extradriverdata* parameter in System::init for the following reasons. - - - FMOD_OUTPUTTYPE_WAVWRITER - extradriverdata is a pointer to a char * file name that the wav writer will output to. - - FMOD_OUTPUTTYPE_WAVWRITER_NRT - extradriverdata is a pointer to a char * file name that the wav writer will output to. - - FMOD_OUTPUTTYPE_DSOUND - extradriverdata is cast to a HWND type, so that FMOD can set the focus on the audio for a particular window. - - FMOD_OUTPUTTYPE_PS3 - extradriverdata is a pointer to a FMOD_PS3_EXTRADRIVERDATA struct. This can be found in fmodps3.h. - - FMOD_OUTPUTTYPE_XBOX360 - extradriverdata is a pointer to a FMOD_360_EXTRADRIVERDATA struct. This can be found in fmodxbox360.h. - - Currently these are the only FMOD drivers that take extra information. Other unknown plugins may have different requirements. - - Note! If FMOD_OUTPUTTYPE_WAVWRITER_NRT or FMOD_OUTPUTTYPE_NOSOUND_NRT are used, and if the System::update function is being called - very quickly (ie for a non realtime decode) it may be being called too quickly for the FMOD streamer thread to respond to. - The result will be a skipping/stuttering output in the captured audio. - - To remedy this, disable the FMOD streamer thread, and use FMOD_INIT_STREAM_FROM_UPDATE to avoid skipping in the output stream, - as it will lock the mixer and the streamer together in the same thread. - - [SEE_ALSO] - System::setOutput - System::getOutput - System::init - System::update -] -*/ -typedef enum -{ - FMOD_OUTPUTTYPE_AUTODETECT, /* Picks the best output mode for the platform. This is the default. */ - - FMOD_OUTPUTTYPE_UNKNOWN, /* All - 3rd party plugin, unknown. This is for use with System::getOutput only. */ - FMOD_OUTPUTTYPE_NOSOUND, /* All - Perform all mixing but discard the final output. */ - FMOD_OUTPUTTYPE_WAVWRITER, /* All - Writes output to a .wav file. */ - FMOD_OUTPUTTYPE_NOSOUND_NRT, /* All - Non-realtime version of FMOD_OUTPUTTYPE_NOSOUND. User can drive mixer with System::update at whatever rate they want. */ - FMOD_OUTPUTTYPE_WAVWRITER_NRT, /* All - Non-realtime version of FMOD_OUTPUTTYPE_WAVWRITER. User can drive mixer with System::update at whatever rate they want. */ - - FMOD_OUTPUTTYPE_DSOUND, /* Win - Direct Sound. (Default on Windows XP and below) */ - FMOD_OUTPUTTYPE_WINMM, /* Win - Windows Multimedia. */ - FMOD_OUTPUTTYPE_WASAPI, /* Win/WinStore/XboxOne - Windows Audio Session API. (Default on Windows Vista and above, Xbox One and Windows Store Applications) */ - FMOD_OUTPUTTYPE_ASIO, /* Win - Low latency ASIO 2.0. */ - FMOD_OUTPUTTYPE_PULSEAUDIO, /* Linux - Pulse Audio. (Default on Linux if available) */ - FMOD_OUTPUTTYPE_ALSA, /* Linux - Advanced Linux Sound Architecture. (Default on Linux if PulseAudio isn't available) */ - FMOD_OUTPUTTYPE_COREAUDIO, /* Mac/iOS - Core Audio. (Default on Mac and iOS) */ - FMOD_OUTPUTTYPE_XBOX360, /* Xbox 360 - XAudio. (Default on Xbox 360) */ - FMOD_OUTPUTTYPE_PS3, /* PS3 - Audio Out. (Default on PS3) */ - FMOD_OUTPUTTYPE_AUDIOTRACK, /* Android - Java Audio Track. (Default on Android 2.2 and below) */ - FMOD_OUTPUTTYPE_OPENSL, /* Android - OpenSL ES. (Default on Android 2.3 and above) */ - FMOD_OUTPUTTYPE_WIIU, /* Wii U - AX. (Default on Wii U) */ - FMOD_OUTPUTTYPE_AUDIOOUT, /* PS4/PSVita - Audio Out. (Default on PS4 and PS Vita) */ - - FMOD_OUTPUTTYPE_MAX, /* Maximum number of output types supported. */ - FMOD_OUTPUTTYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_OUTPUTTYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Specify the destination of log output when using the logging version of FMOD. - - [REMARKS] - TTY destination can vary depending on platform, common examples include the - Visual Studio / Xcode output window, stderr and LogCat. - - [SEE_ALSO] - FMOD_Debug_Initialize -] -*/ -typedef enum -{ - FMOD_DEBUG_MODE_TTY, /* Default log location per platform, i.e. Visual Studio output window, stderr, LogCat, etc */ - FMOD_DEBUG_MODE_FILE, /* Write log to specified file path */ - FMOD_DEBUG_MODE_CALLBACK, /* Call specified callback with log information */ - - FMOD_DEBUG_MODE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DEBUG_MODE; - - -/* -[DEFINE] -[ - [NAME] - FMOD_DEBUG_FLAGS - - [DESCRIPTION] - Specify the requested information to be output when using the logging version of FMOD. - - [REMARKS] - - [SEE_ALSO] - FMOD_Debug_Initialize -] -*/ -#define FMOD_DEBUG_LEVEL_NONE 0x00000000 /* Disable all messages */ -#define FMOD_DEBUG_LEVEL_ERROR 0x00000001 /* Enable only error messages. */ -#define FMOD_DEBUG_LEVEL_WARNING 0x00000002 /* Enable warning and error messages. */ -#define FMOD_DEBUG_LEVEL_LOG 0x00000004 /* Enable informational, warning and error messages (default). */ -#define FMOD_DEBUG_TYPE_MEMORY 0x00000100 /* Verbose logging for memory operations, only use this if you are debugging a memory related issue. */ -#define FMOD_DEBUG_TYPE_FILE 0x00000200 /* Verbose logging for file access, only use this if you are debugging a file related issue. */ -#define FMOD_DEBUG_TYPE_CODEC 0x00000400 /* Verbose logging for codec initialization, only use this if you are debugging a codec related issue. */ -#define FMOD_DEBUG_TYPE_TRACE 0x00000800 /* Verbose logging for internal errors, use this for tracking the origin of error codes. */ -#define FMOD_DEBUG_DISPLAY_TIMESTAMPS 0x00010000 /* Display the time stamp of the log message in milliseconds. */ -#define FMOD_DEBUG_DISPLAY_LINENUMBERS 0x00020000 /* Display the source code file and line number for where the message originated. */ -#define FMOD_DEBUG_DISPLAY_THREAD 0x00040000 /* Display the thread ID of the calling function that generated the message. */ -/* [DEFINE_END] */ - - -/* -[DEFINE] -[ - [NAME] - FMOD_MEMORY_TYPE - - [DESCRIPTION] - Bit fields for memory allocation type being passed into FMOD memory callbacks. - - [REMARKS] - Remember this is a bitfield. You may get more than 1 bit set (ie physical + persistent) so do not simply switch on the types! You must check each bit individually or clear out the bits that you do not want within the callback.
- Bits can be excluded if you want during Memory_Initialize so that you never get them. - - [SEE_ALSO] - FMOD_MEMORY_ALLOC_CALLBACK - FMOD_MEMORY_REALLOC_CALLBACK - FMOD_MEMORY_FREE_CALLBACK - Memory_Initialize -] -*/ -#define FMOD_MEMORY_NORMAL 0x00000000 /* Standard memory. */ -#define FMOD_MEMORY_STREAM_FILE 0x00000001 /* Stream file buffer, size controllable with System::setStreamBufferSize. */ -#define FMOD_MEMORY_STREAM_DECODE 0x00000002 /* Stream decode buffer, size controllable with FMOD_CREATESOUNDEXINFO::decodebuffersize. */ -#define FMOD_MEMORY_SAMPLEDATA 0x00000004 /* Sample data buffer. Raw audio data, usually PCM/MPEG/ADPCM/XMA data. */ -#define FMOD_MEMORY_DSP_BUFFER 0x00000008 /* DSP memory block allocated when more than 1 output exists on a DSP node. */ -#define FMOD_MEMORY_PLUGIN 0x00000010 /* Memory allocated by a third party plugin. */ -#define FMOD_MEMORY_XBOX360_PHYSICAL 0x00100000 /* Requires XPhysicalAlloc / XPhysicalFree. */ -#define FMOD_MEMORY_PERSISTENT 0x00200000 /* Persistent memory. Memory will be freed when System::release is called. */ -#define FMOD_MEMORY_SECONDARY 0x00400000 /* Secondary memory. Allocation should be in secondary memory. For example RSX on the PS3. */ -#define FMOD_MEMORY_ALL 0xFFFFFFFF -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - These are speaker types defined for use with the System::setSoftwareFormat command. - - [REMARKS] - Note below the phrase 'sound channels' is used. These are the subchannels inside a sound, they are not related and - have nothing to do with the FMOD class "Channel".
- For example a mono sound has 1 sound channel, a stereo sound has 2 sound channels, and an AC3 or 6 channel wav file have 6 "sound channels".
-
- FMOD_SPEAKERMODE_RAW
- ---------------------
- This mode is for output devices that are not specifically mono/stereo/quad/surround/5.1 or 7.1, but are multichannel.
- Use System::setSoftwareFormat to specify the number of speakers you want to address, otherwise it will default to 2 (stereo).
- Sound channels map to speakers sequentially, so a mono sound maps to output speaker 0, stereo sound maps to output speaker 0 & 1.
- The user assumes knowledge of the speaker order. FMOD_SPEAKER enumerations may not apply, so raw channel indices should be used.
- Multichannel sounds map input channels to output channels 1:1.
- Channel::setPan and Channel::setPanLevels do not work.
- Speaker levels must be manually set with Channel::setPanMatrix.
-
- FMOD_SPEAKERMODE_MONO
- ---------------------
- This mode is for a 1 speaker arrangement.
- Panning does not work in this speaker mode.
- Mono, stereo and multichannel sounds have each sound channel played on the one speaker unity.
- Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
- Channel::setPanLevels does not work.
-
- FMOD_SPEAKERMODE_STEREO
- -----------------------
- This mode is for 2 speaker arrangements that have a left and right speaker.
-
  • Mono sounds default to an even distribution between left and right. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the middle, or full left in the left speaker and full right in the right speaker. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds have each sound channel played on each speaker at unity.
    -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but only front left and right parameters are used, the rest are ignored.
    -
    - FMOD_SPEAKERMODE_QUAD
    - ------------------------
    - This mode is for 4 speaker arrangements that have a front left, front right, surround left and a surround right speaker.
    -
  • Mono sounds default to an even distribution between front left and front right. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right.
    -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input.
    -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but rear left, rear right, center and lfe are ignored.
    -
    - FMOD_SPEAKERMODE_SURROUND
    - ------------------------
    - This mode is for 5 speaker arrangements that have a left/right/center/surround left/surround right.
    -
  • Mono sounds default to the center speaker. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input. -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but rear left / rear right are ignored.
    -
    - FMOD_SPEAKERMODE_5POINT1
    - ---------------------------------------------------------
    - This mode is for 5.1 speaker arrangements that have a left/right/center/surround left/surround right and a subwoofer speaker.
    -
  • Mono sounds default to the center speaker. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input. -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but rear left / rear right are ignored.
    -
    - FMOD_SPEAKERMODE_7POINT1
    - ------------------------
    - This mode is for 7.1 speaker arrangements that have a left/right/center/surround left/surround right/rear left/rear right - and a subwoofer speaker.
    -
  • Mono sounds default to the center speaker. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input. -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works and every parameter is used to set the balance of a sound in any speaker.
    -
    - - [SEE_ALSO] - System::setSoftwareFormat - System::getSoftwareFormat - DSP::setChannelFormat -] -*/ -typedef enum -{ - FMOD_SPEAKERMODE_DEFAULT, /* Default speaker mode based on operating system/output mode. Windows = control panel setting, Xbox = 5.1, PS3 = 7.1 etc. */ - FMOD_SPEAKERMODE_RAW, /* There is no specific speakermode. Sound channels are mapped in order of input to output. Use System::setSoftwareFormat to specify speaker count. See remarks for more information. */ - FMOD_SPEAKERMODE_MONO, /* The speakers are monaural. */ - FMOD_SPEAKERMODE_STEREO, /* The speakers are stereo. */ - FMOD_SPEAKERMODE_QUAD, /* 4 speaker setup. This includes front left, front right, surround left, surround right. */ - FMOD_SPEAKERMODE_SURROUND, /* 5 speaker setup. This includes front left, front right, center, surround left, surround right. */ - FMOD_SPEAKERMODE_5POINT1, /* 5.1 speaker setup. This includes front left, front right, center, surround left, surround right and an LFE speaker. */ - FMOD_SPEAKERMODE_7POINT1, /* 7.1 speaker setup. This includes front left, front right, center, surround left, surround right, back left, back right and an LFE speaker. */ - - FMOD_SPEAKERMODE_MAX, /* Maximum number of speaker modes supported. */ - FMOD_SPEAKERMODE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SPEAKERMODE; - - -/* -[DEFINE] -[ - [NAME] - FMOD_MAX_CHANNEL_WIDTH - - [DESCRIPTION] - The maximum number of channels per frame of audio supported by audio files, buffers, connections and DSPs.
    - - [REMARKS] - - [SEE_ALSO] - FMOD_CHANNELORDER - FMOD_CREATESOUNDEXINFO - System::setSoftwareFormat - System::getDefaultMixMatrix - ChannelControl::setMixMatrix - ChannelControl::getMixMatrix - FMOD::DSP::setChannelFormat -] -*/ -#define FMOD_MAX_CHANNEL_WIDTH 32 -/* [DEFINE_END] */ - -/* -[DEFINE] -[ - [NAME] - FMOD_MAX_LISTENERS - - [DESCRIPTION] - The maximum number of listeners supported. - - [REMARKS] - - [SEE_ALSO] - System::set3DNumListeners - System::set3DListenerAttributes - System::get3DListenerAttributes -] -*/ -#define FMOD_MAX_LISTENERS 5 -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - Assigns an enumeration for a speaker index. - - [REMARKS] - - [SEE_ALSO] - System::setSpeakerPosition - System::getSpeakerPosition -] -*/ -typedef enum -{ - FMOD_SPEAKER_FRONT_LEFT, - FMOD_SPEAKER_FRONT_RIGHT, - FMOD_SPEAKER_FRONT_CENTER, - FMOD_SPEAKER_LOW_FREQUENCY, - FMOD_SPEAKER_SURROUND_LEFT, - FMOD_SPEAKER_SURROUND_RIGHT, - FMOD_SPEAKER_BACK_LEFT, - FMOD_SPEAKER_BACK_RIGHT, - - FMOD_SPEAKER_MAX, /* Maximum number of speaker types supported. */ - FMOD_SPEAKER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SPEAKER; - - -/* -[DEFINE] -[ - [NAME] - FMOD_CHANNELMASK - - [DESCRIPTION] - These are bitfields to describe for a certain number of channels in a signal, which channels are being represented.
    - For example, a signal could be 1 channel, but contain the LFE channel only.
    - - [REMARKS] - FMOD_CHANNELMASK_BACK_CENTER is not represented as an output speaker in fmod - but it is encountered in input formats and is down or upmixed appropriately to the nearest speakers.
    - - [SEE_ALSO] - DSP::setChannelFormat - DSP::getChannelFormat - FMOD_SPEAKERMODE -] -*/ -#define FMOD_CHANNELMASK_FRONT_LEFT 0x00000001 -#define FMOD_CHANNELMASK_FRONT_RIGHT 0x00000002 -#define FMOD_CHANNELMASK_FRONT_CENTER 0x00000004 -#define FMOD_CHANNELMASK_LOW_FREQUENCY 0x00000008 -#define FMOD_CHANNELMASK_SURROUND_LEFT 0x00000010 -#define FMOD_CHANNELMASK_SURROUND_RIGHT 0x00000020 -#define FMOD_CHANNELMASK_BACK_LEFT 0x00000040 -#define FMOD_CHANNELMASK_BACK_RIGHT 0x00000080 -#define FMOD_CHANNELMASK_BACK_CENTER 0x00000100 - -#define FMOD_CHANNELMASK_MONO (FMOD_CHANNELMASK_FRONT_LEFT) -#define FMOD_CHANNELMASK_STEREO (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT) -#define FMOD_CHANNELMASK_LRC (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER) -#define FMOD_CHANNELMASK_QUAD (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT) -#define FMOD_CHANNELMASK_SURROUND (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT) -#define FMOD_CHANNELMASK_5POINT1 (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_LOW_FREQUENCY | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT) -#define FMOD_CHANNELMASK_5POINT1_REARS (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_LOW_FREQUENCY | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT) -#define FMOD_CHANNELMASK_7POINT0 (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT) -#define FMOD_CHANNELMASK_7POINT1 (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_LOW_FREQUENCY | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT) -/* [DEFINE_END] */ - -/* -[ENUM] -[ - [DESCRIPTION] - When creating a multichannel sound, FMOD will pan them to their default speaker locations, for example a 6 channel sound will default to one channel per 5.1 output speaker.
    - Another example is a stereo sound. It will default to left = front left, right = front right.
    -
    - This is for sounds that are not 'default'. For example you might have a sound that is 6 channels but actually made up of 3 stereo pairs, that should all be located in front left, front right only. - - [REMARKS] - - [SEE_ALSO] - FMOD_CREATESOUNDEXINFO - FMOD_MAX_CHANNEL_WIDTH -] -*/ -typedef enum FMOD_CHANNELORDER -{ - FMOD_CHANNELORDER_DEFAULT, /* Left, Right, Center, LFE, Surround Left, Surround Right, Back Left, Back Right (see FMOD_SPEAKER enumeration) */ - FMOD_CHANNELORDER_WAVEFORMAT, /* Left, Right, Center, LFE, Back Left, Back Right, Surround Left, Surround Right (as per Microsoft .wav WAVEFORMAT structure master order) */ - FMOD_CHANNELORDER_PROTOOLS, /* Left, Center, Right, Surround Left, Surround Right, LFE */ - FMOD_CHANNELORDER_ALLMONO, /* Mono, Mono, Mono, Mono, Mono, Mono, ... (each channel all the way up to FMOD_MAX_CHANNEL_WIDTH channels are treated as if they were mono) */ - FMOD_CHANNELORDER_ALLSTEREO, /* Left, Right, Left, Right, Left, Right, ... (each pair of channels is treated as stereo all the way up to FMOD_MAX_CHANNEL_WIDTH channels) */ - FMOD_CHANNELORDER_ALSA, /* Left, Right, Surround Left, Surround Right, Center, LFE (as per Linux ALSA channel order) */ - - FMOD_CHANNELORDER_MAX, /* Maximum number of channel orderings supported. */ - FMOD_CHANNELORDER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELORDER; - - -/* -[ENUM] -[ - [DESCRIPTION] - These are plugin types defined for use with the System::getNumPlugins, - System::getPluginInfo and System::unloadPlugin functions. - - [REMARKS] - - [SEE_ALSO] - System::getNumPlugins - System::getPluginInfo - System::unloadPlugin -] -*/ -typedef enum -{ - FMOD_PLUGINTYPE_OUTPUT, /* The plugin type is an output module. FMOD mixed audio will play through one of these devices */ - FMOD_PLUGINTYPE_CODEC, /* The plugin type is a file format codec. FMOD will use these codecs to load file formats for playback. */ - FMOD_PLUGINTYPE_DSP, /* The plugin type is a DSP unit. FMOD will use these plugins as part of its DSP network to apply effects to output or generate sound in realtime. */ - - FMOD_PLUGINTYPE_MAX, /* Maximum number of plugin types supported. */ - FMOD_PLUGINTYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_PLUGINTYPE; - - -/* -[DEFINE] -[ - [NAME] - FMOD_INITFLAGS - - [DESCRIPTION] - Initialization flags. Use them with System::init in the *flags* parameter to change various behavior. - - [REMARKS] - Use System::setAdvancedSettings to adjust settings for some of the features that are enabled by these flags. - - [SEE_ALSO] - System::init - System::update - System::setAdvancedSettings - Channel::set3DOcclusion -] -*/ -#define FMOD_INIT_NORMAL 0x00000000 /* Initialize normally */ -#define FMOD_INIT_STREAM_FROM_UPDATE 0x00000001 /* No stream thread is created internally. Streams are driven from System::update. Mainly used with non-realtime outputs. */ -#define FMOD_INIT_MIX_FROM_UPDATE 0x00000002 /* Win/PS3/Xbox 360 Only - FMOD Mixer thread is woken up to do a mix when System::update is called rather than waking periodically on its own timer. */ -#define FMOD_INIT_3D_RIGHTHANDED 0x00000004 /* FMOD will treat +X as right, +Y as up and +Z as backwards (towards you). */ -#define FMOD_INIT_CHANNEL_LOWPASS 0x00000100 /* All FMOD_3D based voices will add a software lowpass filter effect into the DSP chain which is automatically used when Channel::set3DOcclusion is used or the geometry API. This also causes sounds to sound duller when the sound goes behind the listener, as a fake HRTF style effect. Use System::setAdvancedSettings to disable or adjust cutoff frequency for this feature. */ -#define FMOD_INIT_CHANNEL_DISTANCEFILTER 0x00000200 /* All FMOD_3D based voices will add a software lowpass and highpass filter effect into the DSP chain which will act as a distance-automated bandpass filter. Use System::setAdvancedSettings to adjust the center frequency. */ -#define FMOD_INIT_PROFILE_ENABLE 0x00010000 /* Enable TCP/IP based host which allows FMOD Designer or FMOD Profiler to connect to it, and view memory, CPU and the DSP network graph in real-time. */ -#define FMOD_INIT_VOL0_BECOMES_VIRTUAL 0x00020000 /* Any sounds that are 0 volume will go virtual and not be processed except for having their positions updated virtually. Use System::setAdvancedSettings to adjust what volume besides zero to switch to virtual at. */ -#define FMOD_INIT_GEOMETRY_USECLOSEST 0x00040000 /* With the geometry engine, only process the closest polygon rather than accumulating all polygons the sound to listener line intersects. */ -#define FMOD_INIT_PREFER_DOLBY_DOWNMIX 0x00080000 /* When using FMOD_SPEAKERMODE_5POINT1 with a stereo output device, use the Dolby Pro Logic II downmix algorithm instead of the SRS Circle Surround algorithm. */ -#define FMOD_INIT_THREAD_UNSAFE 0x00100000 /* Disables thread safety for API calls. Only use this if FMOD low level is being called from a single thread, and if Studio API is not being used! */ -#define FMOD_INIT_PROFILE_METER_ALL 0x00200000 /* Slower, but adds level metering for every single DSP unit in the graph. Use DSP::setMeteringEnabled to turn meters off individually. */ -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - These definitions describe the type of song being played. - - [REMARKS] - - [SEE_ALSO] - Sound::getFormat -] -*/ -typedef enum -{ - FMOD_SOUND_TYPE_UNKNOWN, /* 3rd party / unknown plugin format. */ - FMOD_SOUND_TYPE_AIFF, /* AIFF. */ - FMOD_SOUND_TYPE_ASF, /* Microsoft Advanced Systems Format (ie WMA/ASF/WMV). */ - FMOD_SOUND_TYPE_AT3, /* Sony ATRAC 3 format */ - FMOD_SOUND_TYPE_DLS, /* Sound font / downloadable sound bank. */ - FMOD_SOUND_TYPE_FLAC, /* FLAC lossless codec. */ - FMOD_SOUND_TYPE_FSB, /* FMOD Sample Bank. */ - FMOD_SOUND_TYPE_GCADPCM, /* Nintendo GameCube/Wii ADPCM */ - FMOD_SOUND_TYPE_IT, /* Impulse Tracker. */ - FMOD_SOUND_TYPE_MIDI, /* MIDI. extracodecdata is a pointer to an FMOD_MIDI_EXTRACODECDATA structure. */ - FMOD_SOUND_TYPE_MOD, /* Protracker / Fasttracker MOD. */ - FMOD_SOUND_TYPE_MPEG, /* MP2/MP3 MPEG. */ - FMOD_SOUND_TYPE_OGGVORBIS, /* Ogg vorbis. */ - FMOD_SOUND_TYPE_PLAYLIST, /* Information only from ASX/PLS/M3U/WAX playlists */ - FMOD_SOUND_TYPE_RAW, /* Raw PCM data. */ - FMOD_SOUND_TYPE_S3M, /* ScreamTracker 3. */ - FMOD_SOUND_TYPE_USER, /* User created sound. */ - FMOD_SOUND_TYPE_WAV, /* Microsoft WAV. */ - FMOD_SOUND_TYPE_XM, /* FastTracker 2 XM. */ - FMOD_SOUND_TYPE_XMA, /* Xbox360 XMA */ - FMOD_SOUND_TYPE_VAG, /* PlayStation Portable ADPCM VAG format. */ - FMOD_SOUND_TYPE_AUDIOQUEUE, /* iPhone hardware decoder, supports AAC, ALAC and MP3. extracodecdata is a pointer to an FMOD_AUDIOQUEUE_EXTRACODECDATA structure. */ - FMOD_SOUND_TYPE_XWMA, /* Xbox360 XWMA */ - FMOD_SOUND_TYPE_BCWAV, /* 3DS BCWAV container format for DSP ADPCM and PCM */ - FMOD_SOUND_TYPE_AT9, /* PS4 / PSVita ATRAC 9 format */ - FMOD_SOUND_TYPE_VORBIS, /* Vorbis */ - FMOD_SOUND_TYPE_MEDIA_FOUNDATION,/* Windows Store Application built in system codecs */ - FMOD_SOUND_TYPE_MEDIACODEC, /* Android MediaCodec */ - FMOD_SOUND_TYPE_FADPCM, /* FMOD Adaptive Differential Pulse Code Modulation */ - - FMOD_SOUND_TYPE_MAX, /* Maximum number of sound types supported. */ - FMOD_SOUND_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SOUND_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - These definitions describe the native format of the hardware or software buffer that will be used. - - [REMARKS] - This is the format the native hardware or software buffer will be or is created in. - - [SEE_ALSO] - System::createSound - Sound::getFormat -] -*/ -typedef enum -{ - FMOD_SOUND_FORMAT_NONE, /* Unitialized / unknown. */ - FMOD_SOUND_FORMAT_PCM8, /* 8bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCM16, /* 16bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCM24, /* 24bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCM32, /* 32bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCMFLOAT, /* 32bit floating point PCM data. */ - FMOD_SOUND_FORMAT_GCADPCM, /* Compressed Nintendo 3DS/Wii DSP data. */ - FMOD_SOUND_FORMAT_IMAADPCM, /* Compressed IMA ADPCM data. */ - FMOD_SOUND_FORMAT_VAG, /* Compressed PlayStation Portable ADPCM data. */ - FMOD_SOUND_FORMAT_HEVAG, /* Compressed PSVita ADPCM data. */ - FMOD_SOUND_FORMAT_XMA, /* Compressed Xbox360 XMA data. */ - FMOD_SOUND_FORMAT_MPEG, /* Compressed MPEG layer 2 or 3 data. */ - FMOD_SOUND_FORMAT_CELT, /* Not supported. */ - FMOD_SOUND_FORMAT_AT9, /* Compressed PSVita ATRAC9 data. */ - FMOD_SOUND_FORMAT_XWMA, /* Compressed Xbox360 xWMA data. */ - FMOD_SOUND_FORMAT_VORBIS, /* Compressed Vorbis data. */ - FMOD_SOUND_FORMAT_FADPCM, /* Compressed FADPCM data. */ - - FMOD_SOUND_FORMAT_MAX, /* Maximum number of sound formats supported. */ - FMOD_SOUND_FORMAT_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SOUND_FORMAT; - - -/* -[DEFINE] -[ - [NAME] - FMOD_MODE - - [DESCRIPTION] - Sound description bitfields, bitwise OR them together for loading and describing sounds. - - [REMARKS] - By default a sound will open as a static sound that is decompressed fully into memory to PCM. (ie equivalent of FMOD_CREATESAMPLE)
    - To have a sound stream instead, use FMOD_CREATESTREAM, or use the wrapper function System::createStream.
    - Some opening modes (ie FMOD_OPENUSER, FMOD_OPENMEMORY, FMOD_OPENMEMORY_POINT, FMOD_OPENRAW) will need extra information.
    - This can be provided using the FMOD_CREATESOUNDEXINFO structure. -
    - Specifying FMOD_OPENMEMORY_POINT will POINT to your memory rather allocating its own sound buffers and duplicating it internally.
    - This means you cannot free the memory while FMOD is using it, until after Sound::release is called. - With FMOD_OPENMEMORY_POINT, for PCM formats, only WAV, FSB, and RAW are supported. For compressed formats, only those formats supported by FMOD_CREATECOMPRESSEDSAMPLE are supported.
    - With FMOD_OPENMEMORY_POINT and FMOD_OPENRAW or PCM, if using them together, note that you must pad the data on each side by 16 bytes. This is so fmod can modify the ends of the data for looping/interpolation/mixing purposes. If a wav file, you will need to insert silence, and then reset loop points to stop the playback from playing that silence.
    -
    - Xbox 360 memory On Xbox 360 Specifying FMOD_OPENMEMORY_POINT to a virtual memory address will cause FMOD_ERR_INVALID_ADDRESS - to be returned. Use physical memory only for this functionality.
    -
    - FMOD_LOWMEM is used on a sound if you want to minimize the memory overhead, by having FMOD not allocate memory for certain - features that are not likely to be used in a game environment. These are :
    - 1. Sound::getName functionality is removed. 256 bytes per sound is saved.
    - - [SEE_ALSO] - System::createSound - System::createStream - Sound::setMode - Sound::getMode - Channel::setMode - Channel::getMode - Sound::set3DCustomRolloff - Channel::set3DCustomRolloff - Sound::getOpenState -] -*/ -#define FMOD_DEFAULT 0x00000000 /* Default for all modes listed below. FMOD_LOOP_OFF, FMOD_2D, FMOD_3D_WORLDRELATIVE, FMOD_3D_INVERSEROLLOFF */ -#define FMOD_LOOP_OFF 0x00000001 /* For non looping sounds. (DEFAULT). Overrides FMOD_LOOP_NORMAL / FMOD_LOOP_BIDI. */ -#define FMOD_LOOP_NORMAL 0x00000002 /* For forward looping sounds. */ -#define FMOD_LOOP_BIDI 0x00000004 /* For bidirectional looping sounds. (only works on software mixed static sounds). */ -#define FMOD_2D 0x00000008 /* Ignores any 3d processing. (DEFAULT). */ -#define FMOD_3D 0x00000010 /* Makes the sound positionable in 3D. Overrides FMOD_2D. */ -#define FMOD_CREATESTREAM 0x00000080 /* Decompress at runtime, streaming from the source provided (ie from disk). Overrides FMOD_CREATESAMPLE and FMOD_CREATECOMPRESSEDSAMPLE. Note a stream can only be played once at a time due to a stream only having 1 stream buffer and file handle. Open multiple streams to have them play concurrently. */ -#define FMOD_CREATESAMPLE 0x00000100 /* Decompress at loadtime, decompressing or decoding whole file into memory as the target sample format (ie PCM). Fastest for playback and most flexible. */ -#define FMOD_CREATECOMPRESSEDSAMPLE 0x00000200 /* Load MP2/MP3/IMAADPCM/Vorbis/AT9 or XMA into memory and leave it compressed. Vorbis/AT9 encoding only supported in the FSB file format. During playback the FMOD software mixer will decode it in realtime as a 'compressed sample'. Overrides FMOD_CREATESAMPLE. If the sound data is not one of the supported formats, it will behave as if it was created with FMOD_CREATESAMPLE and decode the sound into PCM. */ -#define FMOD_OPENUSER 0x00000400 /* Opens a user created static sample or stream. Use FMOD_CREATESOUNDEXINFO to specify format and/or read callbacks. If a user created 'sample' is created with no read callback, the sample will be empty. Use Sound::lock and Sound::unlock to place sound data into the sound if this is the case. */ -#define FMOD_OPENMEMORY 0x00000800 /* "name_or_data" will be interpreted as a pointer to memory instead of filename for creating sounds. Use FMOD_CREATESOUNDEXINFO to specify length. If used with FMOD_CREATESAMPLE or FMOD_CREATECOMPRESSEDSAMPLE, FMOD duplicates the memory into its own buffers. Your own buffer can be freed after open. If used with FMOD_CREATESTREAM, FMOD will stream out of the buffer whose pointer you passed in. In this case, your own buffer should not be freed until you have finished with and released the stream.*/ -#define FMOD_OPENMEMORY_POINT 0x10000000 /* "name_or_data" will be interpreted as a pointer to memory instead of filename for creating sounds. Use FMOD_CREATESOUNDEXINFO to specify length. This differs to FMOD_OPENMEMORY in that it uses the memory as is, without duplicating the memory into its own buffers. Cannot be freed after open, only after Sound::release. Will not work if the data is compressed and FMOD_CREATECOMPRESSEDSAMPLE is not used. */ -#define FMOD_OPENRAW 0x00001000 /* Will ignore file format and treat as raw pcm. Use FMOD_CREATESOUNDEXINFO to specify format. Requires at least defaultfrequency, numchannels and format to be specified before it will open. Must be little endian data. */ -#define FMOD_OPENONLY 0x00002000 /* Just open the file, dont prebuffer or read. Good for fast opens for info, or when sound::readData is to be used. */ -#define FMOD_ACCURATETIME 0x00004000 /* For System::createSound - for accurate Sound::getLength/Channel::setPosition on VBR MP3, and MOD/S3M/XM/IT/MIDI files. Scans file first, so takes longer to open. FMOD_OPENONLY does not affect this. */ -#define FMOD_MPEGSEARCH 0x00008000 /* For corrupted / bad MP3 files. This will search all the way through the file until it hits a valid MPEG header. Normally only searches for 4k. */ -#define FMOD_NONBLOCKING 0x00010000 /* For opening sounds and getting streamed subsounds (seeking) asyncronously. Use Sound::getOpenState to poll the state of the sound as it opens or retrieves the subsound in the background. */ -#define FMOD_UNIQUE 0x00020000 /* Unique sound, can only be played one at a time */ -#define FMOD_3D_HEADRELATIVE 0x00040000 /* Make the sound's position, velocity and orientation relative to the listener. */ -#define FMOD_3D_WORLDRELATIVE 0x00080000 /* Make the sound's position, velocity and orientation absolute (relative to the world). (DEFAULT) */ -#define FMOD_3D_INVERSEROLLOFF 0x00100000 /* This sound will follow the inverse rolloff model where mindistance = full volume, maxdistance = where sound stops attenuating, and rolloff is fixed according to the global rolloff factor. (DEFAULT) */ -#define FMOD_3D_LINEARROLLOFF 0x00200000 /* This sound will follow a linear rolloff model where mindistance = full volume, maxdistance = silence. */ -#define FMOD_3D_LINEARSQUAREROLLOFF 0x00400000 /* This sound will follow a linear-square rolloff model where mindistance = full volume, maxdistance = silence. */ -#define FMOD_3D_INVERSETAPEREDROLLOFF 0x00800000 /* This sound will follow the inverse rolloff model at distances close to mindistance and a linear-square rolloff close to maxdistance. */ -#define FMOD_3D_CUSTOMROLLOFF 0x04000000 /* This sound will follow a rolloff model defined by Sound::set3DCustomRolloff / Channel::set3DCustomRolloff. */ -#define FMOD_3D_IGNOREGEOMETRY 0x40000000 /* Is not affect by geometry occlusion. If not specified in Sound::setMode, or Channel::setMode, the flag is cleared and it is affected by geometry again. */ -/* Unused 0x01000000 Used to be FMOD_UNICODE */ -#define FMOD_IGNORETAGS 0x02000000 /* Skips id3v2/asf/etc tag checks when opening a sound, to reduce seek/read overhead when opening files (helps with CD performance). */ -#define FMOD_LOWMEM 0x08000000 /* Removes some features from samples to give a lower memory overhead, like Sound::getName. See remarks. */ -#define FMOD_LOADSECONDARYRAM 0x20000000 /* Load sound into the secondary RAM of supported platform. On PS3, sounds will be loaded into RSX/VRAM. */ -#define FMOD_VIRTUAL_PLAYFROMSTART 0x80000000 /* For sounds that start virtual (due to being quiet or low importance), instead of swapping back to audible, and playing at the correct offset according to time, this flag makes the sound play from the start. */ -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - These values describe what state a sound is in after FMOD_NONBLOCKING has been used to open it. - - [REMARKS] - With streams, if you are using FMOD_NONBLOCKING, note that if the user calls Sound::getSubSound, a stream will go into FMOD_OPENSTATE_SEEKING state and sound related commands will return FMOD_ERR_NOTREADY.
    - With streams, if you are using FMOD_NONBLOCKING, note that if the user calls Channel::getPosition, a stream will go into FMOD_OPENSTATE_SETPOSITION state and sound related commands will return FMOD_ERR_NOTREADY.
    - - [SEE_ALSO] - Sound::getOpenState - FMOD_MODE -] -*/ -typedef enum -{ - FMOD_OPENSTATE_READY = 0, /* Opened and ready to play. */ - FMOD_OPENSTATE_LOADING, /* Initial load in progress. */ - FMOD_OPENSTATE_ERROR, /* Failed to open - file not found, out of memory etc. See return value of Sound::getOpenState for what happened. */ - FMOD_OPENSTATE_CONNECTING, /* Connecting to remote host (internet sounds only). */ - FMOD_OPENSTATE_BUFFERING, /* Buffering data. */ - FMOD_OPENSTATE_SEEKING, /* Seeking to subsound and re-flushing stream buffer. */ - FMOD_OPENSTATE_PLAYING, /* Ready and playing, but not possible to release at this time without stalling the main thread. */ - FMOD_OPENSTATE_SETPOSITION, /* Seeking within a stream to a different position. */ - - FMOD_OPENSTATE_MAX, /* Maximum number of open state types. */ - FMOD_OPENSTATE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_OPENSTATE; - - -/* -[ENUM] -[ - [DESCRIPTION] - These values are used with SoundGroup::setMaxAudibleBehavior to determine what happens when more sounds - are played than are specified with SoundGroup::setMaxAudible. - - [REMARKS] - When using FMOD_SOUNDGROUP_BEHAVIOR_MUTE, SoundGroup::setMuteFadeSpeed can be used to stop a sudden transition. - Instead, the time specified will be used to cross fade between the sounds that go silent and the ones that become audible. - - [SEE_ALSO] - SoundGroup::setMaxAudibleBehavior - SoundGroup::getMaxAudibleBehavior - SoundGroup::setMaxAudible - SoundGroup::getMaxAudible - SoundGroup::setMuteFadeSpeed - SoundGroup::getMuteFadeSpeed -] -*/ -typedef enum -{ - FMOD_SOUNDGROUP_BEHAVIOR_FAIL, /* Any sound played that puts the sound count over the SoundGroup::setMaxAudible setting, will simply fail during System::playSound. */ - FMOD_SOUNDGROUP_BEHAVIOR_MUTE, /* Any sound played that puts the sound count over the SoundGroup::setMaxAudible setting, will be silent, then if another sound in the group stops the sound that was silent before becomes audible again. */ - FMOD_SOUNDGROUP_BEHAVIOR_STEALLOWEST, /* Any sound played that puts the sound count over the SoundGroup::setMaxAudible setting, will steal the quietest / least important sound playing in the group. */ - - FMOD_SOUNDGROUP_BEHAVIOR_MAX, /* Maximum number of sound group behaviors. */ - FMOD_SOUNDGROUP_BEHAVIOR_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SOUNDGROUP_BEHAVIOR; - - -/* -[ENUM] -[ - [DESCRIPTION] - These callback types are used with Channel::setCallback. - - [REMARKS] - Each callback has commanddata parameters passed as int unique to the type of callback.
    - See reference to FMOD_CHANNELCONTROL_CALLBACK to determine what they might mean for each type of callback.
    -
    - Note! Currently the user must call System::update for these callbacks to trigger! - - [SEE_ALSO] - Channel::setCallback - ChannelGroup::setCallback - FMOD_CHANNELCONTROL_CALLBACK - System::update -] -*/ -typedef enum -{ - FMOD_CHANNELCONTROL_CALLBACK_END, /* Called when a sound ends. */ - FMOD_CHANNELCONTROL_CALLBACK_VIRTUALVOICE, /* Called when a voice is swapped out or swapped in. */ - FMOD_CHANNELCONTROL_CALLBACK_SYNCPOINT, /* Called when a syncpoint is encountered. Can be from wav file markers. */ - FMOD_CHANNELCONTROL_CALLBACK_OCCLUSION, /* Called when the channel has its geometry occlusion value calculated. Can be used to clamp or change the value. */ - - FMOD_CHANNELCONTROL_CALLBACK_MAX, /* Maximum number of callback types supported. */ - FMOD_CHANNELCONTROL_CALLBACK_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELCONTROL_CALLBACK_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - These enums denote special types of node within a DSP chain. - - [REMARKS] - - [SEE_ALSO] - Channel::getDSP - ChannelGroup::getDSP - ChannelControl::getNumDSPs -] -*/ -typedef enum -{ - FMOD_CHANNELCONTROL_DSP_HEAD = -1, /* Head of the DSP chain. Equivalent of index 0. */ - FMOD_CHANNELCONTROL_DSP_FADER = -2, /* Built in fader DSP. */ - FMOD_CHANNELCONTROL_DSP_PANNER = -3, /* Built in panner DSP. */ - FMOD_CHANNELCONTROL_DSP_TAIL = -4, /* Tail of the DSP chain. Equivalent of the number of dsps minus 1. */ - - FMOD_CHANNELCONTROL_DSP_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELCONTROL_DSP_INDEX; - -/* -[ENUM] -[ - [DESCRIPTION] - Used to distinguish the instance type passed into FMOD_ERROR_CALLBACK. - - [REMARKS] - Cast the instance of FMOD_ERROR_CALLBACK to the appropriate class indicated by this enum. - - [SEE_ALSO] -] -*/ -typedef enum -{ - FMOD_ERRORCALLBACK_INSTANCETYPE_NONE, - FMOD_ERRORCALLBACK_INSTANCETYPE_SYSTEM, - FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNEL, - FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELGROUP, - FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELCONTROL, - FMOD_ERRORCALLBACK_INSTANCETYPE_SOUND, - FMOD_ERRORCALLBACK_INSTANCETYPE_SOUNDGROUP, - FMOD_ERRORCALLBACK_INSTANCETYPE_DSP, - FMOD_ERRORCALLBACK_INSTANCETYPE_DSPCONNECTION, - FMOD_ERRORCALLBACK_INSTANCETYPE_GEOMETRY, - FMOD_ERRORCALLBACK_INSTANCETYPE_REVERB3D, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_SYSTEM, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_EVENTDESCRIPTION, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_EVENTINSTANCE, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_PARAMETERINSTANCE, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_CUEINSTANCE, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_BUS, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_VCA, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_BANK, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_COMMANDREPLAY, - - FMOD_ERRORCALLBACK_INSTANCETYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_ERRORCALLBACK_INSTANCETYPE; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure that is passed into FMOD_SYSTEM_CALLBACK for the FMOD_SYSTEM_CALLBACK_ERROR callback type. - - [REMARKS] - The instance pointer will be a type corresponding to the instanceType enum. - - [SEE_ALSO] - FMOD_ERRORCALLBACK_INSTANCETYPE -] -*/ -typedef struct -{ - FMOD_RESULT result; /* Error code result */ - FMOD_ERRORCALLBACK_INSTANCETYPE instancetype; /* Type of instance the error occurred on */ - void *instance; /* Instance pointer */ - const char *functionname; /* Function that the error occurred on */ - const char *functionparams; /* Function parameters that the error ocurred on */ -} FMOD_ERRORCALLBACK_INFO; - -/* -[DEFINE] -[ - [NAME] - FMOD_SYSTEM_CALLBACK_TYPE - - [DESCRIPTION] - These callback types are used with System::setCallback. - - [REMARKS] - Each callback has commanddata parameters passed as void* unique to the type of callback.
    - See reference to FMOD_SYSTEM_CALLBACK to determine what they might mean for each type of callback.
    -
    - Note! Using FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED (Windows only) will disable any automated device ejection/insertion handling by FMOD. Use this callback to control the behaviour yourself.
    -
    - Note! Using FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED (on Mac only) requires the application to be running an event loop which will allow external changes to device list to be detected by FMOD.
    -
    - Note! The 'system' object pointer will be null for FMOD_SYSTEM_CALLBACK_MEMORYALLOCATIONFAILED callback. - - [SEE_ALSO] - System::setCallback - System::update - DSP::addInput -] -*/ -#define FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED 0x00000001 /* Called from System::update when the enumerated list of devices has changed. */ -#define FMOD_SYSTEM_CALLBACK_DEVICELOST 0x00000002 /* Called from System::update when an output device has been lost due to control panel parameter changes and FMOD cannot automatically recover. */ -#define FMOD_SYSTEM_CALLBACK_MEMORYALLOCATIONFAILED 0x00000004 /* Called directly when a memory allocation fails somewhere in FMOD. (NOTE - 'system' will be NULL in this callback type.)*/ -#define FMOD_SYSTEM_CALLBACK_THREADCREATED 0x00000008 /* Called directly when a thread is created. */ -#define FMOD_SYSTEM_CALLBACK_BADDSPCONNECTION 0x00000010 /* Called when a bad connection was made with DSP::addInput. Usually called from mixer thread because that is where the connections are made. */ -#define FMOD_SYSTEM_CALLBACK_PREMIX 0x00000020 /* Called each tick before a mix update happens. */ -#define FMOD_SYSTEM_CALLBACK_POSTMIX 0x00000040 /* Called each tick after a mix update happens. */ -#define FMOD_SYSTEM_CALLBACK_ERROR 0x00000080 /* Called when each API function returns an error code, including delayed async functions. */ -#define FMOD_SYSTEM_CALLBACK_MIDMIX 0x00000100 /* Called each tick in mix update after clocks have been updated before the main mix occurs. */ -#define FMOD_SYSTEM_CALLBACK_THREADDESTROYED 0x00000200 /* Called directly when a thread is destroyed. */ -#define FMOD_SYSTEM_CALLBACK_PREUPDATE 0x00000400 /* Called at start of System::update function. */ -#define FMOD_SYSTEM_CALLBACK_POSTUPDATE 0x00000800 /* Called at end of System::update function. */ - -/* [DEFINE_END] */ - - -/* - FMOD Callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_DEBUG_CALLBACK) (FMOD_DEBUG_FLAGS flags, const char *file, int line, const char *func, const char *message); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_SYSTEM_CALLBACK) (FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK_TYPE type, void *commanddata1, void *commanddata2, void *userdata); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_CHANNELCONTROL_CALLBACK) (FMOD_CHANNELCONTROL *channelcontrol, FMOD_CHANNELCONTROL_TYPE controltype, FMOD_CHANNELCONTROL_CALLBACK_TYPE callbacktype, void *commanddata1, void *commanddata2); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_SOUND_NONBLOCK_CALLBACK) (FMOD_SOUND *sound, FMOD_RESULT result); -typedef FMOD_RESULT (F_CALLBACK *FMOD_SOUND_PCMREAD_CALLBACK) (FMOD_SOUND *sound, void *data, unsigned int datalen); -typedef FMOD_RESULT (F_CALLBACK *FMOD_SOUND_PCMSETPOS_CALLBACK) (FMOD_SOUND *sound, int subsound, unsigned int position, FMOD_TIMEUNIT postype); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_OPEN_CALLBACK) (const char *name, unsigned int *filesize, void **handle, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_CLOSE_CALLBACK) (void *handle, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_READ_CALLBACK) (void *handle, void *buffer, unsigned int sizebytes, unsigned int *bytesread, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_SEEK_CALLBACK) (void *handle, unsigned int pos, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_ASYNCREAD_CALLBACK) (FMOD_ASYNCREADINFO *info, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_ASYNCCANCEL_CALLBACK)(FMOD_ASYNCREADINFO *info, void *userdata); - -typedef void * (F_CALLBACK *FMOD_MEMORY_ALLOC_CALLBACK) (unsigned int size, FMOD_MEMORY_TYPE type, const char *sourcestr); -typedef void * (F_CALLBACK *FMOD_MEMORY_REALLOC_CALLBACK) (void *ptr, unsigned int size, FMOD_MEMORY_TYPE type, const char *sourcestr); -typedef void (F_CALLBACK *FMOD_MEMORY_FREE_CALLBACK) (void *ptr, FMOD_MEMORY_TYPE type, const char *sourcestr); - -typedef float (F_CALLBACK *FMOD_3D_ROLLOFF_CALLBACK) (FMOD_CHANNELCONTROL *channelcontrol, float distance); - - - - -/* -[ENUM] -[ - [DESCRIPTION] - List of interpolation types that the FMOD Studio software mixer supports. - - [REMARKS] - The default resampler type is FMOD_DSP_RESAMPLER_LINEAR.
    - Use System::setAdvancedSettings and the resamplerMethod member to tell FMOD the resampling quality you require for sample rate conversion during sound playback. - - [SEE_ALSO] - System::setAdvancedSettings - System::setAdvancedSettings - FMOD_ADVANCEDSETINGS -] -*/ -typedef enum -{ - FMOD_DSP_RESAMPLER_DEFAULT, /* Default interpolation method. Currently equal to FMOD_DSP_RESAMPLER_LINEAR. */ - FMOD_DSP_RESAMPLER_NOINTERP, /* No interpolation. High frequency aliasing hiss will be audible depending on the sample rate of the sound. */ - FMOD_DSP_RESAMPLER_LINEAR, /* Linear interpolation (default method). Fast and good quality, causes very slight lowpass effect on low frequency sounds. */ - FMOD_DSP_RESAMPLER_CUBIC, /* Cubic interpolation. Slower than linear interpolation but better quality. */ - FMOD_DSP_RESAMPLER_SPLINE, /* 5 point spline interpolation. Slowest resampling method but best quality. */ - - FMOD_DSP_RESAMPLER_MAX, /* Maximum number of resample methods supported. */ - FMOD_DSP_RESAMPLER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_RESAMPLER; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of connection types between 2 DSP nodes. - - [REMARKS] - FMOD_DSP_CONNECTION_TYPE_STANDARD
    - ----------------------------------
    - Default DSPConnection type. Audio is mixed from the input to the output DSP's audible buffer, meaning it will be part of the audible signal. A standard connection will execute its input DSP if it has not been executed before.
    -
    - FMOD_DSP_CONNECTION_TYPE_SIDECHAIN
    - ----------------------------------
    - Sidechain DSPConnection type. Audio is mixed from the input to the output DSP's sidechain buffer, meaning it will NOT be part of the audible signal. A sidechain connection will execute its input DSP if it has not been executed before.
    - The purpose of the seperate sidechain buffer in a DSP, is so that the DSP effect can privately access for analysis purposes. An example of use in this case, could be a compressor which analyzes the signal, to control its own effect parameters (ie a compression level or gain).
    -
    - For the effect developer, to accept sidechain data, the sidechain data will appear in the FMOD_DSP_STATE struct which is passed into the read callback of a DSP unit.
    - FMOD_DSP_STATE::sidechaindata and FMOD_DSP::sidechainchannels will hold the mixed result of any sidechain data flowing into it.
    -
    - FMOD_DSP_CONNECTION_TYPE_SEND
    - -----------------------------
    - Send DSPConnection type. Audio is mixed from the input to the output DSP's audible buffer, meaning it will be part of the audible signal. A send connection will NOT execute its input DSP if it has not been executed before.
    - A send connection will only read what exists at the input's buffer at the time of executing the output DSP unit (which can be considered the 'return')
    -
    - FMOD_DSP_CONNECTION_TYPE_SEND_SIDECHAIN
    - ---------------------------------------
    - Send sidechain DSPConnection type. Audio is mixed from the input to the output DSP's sidechain buffer, meaning it will NOT be part of the audible signal. A send sidechain connection will NOT execute its input DSP if it has not been executed before.
    - A send sidechain connection will only read what exists at the input's buffer at the time of executing the output DSP unit (which can be considered the 'sidechain return'). -
    - For the effect developer, to accept sidechain data, the sidechain data will appear in the FMOD_DSP_STATE struct which is passed into the read callback of a DSP unit.
    - FMOD_DSP_STATE::sidechaindata and FMOD_DSP::sidechainchannels will hold the mixed result of any sidechain data flowing into it. - - [SEE_ALSO] - DSP::addInput - DSPConnection::getType -] -*/ -typedef enum -{ - FMOD_DSPCONNECTION_TYPE_STANDARD, /* Default connection type. Audio is mixed from the input to the output DSP's audible buffer. */ - FMOD_DSPCONNECTION_TYPE_SIDECHAIN, /* Sidechain connection type. Audio is mixed from the input to the output DSP's sidechain buffer. */ - FMOD_DSPCONNECTION_TYPE_SEND, /* Send connection type. Audio is mixed from the input to the output DSP's audible buffer, but the input is NOT executed, only copied from. A standard connection or sidechain needs to make an input execute to generate data. */ - FMOD_DSPCONNECTION_TYPE_SEND_SIDECHAIN, /* Send sidechain connection type. Audio is mixed from the input to the output DSP's sidechain buffer, but the input is NOT executed, only copied from. A standard connection or sidechain needs to make an input execute to generate data. */ - - FMOD_DSPCONNECTION_TYPE_MAX, /* Maximum number of DSP connection types supported. */ - FMOD_DSPCONNECTION_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSPCONNECTION_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of tag types that could be stored within a sound. These include id3 tags, metadata from netstreams and vorbis/asf data. - - [REMARKS] - - [SEE_ALSO] - Sound::getTag -] -*/ -typedef enum -{ - FMOD_TAGTYPE_UNKNOWN = 0, - FMOD_TAGTYPE_ID3V1, - FMOD_TAGTYPE_ID3V2, - FMOD_TAGTYPE_VORBISCOMMENT, - FMOD_TAGTYPE_SHOUTCAST, - FMOD_TAGTYPE_ICECAST, - FMOD_TAGTYPE_ASF, - FMOD_TAGTYPE_MIDI, - FMOD_TAGTYPE_PLAYLIST, - FMOD_TAGTYPE_FMOD, - FMOD_TAGTYPE_USER, - - FMOD_TAGTYPE_MAX, /* Maximum number of tag types supported. */ - FMOD_TAGTYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_TAGTYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of data types that can be returned by Sound::getTag - - [REMARKS] - - [SEE_ALSO] - Sound::getTag -] -*/ -typedef enum -{ - FMOD_TAGDATATYPE_BINARY = 0, - FMOD_TAGDATATYPE_INT, - FMOD_TAGDATATYPE_FLOAT, - FMOD_TAGDATATYPE_STRING, - FMOD_TAGDATATYPE_STRING_UTF16, - FMOD_TAGDATATYPE_STRING_UTF16BE, - FMOD_TAGDATATYPE_STRING_UTF8, - FMOD_TAGDATATYPE_CDTOC, - - FMOD_TAGDATATYPE_MAX, /* Maximum number of tag datatypes supported. */ - FMOD_TAGDATATYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_TAGDATATYPE; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a piece of tag data. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - Sound::getTag - FMOD_TAGTYPE - FMOD_TAGDATATYPE -] -*/ -typedef struct FMOD_TAG -{ - FMOD_TAGTYPE type; /* [r] The type of this tag. */ - FMOD_TAGDATATYPE datatype; /* [r] The type of data that this tag contains */ - char *name; /* [r] The name of this tag i.e. "TITLE", "ARTIST" etc. */ - void *data; /* [r] Pointer to the tag data - its format is determined by the datatype member */ - unsigned int datalen; /* [r] Length of the data contained in this tag */ - FMOD_BOOL updated; /* [r] True if this tag has been updated since last being accessed with Sound::getTag */ -} FMOD_TAG; - - -/* -[DEFINE] -[ - [NAME] - FMOD_TIMEUNIT - - [DESCRIPTION] - List of time types that can be returned by Sound::getLength and used with Channel::setPosition or Channel::getPosition. - - [REMARKS] - Do not combine flags except FMOD_TIMEUNIT_BUFFERED. - - [SEE_ALSO] - Sound::getLength - Channel::setPosition - Channel::getPosition -] -*/ -#define FMOD_TIMEUNIT_MS 0x00000001 /* Milliseconds. */ -#define FMOD_TIMEUNIT_PCM 0x00000002 /* PCM samples, related to milliseconds * samplerate / 1000. */ -#define FMOD_TIMEUNIT_PCMBYTES 0x00000004 /* Bytes, related to PCM samples * channels * datawidth (ie 16bit = 2 bytes). */ -#define FMOD_TIMEUNIT_RAWBYTES 0x00000008 /* Raw file bytes of (compressed) sound data (does not include headers). Only used by Sound::getLength and Channel::getPosition. */ -#define FMOD_TIMEUNIT_PCMFRACTION 0x00000010 /* Fractions of 1 PCM sample. Unsigned int range 0 to 0xFFFFFFFF. Used for sub-sample granularity for DSP purposes. */ -#define FMOD_TIMEUNIT_MODORDER 0x00000100 /* MOD/S3M/XM/IT. Order in a sequenced module format. Use Sound::getFormat to determine the PCM format being decoded to. */ -#define FMOD_TIMEUNIT_MODROW 0x00000200 /* MOD/S3M/XM/IT. Current row in a sequenced module format. Sound::getLength will return the number of rows in the currently playing or seeked to pattern. */ -#define FMOD_TIMEUNIT_MODPATTERN 0x00000400 /* MOD/S3M/XM/IT. Current pattern in a sequenced module format. Sound::getLength will return the number of patterns in the song and Channel::getPosition will return the currently playing pattern. */ -#define FMOD_TIMEUNIT_BUFFERED 0x10000000 /* Time value as seen by buffered stream. This is always ahead of audible time, and is only used for processing. */ -/* [DEFINE_END] */ - -/* -[DEFINE] -[ - [NAME] - FMOD_PORT_INDEX - - [DESCRIPTION] - - [REMARKS] - - [SEE_ALSO] - System::AttachChannelGroupToPort -] -*/ -#define FMOD_PORT_INDEX_NONE -1ull /* Use when a port index is not required */ -/* [DEFINE_END] */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Use this structure with System::createSound when more control is needed over loading. - The possible reasons to use this with System::createSound are: - - - Loading a file from memory. - - Loading a file from within another larger (possibly wad/pak) file, by giving the loader an offset and length. - - To create a user created / non file based sound. - - To specify a starting subsound to seek to within a multi-sample sounds (ie FSB/DLS) when created as a stream. - - To specify which subsounds to load for multi-sample sounds (ie FSB/DLS) so that memory is saved and only a subset is actually loaded/read from disk. - - To specify 'piggyback' read and seek callbacks for capture of sound data as fmod reads and decodes it. Useful for ripping decoded PCM data from sounds as they are loaded / played. - - To specify a MIDI DLS sample set file to load when opening a MIDI file. - - See below on what members to fill for each of the above types of sound you want to create. - - [REMARKS] - This structure is optional! Specify 0 or NULL in System::createSound if you don't need it! - - Loading a file from memory. - - - Create the sound using the FMOD_OPENMEMORY flag. - - Mandatory. Specify 'length' for the size of the memory block in bytes. - - Other flags are optional. - - Loading a file from within another larger (possibly wad/pak) file, by giving the loader an offset and length. - - - Mandatory. Specify 'fileoffset' and 'length'. - - Other flags are optional. - - To create a user created / non file based sound. - - - Create the sound using the FMOD_OPENUSER flag. - - Mandatory. Specify 'defaultfrequency, 'numchannels' and 'format'. - - Other flags are optional. - - To specify a starting subsound to seek to and flush with, within a multi-sample stream (ie FSB/DLS). - - - Mandatory. Specify 'initialsubsound'. - - To specify which subsounds to load for multi-sample sounds (ie FSB/DLS) so that memory is saved and only a subset is actually loaded/read from disk. - - - Mandatory. Specify 'inclusionlist' and 'inclusionlistnum'. - - To specify 'piggyback' read and seek callbacks for capture of sound data as fmod reads and decodes it. Useful for ripping decoded PCM data from sounds as they are loaded / played. - - - Mandatory. Specify 'pcmreadcallback' and 'pcmseekcallback'. - - To specify a MIDI DLS sample set file to load when opening a MIDI file. - - - Mandatory. Specify 'dlsname'. - - Setting the 'decodebuffersize' is for cpu intensive codecs that may be causing stuttering, not file intensive codecs (ie those from CD or netstreams) which are normally - altered with System::setStreamBufferSize. As an example of cpu intensive codecs, an mp3 file will take more cpu to decode than a PCM wav file. - - If you have a stuttering effect, then it is using more cpu than the decode buffer playback rate can keep up with. Increasing the decode buffersize will most likely solve this problem. - - FSB codec. If inclusionlist and numsubsounds are used together, this will trigger a special mode where subsounds are shuffled down to save memory. (useful for large FSB - files where you only want to load 1 sound). There will be no gaps, ie no null subsounds. As an example, if there are 10,000 subsounds and there is an inclusionlist with only 1 entry, - and numsubsounds = 1, then subsound 0 will be that entry, and there will only be the memory allocated for 1 subsound. Previously there would still be 10,000 subsound pointers and other - associated codec entries allocated along with it multiplied by 10,000. - - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value. - - [SEE_ALSO] - System::createSound - System::setStreamBufferSize - FMOD_MODE - FMOD_SOUND_FORMAT - FMOD_SOUND_TYPE - FMOD_CHANNELMASK - FMOD_CHANNELORDER - FMOD_MAX_CHANNEL_WIDTH -] -*/ -typedef struct FMOD_CREATESOUNDEXINFO -{ - int cbsize; /* [w] Size of this structure. This is used so the structure can be expanded in the future and still work on older versions of FMOD Studio. */ - unsigned int length; /* [w] Optional. Specify 0 to ignore. Number of bytes to load starting at 'fileoffset', or size of sound to create (if FMOD_OPENUSER is used). Required if loading from memory. If 0 is specified, then it will use the size of the file (unless loading from memory then an error will be returned). */ - unsigned int fileoffset; /* [w] Optional. Specify 0 to ignore. Offset from start of the file to start loading from. This is useful for loading files from inside big data files. */ - int numchannels; /* [w] Optional. Specify 0 to ignore. Number of channels in a sound mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Can be specified up to FMOD_MAX_CHANNEL_WIDTH. */ - int defaultfrequency; /* [w] Optional. Specify 0 to ignore. Default frequency of sound in Hz, mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Other formats use the frequency determined by the file format. */ - FMOD_SOUND_FORMAT format; /* [w] Optional. Specify 0 or FMOD_SOUND_FORMAT_NONE to ignore. Format of the sound, mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Other formats use the format determined by the file format. */ - unsigned int decodebuffersize; /* [w] Optional. Specify 0 to ignore. For streams. This determines the size of the double buffer (in PCM samples) that a stream uses. Use this for user created streams if you want to determine the size of the callback buffer passed to you. Specify 0 to use FMOD's default size which is currently equivalent to 400ms of the sound format created/loaded. */ - int initialsubsound; /* [w] Optional. Specify 0 to ignore. In a multi-sample file format such as .FSB/.DLS, specify the initial subsound to seek to, only if FMOD_CREATESTREAM is used. */ - int numsubsounds; /* [w] Optional. Specify 0 to ignore or have no subsounds. In a sound created with FMOD_OPENUSER, specify the number of subsounds that are accessable with Sound::getSubSound. If not created with FMOD_OPENUSER, this will limit the number of subsounds loaded within a multi-subsound file. If using FSB, then if FMOD_CREATESOUNDEXINFO::inclusionlist is used, this will shuffle subsounds down so that there are not any gaps. It will mean that the indices of the sounds will be different. */ - int *inclusionlist; /* [w] Optional. Specify 0 to ignore. In a multi-sample format such as .FSB/.DLS it may be desirable to specify only a subset of sounds to be loaded out of the whole file. This is an array of subsound indices to load into memory when created. */ - int inclusionlistnum; /* [w] Optional. Specify 0 to ignore. This is the number of integers contained within the inclusionlist array. */ - FMOD_SOUND_PCMREAD_CALLBACK pcmreadcallback; /* [w] Optional. Specify 0 to ignore. Callback to 'piggyback' on FMOD's read functions and accept or even write PCM data while FMOD is opening the sound. Used for user sounds created with FMOD_OPENUSER or for capturing decoded data as FMOD reads it. */ - FMOD_SOUND_PCMSETPOS_CALLBACK pcmsetposcallback; /* [w] Optional. Specify 0 to ignore. Callback for when the user calls a seeking function such as Channel::setTime or Channel::setPosition within a multi-sample sound, and for when it is opened.*/ - FMOD_SOUND_NONBLOCK_CALLBACK nonblockcallback; /* [w] Optional. Specify 0 to ignore. Callback for successful completion, or error while loading a sound that used the FMOD_NONBLOCKING flag. Also called duing seeking, when setPosition is called or a stream is restarted. */ - const char *dlsname; /* [w] Optional. Specify 0 to ignore. Filename for a DLS sample set when loading a MIDI file. If not specified, on Windows it will attempt to open /windows/system32/drivers/gm.dls or /windows/system32/drivers/etc/gm.dls, on Mac it will attempt to load /System/Library/Components/CoreAudio.component/Contents/Resources/gs_instruments.dls, otherwise the MIDI will fail to open. Current DLS support is for level 1 of the specification. */ - const char *encryptionkey; /* [w] Optional. Specify 0 to ignore. Key for encrypted FSB file. Without this key an encrypted FSB file will not load. */ - int maxpolyphony; /* [w] Optional. Specify 0 to ignore. For sequenced formats with dynamic channel allocation such as .MID and .IT, this specifies the maximum voice count allowed while playing. .IT defaults to 64. .MID defaults to 32. */ - void *userdata; /* [w] Optional. Specify 0 to ignore. This is user data to be attached to the sound during creation. Access via Sound::getUserData. Note: This is not passed to FMOD_FILE_OPEN_CALLBACK - use fileuserdata for that. */ - FMOD_SOUND_TYPE suggestedsoundtype; /* [w] Optional. Specify 0 or FMOD_SOUND_TYPE_UNKNOWN to ignore. Instead of scanning all codec types, use this to speed up loading by making it jump straight to this codec. */ - FMOD_FILE_OPEN_CALLBACK fileuseropen; /* [w] Optional. Specify 0 to ignore. Callback for opening this file. */ - FMOD_FILE_CLOSE_CALLBACK fileuserclose; /* [w] Optional. Specify 0 to ignore. Callback for closing this file. */ - FMOD_FILE_READ_CALLBACK fileuserread; /* [w] Optional. Specify 0 to ignore. Callback for reading from this file. */ - FMOD_FILE_SEEK_CALLBACK fileuserseek; /* [w] Optional. Specify 0 to ignore. Callback for seeking within this file. */ - FMOD_FILE_ASYNCREAD_CALLBACK fileuserasyncread; /* [w] Optional. Specify 0 to ignore. Callback for seeking within this file. */ - FMOD_FILE_ASYNCCANCEL_CALLBACK fileuserasynccancel;/* [w] Optional. Specify 0 to ignore. Callback for seeking within this file. */ - void *fileuserdata; /* [w] Optional. Specify 0 to ignore. User data to be passed into the file callbacks. */ - FMOD_CHANNELORDER channelorder; /* [w] Optional. Specify 0 to ignore. Use this to differ the way fmod maps multichannel sounds to speakers. See FMOD_CHANNELORDER for more. */ - FMOD_CHANNELMASK channelmask; /* [w] Optional. Specify 0 to ignore. Use this to specify which channels map to which speakers. See FMOD_CHANNELMASK for more. */ - FMOD_SOUNDGROUP *initialsoundgroup; /* [w] Optional. Specify 0 to ignore. Specify a sound group if required, to put sound in as it is created. */ - unsigned int initialseekposition;/* [w] Optional. Specify 0 to ignore. For streams. Specify an initial position to seek the stream to. */ - FMOD_TIMEUNIT initialseekpostype; /* [w] Optional. Specify 0 to ignore. For streams. Specify the time unit for the position set in initialseekposition. */ - int ignoresetfilesystem;/* [w] Optional. Specify 0 to ignore. Set to 1 to use fmod's built in file system. Ignores setFileSystem callbacks and also FMOD_CREATESOUNEXINFO file callbacks. Useful for specific cases where you don't want to use your own file system but want to use fmod's file system (ie net streaming). */ - unsigned int audioqueuepolicy; /* [w] Optional. Specify 0 or FMOD_AUDIOQUEUE_CODECPOLICY_DEFAULT to ignore. Policy used to determine whether hardware or software is used for decoding, see FMOD_AUDIOQUEUE_CODECPOLICY for options (iOS >= 3.0 required, otherwise only hardware is available) */ - unsigned int minmidigranularity; /* [w] Optional. Specify 0 to ignore. Allows you to set a minimum desired MIDI mixer granularity. Values smaller than 512 give greater than default accuracy at the cost of more CPU and vice versa. Specify 0 for default (512 samples). */ - int nonblockthreadid; /* [w] Optional. Specify 0 to ignore. Specifies a thread index to execute non blocking load on. Allows for up to 5 threads to be used for loading at once. This is to avoid one load blocking another. Maximum value = 4. */ -} FMOD_CREATESOUNDEXINFO; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure defining a reverb environment.
    - - [REMARKS] - Note the default reverb properties are the same as the FMOD_PRESET_GENERIC preset.
    - Note that integer values that typically range from -10,000 to 1000 are represented in decibels, - and are of a logarithmic scale, not linear, wheras float values are always linear.
    -
    - The numerical values listed below are the maximum, minimum and default values for each variable respectively.
    -
    - Hardware voice / Platform Specific reverb support.
    - WII See FMODWII.H for hardware specific reverb functionality.
    - 3DS See FMOD3DS.H for hardware specific reverb functionality.
    - PSP See FMODWII.H for hardware specific reverb functionality.
    -
    - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - Members marked with [r/w] are either read or write depending on if you are using System::setReverbProperties (w) or System::getReverbProperties (r). - - [SEE_ALSO] - System::setReverbProperties - System::getReverbProperties - FMOD_REVERB_PRESETS -] -*/ -typedef struct FMOD_REVERB_PROPERTIES -{ /* MIN MAX DEFAULT DESCRIPTION */ - float DecayTime; /* [r/w] 0.0 20000.0 1500.0 Reverberation decay time in ms */ - float EarlyDelay; /* [r/w] 0.0 300.0 7.0 Initial reflection delay time */ - float LateDelay; /* [r/w] 0.0 100 11.0 Late reverberation delay time relative to initial reflection */ - float HFReference; /* [r/w] 20.0 20000.0 5000 Reference high frequency (hz) */ - float HFDecayRatio; /* [r/w] 10.0 100.0 50.0 High-frequency to mid-frequency decay time ratio */ - float Diffusion; /* [r/w] 0.0 100.0 100.0 Value that controls the echo density in the late reverberation decay. */ - float Density; /* [r/w] 0.0 100.0 100.0 Value that controls the modal density in the late reverberation decay */ - float LowShelfFrequency; /* [r/w] 20.0 1000.0 250.0 Reference low frequency (hz) */ - float LowShelfGain; /* [r/w] -36.0 12.0 0.0 Relative room effect level at low frequencies */ - float HighCut; /* [r/w] 20.0 20000.0 20000.0 Relative room effect level at high frequencies */ - float EarlyLateMix; /* [r/w] 0.0 100.0 50.0 Early reflections level relative to room effect */ - float WetLevel; /* [r/w] -80.0 20.0 -6.0 Room effect level (at mid frequencies) */ -} FMOD_REVERB_PROPERTIES; - - -/* -[DEFINE] -[ - [NAME] - FMOD_REVERB_PRESETS - - [DESCRIPTION] - A set of predefined environment PARAMETERS.
    - These are used to initialize an FMOD_REVERB_PROPERTIES structure statically.
    - i.e.
    - FMOD_REVERB_PROPERTIES prop = FMOD_PRESET_GENERIC; - - [REMARKS] - - [SEE_ALSO] - System::setReverbProperties - System::getReverbProperties -] -*/ -/* Decay LateDly HFDecay Densty LoGain E/L-Mix - EarlyDly HFRef Diffus LoFreq HiCut WetLvl */ -#define FMOD_PRESET_OFF { 1000, 7, 11, 5000, 100, 100, 100, 250, 0, 20, 96, -80.0f } -#define FMOD_PRESET_GENERIC { 1500, 7, 11, 5000, 83, 100, 100, 250, 0, 14500, 96, -8.0f } -#define FMOD_PRESET_PADDEDCELL { 170, 1, 2, 5000, 10, 100, 100, 250, 0, 160, 84, -7.8f } -#define FMOD_PRESET_ROOM { 400, 2, 3, 5000, 83, 100, 100, 250, 0, 6050, 88, -9.4f } -#define FMOD_PRESET_BATHROOM { 1500, 7, 11, 5000, 54, 100, 60, 250, 0, 2900, 83, 0.5f } -#define FMOD_PRESET_LIVINGROOM { 500, 3, 4, 5000, 10, 100, 100, 250, 0, 160, 58, -19.0f } -#define FMOD_PRESET_STONEROOM { 2300, 12, 17, 5000, 64, 100, 100, 250, 0, 7800, 71, -8.5f } -#define FMOD_PRESET_AUDITORIUM { 4300, 20, 30, 5000, 59, 100, 100, 250, 0, 5850, 64, -11.7f } -#define FMOD_PRESET_CONCERTHALL { 3900, 20, 29, 5000, 70, 100, 100, 250, 0, 5650, 80, -9.8f } -#define FMOD_PRESET_CAVE { 2900, 15, 22, 5000, 100, 100, 100, 250, 0, 20000, 59, -11.3f } -#define FMOD_PRESET_ARENA { 7200, 20, 30, 5000, 33, 100, 100, 250, 0, 4500, 80, -9.6f } -#define FMOD_PRESET_HANGAR { 10000, 20, 30, 5000, 23, 100, 100, 250, 0, 3400, 72, -7.4f } -#define FMOD_PRESET_CARPETTEDHALLWAY { 300, 2, 30, 5000, 10, 100, 100, 250, 0, 500, 56, -24.0f } -#define FMOD_PRESET_HALLWAY { 1500, 7, 11, 5000, 59, 100, 100, 250, 0, 7800, 87, -5.5f } -#define FMOD_PRESET_STONECORRIDOR { 270, 13, 20, 5000, 79, 100, 100, 250, 0, 9000, 86, -6.0f } -#define FMOD_PRESET_ALLEY { 1500, 7, 11, 5000, 86, 100, 100, 250, 0, 8300, 80, -9.8f } -#define FMOD_PRESET_FOREST { 1500, 162, 88, 5000, 54, 79, 100, 250, 0, 760, 94, -12.3f } -#define FMOD_PRESET_CITY { 1500, 7, 11, 5000, 67, 50, 100, 250, 0, 4050, 66, -26.0f } -#define FMOD_PRESET_MOUNTAINS { 1500, 300, 100, 5000, 21, 27, 100, 250, 0, 1220, 82, -24.0f } -#define FMOD_PRESET_QUARRY { 1500, 61, 25, 5000, 83, 100, 100, 250, 0, 3400, 100, -5.0f } -#define FMOD_PRESET_PLAIN { 1500, 179, 100, 5000, 50, 21, 100, 250, 0, 1670, 65, -28.0f } -#define FMOD_PRESET_PARKINGLOT { 1700, 8, 12, 5000, 100, 100, 100, 250, 0, 20000, 56, -19.5f } -#define FMOD_PRESET_SEWERPIPE { 2800, 14, 21, 5000, 14, 80, 60, 250, 0, 3400, 66, 1.2f } -#define FMOD_PRESET_UNDERWATER { 1500, 7, 11, 5000, 10, 100, 100, 250, 0, 500, 92, 7.0f } -/* [DEFINE_END] */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Settings for advanced features like configuring memory and cpu usage for the FMOD_CREATECOMPRESSEDSAMPLE feature. - - [REMARKS] - maxMPEGCodecs / maxADPCMCodecs / maxXMACodecs will determine the maximum cpu usage of playing realtime samples. Use this to lower potential excess cpu usage and also control memory usage.
    -
    - maxPCMCodecs is for use with PS3 only. It will determine the maximum number of PCM voices that can be played at once. This includes streams of any format and all sounds created - *without* the FMOD_CREATECOMPRESSEDSAMPLE flag. -
    - Memory will be allocated for codecs 'up front' (during System::init) if these values are specified as non zero. If any are zero, it allocates memory for the codec whenever a file of the type in question is loaded. So if maxMPEGCodecs is 0 for example, it will allocate memory for the mpeg codecs the first time an mp3 is loaded or an mp3 based .FSB file is loaded.
    -
    - Due to inefficient encoding techniques on certain .wav based ADPCM files, FMOD can can need an extra 29720 bytes per codec. This means for lowest memory consumption. Use FSB as it uses an optimal/small ADPCM block size.
    -
    - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - Members marked with [r/w] are either read or write depending on if you are using System::setAdvancedSettings (w) or System::getAdvancedSettings (r). - - [SEE_ALSO] - System::setAdvancedSettings - System::getAdvancedSettings - System::init - FMOD_MODE -] -*/ -typedef struct FMOD_ADVANCEDSETTINGS -{ - int cbSize; /* [w] Size of this structure. Use sizeof(FMOD_ADVANCEDSETTINGS) NOTE: This must be set before calling System::getAdvancedSettings or System::setAdvancedSettings! */ - int maxMPEGCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. MPEG codecs consume 30,528 bytes per instance and this number will determine how many MPEG channels can be played simultaneously. Default = 32. */ - int maxADPCMCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. ADPCM codecs consume 3,128 bytes per instance and this number will determine how many ADPCM channels can be played simultaneously. Default = 32. */ - int maxXMACodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. XMA codecs consume 14,836 bytes per instance and this number will determine how many XMA channels can be played simultaneously. Default = 32. */ - int maxVorbisCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. Vorbis codecs consume 23,256 bytes per instance and this number will determine how many Vorbis channels can be played simultaneously. Default = 32. */ - int maxAT9Codecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. AT9 codecs consume 8,720 bytes per instance and this number will determine how many AT9 channels can be played simultaneously. Default = 32. */ - int maxFADPCMCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. This number will determine how many FADPCM channels can be played simultaneously. Default = 32. */ - int maxPCMCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with PS3 only. PCM codecs consume 12,672 bytes per instance and this number will determine how many streams and PCM voices can be played simultaneously. Default = 16. */ - int ASIONumChannels; /* [r/w] Optional. Specify 0 to ignore. Number of channels available on the ASIO device. */ - char **ASIOChannelList; /* [r/w] Optional. Specify 0 to ignore. Pointer to an array of strings (number of entries defined by ASIONumChannels) with ASIO channel names. */ - FMOD_SPEAKER *ASIOSpeakerList; /* [r/w] Optional. Specify 0 to ignore. Pointer to a list of speakers that the ASIO channels map to. This can be called after System::init to remap ASIO output. */ - float HRTFMinAngle; /* [r/w] Optional. For use with FMOD_INIT_HRTF_LOWPASS. The angle range (0-360) of a 3D sound in relation to the listener, at which the HRTF function begins to have an effect. 0 = in front of the listener. 180 = from 90 degrees to the left of the listener to 90 degrees to the right. 360 = behind the listener. Default = 180.0. */ - float HRTFMaxAngle; /* [r/w] Optional. For use with FMOD_INIT_HRTF_LOWPASS. The angle range (0-360) of a 3D sound in relation to the listener, at which the HRTF function has maximum effect. 0 = front of the listener. 180 = from 90 degrees to the left of the listener to 90 degrees to the right. 360 = behind the listener. Default = 360.0. */ - float HRTFFreq; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_HRTF_LOWPASS. The cutoff frequency of the HRTF's lowpass filter function when at maximum effect. (i.e. at HRTFMaxAngle). Default = 4000.0. */ - float vol0virtualvol; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_VOL0_BECOMES_VIRTUAL. If this flag is used, and the volume is below this, then the sound will become virtual. Use this value to raise the threshold to a different point where a sound goes virtual. */ - unsigned int defaultDecodeBufferSize; /* [r/w] Optional. Specify 0 to ignore. For streams. This determines the default size of the double buffer (in milliseconds) that a stream uses. Default = 400ms */ - unsigned short profilePort; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_PROFILE_ENABLE. Specify the port to listen on for connections by the profiler application. */ - unsigned int geometryMaxFadeTime; /* [r/w] Optional. Specify 0 to ignore. The maximum time in miliseconds it takes for a channel to fade to the new level when its occlusion changes. */ - float distanceFilterCenterFreq; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_DISTANCE_FILTERING. The default center frequency in Hz for the distance filtering effect. Default = 1500.0. */ - int reverb3Dinstance; /* [r/w] Optional. Specify 0 to ignore. Out of 0 to 3, 3d reverb spheres will create a phyical reverb unit on this instance slot. See FMOD_REVERB_PROPERTIES. */ - int DSPBufferPoolSize; /* [r/w] Optional. Specify 0 to ignore. Number of buffers in DSP buffer pool. Each buffer will be DSPBlockSize * sizeof(float) * SpeakerModeChannelCount. ie 7.1 @ 1024 DSP block size = 8 * 1024 * 4 = 32kb. Default = 8. */ - unsigned int stackSizeStream; /* [r/w] Optional. Specify 0 to ignore. Specify the stack size for the FMOD Stream thread in bytes. Useful for custom codecs that use excess stack. Default 49,152 (48kb) */ - unsigned int stackSizeNonBlocking; /* [r/w] Optional. Specify 0 to ignore. Specify the stack size for the FMOD_NONBLOCKING loading thread. Useful for custom codecs that use excess stack. Default 65,536 (64kb) */ - unsigned int stackSizeMixer; /* [r/w] Optional. Specify 0 to ignore. Specify the stack size for the FMOD mixer thread. Useful for custom dsps that use excess stack. Default 49,152 (48kb) */ - FMOD_DSP_RESAMPLER resamplerMethod; /* [r/w] Optional. Specify 0 to ignore. Resampling method used with fmod's software mixer. See FMOD_DSP_RESAMPLER for details on methods. */ - unsigned int commandQueueSize; /* [r/w] Optional. Specify 0 to ignore. Specify the command queue size for thread safe processing. Default 2048 (2kb) */ - unsigned int randomSeed; /* [r/w] Optional. Specify 0 to ignore. Seed value that FMOD will use to initialize its internal random number generators. */ -} FMOD_ADVANCEDSETTINGS; - - -/* -[DEFINE] -[ - [NAME] - FMOD_DRIVER_STATE - - [DESCRIPTION] - Flags that provide additional information about a particular driver. - - [REMARKS] - - [SEE_ALSO] - System::getRecordDriverInfo -] -*/ -#define FMOD_DRIVER_STATE_CONNECTED 0x00000001 /* Device is currently plugged in. */ -#define FMOD_DRIVER_STATE_DEFAULT 0x00000002 /* Device is the users preferred choice. */ -/* [DEFINE_END] */ - - -/*$ preserve start $*/ - -#include "fmod_codec.h" -#include "fmod_dsp.h" -#include "fmod_output.h" - -#endif - -/*$ preserve end $*/ diff --git a/external/linux-specific/fmod/include/fmod_dsp.h b/external/linux-specific/fmod/include/fmod_dsp.h deleted file mode 100644 index b75aa9c..0000000 --- a/external/linux-specific/fmod/include/fmod_dsp.h +++ /dev/null @@ -1,846 +0,0 @@ -/* ========================================================================================== */ -/* FMOD Studio - DSP header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2015. */ -/* */ -/* Use this header if you are interested in delving deeper into the FMOD software mixing / */ -/* DSP engine. */ -/* Also use this header if you are wanting to develop your own DSP plugin to use with FMOD's */ -/* dsp system. With this header you can make your own DSP plugin that FMOD can */ -/* register and use. See the documentation and examples on how to make a working plugin. */ -/* */ -/* ========================================================================================== */ - -#ifndef _FMOD_DSP_H -#define _FMOD_DSP_H - -#include "fmod_dsp_effects.h" - -typedef struct FMOD_DSP_STATE FMOD_DSP_STATE; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for FMOD_DSP_PROCESS_CALLBACK input and output buffers. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_DESCRIPTION -] -*/ -typedef struct FMOD_DSP_BUFFER_ARRAY -{ - int numbuffers; /* [r/w] number of buffers */ - int *buffernumchannels; /* [r/w] array of number of channels for each buffer */ - FMOD_CHANNELMASK *bufferchannelmask; /* [r/w] array of channel masks for each buffer */ - float **buffers; /* [r/w] array of buffers */ - FMOD_SPEAKERMODE speakermode; /* [r/w] speaker mode for all buffers in the array */ -} FMOD_DSP_BUFFER_ARRAY; - -/* -[ENUM] -[ - [DESCRIPTION] - Operation type for FMOD_DSP_PROCESS_CALLBACK. - - [REMARKS] - A process callback will be called twice per mix for a DSP unit. Once with the FMOD_DSP_PROCESS_QUERY command, then conditionally, FMOD_DSP_PROCESS_PERFORM.
    - FMOD_DSP_PROCESS_QUERY is to be handled only by filling out the outputarray information, and returning a relevant return code.
    - It should not really do any logic besides checking and returning one of the following codes:
    - - FMOD_OK - Meaning yes, it should execute the dsp process function with FMOD_DSP_PROCESS_PERFORM
    - - FMOD_ERR_DSP_DONTPROCESS - Meaning no, it should skip the process function and not call it with FMOD_DSP_PROCESS_PERFORM.
    - - FMOD_ERR_DSP_SILENCE - Meaning no, it should skip the process function and not call it with FMOD_DSP_PROCESS_PERFORM, AND, tell the signal chain to follow that it is now idle, so that no more processing happens down the chain.
    - If audio is to be processed, 'outbufferarray' must be filled with the expected output format, channel count and mask. Mask can be 0.
    -
    - FMOD_DSP_PROCESS_PROCESS is to be handled by reading the data from the input, processing it, and writing it to the output. Always write to the output buffer and fill it fully to avoid unpredictable audio output.
    - Always return FMOD_OK, the return value is ignored from the process stage. - - [SEE_ALSO] - FMOD_DSP_DESCRIPTION -] -*/ -typedef enum -{ - FMOD_DSP_PROCESS_PERFORM, /* Process the incoming audio in 'inbufferarray' and output to 'outbufferarray'. */ - FMOD_DSP_PROCESS_QUERY /* The DSP is being queried for the expected output format and whether it needs to process audio or should be bypassed. The function should return FMOD_OK, or FMOD_ERR_DSP_DONTPROCESS or FMOD_ERR_DSP_SILENCE if audio can pass through unprocessed. See remarks for more. If audio is to be processed, 'outbufferarray' must be filled with the expected output format, channel count and mask. */ -} FMOD_DSP_PROCESS_OPERATION; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Complex number structure used for holding FFT frequency domain-data for FMOD_FFTREAL and FMOD_IFFTREAL DSP callbacks. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_STATE_SYSTEMCALLBACKS -] -*/ -typedef struct FMOD_COMPLEX -{ - float real; /* Real component */ - float imag; /* Imaginary component */ -} FMOD_COMPLEX; - -/* -[ENUM] -[ - [DESCRIPTION] - Flags for the FMOD_DSP_PAN_SUM_SURROUND_MATRIX callback. - - [REMARKS] - This functionality is experimental, please contact support@fmod.org for more information. - - [SEE_ALSO] - FMOD_DSP_STATE_PAN_CALLBACKS -] -*/ -typedef enum -{ - FMOD_DSP_PAN_SURROUND_DEFAULT = 0, - FMOD_DSP_PAN_SURROUND_ROTATION_NOT_BIASED = 1, - - FMOD_DSP_PAN_SURROUND_FLAGS_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_PAN_SURROUND_FLAGS; - -/* - DSP callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_CREATE_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_RELEASE_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_RESET_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_READ_CALLBACK) (FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PROCESS_CALLBACK) (FMOD_DSP_STATE *dsp_state, unsigned int length, const FMOD_DSP_BUFFER_ARRAY *inbufferarray, FMOD_DSP_BUFFER_ARRAY *outbufferarray, FMOD_BOOL inputsidle, FMOD_DSP_PROCESS_OPERATION op); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPOSITION_CALLBACK) (FMOD_DSP_STATE *dsp_state, unsigned int pos); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SHOULDIPROCESS_CALLBACK) (FMOD_DSP_STATE *dsp_state, FMOD_BOOL inputsidle, unsigned int length, FMOD_CHANNELMASK inmask, int inchannels, FMOD_SPEAKERMODE speakermode); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_FLOAT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, float value); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_INT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, int value); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_BOOL_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, FMOD_BOOL value); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_DATA_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, void *data, unsigned int length); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_FLOAT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, float *value, char *valuestr); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_INT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, int *value, char *valuestr); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_BOOL_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, FMOD_BOOL *value, char *valuestr); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_DATA_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, void **data, unsigned int *length, char *valuestr); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_REGISTER_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_MIX_CALLBACK) (FMOD_DSP_STATE *dsp_state, int stage); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_GETSAMPLERATE) (FMOD_DSP_STATE *dsp_state, int *rate); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_GETBLOCKSIZE) (FMOD_DSP_STATE *dsp_state, unsigned int *blocksize); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_DFT_FFTREAL) (FMOD_DSP_STATE* thisdsp, int size, const float *signal, FMOD_COMPLEX* dft, const float *window, int signalhop); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_DFT_IFFTREAL) (FMOD_DSP_STATE* thisdsp, int size, const FMOD_COMPLEX *dft, float* signal, const float *window, int signalhop); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_MONO_MATRIX) (FMOD_DSP_STATE *dsp_state, int sourceSpeakerMode, float lowFrequencyGain, float overallGain, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_STEREO_MATRIX) (FMOD_DSP_STATE *dsp_state, int sourceSpeakerMode, float pan, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_SURROUND_MATRIX) (FMOD_DSP_STATE *dsp_state, int sourceSpeakerMode, int targetSpeakerMode, float direction, float extent, float rotation, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix, FMOD_DSP_PAN_SURROUND_FLAGS flags); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_MONO_TO_SURROUND_MATRIX) (FMOD_DSP_STATE *dsp_state, int targetSpeakerMode, float direction, float extent, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_STEREO_TO_SURROUND_MATRIX)(FMOD_DSP_STATE *dsp_state, int targetSpeakerMode, float direction, float extent, float rotation, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_3D_GET_ROLLOFF_GAIN) (FMOD_DSP_STATE *dsp_state, FMOD_DSP_PAN_3D_ROLLOFF_TYPE rolloff, float distance, float mindistance, float maxdistance, float *gain); - - -/* -[DEFINE] -[ - [NAME] - FMOD_DSP_GETPARAM_VALUESTR_LENGTH - - [DESCRIPTION] - Length in bytes of the buffer pointed to by the valuestr argument of FMOD_DSP_GETPARAM_XXXX_CALLBACK functions. - - [REMARKS] - DSP plugins should not copy more than this number of bytes into the buffer or memory corruption will occur. - - [SEE_ALSO] - FMOD_DSP_GETPARAM_FLOAT_CALLBACK - FMOD_DSP_GETPARAM_INT_CALLBACK - FMOD_DSP_GETPARAM_BOOL_CALLBACK - FMOD_DSP_GETPARAM_DATA_CALLBACK -] -*/ -#define FMOD_DSP_GETPARAM_VALUESTR_LENGTH 32 -/* [DEFINE_END] */ - -/* -[ENUM] -[ - [DESCRIPTION] - DSP parameter types. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef enum -{ - FMOD_DSP_PARAMETER_TYPE_FLOAT, - FMOD_DSP_PARAMETER_TYPE_INT, - FMOD_DSP_PARAMETER_TYPE_BOOL, - FMOD_DSP_PARAMETER_TYPE_DATA, - - FMOD_DSP_PARAMETER_TYPE_MAX, /* Maximum number of DSP parameter types. */ - FMOD_DSP_PARAMETER_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_PARAMETER_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - DSP float parameter mappings. These determine how values are mapped across dials and automation curves. - - [REMARKS] - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_AUTO generates a mapping based on range and units. For example, if the units are in Hertz and the range is with-in the audio spectrum, a Bark scale will be chosen. Logarithmic scales may also be generated for ranges above zero spanning several orders of magnitude. - - [SEE_ALSO] - FMOD_DSP_PARAMETER_FLOAT_MAPPING -] -*/ -typedef enum -{ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_LINEAR, /* Values mapped linearly across range. */ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_AUTO, /* A mapping is automatically chosen based on range and units. See remarks. */ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_PIECEWISE_LINEAR, /* Values mapped in a piecewise linear fashion defined by FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR. */ - - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a piecewise linear mapping. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE - FMOD_DSP_PARAMETER_FLOAT_MAPPING -] -*/ -typedef struct FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR -{ - int numpoints; /* [w] The number of pairs in the piecewise mapping (at least 2). */ - float *pointparamvalues; /* [w] The values in the parameter's units for each point */ - float *pointpositions; /* [w] The positions along the control's scale (e.g. dial angle) corresponding to each parameter value. The range of this scale is arbitrary and all positions will be relative to the minimum and maximum values (e.g. [0,1,3] is equivalent to [1,2,4] and [2,4,8]). If this array is zero, pointparamvalues will be distributed with equal spacing. */ -} FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a mapping for a DSP unit's float parameter. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE - FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR - FMOD_DSP_PARAMETER_DESC_FLOAT -] -*/ -typedef struct FMOD_DSP_PARAMETER_FLOAT_MAPPING -{ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE type; - FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR piecewiselinearmapping; /* [w] Only required for FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_PIECEWISE_LINEAR type mapping. */ -} FMOD_DSP_PARAMETER_FLOAT_MAPPING; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a float parameter for a DSP unit. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_PARAMETER_DESC - FMOD_DSP_PARAMETER_FLOAT_MAPPING -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_FLOAT -{ - float min; /* [w] Minimum parameter value. */ - float max; /* [w] Maximum parameter value. */ - float defaultval; /* [w] Default parameter value. */ - FMOD_DSP_PARAMETER_FLOAT_MAPPING mapping; /* [w] How the values are distributed across dials and automation curves (e.g. linearly, exponentially etc). */ -} FMOD_DSP_PARAMETER_DESC_FLOAT; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a int parameter for a DSP unit. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_INT -{ - int min; /* [w] Minimum parameter value. */ - int max; /* [w] Maximum parameter value. */ - int defaultval; /* [w] Default parameter value. */ - FMOD_BOOL goestoinf; /* [w] Whether the last value represents infiniy. */ - const char* const* valuenames; /* [w] Names for each value. There should be as many strings as there are possible values (max - min + 1). Optional. */ -} FMOD_DSP_PARAMETER_DESC_INT; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a boolean parameter for a DSP unit. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterBool - DSP::getParameterBool - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_BOOL -{ - FMOD_BOOL defaultval; /* [w] Default parameter value. */ - const char* const* valuenames; /* [w] Names for false and true, respectively. There should be two strings. Optional. */ -} FMOD_DSP_PARAMETER_DESC_BOOL; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a data parameter for a DSP unit. Use 0 or above for custom types. This parameter will be treated specially by the system if set to one of the FMOD_DSP_PARAMETER_DATA_TYPE values. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_DATA -{ - int datatype; /* [w] The type of data for this parameter. Use 0 or above for custom types or set to one of the FMOD_DSP_PARAMETER_DATA_TYPE values. */ -} FMOD_DSP_PARAMETER_DESC_DATA; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Base Structure for DSP parameter descriptions. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterBool - DSP::getParameterBool - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_PARAMETER_DESC_FLOAT - FMOD_DSP_PARAMETER_DESC_INT - FMOD_DSP_PARAMETER_DESC_BOOL - FMOD_DSP_PARAMETER_DESC_DATA -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC -{ - FMOD_DSP_PARAMETER_TYPE type; /* [w] Type of this parameter. */ - char name[16]; /* [w] Name of the parameter to be displayed (ie "Cutoff frequency"). */ - char label[16]; /* [w] Short string to be put next to value to denote the unit type (ie "hz"). */ - const char *description; /* [w] Description of the parameter to be displayed as a help item / tooltip for this parameter. */ - - union - { - FMOD_DSP_PARAMETER_DESC_FLOAT floatdesc; /* [w] Struct containing information about the parameter in floating point format. Use when type is FMOD_DSP_PARAMETER_TYPE_FLOAT. */ - FMOD_DSP_PARAMETER_DESC_INT intdesc; /* [w] Struct containing information about the parameter in integer format. Use when type is FMOD_DSP_PARAMETER_TYPE_INT. */ - FMOD_DSP_PARAMETER_DESC_BOOL booldesc; /* [w] Struct containing information about the parameter in boolean format. Use when type is FMOD_DSP_PARAMETER_TYPE_BOOL. */ - FMOD_DSP_PARAMETER_DESC_DATA datadesc; /* [w] Struct containing information about the parameter in data format. Use when type is FMOD_DSP_PARAMETER_TYPE_DATA. */ - }; -} FMOD_DSP_PARAMETER_DESC; - - -/* -[ENUM] -[ - [DESCRIPTION] - Built-in types for the 'datatype' member of FMOD_DSP_PARAMETER_DESC_DATA. Data parameters of type other than FMOD_DSP_PARAMETER_DATA_TYPE_USER will be treated specially by the system. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DESC_DATA - FMOD_DSP_PARAMETER_OVERALLGAIN - FMOD_DSP_PARAMETER_3DATTRIBUTES - FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI - FMOD_DSP_PARAMETER_SIDECHAIN -] -*/ -typedef enum -{ - FMOD_DSP_PARAMETER_DATA_TYPE_USER = 0, /* The default data type. All user data types should be 0 or above. */ - FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN = -1, /* The data type for FMOD_DSP_PARAMETER_OVERALLGAIN parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES = -2, /* The data type for FMOD_DSP_PARAMETER_3DATTRIBUTES parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_SIDECHAIN = -3, /* The data type for FMOD_DSP_PARAMETER_SIDECHAIN parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_FFT = -4, /* The data type for FMOD_DSP_PARAMETER_FFT parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES_MULTI = -5, /* The data type for FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI parameters. There should a maximum of one per DSP. */ -} FMOD_DSP_PARAMETER_DATA_TYPE; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN. - A parameter of this type is used in effects that affect the overgain of the signal in a predictable way. - This parameter is read by the system to determine the effect's gain for voice virtualization. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_OVERALLGAIN -{ - float linear_gain; /* [r] The overall linear gain of the effect on the direct signal path */ - float linear_gain_additive; /* [r] Additive gain, for parallel signal paths */ -} FMOD_DSP_PARAMETER_OVERALLGAIN; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES. - A parameter of this type is used in effects that respond to a sound's 3D position. - The system will set this parameter automatically if a sound's position changes. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_3DATTRIBUTES -{ - FMOD_3D_ATTRIBUTES relative; /* [w] The position of the sound relative to the listener. */ - FMOD_3D_ATTRIBUTES absolute; /* [w] The position of the sound in world coordinates. */ -} FMOD_DSP_PARAMETER_3DATTRIBUTES; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES_MULTI. - A parameter of this type is used in effects that respond to a sound's 3D position, and - support multiple listeners. - The system will set this parameter automatically if a sound's position changes. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI -{ - int numlisteners; /* [w] The number of listeners. */ - FMOD_3D_ATTRIBUTES relative[FMOD_MAX_LISTENERS]; /* [w] The position of the sound relative to the listeners. */ - FMOD_3D_ATTRIBUTES absolute; /* [w] The position of the sound in world coordinates. */ -} FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_SIDECHAIN. - A parameter of this type is declared for effects which support sidechaining. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_SIDECHAIN -{ - FMOD_BOOL sidechainenable; /* [r/w] Whether sidechains are enabled. */ -} FMOD_DSP_PARAMETER_SIDECHAIN; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_FFT. - A parameter of this type is declared for the FMOD_DSP_TYPE_FFT effect. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    -
    - Notes on the spectrum data member. Values inside the float buffer are typically between 0 and 1.0.
    - Each top level array represents one PCM channel of data.
    - Address data as spectrum[channel][bin]. A bin is 1 fft window entry.
    - Only read/display half of the buffer typically for analysis as the 2nd half is usually the same data reversed due to the nature of the way FFT works.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC - FMOD_DSP_PARAMETER_DATA_TYPE_FFT - FMOD_DSP_TYPE - FMOD_DSP_FFT -] -*/ -typedef struct FMOD_DSP_PARAMETER_FFT -{ - int length; /* [r] Number of entries in this spectrum window. Divide this by the output rate to get the hz per entry. */ - int numchannels; /* [r] Number of channels in spectrum. */ - float *spectrum[32]; /* [r] Per channel spectrum arrays. See remarks for more. */ -} FMOD_DSP_PARAMETER_FFT; - - -/* - Helpers for declaring parameters in custom DSPSs -*/ -#define FMOD_DSP_INIT_PARAMDESC_FLOAT(_paramstruct, _name, _label, _description, _min, _max, _defaultval) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_FLOAT; \ - strncpy((_paramstruct).name, _name, 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).floatdesc.min = _min; \ - (_paramstruct).floatdesc.max = _max; \ - (_paramstruct).floatdesc.defaultval = _defaultval; \ - (_paramstruct).floatdesc.mapping.type = FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_AUTO; - -#define FMOD_DSP_INIT_PARAMDESC_FLOAT_WITH_MAPPING(_paramstruct, _name, _label, _description, _defaultval, _values, _positions); \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_FLOAT; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).floatdesc.min = _values[0]; \ - (_paramstruct).floatdesc.max = _values[sizeof(_values) / sizeof(float) - 1]; \ - (_paramstruct).floatdesc.defaultval = _defaultval; \ - (_paramstruct).floatdesc.mapping.type = FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_PIECEWISE_LINEAR; \ - (_paramstruct).floatdesc.mapping.piecewiselinearmapping.numpoints = sizeof(_values) / sizeof(float); \ - (_paramstruct).floatdesc.mapping.piecewiselinearmapping.pointparamvalues = _values; \ - (_paramstruct).floatdesc.mapping.piecewiselinearmapping.pointpositions = _positions; - -#define FMOD_DSP_INIT_PARAMDESC_INT(_paramstruct, _name, _label, _description, _min, _max, _defaultval, _goestoinf, _valuenames) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_INT; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).intdesc.min = _min; \ - (_paramstruct).intdesc.max = _max; \ - (_paramstruct).intdesc.defaultval = _defaultval; \ - (_paramstruct).intdesc.goestoinf = _goestoinf; \ - (_paramstruct).intdesc.valuenames = _valuenames; - -#define FMOD_DSP_INIT_PARAMDESC_INT_ENUMERATED(_paramstruct, _name, _label, _description, _defaultval, _valuenames) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_INT; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).intdesc.min = 0; \ - (_paramstruct).intdesc.max = sizeof(_valuenames) / sizeof(char*) - 1; \ - (_paramstruct).intdesc.defaultval = _defaultval; \ - (_paramstruct).intdesc.goestoinf = false; \ - (_paramstruct).intdesc.valuenames = _valuenames; - -#define FMOD_DSP_INIT_PARAMDESC_BOOL(_paramstruct, _name, _label, _description, _defaultval, _valuenames) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_BOOL; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).booldesc.defaultval = _defaultval; \ - (_paramstruct).booldesc.valuenames = _valuenames; - -#define FMOD_DSP_INIT_PARAMDESC_DATA(_paramstruct, _name, _label, _description, _datatype) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_DATA; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).datadesc.datatype = _datatype; - -#define FMOD_PLUGIN_SDK_VERSION 106 - -/* -[STRUCTURE] -[ - [DESCRIPTION] - When creating a DSP unit, declare one of these and provide the relevant callbacks and name for FMOD to use when it creates and uses a DSP unit of this type. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    -
    - There are 2 different ways to change a parameter in this architecture.
    - One is to use DSP::setParameterFloat / DSP::setParameterInt / DSP::setParameterBool / DSP::setParameterData. This is platform independant and is dynamic, so new unknown plugins can have their parameters enumerated and used.
    - The other is to use DSP::showConfigDialog. This is platform specific and requires a GUI, and will display a dialog box to configure the plugin.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterFloat - DSP::setParameterInt - DSP::setParameterBool - DSP::setParameterData - FMOD_DSP_STATE - FMOD_DSP_CREATE_CALLBACK - FMOD_DSP_RELEASE_CALLBACK - FMOD_DSP_RESET_CALLBACK - FMOD_DSP_READ_CALLBACK - FMOD_DSP_PROCESS_CALLBACK - FMOD_DSP_SETPOSITION_CALLBACK - FMOD_DSP_PARAMETER_DESC - FMOD_DSP_SETPARAM_FLOAT_CALLBACK - FMOD_DSP_SETPARAM_INT_CALLBACK - FMOD_DSP_SETPARAM_BOOL_CALLBACK - FMOD_DSP_SETPARAM_DATA_CALLBACK - FMOD_DSP_GETPARAM_FLOAT_CALLBACK - FMOD_DSP_GETPARAM_INT_CALLBACK - FMOD_DSP_GETPARAM_BOOL_CALLBACK - FMOD_DSP_GETPARAM_DATA_CALLBACK - FMOD_DSP_SHOULDIPROCESS_CALLBACK - FMOD_DSP_SYSTEM_REGISTER_CALLBACK - FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK - FMOD_DSP_SYSTEM_MIX_CALLBACK -] -*/ -typedef struct FMOD_DSP_DESCRIPTION -{ - unsigned int pluginsdkversion; /* [w] The plugin SDK version this plugin is built for. set to this to FMOD_PLUGIN_SDK_VERSION defined above. */ - char name[32]; /* [w] The identifier of the DSP. This will also be used as the name of DSP and shouldn't change between versions. */ - unsigned int version; /* [w] Plugin writer's version number. */ - int numinputbuffers; /* [w] Number of input buffers to process. Use 0 for DSPs that only generate sound and 1 for effects that process incoming sound. */ - int numoutputbuffers; /* [w] Number of audio output buffers. Only one output buffer is currently supported. */ - FMOD_DSP_CREATE_CALLBACK create; /* [w] Create callback. This is called when DSP unit is created. Can be null. */ - FMOD_DSP_RELEASE_CALLBACK release; /* [w] Release callback. This is called just before the unit is freed so the user can do any cleanup needed for the unit. Can be null. */ - FMOD_DSP_RESET_CALLBACK reset; /* [w] Reset callback. This is called by the user to reset any history buffers that may need resetting for a filter, when it is to be used or re-used for the first time to its initial clean state. Use to avoid clicks or artifacts. */ - FMOD_DSP_READ_CALLBACK read; /* [w] Read callback. Processing is done here. Can be null. */ - FMOD_DSP_PROCESS_CALLBACK process; /* [w] Process callback. Can be specified instead of the read callback if any channel format changes occur between input and output. This also replaces shouldiprocess and should return an error if the effect is to be bypassed. Can be null. */ - FMOD_DSP_SETPOSITION_CALLBACK setposition; /* [w] Set position callback. This is called if the unit wants to update its position info but not process data, or reset a cursor position internally if it is reading data from a certain source. Can be null. */ - - int numparameters; /* [w] Number of parameters used in this filter. The user finds this with DSP::getNumParameters */ - FMOD_DSP_PARAMETER_DESC **paramdesc; /* [w] Variable number of parameter structures. */ - FMOD_DSP_SETPARAM_FLOAT_CALLBACK setparameterfloat; /* [w] This is called when the user calls DSP::setParameterFloat. Can be null. */ - FMOD_DSP_SETPARAM_INT_CALLBACK setparameterint; /* [w] This is called when the user calls DSP::setParameterInt. Can be null. */ - FMOD_DSP_SETPARAM_BOOL_CALLBACK setparameterbool; /* [w] This is called when the user calls DSP::setParameterBool. Can be null. */ - FMOD_DSP_SETPARAM_DATA_CALLBACK setparameterdata; /* [w] This is called when the user calls DSP::setParameterData. Can be null. */ - FMOD_DSP_GETPARAM_FLOAT_CALLBACK getparameterfloat; /* [w] This is called when the user calls DSP::getParameterFloat. Can be null. */ - FMOD_DSP_GETPARAM_INT_CALLBACK getparameterint; /* [w] This is called when the user calls DSP::getParameterInt. Can be null. */ - FMOD_DSP_GETPARAM_BOOL_CALLBACK getparameterbool; /* [w] This is called when the user calls DSP::getParameterBool. Can be null. */ - FMOD_DSP_GETPARAM_DATA_CALLBACK getparameterdata; /* [w] This is called when the user calls DSP::getParameterData. Can be null. */ - FMOD_DSP_SHOULDIPROCESS_CALLBACK shouldiprocess; /* [w] This is called before processing. You can detect if inputs are idle and return FMOD_OK to process, or any other error code to avoid processing the effect. Use a count down timer to allow effect tails to process before idling! */ - void *userdata; /* [w] Optional. Specify 0 to ignore. This is user data to be attached to the DSP unit during creation. Access via DSP::getUserData. */ - - FMOD_DSP_SYSTEM_REGISTER_CALLBACK sys_register; /* [w] Register callback. This is called when DSP unit is loaded/registered. Useful for 'global'/per system object init for plugin. Can be null. */ - FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK sys_deregister; /* [w] Deregister callback. This is called when DSP unit is unloaded/deregistered. Useful as 'global'/per system object shutdown for plugin. Can be null. */ - FMOD_DSP_SYSTEM_MIX_CALLBACK sys_mix; /* [w] System mix stage callback. This is called when the mixer starts to execute or is just finishing executing. Useful for 'global'/per system object once a mix update calls for a plugin. Can be null. */ - -} FMOD_DSP_DESCRIPTION; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Struct containing DFT callbacks for plugins, to enable a plugin to perform optimized time-frequency domain conversion. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_STATE_SYSTEMCALLBACKS -] -*/ -typedef struct FMOD_DSP_STATE_DFTCALLBACKS -{ - FMOD_DSP_DFT_FFTREAL fftreal; /* [r] Callback for performing an FFT on a real signal. */ - FMOD_DSP_DFT_IFFTREAL inversefftreal; /* [r] Callback for performing an inverse FFT to get a real signal. */ -} FMOD_DSP_STATE_DFTCALLBACKS; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Struct containing panning helper callbacks for plugins. - - [REMARKS] - These are experimental, please contact support@fmod.org for more information. - - [SEE_ALSO] - FMOD_DSP_STATE_SYSTEMCALLBACKS - FMOD_DSP_PAN_SURROUND_FLAGS -] -*/ -typedef struct FMOD_DSP_STATE_PAN_CALLBACKS -{ - FMOD_DSP_PAN_SUM_MONO_MATRIX summonomatrix; - FMOD_DSP_PAN_SUM_STEREO_MATRIX sumstereomatrix; - FMOD_DSP_PAN_SUM_SURROUND_MATRIX sumsurroundmatrix; - FMOD_DSP_PAN_SUM_MONO_TO_SURROUND_MATRIX summonotosurroundmatrix; - FMOD_DSP_PAN_SUM_STEREO_TO_SURROUND_MATRIX sumstereotosurroundmatrix; - FMOD_DSP_PAN_3D_GET_ROLLOFF_GAIN getrolloffgain; -} FMOD_DSP_STATE_PAN_CALLBACKS; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Struct containing System level callbacks for plugins, to enable a plugin to query information about the system or allocate memory using FMOD's (and therefore possibly the game's) allocators. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_STATE - FMOD_DSP_STATE_DFTCALLBACKS - FMOD_DSP_STATE_PAN_CALLBACKS -] -*/ -typedef struct FMOD_DSP_STATE_SYSTEMCALLBACKS -{ - FMOD_MEMORY_ALLOC_CALLBACK alloc; /* [r] Memory allocation callback. Use this for all dynamic memory allocation within the plugin. */ - FMOD_MEMORY_REALLOC_CALLBACK realloc; /* [r] Memory reallocation callback. */ - FMOD_MEMORY_FREE_CALLBACK free; /* [r] Memory free callback. */ - FMOD_DSP_SYSTEM_GETSAMPLERATE getsamplerate; /* [r] Callback for getting the system samplerate. */ - FMOD_DSP_SYSTEM_GETBLOCKSIZE getblocksize; /* [r] Callback for getting the system's block size. DSPs will be requested to process blocks of varying length up to this size.*/ - FMOD_DSP_STATE_DFTCALLBACKS *dft; /* [r] Struct containing callbacks for performing FFTs and inverse FFTs. */ - FMOD_DSP_STATE_PAN_CALLBACKS *pancallbacks; /* [r] Pointer to a structure of callbacks for calculating pan, up-mix and down-mix matrices. */ -} FMOD_DSP_STATE_SYSTEMCALLBACKS; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - DSP plugin structure that is passed into each callback. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    -
    - 'systemobject' is an integer that relates to the System object that created the DSP or registered the DSP plugin. If only 1 System object is created then it should be 0. A second object would be 1 and so on. - FMOD_DSP_STATE_SYSTEMCALLBACKS::getsamplerate and FMOD_DSP_STATE_SYSTEMCALLBACKS::getblocksize could return different results so it could be relevant to plugin developers to monitor which object is being used. - - [SEE_ALSO] - FMOD_DSP_DESCRIPTION - FMOD_DSP_STATE_SYSTEMCALLBACKS -] -*/ -struct FMOD_DSP_STATE -{ - FMOD_DSP *instance; /* [r] Handle to the FMOD_DSP object the callback is associated with. Not to be modified. C++ users cast to FMOD::DSP to use. */ - void *plugindata; /* [r/w] Plugin writer created data the output author wants to attach to this object. */ - FMOD_CHANNELMASK channelmask; /* [r] Specifies which speakers the DSP effect is active on */ - FMOD_SPEAKERMODE source_speakermode; /* [r] Specifies which speaker mode the signal originated for information purposes, ie in case panning needs to be done differently. */ - float *sidechaindata; /* [r] The mixed result of all incoming sidechains is stored at this pointer address. */ - int sidechainchannels; /* [r] The number of channels of pcm data stored within the sidechain buffer. */ - FMOD_DSP_STATE_SYSTEMCALLBACKS *callbacks; /* [r] Struct containing callbacks for system level functionality. */ - int systemobject; /* [r] FMOD::System object index, relating to the System object that created this DSP. */ -}; - - -/* - Macro helpers for accessing FMOD_DSP_STATE_SYSTEMCALLBACKS -*/ -#define FMOD_DSP_STATE_MEMALLOC(_state, _size, _type, _str) (_state)->callbacks->alloc (_size, _type, _str); /* Pass in the FMOD_DSP_STATE handle, size in bytes to alloc, FMOD_MEMORY_TYPE type and optional char * string to identify where the alloc came from. */ -#define FMOD_DSP_STATE_MEMREALLOC(_state, _ptr, _size, _type, _str) (_state)->callbacks->realloc (_ptr, _size, _type, _str); /* Pass in the FMOD_DSP_STATE handle, optional existing memory pointer, size in bytes to alloc, FMOD_MEMORY_TYPE type and optional char * string to identify where the alloc came from. */ -#define FMOD_DSP_STATE_MEMFREE(_state, _ptr, _type, _str) (_state)->callbacks->free (_ptr, _type, _str); /* Pass in the FMOD_DSP_STATE handle, existing memory pointer, FMOD_MEMORY_TYPE type and optional char * string to identify where the free came from. */ -#define FMOD_DSP_STATE_GETSAMPLERATE(_state, _rate) (_state)->callbacks->getsamplerate (_state, _rate); /* Pass in the FMOD_DSP_STATE handle, and the address of an int to receive the system DSP sample rate. */ -#define FMOD_DSP_STATE_GETBLOCKSIZE(_state, _blocksize) (_state)->callbacks->getblocksize (_state, _blocksize); /* Pass in the FMOD_DSP_STATE handle, and the address of an unsigned int to receive the system DSP block size. */ -#define FMOD_DSP_STATE_FFTREAL(_state, _size, _signal, _dft, _window, _signalhop) (_state)->callbacks->dft->fftreal (_state, _size, _signal, _dft, _window, _signalhop); /* Pass in the FMOD_DSP_STATE handle, size of the signal and its DFT, a float buffer containing the signal and an FMOD_COMPLEX buffer to store the calculated DFT. */ -#define FMOD_DSP_STATE_IFFTREAL(_state, _size, _dft, _signal, _window, _signalhop) (_state)->callbacks->dft->inversefftreal(_state, _size, _dft, _signal, _window, _signalhop); /* Pass in the FMOD_DSP_STATE handle, size of the DFT and its signal, an FMOD_COMPLEX buffer containing the DFT and a float buffer to store the calculated signal. */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - DSP metering info used for retrieving metering info - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_SPEAKER -] -*/ -typedef struct FMOD_DSP_METERING_INFO -{ - int numsamples; /* [r] The number of samples considered for this metering info. */ - float peaklevel[32]; /* [r] The peak level per channel. */ - float rmslevel[32]; /* [r] The rms level per channel. */ - short numchannels; /* [r] Number of channels. */ -} FMOD_DSP_METERING_INFO; - -#endif - diff --git a/external/linux-specific/fmod/include/fmod_dsp_effects.h b/external/linux-specific/fmod/include/fmod_dsp_effects.h deleted file mode 100644 index b05813f..0000000 --- a/external/linux-specific/fmod/include/fmod_dsp_effects.h +++ /dev/null @@ -1,950 +0,0 @@ -/* ========================================================================================== */ -/* FMOD Studio - Built-in effects header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2014. */ -/* */ -/* In this header you can find parameter structures for FMOD system registered DSP effects */ -/* and generators. */ -/* */ -/* ========================================================================================== */ - -#ifndef _FMOD_DSP_EFFECTS_H -#define _FMOD_DSP_EFFECTS_H - -/* -[ENUM] -[ - [DESCRIPTION] - These definitions can be used for creating FMOD defined special effects or DSP units. - - [REMARKS] - To get them to be active, first create the unit, then add it somewhere into the DSP network, - either at the front of the network near the soundcard unit to affect the global output - (by using System::getDSPHead), or on a single channel (using Channel::getDSPHead). - - [SEE_ALSO] - System::createDSPByType -] -*/ -typedef enum -{ - FMOD_DSP_TYPE_UNKNOWN, /* This unit was created via a non FMOD plugin so has an unknown purpose. */ - FMOD_DSP_TYPE_MIXER, /* This unit does nothing but take inputs and mix them together then feed the result to the soundcard unit. */ - FMOD_DSP_TYPE_OSCILLATOR, /* This unit generates sine/square/saw/triangle or noise tones. */ - FMOD_DSP_TYPE_LOWPASS, /* This unit filters sound using a high quality, resonant lowpass filter algorithm but consumes more CPU time. */ - FMOD_DSP_TYPE_ITLOWPASS, /* This unit filters sound using a resonant lowpass filter algorithm that is used in Impulse Tracker, but with limited cutoff range (0 to 8060hz). */ - FMOD_DSP_TYPE_HIGHPASS, /* This unit filters sound using a resonant highpass filter algorithm. */ - FMOD_DSP_TYPE_ECHO, /* This unit produces an echo on the sound and fades out at the desired rate. */ - FMOD_DSP_TYPE_FADER, /* This unit pans and scales the volume of a unit. */ - FMOD_DSP_TYPE_FLANGE, /* This unit produces a flange effect on the sound. */ - FMOD_DSP_TYPE_DISTORTION, /* This unit distorts the sound. */ - FMOD_DSP_TYPE_NORMALIZE, /* This unit normalizes or amplifies the sound to a certain level. */ - FMOD_DSP_TYPE_LIMITER, /* This unit limits the sound to a certain level.*/ - FMOD_DSP_TYPE_PARAMEQ, /* This unit attenuates or amplifies a selected frequency range. */ - FMOD_DSP_TYPE_PITCHSHIFT, /* This unit bends the pitch of a sound without changing the speed of playback. */ - FMOD_DSP_TYPE_CHORUS, /* This unit produces a chorus effect on the sound. */ - FMOD_DSP_TYPE_VSTPLUGIN, /* This unit allows the use of Steinberg VST plugins */ - FMOD_DSP_TYPE_WINAMPPLUGIN, /* This unit allows the use of Nullsoft Winamp plugins */ - FMOD_DSP_TYPE_ITECHO, /* This unit produces an echo on the sound and fades out at the desired rate as is used in Impulse Tracker. */ - FMOD_DSP_TYPE_COMPRESSOR, /* This unit implements dynamic compression (linked/unlinked multichannel, wideband) */ - FMOD_DSP_TYPE_SFXREVERB, /* This unit implements SFX reverb */ - FMOD_DSP_TYPE_LOWPASS_SIMPLE, /* This unit filters sound using a simple lowpass with no resonance, but has flexible cutoff and is fast. */ - FMOD_DSP_TYPE_DELAY, /* This unit produces different delays on individual channels of the sound. */ - FMOD_DSP_TYPE_TREMOLO, /* This unit produces a tremolo / chopper effect on the sound. */ - FMOD_DSP_TYPE_LADSPAPLUGIN, /* Unsupported / Deprecated. */ - FMOD_DSP_TYPE_SEND, /* This unit sends a copy of the signal to a return DSP anywhere in the DSP tree. */ - FMOD_DSP_TYPE_RETURN, /* This unit receives signals from a number of send DSPs. */ - FMOD_DSP_TYPE_HIGHPASS_SIMPLE, /* This unit filters sound using a simple highpass with no resonance, but has flexible cutoff and is fast. */ - FMOD_DSP_TYPE_PAN, /* This unit pans the signal, possibly upmixing or downmixing as well. */ - FMOD_DSP_TYPE_THREE_EQ, /* This unit is a three-band equalizer. */ - FMOD_DSP_TYPE_FFT, /* This unit simply analyzes the signal and provides spectrum information back through getParameter. */ - FMOD_DSP_TYPE_LOUDNESS_METER, /* This unit analyzes the loudness and true peak of the signal. */ - FMOD_DSP_TYPE_ENVELOPEFOLLOWER, /* This unit tracks the envelope of the input/sidechain signal. Format to be publicly disclosed soon. */ - FMOD_DSP_TYPE_CONVOLUTIONREVERB, /* This unit implements convolution reverb. */ - - FMOD_DSP_TYPE_MAX, /* Maximum number of pre-defined DSP types. */ - FMOD_DSP_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_TYPE; - -/* - =================================================================================================== - - FMOD built in effect parameters. - Use DSP::setParameter with these enums for the 'index' parameter. - - =================================================================================================== -*/ - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_OSCILLATOR filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::setParameterInt - DSP::getParameterFloat - DSP::getParameterInt - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_OSCILLATOR_TYPE, /* (Type:int) - Waveform type. 0 = sine. 1 = square. 2 = sawup. 3 = sawdown. 4 = triangle. 5 = noise. */ - FMOD_DSP_OSCILLATOR_RATE /* (Type:float) - Frequency of the sinewave in hz. 1.0 to 22000.0. Default = 220.0. */ -} FMOD_DSP_OSCILLATOR; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_LOWPASS filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_LOWPASS_CUTOFF, /* (Type:float) - Lowpass cutoff frequency in hz. 10.0 to 22000.0. Default = 5000.0. */ - FMOD_DSP_LOWPASS_RESONANCE /* (Type:float) - Lowpass resonance Q value. 1.0 to 10.0. Default = 1.0. */ -} FMOD_DSP_LOWPASS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ITLOWPASS filter.
    - This is different to the default FMOD_DSP_TYPE_ITLOWPASS filter in that it uses a different quality algorithm and is - the filter used to produce the correct sounding playback in .IT files.
    - FMOD Studio's .IT playback uses this filter.
    - - [REMARKS] - Note! This filter actually has a limited cutoff frequency below the specified maximum, due to its limited design, - so for a more open range filter use FMOD_DSP_LOWPASS or if you don't mind not having resonance, - FMOD_DSP_LOWPASS_SIMPLE.
    - The effective maximum cutoff is about 8060hz. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ITLOWPASS_CUTOFF, /* (Type:float) - Lowpass cutoff frequency in hz. 1.0 to 22000.0. Default = 5000.0/ */ - FMOD_DSP_ITLOWPASS_RESONANCE /* (Type:float) - Lowpass resonance Q value. 0.0 to 127.0. Default = 1.0. */ -} FMOD_DSP_ITLOWPASS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_HIGHPASS filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_HIGHPASS_CUTOFF, /* (Type:float) - Highpass cutoff frequency in hz. 1.0 to output 22000.0. Default = 5000.0. */ - FMOD_DSP_HIGHPASS_RESONANCE /* (Type:float) - Highpass resonance Q value. 1.0 to 10.0. Default = 1.0. */ -} FMOD_DSP_HIGHPASS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ECHO filter. - - [REMARKS] - Note. Every time the delay is changed, the plugin re-allocates the echo buffer. This means the echo will dissapear at that time while it refills its new buffer.
    - Larger echo delays result in larger amounts of memory allocated.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ECHO_DELAY, /* (Type:float) - Echo delay in ms. 10 to 5000. Default = 500. */ - FMOD_DSP_ECHO_FEEDBACK, /* (Type:float) - Echo decay per delay. 0 to 100. 100.0 = No decay, 0.0 = total decay (ie simple 1 line delay). Default = 50.0. */ - FMOD_DSP_ECHO_DRYLEVEL, /* (Type:float) - Original sound volume in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_ECHO_WETLEVEL /* (Type:float) - Volume of echo signal to pass to output in dB. -80.0 to 10.0. Default = 0. */ -} FMOD_DSP_ECHO; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_FLANGE filter. - - [REMARKS] - Flange is an effect where the signal is played twice at the same time, and one copy slides back and forth creating a whooshing or flanging effect.
    - As there are 2 copies of the same signal, by default each signal is given 50% mix, so that the total is not louder than the original unaffected signal.
    -
    - Flange depth is a percentage of a 10ms shift from the original signal. Anything above 10ms is not considered flange because to the ear it begins to 'echo' so 10ms is the highest value possible.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_FLANGE_MIX, /* (Type:float) - Percentage of wet signal in mix. 0 to 100. Default = 50. */ - FMOD_DSP_FLANGE_DEPTH, /* (Type:float) - Flange depth (percentage of 40ms delay). 0.01 to 1.0. Default = 1.0. */ - FMOD_DSP_FLANGE_RATE /* (Type:float) - Flange speed in hz. 0.0 to 20.0. Default = 0.1. */ -} FMOD_DSP_FLANGE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_DISTORTION filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_DISTORTION_LEVEL /* (Type:float) - Distortion value. 0.0 to 1.0. Default = 0.5. */ -} FMOD_DSP_DISTORTION; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_NORMALIZE filter. - - [REMARKS] - Normalize amplifies the sound based on the maximum peaks within the signal.
    - For example if the maximum peaks in the signal were 50% of the bandwidth, it would scale the whole sound by 2.
    - The lower threshold value makes the normalizer ignores peaks below a certain point, to avoid over-amplification if a loud signal suddenly came in, and also to avoid amplifying to maximum things like background hiss.
    -
    - Because FMOD is a realtime audio processor, it doesn't have the luxury of knowing the peak for the whole sound (ie it can't see into the future), so it has to process data as it comes in.
    - To avoid very sudden changes in volume level based on small samples of new data, fmod fades towards the desired amplification which makes for smooth gain control. The fadetime parameter can control this.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_NORMALIZE_FADETIME, /* (Type:float) - Time to ramp the silence to full in ms. 0.0 to 20000.0. Default = 5000.0. */ - FMOD_DSP_NORMALIZE_THRESHHOLD, /* (Type:float) - Lower volume range threshold to ignore. 0.0 to 1.0. Default = 0.1. Raise higher to stop amplification of very quiet signals. */ - FMOD_DSP_NORMALIZE_MAXAMP /* (Type:float) - Maximum amplification allowed. 1.0 to 100000.0. Default = 20.0. 1.0 = no amplifaction, higher values allow more boost. */ -} FMOD_DSP_NORMALIZE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_LIMITER filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_LIMITER_RELEASETIME, /* (Type:float) - Time to ramp the silence to full in ms. 1.0 to 1000.0. Default = 10.0. */ - FMOD_DSP_LIMITER_CEILING, /* (Type:float) - Maximum level of the output signal in dB. -12.0 to 0.0. Default = 0.0. */ - FMOD_DSP_LIMITER_MAXIMIZERGAIN, /* (Type:float) - Maximum amplification allowed in dB. 0.0 to 12.0. Default = 0.0. 0.0 = no amplifaction, higher values allow more boost. */ - FMOD_DSP_LIMITER_MODE, /* (Type:float) - Channel processing mode. 0 or 1. Default = 0. 0 = Independent (limiter per channel), 1 = Linked*/ -} FMOD_DSP_LIMITER; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_PARAMEQ filter. - - [REMARKS] - Parametric EQ is a bandpass filter that attenuates or amplifies a selected frequency and its neighbouring frequencies.
    -
    - To create a multi-band EQ create multiple FMOD_DSP_TYPE_PARAMEQ units and set each unit to different frequencies, for example 1000hz, 2000hz, 4000hz, 8000hz, 16000hz with a range of 1 octave each.
    -
    - When a frequency has its gain set to 1.0, the sound will be unaffected and represents the original signal exactly.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_PARAMEQ_CENTER, /* (Type:float) - Frequency center. 20.0 to 22000.0. Default = 8000.0. */ - FMOD_DSP_PARAMEQ_BANDWIDTH, /* (Type:float) - Octave range around the center frequency to filter. 0.2 to 5.0. Default = 1.0. */ - FMOD_DSP_PARAMEQ_GAIN /* (Type:float) - Frequency Gain in dB. -30 to 30. Default = 0. */ -} FMOD_DSP_PARAMEQ; - - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_PITCHSHIFT filter. - - [REMARKS] - This pitch shifting unit can be used to change the pitch of a sound without speeding it up or slowing it down.
    - It can also be used for time stretching or scaling, for example if the pitch was doubled, and the frequency of the sound was halved, the pitch of the sound would sound correct but it would be twice as slow.
    -
    - Warning! This filter is very computationally expensive! Similar to a vocoder, it requires several overlapping FFT and IFFT's to produce smooth output, and can require around 440mhz for 1 stereo 48khz signal using the default settings.
    - Reducing the signal to mono will half the cpu usage.
    - Reducing this will lower audio quality, but what settings to use are largely dependant on the sound being played. A noisy polyphonic signal will need higher fft size compared to a speaking voice for example.
    -
    - This pitch shifter is based on the pitch shifter code at http://www.dspdimension.com, written by Stephan M. Bernsee.
    - The original code is COPYRIGHT 1999-2003 Stephan M. Bernsee .
    -
    - 'maxchannels' dictates the amount of memory allocated. By default, the maxchannels value is 0. If FMOD is set to stereo, the pitch shift unit will allocate enough memory for 2 channels. If it is 5.1, it will allocate enough memory for a 6 channel pitch shift, etc.
    - If the pitch shift effect is only ever applied to the global mix (ie it was added with ChannelGroup::addDSP), then 0 is the value to set as it will be enough to handle all speaker modes.
    - When the pitch shift is added to a channel (ie Channel::addDSP) then the channel count that comes in could be anything from 1 to 8 possibly. It is only in this case where you might want to increase the channel count above the output's channel count.
    - If a channel pitch shift is set to a lower number than the sound's channel count that is coming in, it will not pitch shift the sound.
    -
    - NOTE! Not supported on PlayStation 3.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - ChannelGroup::addDSP - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_PITCHSHIFT_PITCH, /* (Type:float) - Pitch value. 0.5 to 2.0. Default = 1.0. 0.5 = one octave down, 2.0 = one octave up. 1.0 does not change the pitch. */ - FMOD_DSP_PITCHSHIFT_FFTSIZE, /* (Type:float) - FFT window size. 256, 512, 1024, 2048, 4096. Default = 1024. Increase this to reduce 'smearing'. This effect is a warbling sound similar to when an mp3 is encoded at very low bitrates. */ - FMOD_DSP_PITCHSHIFT_OVERLAP, /* (Type:float) - Removed. Do not use. FMOD now uses 4 overlaps and cannot be changed. */ - FMOD_DSP_PITCHSHIFT_MAXCHANNELS /* (Type:float) - Maximum channels supported. 0 to 16. 0 = same as fmod's default output polyphony, 1 = mono, 2 = stereo etc. See remarks for more. Default = 0. It is suggested to leave at 0! */ -} FMOD_DSP_PITCHSHIFT; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_CHORUS filter. - - [REMARKS] - Chorous is an effect where the sound is more 'spacious' due to 1 to 3 versions of the sound being played along side the original signal but with the pitch of each copy modulating on a sine wave.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_CHORUS_MIX, /* (Type:float) - Volume of original signal to pass to output. 0.0 to 100.0. Default = 50.0. */ - FMOD_DSP_CHORUS_RATE, /* (Type:float) - Chorus modulation rate in Hz. 0.0 to 20.0. Default = 0.8 Hz. */ - FMOD_DSP_CHORUS_DEPTH, /* (Type:float) - Chorus modulation depth. 0.0 to 100.0. Default = 3.0. */ -} FMOD_DSP_CHORUS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ITECHO filter.
    - This is effectively a software based echo filter that emulates the DirectX DMO echo effect. Impulse tracker files can support this, and FMOD will produce the effect on ANY platform, not just those that support DirectX effects!
    - - [REMARKS] - Note. Every time the delay is changed, the plugin re-allocates the echo buffer. This means the echo will dissapear at that time while it refills its new buffer.
    - Larger echo delays result in larger amounts of memory allocated.
    -
    - As this is a stereo filter made mainly for IT playback, it is targeted for stereo signals.
    - With mono signals only the FMOD_DSP_ITECHO_LEFTDELAY is used.
    - For multichannel signals (>2) there will be no echo on those channels.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ITECHO_WETDRYMIX, /* (Type:float) - Ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from 0.0 through 100.0 (all wet). The default value is 50. */ - FMOD_DSP_ITECHO_FEEDBACK, /* (Type:float) - Percentage of output fed back into input, in the range from 0.0 through 100.0. The default value is 50. */ - FMOD_DSP_ITECHO_LEFTDELAY, /* (Type:float) - Delay for left channel, in milliseconds, in the range from 1.0 through 2000.0. The default value is 500 ms. */ - FMOD_DSP_ITECHO_RIGHTDELAY, /* (Type:float) - Delay for right channel, in milliseconds, in the range from 1.0 through 2000.0. The default value is 500 ms. */ - FMOD_DSP_ITECHO_PANDELAY /* (Type:float) - Value that specifies whether to swap left and right delays with each successive echo. The default value is zero, meaning no swap. Possible values are defined as 0.0 (equivalent to FALSE) and 1.0 (equivalent to TRUE). CURRENTLY NOT SUPPORTED. */ -} FMOD_DSP_ITECHO; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_COMPRESSOR unit. - This is a multichannel software limiter that is uniform across the whole spectrum. - - [REMARKS] - The limiter is not guaranteed to catch every peak above the threshold level, - because it cannot apply gain reduction instantaneously - the time delay is - determined by the attack time. However setting the attack time too short will - distort the sound, so it is a compromise. High level peaks can be avoided by - using a short attack time - but not too short, and setting the threshold a few - decibels below the critical level. -
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterBool - DSP::getParameterBool - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_COMPRESSOR_THRESHOLD, /* (Type:float) - Threshold level (dB) in the range from -80 through 0. The default value is 0. */ - FMOD_DSP_COMPRESSOR_RATIO, /* (Type:float) - Compression Ratio (dB/dB) in the range from 1 to 50. The default value is 2.5. */ - FMOD_DSP_COMPRESSOR_ATTACK, /* (Type:float) - Attack time (milliseconds), in the range from 0.1 through 1000. The default value is 20. */ - FMOD_DSP_COMPRESSOR_RELEASE, /* (Type:float) - Release time (milliseconds), in the range from 10 through 5000. The default value is 100 */ - FMOD_DSP_COMPRESSOR_GAINMAKEUP, /* (Type:float) - Make-up gain (dB) applied after limiting, in the range from 0 through 30. The default value is 0. */ - FMOD_DSP_COMPRESSOR_USESIDECHAIN, /* (Type:data) - Data of type FMOD_DSP_PARAMETER_SIDECHAIN. Whether to analyse the sidechain signal instead of the input signal. Default is { false } */ - FMOD_DSP_COMPRESSOR_LINKED /* (Type:bool) - FALSE = Independent (compressor per channel), TRUE = Linked. The default value is TRUE. */ -} FMOD_DSP_COMPRESSOR; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_SFXREVERB unit.
    - - [REMARKS] - This is a high quality I3DL2 based reverb.
    - On top of the I3DL2 property set, "Dry Level" is also included to allow the dry mix to be changed.
    -
    - These properties can be set with presets in FMOD_REVERB_PRESETS. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE - FMOD_REVERB_PRESETS -] -*/ -typedef enum -{ - FMOD_DSP_SFXREVERB_DECAYTIME, /* (Type:float) - Decay Time : Reverberation decay time at low-frequencies in milliseconds. Ranges from 100.0 to 20000.0. Default is 1500. */ - FMOD_DSP_SFXREVERB_EARLYDELAY, /* (Type:float) - Early Delay : Delay time of first reflection in milliseconds. Ranges from 0.0 to 300.0. Default is 20. */ - FMOD_DSP_SFXREVERB_LATEDELAY, /* (Type:float) - Reverb Delay : Late reverberation delay time relative to first reflection in milliseconds. Ranges from 0.0 to 100.0. Default is 40. */ - FMOD_DSP_SFXREVERB_HFREFERENCE, /* (Type:float) - HF Reference : Reference frequency for high-frequency decay in Hz. Ranges from 20.0 to 20000.0. Default is 5000. */ - FMOD_DSP_SFXREVERB_HFDECAYRATIO, /* (Type:float) - Decay HF Ratio : High-frequency decay time relative to decay time in percent. Ranges from 10.0 to 100.0. Default is 50. */ - FMOD_DSP_SFXREVERB_DIFFUSION, /* (Type:float) - Diffusion : Reverberation diffusion (echo density) in percent. Ranges from 0.0 to 100.0. Default is 100. */ - FMOD_DSP_SFXREVERB_DENSITY, /* (Type:float) - Density : Reverberation density (modal density) in percent. Ranges from 0.0 to 100.0. Default is 100. */ - FMOD_DSP_SFXREVERB_LOWSHELFFREQUENCY, /* (Type:float) - Low Shelf Frequency : Transition frequency of low-shelf filter in Hz. Ranges from 20.0 to 1000.0. Default is 250. */ - FMOD_DSP_SFXREVERB_LOWSHELFGAIN, /* (Type:float) - Low Shelf Gain : Gain of low-shelf filter in dB. Ranges from -36.0 to 12.0. Default is 0. */ - FMOD_DSP_SFXREVERB_HIGHCUT, /* (Type:float) - High Cut : Cutoff frequency of low-pass filter in Hz. Ranges from 20.0 to 20000.0. Default is 20000. */ - FMOD_DSP_SFXREVERB_EARLYLATEMIX, /* (Type:float) - Early/Late Mix : Blend ratio of late reverb to early reflections in percent. Ranges from 0.0 to 100.0. Default is 50. */ - FMOD_DSP_SFXREVERB_WETLEVEL, /* (Type:float) - Wet Level : Reverb signal level in dB. Ranges from -80.0 to 20.0. Default is -6. */ - FMOD_DSP_SFXREVERB_DRYLEVEL /* (Type:float) - Dry Level : Dry signal level in dB. Ranges from -80.0 to 20.0. Default is 0. */ -} FMOD_DSP_SFXREVERB; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_LOWPASS_SIMPLE filter.
    - This is a very simple low pass filter, based on two single-pole RC time-constant modules. - The emphasis is on speed rather than accuracy, so this should not be used for task requiring critical filtering.
    - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_LOWPASS_SIMPLE_CUTOFF /* (Type:float) - Lowpass cutoff frequency in hz. 10.0 to 22000.0. Default = 5000.0 */ -} FMOD_DSP_LOWPASS_SIMPLE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_DELAY filter. - - [REMARKS] - Note. Every time MaxDelay is changed, the plugin re-allocates the delay buffer. This means the delay will dissapear at that time while it refills its new buffer.
    - A larger MaxDelay results in larger amounts of memory allocated.
    - Channel delays above MaxDelay will be clipped to MaxDelay and the delay buffer will not be resized.
    -
    - NOTE! Not supported on PlayStation 3. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_DELAY_CH0, /* (Type:float) - Channel #0 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH1, /* (Type:float) - Channel #1 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH2, /* (Type:float) - Channel #2 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH3, /* (Type:float) - Channel #3 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH4, /* (Type:float) - Channel #4 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH5, /* (Type:float) - Channel #5 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH6, /* (Type:float) - Channel #6 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH7, /* (Type:float) - Channel #7 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH8, /* (Type:float) - Channel #8 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH9, /* (Type:float) - Channel #9 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH10, /* (Type:float) - Channel #10 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH11, /* (Type:float) - Channel #11 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH12, /* (Type:float) - Channel #12 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH13, /* (Type:float) - Channel #13 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH14, /* (Type:float) - Channel #14 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH15, /* (Type:float) - Channel #15 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_MAXDELAY /* (Type:float) - Maximum delay in ms. 0 to 10000. Default = 10. */ -} FMOD_DSP_DELAY; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_TREMOLO filter. - - [REMARKS] - The tremolo effect varies the amplitude of a sound. Depending on the settings, this unit can produce a tremolo, chopper or auto-pan effect.
    -
    - The shape of the LFO (low freq. oscillator) can morphed between sine, triangle and sawtooth waves using the FMOD_DSP_TREMOLO_SHAPE and FMOD_DSP_TREMOLO_SKEW parameters.
    - FMOD_DSP_TREMOLO_DUTY and FMOD_DSP_TREMOLO_SQUARE are useful for a chopper-type effect where the first controls the on-time duration and second controls the flatness of the envelope.
    - FMOD_DSP_TREMOLO_SPREAD varies the LFO phase between channels to get an auto-pan effect. This works best with a sine shape LFO.
    - The LFO can be synchronized using the FMOD_DSP_TREMOLO_PHASE parameter which sets its instantaneous phase.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_TREMOLO_FREQUENCY, /* (Type:float) - LFO frequency in Hz. 0.1 to 20. Default = 5. */ - FMOD_DSP_TREMOLO_DEPTH, /* (Type:float) - Tremolo depth. 0 to 1. Default = 1. */ - FMOD_DSP_TREMOLO_SHAPE, /* (Type:float) - LFO shape morph between triangle and sine. 0 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_SKEW, /* (Type:float) - Time-skewing of LFO cycle. -1 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_DUTY, /* (Type:float) - LFO on-time. 0 to 1. Default = 0.5. */ - FMOD_DSP_TREMOLO_SQUARE, /* (Type:float) - Flatness of the LFO shape. 0 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_PHASE, /* (Type:float) - Instantaneous LFO phase. 0 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_SPREAD /* (Type:float) - Rotation / auto-pan effect. -1 to 1. Default = 0. */ -} FMOD_DSP_TREMOLO; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_SEND DSP. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_SEND_RETURNID, /* (Type:int) - ID of the Return DSP this send is connected to (integer values only). -1 indicates no connected Return DSP. Default = -1. */ - FMOD_DSP_SEND_LEVEL, /* (Type:float) - Send level. 0.0 to 1.0. Default = 1.0 */ -} FMOD_DSP_SEND; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_RETURN DSP. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_RETURN_ID, /* (Type:int) - [r] ID of this Return DSP. Read-only. Default = -1*/ - FMOD_DSP_RETURN_INPUT_SPEAKER_MODE /* (Type:int) - [r/w] Input speaker mode of this return. Default = FMOD_SPEAKERMODE_DEFAULT.*/ -} FMOD_DSP_RETURN; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_HIGHPASS_SIMPLE filter.
    - This is a very simple single-order high pass filter. - The emphasis is on speed rather than accuracy, so this should not be used for task requiring critical filtering.
    - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_HIGHPASS_SIMPLE_CUTOFF /* (Type:float) - Highpass cutoff frequency in hz. 10.0 to 22000.0. Default = 1000.0 */ -} FMOD_DSP_HIGHPASS_SIMPLE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISTRIBUTED, - FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE -} FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_MODE parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_MODE_MONO, - FMOD_DSP_PAN_MODE_STEREO, - FMOD_DSP_PAN_MODE_SURROUND -} FMOD_DSP_PAN_MODE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_3D_ROLLOFF parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED, - FMOD_DSP_PAN_3D_ROLLOFF_LINEAR, - FMOD_DSP_PAN_3D_ROLLOFF_INVERSE, - FMOD_DSP_PAN_3D_ROLLOFF_INVERSETAPERED, - FMOD_DSP_PAN_3D_ROLLOFF_CUSTOM -} FMOD_DSP_PAN_3D_ROLLOFF_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_3D_EXTENT_MODE parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO, - FMOD_DSP_PAN_3D_EXTENT_MODE_USER, - FMOD_DSP_PAN_3D_EXTENT_MODE_OFF -} FMOD_DSP_PAN_3D_EXTENT_MODE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_PAN_MODE, /* (Type:int) - Panner mode. FMOD_DSP_PAN_MODE_MONO for mono down-mix, FMOD_DSP_PAN_MODE_STEREO for stereo panning or FMOD_DSP_PAN_MODE_SURROUND for surround panning. Default = FMOD_DSP_PAN_MODE_SURROUND */ - FMOD_DSP_PAN_STEREO_POSITION, /* (Type:float) - Stereo pan position. STEREO_POSITION_MIN to STEREO_POSITION_MAX. Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_DIRECTION, /* (Type:float) - Surround pan direction. ROTATION_MIN to ROTATION_MAX. Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_EXTENT, /* (Type:float) - Surround pan extent. EXTENT_MIN to EXTENT_MAX. Default = 360.0. */ - FMOD_DSP_PAN_SURROUND_ROTATION, /* (Type:float) - Surround pan rotation. ROTATION_MIN to ROTATION_MAX. Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_LFE_LEVEL, /* (Type:float) - Surround pan LFE level. SURROUND_LFE_LEVEL_MIN to SURROUND_LFE_LEVEL_MAX. Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE, /* (Type:int) - Stereo-To-Surround Mode. FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISTRIBUTED to FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE. Default = FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE. */ - FMOD_DSP_PAN_SURROUND_STEREO_SEPARATION, /* (Type:float) - Stereo-To-Surround Stereo Separation. ROTATION_MIN to ROTATION_MAX. Default = 60.0. */ - FMOD_DSP_PAN_SURROUND_STEREO_AXIS, /* (Type:float) - Stereo-To-Surround Stereo Axis. ROTATION_MIN to ROTATION_MAX. Default = 0.0. */ - FMOD_DSP_PAN_ENABLED_SURROUND_SPEAKERS, /* (Type:int) - Surround Speakers Enabled. 0 to 0xFFF. Default = 0xFFF. */ - FMOD_DSP_PAN_3D_POSITION, /* (Type:data) - 3D Position. data of type FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI */ - FMOD_DSP_PAN_3D_ROLLOFF, /* (Type:int) - 3D Rolloff. FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED to FMOD_DSP_PAN_3D_ROLLOFF_CUSTOM. Default = FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED. */ - FMOD_DSP_PAN_3D_MIN_DISTANCE, /* (Type:float) - 3D Min Distance. 0.0 to GAME_UNITS_MAX. Default = 1.0. */ - FMOD_DSP_PAN_3D_MAX_DISTANCE, /* (Type:float) - 3D Max Distance. 0.0 to GAME_UNITS_MAX. Default = 20.0. */ - FMOD_DSP_PAN_3D_EXTENT_MODE, /* (Type:int) - 3D Extent Mode. FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO to FMOD_DSP_PAN_3D_EXTENT_MODE_OFF. Default = FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO. */ - FMOD_DSP_PAN_3D_SOUND_SIZE, /* (Type:float) - 3D Sound Size. 0.0 to GAME_UNITS_MAX. Default = 0.0. */ - FMOD_DSP_PAN_3D_MIN_EXTENT, /* (Type:float) - 3D Min Extent. EXTENT_MIN to EXTENT_MAX. Default = 0.0. */ - FMOD_DSP_PAN_3D_PAN_BLEND, /* (Type:float) - 3D Pan Blend. PAN_BLEND_MIN to PAN_BLEND_MAX. Default = 0.0. */ - FMOD_DSP_PAN_LFE_UPMIX_ENABLED, /* (Type:int) - LFE Upmix Enabled. 0 to 1. Default = 0. */ - FMOD_DSP_PAN_OVERALL_GAIN, /* (Type:data) - Overall gain. data of type FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN */ - FMOD_DSP_PAN_SURROUND_SPEAKER_MODE /* (Type:int) - Surround speaker mode. Target speaker mode for surround panning. */ -} FMOD_DSP_PAN; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_THREE_EQ_CROSSOVERSLOPE parameter of the FMOD_DSP_TYPE_THREE_EQ DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_THREE_EQ -] -*/ -typedef enum -{ - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_12DB, - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_24DB, - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_48DB -} FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_THREE_EQ filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_TYPE - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_THREE_EQ_LOWGAIN, /* (Type:float) - Low frequency gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_THREE_EQ_MIDGAIN, /* (Type:float) - Mid frequency gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_THREE_EQ_HIGHGAIN, /* (Type:float) - High frequency gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_THREE_EQ_LOWCROSSOVER, /* (Type:float) - Low-to-mid crossover frequency in Hz. 10.0 to 22000.0. Default = 400.0. */ - FMOD_DSP_THREE_EQ_HIGHCROSSOVER, /* (Type:float) - Mid-to-high crossover frequency in Hz. 10.0 to 22000.0. Default = 4000.0. */ - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE /* (Type:int) - Crossover Slope. 0 = 12dB/Octave, 1 = 24dB/Octave, 2 = 48dB/Octave. Default = 1 (24dB/Octave). */ -} FMOD_DSP_THREE_EQ; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of windowing methods for the FMOD_DSP_TYPE_FFT unit. Used in spectrum analysis to reduce leakage / transient signals intefering with the analysis.
    - This is a problem with analysis of continuous signals that only have a small portion of the signal sample (the fft window size).
    - Windowing the signal with a curve or triangle tapers the sides of the fft window to help alleviate this problem. - - [REMARKS] - Cyclic signals such as a sine wave that repeat their cycle in a multiple of the window size do not need windowing.
    - I.e. If the sine wave repeats every 1024, 512, 256 etc samples and the FMOD fft window is 1024, then the signal would not need windowing.
    - Not windowing is the same as FMOD_DSP_FFT_WINDOW_RECT, which is the default.
    - If the cycle of the signal (ie the sine wave) is not a multiple of the window size, it will cause frequency abnormalities, so a different windowing method is needed.
    - -
    - FMOD_DSP_FFT_WINDOW_RECT.
    -
    -
    - FMOD_DSP_FFT_WINDOW_TRIANGLE.
    -
    -
    - FMOD_DSP_FFT_WINDOW_HAMMING.
    -
    -
    - FMOD_DSP_FFT_WINDOW_HANNING.
    -
    -
    - FMOD_DSP_FFT_WINDOW_BLACKMAN.
    -
    -
    - FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS.
    - -
    - - [SEE_ALSO] - FMOD_DSP_FFT -] -*/ -typedef enum -{ - FMOD_DSP_FFT_WINDOW_RECT, /* w[n] = 1.0 */ - FMOD_DSP_FFT_WINDOW_TRIANGLE, /* w[n] = TRI(2n/N) */ - FMOD_DSP_FFT_WINDOW_HAMMING, /* w[n] = 0.54 - (0.46 * COS(n/N) ) */ - FMOD_DSP_FFT_WINDOW_HANNING, /* w[n] = 0.5 * (1.0 - COS(n/N) ) */ - FMOD_DSP_FFT_WINDOW_BLACKMAN, /* w[n] = 0.42 - (0.5 * COS(n/N) ) + (0.08 * COS(2.0 * n/N) ) */ - FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS /* w[n] = 0.35875 - (0.48829 * COS(1.0 * n/N)) + (0.14128 * COS(2.0 * n/N)) - (0.01168 * COS(3.0 * n/N)) */ -} FMOD_DSP_FFT_WINDOW; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_FFT dsp effect. - - [REMARKS] - Set the attributes for the spectrum analysis with FMOD_DSP_FFT_WINDOWSIZE and FMOD_DSP_FFT_WINDOWTYPE, and retrieve the results with FMOD_DSP_FFT_SPECTRUM and FMOD_DSP_FFT_DOMINANT_FREQ. - FMOD_DSP_FFT_SPECTRUM stores its data in the FMOD_DSP_PARAMETER_DATA_TYPE_FFT. You will need to cast to this structure to get the right data. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE - FMOD_DSP_FFT_WINDOW -] -*/ -typedef enum -{ - FMOD_DSP_FFT_WINDOWSIZE, /* (Type:int) - [r/w] Must be a power of 2 between 128 and 16384. 128, 256, 512, 1024, 2048, 4096, 8192, 16384 are accepted. Default = 2048. */ - FMOD_DSP_FFT_WINDOWTYPE, /* (Type:int) - [r/w] Refer to FMOD_DSP_FFT_WINDOW enumeration. Default = FMOD_DSP_FFT_WINDOW_HAMMING. */ - FMOD_DSP_FFT_SPECTRUMDATA, /* (Type:data) - [r] Returns the current spectrum values between 0 and 1 for each 'fft bin'. Cast data to FMOD_DSP_PARAMETER_DATA_TYPE_FFT. Divide the niquist rate by the window size to get the hz value per entry. */ - FMOD_DSP_FFT_DOMINANT_FREQ /* (Type:float) - [r] Returns the dominant frequencies for each channel. */ -} FMOD_DSP_FFT; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ENVELOPEFOLLOWER unit. - This is a simple envelope follower for tracking the signal level.
    - - [REMARKS] - This unit does not affect the incoming signal -
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterBool - DSP::getParameterBool - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ENVELOPEFOLLOWER_ATTACK, /* (Type:float) [r/w] - Attack time (milliseconds), in the range from 0.1 through 1000. The default value is 20. */ - FMOD_DSP_ENVELOPEFOLLOWER_RELEASE, /* (Type:float) [r/w] - Release time (milliseconds), in the range from 10 through 5000. The default value is 100 */ - FMOD_DSP_ENVELOPEFOLLOWER_ENVELOPE, /* (Type:float) [r] - Current value of the envelope, in the range 0 to 1. Read-only. */ - FMOD_DSP_ENVELOPEFOLLOWER_USESIDECHAIN /* (Type:data) [r/w] - Data of type FMOD_DSP_PARAMETER_SIDECHAIN. Whether to analyse the sidechain signal instead of the input signal. Default is { false } */ -} FMOD_DSP_ENVELOPEFOLLOWER; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_CONVOLUTIONREVERB filter. - - [REMARKS] - Convolution Reverb reverb IR.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_CONVOLUTION_REVERB_PARAM_IR, /* (Type:data) - [w] 16-bit reverb IR (short*) with an extra sample prepended to the start which specifies the number of channels. */ - FMOD_DSP_CONVOLUTION_REVERB_PARAM_WET, /* (Type:float) - [r/w] Volume of echo signal to pass to output in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CONVOLUTION_REVERB_PARAM_DRY /* (Type:float) - [r/w] Original sound volume in dB. -80.0 to 10.0. Default = 0. */ -} FMOD_DSP_CONVOLUTION_REVERB; - -#endif - diff --git a/external/linux-specific/fmod/include/fmod_errors.h b/external/linux-specific/fmod/include/fmod_errors.h deleted file mode 100644 index 2028ae0..0000000 --- a/external/linux-specific/fmod/include/fmod_errors.h +++ /dev/null @@ -1,111 +0,0 @@ -/*$ preserve start $*/ - -/* ================================================================================================== */ -/* FMOD Studio - Error string header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2015. */ -/* */ -/* Use this header if you want to store or display a string version / english explanation of */ -/* the FMOD error codes. */ -/* */ -/* ================================================================================================== */ - -#ifndef _FMOD_ERRORS_H -#define _FMOD_ERRORS_H - -#include "fmod.h" - -#ifdef __GNUC__ -static const char *FMOD_ErrorString(FMOD_RESULT errcode) __attribute__((unused)); -#endif - -static const char *FMOD_ErrorString(FMOD_RESULT errcode) -{ - switch (errcode) - { -/*$ preserve end $*/ - case FMOD_OK: return "No errors."; - case FMOD_ERR_BADCOMMAND: return "Tried to call a function on a data type that does not allow this type of functionality (ie calling Sound::lock on a streaming sound)."; - case FMOD_ERR_CHANNEL_ALLOC: return "Error trying to allocate a channel."; - case FMOD_ERR_CHANNEL_STOLEN: return "The specified channel has been reused to play another sound."; - case FMOD_ERR_DMA: return "DMA Failure. See debug output for more information."; - case FMOD_ERR_DSP_CONNECTION: return "DSP connection error. Connection possibly caused a cyclic dependency or connected dsps with incompatible buffer counts."; - case FMOD_ERR_DSP_DONTPROCESS: return "DSP return code from a DSP process query callback. Tells mixer not to call the process callback and therefore not consume CPU. Use this to optimize the DSP graph."; - case FMOD_ERR_DSP_FORMAT: return "DSP Format error. A DSP unit may have attempted to connect to this network with the wrong format, or a matrix may have been set with the wrong size if the target unit has a specified channel map."; - case FMOD_ERR_DSP_INUSE: return "DSP is already in the mixer's DSP network. It must be removed before being reinserted or released."; - case FMOD_ERR_DSP_NOTFOUND: return "DSP connection error. Couldn't find the DSP unit specified."; - case FMOD_ERR_DSP_RESERVED: return "DSP operation error. Cannot perform operation on this DSP as it is reserved by the system."; - case FMOD_ERR_DSP_SILENCE: return "DSP return code from a DSP process query callback. Tells mixer silence would be produced from read, so go idle and not consume CPU. Use this to optimize the DSP graph."; - case FMOD_ERR_DSP_TYPE: return "DSP operation cannot be performed on a DSP of this type."; - case FMOD_ERR_FILE_BAD: return "Error loading file."; - case FMOD_ERR_FILE_COULDNOTSEEK: return "Couldn't perform seek operation. This is a limitation of the medium (ie netstreams) or the file format."; - case FMOD_ERR_FILE_DISKEJECTED: return "Media was ejected while reading."; - case FMOD_ERR_FILE_EOF: return "End of file unexpectedly reached while trying to read essential data (truncated?)."; - case FMOD_ERR_FILE_ENDOFDATA: return "End of current chunk reached while trying to read data."; - case FMOD_ERR_FILE_NOTFOUND: return "File not found."; - case FMOD_ERR_FORMAT: return "Unsupported file or audio format."; - case FMOD_ERR_HEADER_MISMATCH: return "There is a version mismatch between the FMOD header and either the FMOD Studio library or the FMOD Low Level library."; - case FMOD_ERR_HTTP: return "A HTTP error occurred. This is a catch-all for HTTP errors not listed elsewhere."; - case FMOD_ERR_HTTP_ACCESS: return "The specified resource requires authentication or is forbidden."; - case FMOD_ERR_HTTP_PROXY_AUTH: return "Proxy authentication is required to access the specified resource."; - case FMOD_ERR_HTTP_SERVER_ERROR: return "A HTTP server error occurred."; - case FMOD_ERR_HTTP_TIMEOUT: return "The HTTP request timed out."; - case FMOD_ERR_INITIALIZATION: return "FMOD was not initialized correctly to support this function."; - case FMOD_ERR_INITIALIZED: return "Cannot call this command after System::init."; - case FMOD_ERR_INTERNAL: return "An error occurred that wasn't supposed to. Contact support."; - case FMOD_ERR_INVALID_FLOAT: return "Value passed in was a NaN, Inf or denormalized float."; - case FMOD_ERR_INVALID_HANDLE: return "An invalid object handle was used."; - case FMOD_ERR_INVALID_PARAM: return "An invalid parameter was passed to this function."; - case FMOD_ERR_INVALID_POSITION: return "An invalid seek position was passed to this function."; - case FMOD_ERR_INVALID_SPEAKER: return "An invalid speaker was passed to this function based on the current speaker mode."; - case FMOD_ERR_INVALID_SYNCPOINT: return "The syncpoint did not come from this sound handle."; - case FMOD_ERR_INVALID_THREAD: return "Tried to call a function on a thread that is not supported."; - case FMOD_ERR_INVALID_VECTOR: return "The vectors passed in are not unit length, or perpendicular."; - case FMOD_ERR_MAXAUDIBLE: return "Reached maximum audible playback count for this sound's soundgroup."; - case FMOD_ERR_MEMORY: return "Not enough memory or resources."; - case FMOD_ERR_MEMORY_CANTPOINT: return "Can't use FMOD_OPENMEMORY_POINT on non PCM source data, or non mp3/xma/adpcm data if FMOD_CREATECOMPRESSEDSAMPLE was used."; - case FMOD_ERR_NEEDS3D: return "Tried to call a command on a 2d sound when the command was meant for 3d sound."; - case FMOD_ERR_NEEDSHARDWARE: return "Tried to use a feature that requires hardware support."; - case FMOD_ERR_NET_CONNECT: return "Couldn't connect to the specified host."; - case FMOD_ERR_NET_SOCKET_ERROR: return "A socket error occurred. This is a catch-all for socket-related errors not listed elsewhere."; - case FMOD_ERR_NET_URL: return "The specified URL couldn't be resolved."; - case FMOD_ERR_NET_WOULD_BLOCK: return "Operation on a non-blocking socket could not complete immediately."; - case FMOD_ERR_NOTREADY: return "Operation could not be performed because specified sound/DSP connection is not ready."; - case FMOD_ERR_OUTPUT_ALLOCATED: return "Error initializing output device, but more specifically, the output device is already in use and cannot be reused."; - case FMOD_ERR_OUTPUT_CREATEBUFFER: return "Error creating hardware sound buffer."; - case FMOD_ERR_OUTPUT_DRIVERCALL: return "A call to a standard soundcard driver failed, which could possibly mean a bug in the driver or resources were missing or exhausted."; - case FMOD_ERR_OUTPUT_FORMAT: return "Soundcard does not support the specified format."; - case FMOD_ERR_OUTPUT_INIT: return "Error initializing output device."; - case FMOD_ERR_OUTPUT_NODRIVERS: return "The output device has no drivers installed. If pre-init, FMOD_OUTPUT_NOSOUND is selected as the output mode. If post-init, the function just fails."; - case FMOD_ERR_PLUGIN: return "An unspecified error has been returned from a plugin."; - case FMOD_ERR_PLUGIN_MISSING: return "A requested output, dsp unit type or codec was not available."; - case FMOD_ERR_PLUGIN_RESOURCE: return "A resource that the plugin requires cannot be found. (ie the DLS file for MIDI playback)"; - case FMOD_ERR_PLUGIN_VERSION: return "A plugin was built with an unsupported SDK version."; - case FMOD_ERR_RECORD: return "An error occurred trying to initialize the recording device."; - case FMOD_ERR_REVERB_CHANNELGROUP: return "Reverb properties cannot be set on this channel because a parent channelgroup owns the reverb connection."; - case FMOD_ERR_REVERB_INSTANCE: return "Specified instance in FMOD_REVERB_PROPERTIES couldn't be set. Most likely because it is an invalid instance number or the reverb doesn't exist."; - case FMOD_ERR_SUBSOUNDS: return "The error occurred because the sound referenced contains subsounds when it shouldn't have, or it doesn't contain subsounds when it should have. The operation may also not be able to be performed on a parent sound."; - case FMOD_ERR_SUBSOUND_ALLOCATED: return "This subsound is already being used by another sound, you cannot have more than one parent to a sound. Null out the other parent's entry first."; - case FMOD_ERR_SUBSOUND_CANTMOVE: return "Shared subsounds cannot be replaced or moved from their parent stream, such as when the parent stream is an FSB file."; - case FMOD_ERR_TAGNOTFOUND: return "The specified tag could not be found or there are no tags."; - case FMOD_ERR_TOOMANYCHANNELS: return "The sound created exceeds the allowable input channel count. This can be increased using the 'maxinputchannels' parameter in System::setSoftwareFormat."; - case FMOD_ERR_TRUNCATED: return "The retrieved string is too long to fit in the supplied buffer and has been truncated."; - case FMOD_ERR_UNIMPLEMENTED: return "Something in FMOD hasn't been implemented when it should be! contact support!"; - case FMOD_ERR_UNINITIALIZED: return "This command failed because System::init or System::setDriver was not called."; - case FMOD_ERR_UNSUPPORTED: return "A command issued was not supported by this object. Possibly a plugin without certain callbacks specified."; - case FMOD_ERR_VERSION: return "The version number of this file format is not supported."; - case FMOD_ERR_EVENT_ALREADY_LOADED: return "The specified bank has already been loaded."; - case FMOD_ERR_EVENT_LIVEUPDATE_BUSY: return "The live update connection failed due to the game already being connected."; - case FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH: return "The live update connection failed due to the game data being out of sync with the tool."; - case FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT: return "The live update connection timed out."; - case FMOD_ERR_EVENT_NOTFOUND: return "The requested event, bus or vca could not be found."; - case FMOD_ERR_STUDIO_UNINITIALIZED: return "The Studio::System object is not yet initialized."; - case FMOD_ERR_STUDIO_NOT_LOADED: return "The specified resource is not loaded, so it can't be unloaded."; - case FMOD_ERR_INVALID_STRING: return "An invalid string was passed to this function."; - case FMOD_ERR_ALREADY_LOCKED: return "The specified resource is already locked."; - case FMOD_ERR_NOT_LOCKED: return "The specified resource is not locked, so it can't be unlocked."; - default : return "Unknown error."; -/*$ preserve start $*/ - }; -} - -#endif -/*$ preserve end $*/ diff --git a/external/linux-specific/fmod/include/fmod_output.h b/external/linux-specific/fmod/include/fmod_output.h deleted file mode 100644 index cddae00..0000000 --- a/external/linux-specific/fmod/include/fmod_output.h +++ /dev/null @@ -1,88 +0,0 @@ -/* ======================================================================================================== */ -/* FMOD Studio - output development header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2015. */ -/* */ -/* Use this header if you are wanting to develop your own output plugin to use with */ -/* FMOD's output system. With this header you can make your own output plugin that FMOD */ -/* can register and use. See the documentation and examples on how to make a working plugin. */ -/* */ -/* ======================================================================================================== */ - -#ifndef _FMOD_OUTPUT_H -#define _FMOD_OUTPUT_H - -typedef struct FMOD_OUTPUT_STATE FMOD_OUTPUT_STATE; - -/* - Output callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK) (FMOD_OUTPUT_STATE *output_state, int *numdrivers); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETDRIVERINFO_CALLBACK) (FMOD_OUTPUT_STATE *output, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_INIT_CALLBACK) (FMOD_OUTPUT_STATE *output_state, int selecteddriver, FMOD_INITFLAGS flags, int *outputrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels, FMOD_SOUND_FORMAT *outputformat, int dspbufferlength, int dspnumbuffers, void *extradriverdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_START_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_STOP_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_CLOSE_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_UPDATE_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETHANDLE_CALLBACK) (FMOD_OUTPUT_STATE *output_state, void **handle); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETPOSITION_CALLBACK) (FMOD_OUTPUT_STATE *output_state, unsigned int *pcm); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_LOCK_CALLBACK) (FMOD_OUTPUT_STATE *output_state, unsigned int offset, unsigned int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_UNLOCK_CALLBACK) (FMOD_OUTPUT_STATE *output_state, void *ptr1, void *ptr2, unsigned int len1, unsigned int len2); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_READFROMMIXER) (FMOD_OUTPUT_STATE *output_state, void *buffer, unsigned int length); /* This one is called by plugin through FMOD_OUTPUT_STATE, not set by user as a callback. */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - When creating an output, declare one of these and provide the relevant callbacks and name for FMOD to use when it opens and reads a file of this type. - - [REMARKS] - Members marked with [in] mean the variable can be written to. The user can set the value.
    - Members marked with [out] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - - [SEE_ALSO] - FMOD_OUTPUT_STATE -] -*/ -typedef struct FMOD_OUTPUT_DESCRIPTION -{ - const char *name; /* [in] Name of the output. */ - unsigned int version; /* [in] Plugin writer's version number. */ - int polling; /* [in] If TRUE (non zero), this tells FMOD to start a thread and call getposition / lock / unlock for feeding data. If 0, the output is probably callback based, so all the plugin needs to do is call readfrommixer to the appropriate pointer. */ - FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK getnumdrivers; /* [in] For sound device enumeration. This callback is to give System::getNumDrivers somthing to return. */ - FMOD_OUTPUT_GETDRIVERINFO_CALLBACK getdriverinfo; /* [in] For sound device enumeration. This callback is to give System::getDriverName somthing to return. */ - FMOD_OUTPUT_INIT_CALLBACK init; /* [in] Initialization function for the output device. This is called from System::init. */ - FMOD_OUTPUT_START_CALLBACK start; /* [in] Initialization function for the output device to start accepting audio data from the FMOD software mixer. This is called from System::init. */ - FMOD_OUTPUT_STOP_CALLBACK stop; /* [in] Initialization function for the output device to stop accepting audio data from FMOD the software mixer. This is called from System::close. */ - FMOD_OUTPUT_CLOSE_CALLBACK close; /* [in] Cleanup / close down function for the output device. This is called from System::close. */ - FMOD_OUTPUT_UPDATE_CALLBACK update; /* [in] Update function that is called once a frame by the user. This is called from System::update. */ - FMOD_OUTPUT_GETHANDLE_CALLBACK gethandle; /* [in] This is called from System::getOutputHandle. This is just to return a pointer to the internal system device object that the system may be using.*/ - FMOD_OUTPUT_GETPOSITION_CALLBACK getposition; /* [in] This is called from the FMOD software mixer thread if 'polling' = true. This returns a position value in samples so that FMOD knows where and when to fill its buffer. */ - FMOD_OUTPUT_LOCK_CALLBACK lock; /* [in] This is called from the FMOD software mixer thread if 'polling' = true. This function provides a pointer to data that FMOD can write to when software mixing. */ - FMOD_OUTPUT_UNLOCK_CALLBACK unlock; /* [in] This is called from the FMOD software mixer thread if 'polling' = true. This optional function accepts the data that has been mixed and copies it or does whatever it needs to before sending it to the hardware. */ -} FMOD_OUTPUT_DESCRIPTION; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Output plugin structure that is passed into each callback. - - [REMARKS] - Members marked with [in] mean the variable can be written to. The user can set the value.
    - Members marked with [out] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - - [SEE_ALSO] - FMOD_OUTPUT_DESCRIPTION -] -*/ -struct FMOD_OUTPUT_STATE -{ - void *plugindata; /* [in] Plugin writer created data the output author wants to attach to this object. */ - FMOD_OUTPUT_READFROMMIXER readfrommixer; /* [out] Function to update mixer and write the result to the provided pointer. Used from callback based output only. Polling based output uses lock/unlock/getposition. */ -}; - -#endif - - diff --git a/external/linux-specific/fmod/prebuilt/64-bit/libfmod.so b/external/linux-specific/fmod/prebuilt/64-bit/libfmod.so deleted file mode 100755 index eb77506..0000000 Binary files a/external/linux-specific/fmod/prebuilt/64-bit/libfmod.so and /dev/null differ diff --git a/external/linux-specific/fmod/prebuilt/64-bit/libfmod.so.6 b/external/linux-specific/fmod/prebuilt/64-bit/libfmod.so.6 deleted file mode 100755 index 3c20aed..0000000 --- a/external/linux-specific/fmod/prebuilt/64-bit/libfmod.so.6 +++ /dev/null @@ -1 +0,0 @@ -libfmod.so \ No newline at end of file diff --git a/external/linux-specific/fmod/prebuilt/64-bit/libfmodL.so b/external/linux-specific/fmod/prebuilt/64-bit/libfmodL.so deleted file mode 100755 index 990aa1f..0000000 Binary files a/external/linux-specific/fmod/prebuilt/64-bit/libfmodL.so and /dev/null differ diff --git a/external/linux-specific/fmod/prebuilt/64-bit/libfmodL.so.6 b/external/linux-specific/fmod/prebuilt/64-bit/libfmodL.so.6 deleted file mode 100755 index 5040600..0000000 --- a/external/linux-specific/fmod/prebuilt/64-bit/libfmodL.so.6 +++ /dev/null @@ -1 +0,0 @@ -libfmodL.so \ No newline at end of file diff --git a/external/recast/proj.win10/librecast.vcxproj b/external/recast/proj.win10/librecast.vcxproj deleted file mode 100644 index 705bf18..0000000 --- a/external/recast/proj.win10/librecast.vcxproj +++ /dev/null @@ -1,265 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {f551524d-8a70-4b2f-a7c2-28ae61150022} - StaticLibrary - librecast - librecast - en-US - 14.0 - true - Windows Store - 8.2 - 10.0.10240.0 - 10.0.10240.0 - - - - StaticLibrary - true - v140 - - - StaticLibrary - true - v140 - - - StaticLibrary - true - v140 - - - StaticLibrary - false - true - v140 - - - StaticLibrary - false - true - v140 - - - StaticLibrary - false - true - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - - NotUsing - false - true - ../../;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ProgramDatabase - - - Console - false - false - - - - - NotUsing - false - true - ../../;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - - - Console - false - false - - - false - - - - - NotUsing - false - true - ../../;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - false - false - - - - - NotUsing - false - true - ../../;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - - - Console - false - false - - - false - - - - - NotUsing - false - true - ../../;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - ProgramDatabase - - - Console - false - false - - - - - NotUsing - false - true - ../../;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - false - - - Console - false - false - - - false - - - - - - \ No newline at end of file diff --git a/external/recast/proj.win10/librecast.vcxproj.filters b/external/recast/proj.win10/librecast.vcxproj.filters deleted file mode 100644 index 87cd196..0000000 --- a/external/recast/proj.win10/librecast.vcxproj.filters +++ /dev/null @@ -1,151 +0,0 @@ - - - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms - - - {79fc6835-a678-4e2a-9fdb-33092032ce10} - - - {38ce3dad-1711-424f-bf78-83c04add7ff8} - - - {9fa767fe-4057-4d7d-b83c-907ab1d0d7be} - - - {e66e249b-a265-4fc4-8731-046d91f21b8f} - - - {bb77d64c-9923-4fb7-a625-9595955a8cdb} - - - - - DebugUtils - - - DebugUtils - - - DebugUtils - - - DebugUtils - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourTileCache - - - DetourTileCache - - - fastlz - - - - - DebugUtils - - - DebugUtils - - - DebugUtils - - - DebugUtils - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourTileCache - - - DetourTileCache - - - fastlz - - - \ No newline at end of file diff --git a/external/recast/proj.win32/librecast.vcxproj b/external/recast/proj.win32/librecast.vcxproj deleted file mode 100644 index aa46965..0000000 --- a/external/recast/proj.win32/librecast.vcxproj +++ /dev/null @@ -1,141 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {41E34993-647E-4282-8384-4AB1AE31A452} - Win32Proj - librecast - - - - StaticLibrary - Unicode - v120 - v120_xp - v140 - v140_xp - v141 - v141_xp - - - StaticLibrary - Unicode - v120 - v120_xp - v140 - v140_xp - v141 - v141_xp - - - - - - - - - - - - - $(SolutionDir)$(Configuration).win32\ - $(Configuration).win32\ - - - $(SolutionDir)$(Configuration).win32\ - $(Configuration).win32\ - - - - - - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - - - ../../;%(AdditionalIncludeDirectories) - true - false - - - Windows - true - - - - - Level3 - - - MinSpace - true - true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - - - ../../;%(AdditionalIncludeDirectories) - true - None - - - Windows - true - true - true - - - - - - \ No newline at end of file diff --git a/external/recast/proj.win32/librecast.vcxproj.filters b/external/recast/proj.win32/librecast.vcxproj.filters deleted file mode 100644 index ee50dd1..0000000 --- a/external/recast/proj.win32/librecast.vcxproj.filters +++ /dev/null @@ -1,135 +0,0 @@ - - - - - {aaf686af-9221-4a6f-8ed3-8af7b769cd7d} - - - {0bb8e4f7-4a37-48b6-8fc8-b2ae500329a1} - - - {b8f0ec71-f58c-4544-9525-4e9f9c15aa42} - - - {967cc456-81ac-4764-ae7c-4aab608b9fa9} - - - {e8a98c42-4758-4a82-86ef-20a75ee7927b} - - - - - DebugUtils - - - DebugUtils - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourTileCache - - - DetourTileCache - - - fastlz - - - - - DebugUtils - - - DebugUtils - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - Detour - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourCrowd - - - DetourTileCache - - - DetourTileCache - - - fastlz - - - \ No newline at end of file diff --git a/external/win10-specific/OggDecoder/include/ogg/config_types.h b/external/win10-specific/OggDecoder/include/ogg/config_types.h deleted file mode 100644 index 4b00047..0000000 --- a/external/win10-specific/OggDecoder/include/ogg/config_types.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __CONFIG_TYPES_H__ -#define __CONFIG_TYPES_H__ - -/* these are filled in by configure */ -#define INCLUDE_INTTYPES_H 1 -#define INCLUDE_STDINT_H 1 -#define INCLUDE_SYS_TYPES_H 1 - -#if INCLUDE_INTTYPES_H -# include -#endif -#if INCLUDE_STDINT_H -# include -#endif -#if INCLUDE_SYS_TYPES_H -# include -#endif - -typedef int16_t ogg_int16_t; -typedef uint16_t ogg_uint16_t; -typedef int32_t ogg_int32_t; -typedef uint32_t ogg_uint32_t; -typedef int64_t ogg_int64_t; - -#endif diff --git a/external/win10-specific/OggDecoder/include/ogg/ogg.h b/external/win10-specific/OggDecoder/include/ogg/ogg.h deleted file mode 100644 index 7609fc2..0000000 --- a/external/win10-specific/OggDecoder/include/ogg/ogg.h +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel libogg include - last mod: $Id$ - - ********************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -typedef struct { - void *iov_base; - size_t iov_len; -} ogg_iovec_t; - -typedef struct { - long endbyte; - int endbit; - - unsigned char *buffer; - unsigned char *ptr; - long storage; -} oggpack_buffer; - -/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ - -typedef struct { - unsigned char *header; - long header_len; - unsigned char *body; - long body_len; -} ogg_page; - -/* ogg_stream_state contains the current encode/decode state of a logical - Ogg bitstream **********************************************************/ - -typedef struct { - unsigned char *body_data; /* bytes from packet bodies */ - long body_storage; /* storage elements allocated */ - long body_fill; /* elements stored; fill mark */ - long body_returned; /* elements of fill returned */ - - - int *lacing_vals; /* The values that will go to the segment table */ - ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact - this way, but it is simple coupled to the - lacing fifo */ - long lacing_storage; - long lacing_fill; - long lacing_packet; - long lacing_returned; - - unsigned char header[282]; /* working space for header encode */ - int header_fill; - - int e_o_s; /* set when we have buffered the last packet in the - logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - -} ogg_stream_state; - -/* ogg_packet is used to encapsulate the data and metadata belonging - to a single raw Ogg/Vorbis packet *************************************/ - -typedef struct { - unsigned char *packet; - long bytes; - long b_o_s; - long e_o_s; - - ogg_int64_t granulepos; - - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - unsigned char *data; - int storage; - int fill; - int returned; - - int unsynced; - int headerbytes; - int bodybytes; -} ogg_sync_state; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_writeinit(oggpack_buffer *b); -extern int oggpack_writecheck(oggpack_buffer *b); -extern void oggpack_writetrunc(oggpack_buffer *b,long bits); -extern void oggpack_writealign(oggpack_buffer *b); -extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpack_reset(oggpack_buffer *b); -extern void oggpack_writeclear(oggpack_buffer *b); -extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern long oggpack_look1(oggpack_buffer *b); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern void oggpack_adv1(oggpack_buffer *b); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_read1(oggpack_buffer *b); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); - -extern void oggpackB_writeinit(oggpack_buffer *b); -extern int oggpackB_writecheck(oggpack_buffer *b); -extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); -extern void oggpackB_writealign(oggpack_buffer *b); -extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpackB_reset(oggpack_buffer *b); -extern void oggpackB_writeclear(oggpack_buffer *b); -extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpackB_look(oggpack_buffer *b,int bits); -extern long oggpackB_look1(oggpack_buffer *b); -extern void oggpackB_adv(oggpack_buffer *b,int bits); -extern void oggpackB_adv1(oggpack_buffer *b); -extern long oggpackB_read(oggpack_buffer *b,int bits); -extern long oggpackB_read1(oggpack_buffer *b); -extern long oggpackB_bytes(oggpack_buffer *b); -extern long oggpackB_bits(oggpack_buffer *b); -extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); - -/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ - -extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, - int count, long e_o_s, ogg_int64_t granulepos); -extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); -extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern int ogg_sync_init(ogg_sync_state *oy); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_check(ogg_sync_state *oy); - -extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern int ogg_stream_init(ogg_stream_state *os,int serialno); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_check(ogg_stream_state *os); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern void ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(const ogg_page *og); -extern int ogg_page_continued(const ogg_page *og); -extern int ogg_page_bos(const ogg_page *og); -extern int ogg_page_eos(const ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); -extern int ogg_page_serialno(const ogg_page *og); -extern long ogg_page_pageno(const ogg_page *og); -extern int ogg_page_packets(const ogg_page *og); - -extern void ogg_packet_clear(ogg_packet *op); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/external/win10-specific/OggDecoder/include/ogg/os_types.h b/external/win10-specific/OggDecoder/include/ogg/os_types.h deleted file mode 100644 index b8f5630..0000000 --- a/external/win10-specific/OggDecoder/include/ogg/os_types.h +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id$ - - ********************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined(_WIN32) - -# if defined(__CYGWIN__) -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# elif defined(__MINGW32__) -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - typedef unsigned long long ogg_uint64_t; -# elif defined(__MWERKS__) - typedef long long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; -# else -# if defined(_MSC_VER) && (_MSC_VER >= 1800) /* MSVC 2013 and newer */ -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# else - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# endif -# endif - -#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ - -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__HAIKU__) - - /* Haiku */ -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined (DJGPP) - - /* DJGPP */ - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(R5900) - - /* PS2 EE */ - typedef long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned ogg_uint32_t; - typedef short ogg_int16_t; - -#elif defined(__SYMBIAN32__) - - /* Symbian GCC */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#elif defined(__TMS320C6X__) - - /* TI C64x compiler */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#else - -# include - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/external/win10-specific/OggDecoder/include/vorbis/codec.h b/external/win10-specific/OggDecoder/include/vorbis/codec.h deleted file mode 100644 index f082241..0000000 --- a/external/win10-specific/OggDecoder/include/vorbis/codec.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - - ******************************************************************** - - function: libvorbis codec headers - last mod: $Id$ - - ********************************************************************/ - -#ifndef _vorbis_codec_h_ -#define _vorbis_codec_h_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include - -typedef struct vorbis_info{ - int version; - int channels; - long rate; - - /* The below bitrate declarations are *hints*. - Combinations of the three values carry the following implications: - - all three set to the same value: - implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard - upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal - may also be set to give a nominal rate. - none set: - the coder does not care to speculate. - */ - - long bitrate_upper; - long bitrate_nominal; - long bitrate_lower; - long bitrate_window; - - void *codec_setup; -} vorbis_info; - -/* vorbis_dsp_state buffers the current vorbis audio - analysis/synthesis state. The DSP state belongs to a specific - logical bitstream ****************************************************/ -typedef struct vorbis_dsp_state{ - int analysisp; - vorbis_info *vi; - - float **pcm; - float **pcmret; - int pcm_storage; - int pcm_current; - int pcm_returned; - - int preextrapolate; - int eofflag; - - long lW; - long W; - long nW; - long centerW; - - ogg_int64_t granulepos; - ogg_int64_t sequence; - - ogg_int64_t glue_bits; - ogg_int64_t time_bits; - ogg_int64_t floor_bits; - ogg_int64_t res_bits; - - void *backend_state; -} vorbis_dsp_state; - -typedef struct vorbis_block{ - /* necessary stream state for linking to the framing abstraction */ - float **pcm; /* this is a pointer into local storage */ - oggpack_buffer opb; - - long lW; - long W; - long nW; - int pcmend; - int mode; - - int eofflag; - ogg_int64_t granulepos; - ogg_int64_t sequence; - vorbis_dsp_state *vd; /* For read-only access of configuration */ - - /* local storage to avoid remallocing; it's up to the mapping to - structure it */ - void *localstore; - long localtop; - long localalloc; - long totaluse; - struct alloc_chain *reap; - - /* bitmetrics for the frame */ - long glue_bits; - long time_bits; - long floor_bits; - long res_bits; - - void *internal; - -} vorbis_block; - -/* vorbis_block is a single block of data to be processed as part of -the analysis/synthesis stream; it belongs to a specific logical -bitstream, but is independent from other vorbis_blocks belonging to -that logical bitstream. *************************************************/ - -struct alloc_chain{ - void *ptr; - struct alloc_chain *next; -}; - -/* vorbis_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). vorbis_info and substructures are in backends.h. -*********************************************************************/ - -/* the comments are not part of vorbis_info so that vorbis_info can be - static storage */ -typedef struct vorbis_comment{ - /* unlimited user comment fields. libvorbis writes 'libvorbis' - whatever vendor is set to in encode */ - char **user_comments; - int *comment_lengths; - int comments; - char *vendor; - -} vorbis_comment; - - -/* libvorbis encodes in two abstraction layers; first we perform DSP - and produce a packet (see docs/analysis.txt). The packet is then - coded into a framed OggSquish bitstream by the second layer (see - docs/framing.txt). Decode is the reverse process; we sync/frame - the bitstream and extract individual packets, then decode the - packet back into PCM audio. - - The extra framing/packetizing is used in streaming formats, such as - files. Over the net (such as with UDP), the framing and - packetization aren't necessary as they're provided by the transport - and the streaming layer is not used */ - -/* Vorbis PRIMITIVES: general ***************************************/ - -extern void vorbis_info_init(vorbis_info *vi); -extern void vorbis_info_clear(vorbis_info *vi); -extern int vorbis_info_blocksize(vorbis_info *vi,int zo); -extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - const char *tag, const char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); -extern void vorbis_comment_clear(vorbis_comment *vc); - -extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); -extern int vorbis_block_clear(vorbis_block *vb); -extern void vorbis_dsp_clear(vorbis_dsp_state *v); -extern double vorbis_granule_time(vorbis_dsp_state *v, - ogg_int64_t granulepos); - -extern const char *vorbis_version_string(void); - -/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ - -extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); -extern int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); -extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); - -extern int vorbis_bitrate_addblock(vorbis_block *vb); -extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, - ogg_packet *op); - -/* Vorbis PRIMITIVES: synthesis layer *******************************/ -extern int vorbis_synthesis_idheader(ogg_packet *op); -extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, - ogg_packet *op); - -extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_synthesis_restart(vorbis_dsp_state *v); -extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); -extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); - -extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); -extern int vorbis_synthesis_halfrate_p(vorbis_info *v); - -/* Vorbis ERRORS and return codes ***********************************/ - -#define OV_FALSE -1 -#define OV_EOF -2 -#define OV_HOLE -3 - -#define OV_EREAD -128 -#define OV_EFAULT -129 -#define OV_EIMPL -130 -#define OV_EINVAL -131 -#define OV_ENOTVORBIS -132 -#define OV_EBADHEADER -133 -#define OV_EVERSION -134 -#define OV_ENOTAUDIO -135 -#define OV_EBADPACKET -136 -#define OV_EBADLINK -137 -#define OV_ENOSEEK -138 - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/external/win10-specific/OggDecoder/include/vorbis/vorbisenc.h b/external/win10-specific/OggDecoder/include/vorbis/vorbisenc.h deleted file mode 100644 index 8c51ec1..0000000 --- a/external/win10-specific/OggDecoder/include/vorbis/vorbisenc.h +++ /dev/null @@ -1,436 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: vorbis encode-engine setup - last mod: $Id$ - - ********************************************************************/ - -/** \file - * Libvorbisenc is a convenient API for setting up an encoding - * environment using libvorbis. Libvorbisenc encapsulates the - * actions needed to set up the encoder properly. - */ - -#ifndef _OV_ENC_H_ -#define _OV_ENC_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "codec.h" - -/** - * This is the primary function within libvorbisenc for setting up managed - * bitrate modes. - * - * Before this function is called, the \ref vorbis_info - * struct should be initialized by using vorbis_info_init() from the libvorbis - * API. After encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step bitrate-managed encode - * setup. It functions similarly to the one-step setup performed by \ref - * vorbis_encode_init but allows an application to make further encode setup - * tweaks using \ref vorbis_encode_ctl before finally calling \ref - * vorbis_encode_setup_init to complete the setup process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step variable bitrate - * (quality-based) encode setup. It functions similarly to the one-step setup - * performed by \ref vorbis_encode_init_vbr() but allows an application to - * make further encode setup tweaks using \ref vorbis_encode_ctl() before - * finally calling \ref vorbis_encode_setup_init to complete the setup - * process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using \ref vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_setup_vbr(vorbis_info *vi, - long channels, - long rate, - - float quality - ); - -/** - * This is the primary function within libvorbisenc for setting up variable - * bitrate ("quality" based) modes. - * - * - * Before this function is called, the vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * - * \return Zero for success, or a negative number for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_init_vbr(vorbis_info *vi, - long channels, - long rate, - - float base_quality - ); - -/** - * This function performs the last stage of three-step encoding setup, as - * described in the API overview under managed bitrate modes. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API, one of - * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to - * initialize the high-level encoding setup, and \ref vorbis_encode_ctl() - * called if necessary to make encoding setup changes. - * vorbis_encode_setup_init() finalizes the highlevel encoding structure into - * a complete encoding setup after which the application may make no further - * setup changes. - * - * After encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * - * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first - * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to - * initialize the high-level encoding setup - * - */ -extern int vorbis_encode_setup_init(vorbis_info *vi); - -/** - * This function implements a generic interface to miscellaneous encoder - * settings similar to the classic UNIX 'ioctl()' system call. Applications - * may use vorbis_encode_ctl() to query or set bitrate management or quality - * mode details by using one of several \e request arguments detailed below. - * vorbis_encode_ctl() must be called after one of - * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used - * to modify settings, \ref vorbis_encode_ctl() must be called before \ref - * vorbis_encode_setup_init(). - * - * \param vi Pointer to an initialized vorbis_info struct. - * - * \param number Specifies the desired action; See \ref encctlcodes "the list - * of available requests". - * - * \param arg void * pointing to a data structure matching the request - * argument. - * - * \retval 0 Success. Any further return information (such as the result of a - * query) is placed into the storage pointed to by *arg. - * - * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after - * calling vorbis_encode_setup_init(). - * - * \retval OV_EIMPL Unimplemented or unknown request - */ -extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); - -/** - * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl() - * with the \ref ovectl_ratemanage2_arg struct and \ref - * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code. - * - * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl() - * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref - * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. -*/ -struct ovectl_ratemanage_arg { - int management_active; /**< nonzero if bitrate management is active*/ -/** hard lower limit (in kilobits per second) below which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_min; -/** hard upper limit (in kilobits per second) above which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_max; -/** the window period (in seconds) used to regulate the hard bitrate minimum - and maximum*/ - double bitrate_hard_window; -/** soft lower limit (in kilobits per second) below which the average bitrate - tracker will start nudging the bitrate higher.*/ - long bitrate_av_lo; -/** soft upper limit (in kilobits per second) above which the average bitrate - tracker will start nudging the bitrate lower.*/ - long bitrate_av_hi; -/** the window period (in seconds) used to regulate the average bitrate - minimum and maximum.*/ - double bitrate_av_window; -/** Regulates the relative centering of the average and hard windows; in - libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but - followed the average window regulation. In libvorbis 1.1 a bit-reservoir - interface replaces the old windowing interface; the older windowing - interface is simulated and this field has no effect.*/ - double bitrate_av_window_center; -}; - -/** - * \name struct ovectl_ratemanage2_arg - * - * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and - * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. - * -*/ -struct ovectl_ratemanage2_arg { - int management_active; /**< nonzero if bitrate management is active */ -/** Lower allowed bitrate limit in kilobits per second */ - long bitrate_limit_min_kbps; -/** Upper allowed bitrate limit in kilobits per second */ - long bitrate_limit_max_kbps; - long bitrate_limit_reservoir_bits; /**struct ovectl_ratemanage2_arg * - * - * Used to query the current encoder bitrate management setting. Also used to - * initialize fields of an ovectl_ratemanage2_arg structure for use with - * \ref OV_ECTL_RATEMANAGE2_SET. - */ -#define OV_ECTL_RATEMANAGE2_GET 0x14 - -/** - * Set the current encoder bitrate management settings. - * - * Argument: struct ovectl_ratemanage2_arg * - * - * Used to set the current encoder bitrate management settings to the values - * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable - * bitrate management. -*/ -#define OV_ECTL_RATEMANAGE2_SET 0x15 - -/** - * Returns the current encoder hard-lowpass setting (kHz) in the double - * pointed to by arg. - * - * Argument: double * -*/ -#define OV_ECTL_LOWPASS_GET 0x20 - -/** - * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid - * lowpass settings range from 2 to 99. - * - * Argument: double * -*/ -#define OV_ECTL_LOWPASS_SET 0x21 - -/** - * Returns the current encoder impulse block setting in the double pointed - * to by arg. - * - * Argument: double * -*/ -#define OV_ECTL_IBLOCK_GET 0x30 - -/** - * Sets the impulse block bias to the the value pointed to by arg. - * - * Argument: double * - * - * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will - * direct to encoder to use more bits when incoding short blocks that contain - * strong impulses, thus improving the accuracy of impulse encoding. - */ -#define OV_ECTL_IBLOCK_SET 0x31 - -/** - * Returns the current encoder coupling setting in the int pointed - * to by arg. - * - * Argument: int * -*/ -#define OV_ECTL_COUPLING_GET 0x40 - -/** - * Enables/disables channel coupling in multichannel encoding according to arg. - * - * Argument: int * - * - * Zero disables channel coupling for multichannel inputs, nonzer enables - * channel coupling. Setting has no effect on monophonic encoding or - * multichannel counts that do not offer coupling. At present, coupling is - * available for stereo and 5.1 encoding. - */ -#define OV_ECTL_COUPLING_SET 0x41 - - /* deprecated rate management supported only for compatibility */ - -/** - * Old interface to querying bitrate management settings. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_GET 0x10 -/** - * Old interface to modifying bitrate management settings. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_SET 0x11 -/** - * Old interface to setting average-bitrate encoding mode. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_AVG 0x12 -/** - * Old interface to setting bounded-bitrate encoding modes. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_HARD 0x13 - -/*@}*/ - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif diff --git a/external/win10-specific/OggDecoder/include/vorbis/vorbisfile.h b/external/win10-specific/OggDecoder/include/vorbis/vorbisfile.h deleted file mode 100644 index de540cf..0000000 --- a/external/win10-specific/OggDecoder/include/vorbis/vorbisfile.h +++ /dev/null @@ -1,206 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id$ - - ********************************************************************/ - -#ifndef _OV_FILE_H_ -#define _OV_FILE_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include -#include "codec.h" - -/* The function prototypes for the callbacks are basically the same as for - * the stdio functions fread, fseek, fclose, ftell. - * The one difference is that the FILE * arguments have been replaced with - * a void * - this is to be used as a pointer to whatever internal data these - * functions might need. In the stdio case, it's just a FILE * cast to a void * - * - * If you use other functions, check the docs for these functions and return - * the right values. For seek_func(), you *MUST* return -1 if the stream is - * unseekable - */ -typedef struct { - size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); - int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); - int (*close_func) (void *datasource); - long (*tell_func) (void *datasource); -} ov_callbacks; - -#ifndef OV_EXCLUDE_STATIC_CALLBACKS - -/* a few sets of convenient callbacks, especially for use under - * Windows where ov_open_callbacks() should always be used instead of - * ov_open() to avoid problems with incompatible crt.o version linking - * issues. */ - -static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ - if(f==NULL)return(-1); - -#ifdef __MINGW32__ - return fseeko64(f,off,whence); -#elif defined (_WIN32) - return _fseeki64(f,off,whence); -#else - return fseek(f,off,whence); -#endif -} - -/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as - * static data. That means that every file which includes this header - * will get its own copy of these structs whether it uses them or - * not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS. - * These static symbols are essential on platforms such as Windows on - * which several different versions of stdio support may be linked to - * by different DLLs, and we need to be certain we know which one - * we're using (the same one as the main application). - */ - -static ov_callbacks OV_CALLBACKS_DEFAULT = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) fclose, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) NULL, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) fclose, - (long (*)(void *)) NULL -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) NULL, - (long (*)(void *)) NULL -}; - -#endif - -#define NOTOPEN 0 -#define PARTOPEN 1 -#define OPENED 2 -#define STREAMSET 3 -#define INITSET 4 - -typedef struct OggVorbis_File { - void *datasource; /* Pointer to a FILE *, etc. */ - int seekable; - ogg_int64_t offset; - ogg_int64_t end; - ogg_sync_state oy; - - /* If the FILE handle isn't seekable (eg, a pipe), only the current - stream appears */ - int links; - ogg_int64_t *offsets; - ogg_int64_t *dataoffsets; - long *serialnos; - ogg_int64_t *pcmlengths; /* overloaded to maintain binary - compatibility; x2 size, stores both - beginning and end values */ - vorbis_info *vi; - vorbis_comment *vc; - - /* Decoding working state local storage */ - ogg_int64_t pcm_offset; - int ready_state; - long current_serialno; - int current_link; - - double bittrack; - double samptrack; - - ogg_stream_state os; /* take physical pages, weld into a logical - stream of packets */ - vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ - vorbis_block vb; /* local working space for packet->PCM decode */ - - ov_callbacks callbacks; - -} OggVorbis_File; - - -extern int ov_clear(OggVorbis_File *vf); -extern int ov_fopen(const char *path,OggVorbis_File *vf); -extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); - -extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); -extern int ov_test_open(OggVorbis_File *vf); - -extern long ov_bitrate(OggVorbis_File *vf,int i); -extern long ov_bitrate_instant(OggVorbis_File *vf); -extern long ov_streams(OggVorbis_File *vf); -extern long ov_seekable(OggVorbis_File *vf); -extern long ov_serialnumber(OggVorbis_File *vf,int i); - -extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); -extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); -extern double ov_time_total(OggVorbis_File *vf,int i); - -extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page(OggVorbis_File *vf,double pos); - -extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek_lap(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos); - -extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); -extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); -extern double ov_time_tell(OggVorbis_File *vf); - -extern vorbis_info *ov_info(OggVorbis_File *vf,int link); -extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); - -extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, - int *bitstream); -extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream, - void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); -extern long ov_read(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream); -extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); - -extern int ov_halfrate(OggVorbis_File *vf,int flag); -extern int ov_halfrate_p(OggVorbis_File *vf); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/external/win10-specific/OggDecoder/prebuilt/arm/ogg.dll b/external/win10-specific/OggDecoder/prebuilt/arm/ogg.dll deleted file mode 100644 index 3a6bbc6..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/arm/ogg.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/arm/ogg.lib b/external/win10-specific/OggDecoder/prebuilt/arm/ogg.lib deleted file mode 100644 index 6115930..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/arm/ogg.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/arm/vorbis.dll b/external/win10-specific/OggDecoder/prebuilt/arm/vorbis.dll deleted file mode 100644 index c862aa9..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/arm/vorbis.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/arm/vorbis.lib b/external/win10-specific/OggDecoder/prebuilt/arm/vorbis.lib deleted file mode 100644 index 8b29344..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/arm/vorbis.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/arm/vorbisfile.dll b/external/win10-specific/OggDecoder/prebuilt/arm/vorbisfile.dll deleted file mode 100644 index f6b3367..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/arm/vorbisfile.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/arm/vorbisfile.lib b/external/win10-specific/OggDecoder/prebuilt/arm/vorbisfile.lib deleted file mode 100644 index cd912df..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/arm/vorbisfile.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/win32/ogg.dll b/external/win10-specific/OggDecoder/prebuilt/win32/ogg.dll deleted file mode 100644 index 3c2c816..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/win32/ogg.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/win32/ogg.lib b/external/win10-specific/OggDecoder/prebuilt/win32/ogg.lib deleted file mode 100644 index 6d69a00..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/win32/ogg.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/win32/vorbis.dll b/external/win10-specific/OggDecoder/prebuilt/win32/vorbis.dll deleted file mode 100644 index eddd25a..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/win32/vorbis.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/win32/vorbis.lib b/external/win10-specific/OggDecoder/prebuilt/win32/vorbis.lib deleted file mode 100644 index 96bebdb..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/win32/vorbis.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/win32/vorbisfile.dll b/external/win10-specific/OggDecoder/prebuilt/win32/vorbisfile.dll deleted file mode 100644 index 3bd583d..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/win32/vorbisfile.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/win32/vorbisfile.lib b/external/win10-specific/OggDecoder/prebuilt/win32/vorbisfile.lib deleted file mode 100644 index 31030b7..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/win32/vorbisfile.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/x64/ogg.dll b/external/win10-specific/OggDecoder/prebuilt/x64/ogg.dll deleted file mode 100644 index 3ca9840..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/x64/ogg.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/x64/ogg.lib b/external/win10-specific/OggDecoder/prebuilt/x64/ogg.lib deleted file mode 100644 index 599332c..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/x64/ogg.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/x64/vorbis.dll b/external/win10-specific/OggDecoder/prebuilt/x64/vorbis.dll deleted file mode 100644 index b9475ac..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/x64/vorbis.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/x64/vorbis.lib b/external/win10-specific/OggDecoder/prebuilt/x64/vorbis.lib deleted file mode 100644 index 8fa12d3..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/x64/vorbis.lib and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/x64/vorbisfile.dll b/external/win10-specific/OggDecoder/prebuilt/x64/vorbisfile.dll deleted file mode 100644 index ad2fd7b..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/x64/vorbisfile.dll and /dev/null differ diff --git a/external/win10-specific/OggDecoder/prebuilt/x64/vorbisfile.lib b/external/win10-specific/OggDecoder/prebuilt/x64/vorbisfile.lib deleted file mode 100644 index a4d261c..0000000 Binary files a/external/win10-specific/OggDecoder/prebuilt/x64/vorbisfile.lib and /dev/null differ diff --git a/external/win10-specific/angle/include/EGL/egl.h b/external/win10-specific/angle/include/EGL/egl.h deleted file mode 100644 index 9f9e021..0000000 --- a/external/win10-specific/angle/include/EGL/egl.h +++ /dev/null @@ -1,303 +0,0 @@ -#ifndef __egl_h_ -#define __egl_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $ -*/ - -#include - -/* Generated on date 20150623 */ - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_VERSION_1_0 -#define EGL_VERSION_1_0 1 -typedef unsigned int EGLBoolean; -typedef void *EGLDisplay; -#include -#include -typedef void *EGLConfig; -typedef void *EGLSurface; -typedef void *EGLContext; -typedef void (*__eglMustCastToProperFunctionPointerType)(void); -#define EGL_ALPHA_SIZE 0x3021 -#define EGL_BAD_ACCESS 0x3002 -#define EGL_BAD_ALLOC 0x3003 -#define EGL_BAD_ATTRIBUTE 0x3004 -#define EGL_BAD_CONFIG 0x3005 -#define EGL_BAD_CONTEXT 0x3006 -#define EGL_BAD_CURRENT_SURFACE 0x3007 -#define EGL_BAD_DISPLAY 0x3008 -#define EGL_BAD_MATCH 0x3009 -#define EGL_BAD_NATIVE_PIXMAP 0x300A -#define EGL_BAD_NATIVE_WINDOW 0x300B -#define EGL_BAD_PARAMETER 0x300C -#define EGL_BAD_SURFACE 0x300D -#define EGL_BLUE_SIZE 0x3022 -#define EGL_BUFFER_SIZE 0x3020 -#define EGL_CONFIG_CAVEAT 0x3027 -#define EGL_CONFIG_ID 0x3028 -#define EGL_CORE_NATIVE_ENGINE 0x305B -#define EGL_DEPTH_SIZE 0x3025 -#define EGL_DONT_CARE ((EGLint)-1) -#define EGL_DRAW 0x3059 -#define EGL_EXTENSIONS 0x3055 -#define EGL_FALSE 0 -#define EGL_GREEN_SIZE 0x3023 -#define EGL_HEIGHT 0x3056 -#define EGL_LARGEST_PBUFFER 0x3058 -#define EGL_LEVEL 0x3029 -#define EGL_MAX_PBUFFER_HEIGHT 0x302A -#define EGL_MAX_PBUFFER_PIXELS 0x302B -#define EGL_MAX_PBUFFER_WIDTH 0x302C -#define EGL_NATIVE_RENDERABLE 0x302D -#define EGL_NATIVE_VISUAL_ID 0x302E -#define EGL_NATIVE_VISUAL_TYPE 0x302F -#define EGL_NONE 0x3038 -#define EGL_NON_CONFORMANT_CONFIG 0x3051 -#define EGL_NOT_INITIALIZED 0x3001 -#define EGL_NO_CONTEXT ((EGLContext)0) -#define EGL_NO_DISPLAY ((EGLDisplay)0) -#define EGL_NO_SURFACE ((EGLSurface)0) -#define EGL_PBUFFER_BIT 0x0001 -#define EGL_PIXMAP_BIT 0x0002 -#define EGL_READ 0x305A -#define EGL_RED_SIZE 0x3024 -#define EGL_SAMPLES 0x3031 -#define EGL_SAMPLE_BUFFERS 0x3032 -#define EGL_SLOW_CONFIG 0x3050 -#define EGL_STENCIL_SIZE 0x3026 -#define EGL_SUCCESS 0x3000 -#define EGL_SURFACE_TYPE 0x3033 -#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 -#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 -#define EGL_TRANSPARENT_RED_VALUE 0x3037 -#define EGL_TRANSPARENT_RGB 0x3052 -#define EGL_TRANSPARENT_TYPE 0x3034 -#define EGL_TRUE 1 -#define EGL_VENDOR 0x3053 -#define EGL_VERSION 0x3054 -#define EGL_WIDTH 0x3057 -#define EGL_WINDOW_BIT 0x0004 -EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); -EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void); -EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw); -EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id); -EGLAPI EGLint EGLAPIENTRY eglGetError (void); -EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); -EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); -EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); -EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine); -#endif /* EGL_VERSION_1_0 */ - -#ifndef EGL_VERSION_1_1 -#define EGL_VERSION_1_1 1 -#define EGL_BACK_BUFFER 0x3084 -#define EGL_BIND_TO_TEXTURE_RGB 0x3039 -#define EGL_BIND_TO_TEXTURE_RGBA 0x303A -#define EGL_CONTEXT_LOST 0x300E -#define EGL_MIN_SWAP_INTERVAL 0x303B -#define EGL_MAX_SWAP_INTERVAL 0x303C -#define EGL_MIPMAP_TEXTURE 0x3082 -#define EGL_MIPMAP_LEVEL 0x3083 -#define EGL_NO_TEXTURE 0x305C -#define EGL_TEXTURE_2D 0x305F -#define EGL_TEXTURE_FORMAT 0x3080 -#define EGL_TEXTURE_RGB 0x305D -#define EGL_TEXTURE_RGBA 0x305E -#define EGL_TEXTURE_TARGET 0x3081 -EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval); -#endif /* EGL_VERSION_1_1 */ - -#ifndef EGL_VERSION_1_2 -#define EGL_VERSION_1_2 1 -typedef unsigned int EGLenum; -typedef void *EGLClientBuffer; -#define EGL_ALPHA_FORMAT 0x3088 -#define EGL_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_ALPHA_FORMAT_PRE 0x308C -#define EGL_ALPHA_MASK_SIZE 0x303E -#define EGL_BUFFER_PRESERVED 0x3094 -#define EGL_BUFFER_DESTROYED 0x3095 -#define EGL_CLIENT_APIS 0x308D -#define EGL_COLORSPACE 0x3087 -#define EGL_COLORSPACE_sRGB 0x3089 -#define EGL_COLORSPACE_LINEAR 0x308A -#define EGL_COLOR_BUFFER_TYPE 0x303F -#define EGL_CONTEXT_CLIENT_TYPE 0x3097 -#define EGL_DISPLAY_SCALING 10000 -#define EGL_HORIZONTAL_RESOLUTION 0x3090 -#define EGL_LUMINANCE_BUFFER 0x308F -#define EGL_LUMINANCE_SIZE 0x303D -#define EGL_OPENGL_ES_BIT 0x0001 -#define EGL_OPENVG_BIT 0x0002 -#define EGL_OPENGL_ES_API 0x30A0 -#define EGL_OPENVG_API 0x30A1 -#define EGL_OPENVG_IMAGE 0x3096 -#define EGL_PIXEL_ASPECT_RATIO 0x3092 -#define EGL_RENDERABLE_TYPE 0x3040 -#define EGL_RENDER_BUFFER 0x3086 -#define EGL_RGB_BUFFER 0x308E -#define EGL_SINGLE_BUFFER 0x3085 -#define EGL_SWAP_BEHAVIOR 0x3093 -#define EGL_UNKNOWN ((EGLint)-1) -#define EGL_VERTICAL_RESOLUTION 0x3091 -EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api); -EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void); -#endif /* EGL_VERSION_1_2 */ - -#ifndef EGL_VERSION_1_3 -#define EGL_VERSION_1_3 1 -#define EGL_CONFORMANT 0x3042 -#define EGL_CONTEXT_CLIENT_VERSION 0x3098 -#define EGL_MATCH_NATIVE_PIXMAP 0x3041 -#define EGL_OPENGL_ES2_BIT 0x0004 -#define EGL_VG_ALPHA_FORMAT 0x3088 -#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_VG_ALPHA_FORMAT_PRE 0x308C -#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 -#define EGL_VG_COLORSPACE 0x3087 -#define EGL_VG_COLORSPACE_sRGB 0x3089 -#define EGL_VG_COLORSPACE_LINEAR 0x308A -#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 -#endif /* EGL_VERSION_1_3 */ - -#ifndef EGL_VERSION_1_4 -#define EGL_VERSION_1_4 1 -#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) -#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 -#define EGL_MULTISAMPLE_RESOLVE 0x3099 -#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A -#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B -#define EGL_OPENGL_API 0x30A2 -#define EGL_OPENGL_BIT 0x0008 -#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 -EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void); -#endif /* EGL_VERSION_1_4 */ - -#ifndef EGL_VERSION_1_5 -#define EGL_VERSION_1_5 1 -typedef void *EGLSync; -typedef intptr_t EGLAttrib; -typedef khronos_utime_nanoseconds_t EGLTime; -typedef void *EGLImage; -#define EGL_CONTEXT_MAJOR_VERSION 0x3098 -#define EGL_CONTEXT_MINOR_VERSION 0x30FB -#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD -#define EGL_NO_RESET_NOTIFICATION 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 -#define EGL_OPENGL_ES3_BIT 0x00000040 -#define EGL_CL_EVENT_HANDLE 0x309C -#define EGL_SYNC_CL_EVENT 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 -#define EGL_SYNC_TYPE 0x30F7 -#define EGL_SYNC_STATUS 0x30F1 -#define EGL_SYNC_CONDITION 0x30F8 -#define EGL_SIGNALED 0x30F2 -#define EGL_UNSIGNALED 0x30F3 -#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 -#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull -#define EGL_TIMEOUT_EXPIRED 0x30F5 -#define EGL_CONDITION_SATISFIED 0x30F6 -#define EGL_NO_SYNC ((EGLSync)0) -#define EGL_SYNC_FENCE 0x30F9 -#define EGL_GL_COLORSPACE 0x309D -#define EGL_GL_COLORSPACE_SRGB 0x3089 -#define EGL_GL_COLORSPACE_LINEAR 0x308A -#define EGL_GL_RENDERBUFFER 0x30B9 -#define EGL_GL_TEXTURE_2D 0x30B1 -#define EGL_GL_TEXTURE_LEVEL 0x30BC -#define EGL_GL_TEXTURE_3D 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET 0x30BD -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 -#define EGL_IMAGE_PRESERVED 0x30D2 -#define EGL_NO_IMAGE ((EGLImage)0) -EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); -EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image); -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags); -#endif /* EGL_VERSION_1_5 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win10-specific/angle/include/EGL/eglext.h b/external/win10-specific/angle/include/EGL/eglext.h deleted file mode 100644 index ea56e59..0000000 --- a/external/win10-specific/angle/include/EGL/eglext.h +++ /dev/null @@ -1,1075 +0,0 @@ -#ifndef __eglext_h_ -#define __eglext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 32432 $ on $Date: 2016-02-09 23:01:07 -0800 (Tue, 09 Feb 2016) $ -*/ - -#include - -#define EGL_EGLEXT_VERSION 20160209 - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: _nomatch_^ - * Default extensions included: egl - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_KHR_cl_event -#define EGL_KHR_cl_event 1 -#define EGL_CL_EVENT_HANDLE_KHR 0x309C -#define EGL_SYNC_CL_EVENT_KHR 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF -#endif /* EGL_KHR_cl_event */ - -#ifndef EGL_KHR_cl_event2 -#define EGL_KHR_cl_event2 1 -typedef void *EGLSyncKHR; -typedef intptr_t EGLAttribKHR; -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#endif -#endif /* EGL_KHR_cl_event2 */ - -#ifndef EGL_KHR_client_get_all_proc_addresses -#define EGL_KHR_client_get_all_proc_addresses 1 -#endif /* EGL_KHR_client_get_all_proc_addresses */ - -#ifndef EGL_KHR_config_attribs -#define EGL_KHR_config_attribs 1 -#define EGL_CONFORMANT_KHR 0x3042 -#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 -#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 -#endif /* EGL_KHR_config_attribs */ - -#ifndef EGL_KHR_create_context -#define EGL_KHR_create_context 1 -#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 -#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB -#define EGL_CONTEXT_FLAGS_KHR 0x30FC -#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD -#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF -#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 -#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 -#endif /* EGL_KHR_create_context */ - -#ifndef EGL_KHR_create_context_no_error -#define EGL_KHR_create_context_no_error 1 -#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 -#endif /* EGL_KHR_create_context_no_error */ - -#ifndef EGL_KHR_debug -#define EGL_KHR_debug 1 -typedef void *EGLLabelKHR; -typedef void *EGLObjectKHR; -typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); -#define EGL_OBJECT_THREAD_KHR 0x33B0 -#define EGL_OBJECT_DISPLAY_KHR 0x33B1 -#define EGL_OBJECT_CONTEXT_KHR 0x33B2 -#define EGL_OBJECT_SURFACE_KHR 0x33B3 -#define EGL_OBJECT_IMAGE_KHR 0x33B4 -#define EGL_OBJECT_SYNC_KHR 0x33B5 -#define EGL_OBJECT_STREAM_KHR 0x33B6 -#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 -#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA -#define EGL_DEBUG_MSG_WARN_KHR 0x33BB -#define EGL_DEBUG_MSG_INFO_KHR 0x33BC -#define EGL_DEBUG_CALLBACK_KHR 0x33B8 -typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value); -typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value); -EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); -#endif -#endif /* EGL_KHR_debug */ - -#ifndef EGL_KHR_fence_sync -#define EGL_KHR_fence_sync 1 -typedef khronos_utime_nanoseconds_t EGLTimeKHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 -#define EGL_SYNC_CONDITION_KHR 0x30F8 -#define EGL_SYNC_FENCE_KHR 0x30F9 -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_fence_sync */ - -#ifndef EGL_KHR_get_all_proc_addresses -#define EGL_KHR_get_all_proc_addresses 1 -#endif /* EGL_KHR_get_all_proc_addresses */ - -#ifndef EGL_KHR_gl_colorspace -#define EGL_KHR_gl_colorspace 1 -#define EGL_GL_COLORSPACE_KHR 0x309D -#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 -#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A -#endif /* EGL_KHR_gl_colorspace */ - -#ifndef EGL_KHR_gl_renderbuffer_image -#define EGL_KHR_gl_renderbuffer_image 1 -#define EGL_GL_RENDERBUFFER_KHR 0x30B9 -#endif /* EGL_KHR_gl_renderbuffer_image */ - -#ifndef EGL_KHR_gl_texture_2D_image -#define EGL_KHR_gl_texture_2D_image 1 -#define EGL_GL_TEXTURE_2D_KHR 0x30B1 -#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC -#endif /* EGL_KHR_gl_texture_2D_image */ - -#ifndef EGL_KHR_gl_texture_3D_image -#define EGL_KHR_gl_texture_3D_image 1 -#define EGL_GL_TEXTURE_3D_KHR 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD -#endif /* EGL_KHR_gl_texture_3D_image */ - -#ifndef EGL_KHR_gl_texture_cubemap_image -#define EGL_KHR_gl_texture_cubemap_image 1 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 -#endif /* EGL_KHR_gl_texture_cubemap_image */ - -#ifndef EGL_KHR_image -#define EGL_KHR_image 1 -typedef void *EGLImageKHR; -#define EGL_NATIVE_PIXMAP_KHR 0x30B0 -#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); -#endif -#endif /* EGL_KHR_image */ - -#ifndef EGL_KHR_image_base -#define EGL_KHR_image_base 1 -#define EGL_IMAGE_PRESERVED_KHR 0x30D2 -#endif /* EGL_KHR_image_base */ - -#ifndef EGL_KHR_image_pixmap -#define EGL_KHR_image_pixmap 1 -#endif /* EGL_KHR_image_pixmap */ - -#ifndef EGL_KHR_lock_surface -#define EGL_KHR_lock_surface 1 -#define EGL_READ_SURFACE_BIT_KHR 0x0001 -#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 -#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 -#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 -#define EGL_MATCH_FORMAT_KHR 0x3043 -#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 -#define EGL_FORMAT_RGB_565_KHR 0x30C1 -#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 -#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 -#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 -#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 -#define EGL_BITMAP_POINTER_KHR 0x30C6 -#define EGL_BITMAP_PITCH_KHR 0x30C7 -#define EGL_BITMAP_ORIGIN_KHR 0x30C8 -#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 -#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA -#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB -#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC -#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD -#define EGL_LOWER_LEFT_KHR 0x30CE -#define EGL_UPPER_LEFT_KHR 0x30CF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); -#endif -#endif /* EGL_KHR_lock_surface */ - -#ifndef EGL_KHR_lock_surface2 -#define EGL_KHR_lock_surface2 1 -#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 -#endif /* EGL_KHR_lock_surface2 */ - -#ifndef EGL_KHR_lock_surface3 -#define EGL_KHR_lock_surface3 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#endif -#endif /* EGL_KHR_lock_surface3 */ - -#ifndef EGL_KHR_partial_update -#define EGL_KHR_partial_update 1 -#define EGL_BUFFER_AGE_KHR 0x313D -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_partial_update */ - -#ifndef EGL_KHR_platform_android -#define EGL_KHR_platform_android 1 -#define EGL_PLATFORM_ANDROID_KHR 0x3141 -#endif /* EGL_KHR_platform_android */ - -#ifndef EGL_KHR_platform_gbm -#define EGL_KHR_platform_gbm 1 -#define EGL_PLATFORM_GBM_KHR 0x31D7 -#endif /* EGL_KHR_platform_gbm */ - -#ifndef EGL_KHR_platform_wayland -#define EGL_KHR_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 -#endif /* EGL_KHR_platform_wayland */ - -#ifndef EGL_KHR_platform_x11 -#define EGL_KHR_platform_x11 1 -#define EGL_PLATFORM_X11_KHR 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 -#endif /* EGL_KHR_platform_x11 */ - -#ifndef EGL_KHR_reusable_sync -#define EGL_KHR_reusable_sync 1 -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_STATUS_KHR 0x30F1 -#define EGL_SIGNALED_KHR 0x30F2 -#define EGL_UNSIGNALED_KHR 0x30F3 -#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 -#define EGL_CONDITION_SATISFIED_KHR 0x30F6 -#define EGL_SYNC_TYPE_KHR 0x30F7 -#define EGL_SYNC_REUSABLE_KHR 0x30FA -#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 -#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull -#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0) -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_reusable_sync */ - -#ifndef EGL_KHR_stream -#define EGL_KHR_stream 1 -typedef void *EGLStreamKHR; -typedef khronos_uint64_t EGLuint64KHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_NO_STREAM_KHR ((EGLStreamKHR)0) -#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 -#define EGL_PRODUCER_FRAME_KHR 0x3212 -#define EGL_CONSUMER_FRAME_KHR 0x3213 -#define EGL_STREAM_STATE_KHR 0x3214 -#define EGL_STREAM_STATE_CREATED_KHR 0x3215 -#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 -#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 -#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 -#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 -#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A -#define EGL_BAD_STREAM_KHR 0x321B -#define EGL_BAD_STATE_KHR 0x321C -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_stream */ - -#ifndef EGL_KHR_stream_consumer_gltexture -#define EGL_KHR_stream_consumer_gltexture 1 -#ifdef EGL_KHR_stream -#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_consumer_gltexture */ - -#ifndef EGL_KHR_stream_cross_process_fd -#define EGL_KHR_stream_cross_process_fd 1 -typedef int EGLNativeFileDescriptorKHR; -#ifdef EGL_KHR_stream -#define EGL_NO_FILE_DESCRIPTOR_KHR ((EGLNativeFileDescriptorKHR)(-1)) -typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_cross_process_fd */ - -#ifndef EGL_KHR_stream_fifo -#define EGL_KHR_stream_fifo 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC -#define EGL_STREAM_TIME_NOW_KHR 0x31FD -#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE -#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_fifo */ - -#ifndef EGL_KHR_stream_producer_aldatalocator -#define EGL_KHR_stream_producer_aldatalocator 1 -#ifdef EGL_KHR_stream -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_aldatalocator */ - -#ifndef EGL_KHR_stream_producer_eglsurface -#define EGL_KHR_stream_producer_eglsurface 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_BIT_KHR 0x0800 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_eglsurface */ - -#ifndef EGL_KHR_surfaceless_context -#define EGL_KHR_surfaceless_context 1 -#endif /* EGL_KHR_surfaceless_context */ - -#ifndef EGL_KHR_swap_buffers_with_damage -#define EGL_KHR_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_swap_buffers_with_damage */ - -#ifndef EGL_KHR_vg_parent_image -#define EGL_KHR_vg_parent_image 1 -#define EGL_VG_PARENT_IMAGE_KHR 0x30BA -#endif /* EGL_KHR_vg_parent_image */ - -#ifndef EGL_KHR_wait_sync -#define EGL_KHR_wait_sync 1 -typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#endif -#endif /* EGL_KHR_wait_sync */ - -#ifndef EGL_ANDROID_blob_cache -#define EGL_ANDROID_blob_cache 1 -typedef khronos_ssize_t EGLsizeiANDROID; -typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); -typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); -typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#endif -#endif /* EGL_ANDROID_blob_cache */ - -#ifndef EGL_ANDROID_framebuffer_target -#define EGL_ANDROID_framebuffer_target 1 -#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 -#endif /* EGL_ANDROID_framebuffer_target */ - -#ifndef EGL_ANDROID_image_native_buffer -#define EGL_ANDROID_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_ANDROID 0x3140 -#endif /* EGL_ANDROID_image_native_buffer */ - -#ifndef EGL_ANDROID_native_fence_sync -#define EGL_ANDROID_native_fence_sync 1 -#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 -#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 -#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 -#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 -typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); -#endif -#endif /* EGL_ANDROID_native_fence_sync */ - -#ifndef EGL_ANDROID_recordable -#define EGL_ANDROID_recordable 1 -#define EGL_RECORDABLE_ANDROID 0x3142 -#endif /* EGL_ANDROID_recordable */ - -#ifndef EGL_ANGLE_d3d_share_handle_client_buffer -#define EGL_ANGLE_d3d_share_handle_client_buffer 1 -#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 -#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ - -#ifndef EGL_ANGLE_device_d3d -#define EGL_ANGLE_device_d3d 1 -#define EGL_D3D9_DEVICE_ANGLE 0x33A0 -#define EGL_D3D11_DEVICE_ANGLE 0x33A1 -#endif /* EGL_ANGLE_device_d3d */ - -#ifndef EGL_ANGLE_keyed_mutex -#define EGL_ANGLE_keyed_mutex 1 -#define EGL_DXGI_KEYED_MUTEX_ANGLE 0x33A2 -#endif /* EGL_ANGLE_keyed_mutex */ - -#ifndef EGL_ANGLE_d3d_texture_client_buffer -#define EGL_ANGLE_d3d_texture_client_buffer 1 -#define EGL_D3D_TEXTURE_ANGLE 0x33A3 -#endif /* EGL_ANGLE_d3d_texture_client_buffer */ - -#ifndef EGL_ANGLE_query_surface_pointer -#define EGL_ANGLE_query_surface_pointer 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#endif -#endif /* EGL_ANGLE_query_surface_pointer */ - -#ifndef EGL_ANGLE_software_display -#define EGL_ANGLE_software_display 1 -#define EGL_SOFTWARE_DISPLAY_ANGLE ((EGLNativeDisplayType)-1) -#endif /* EGL_ANGLE_software_display */ - -#ifndef EGL_ANGLE_direct3d_display -#define EGL_ANGLE_direct3d_display 1 -#define EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ((EGLNativeDisplayType)-2) -#define EGL_D3D11_ONLY_DISPLAY_ANGLE ((EGLNativeDisplayType)-3) -#endif /* EGL_ANGLE_direct3d_display */ - -#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle -#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 -#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ - -#ifndef EGL_ANGLE_surface_d3d_render_to_back_buffer -#define EGL_ANGLE_surface_d3d_render_to_back_buffer 1 -#define EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER 0x320B -#define EGL_ANGLE_SURFACE_RENDER_TO_BACK_BUFFER 0x320C -#endif /* EGL_ANGLE_surface_d3d_render_to_back_buffer */ - -#ifndef EGL_ANGLE_direct_composition -#define EGL_ANGLE_direct_composition 1 -#define EGL_DIRECT_COMPOSITION_ANGLE 0x33A5 -#endif /* EGL_ANGLE_direct_composition */ - -#ifndef EGL_ANGLE_platform_angle -#define EGL_ANGLE_platform_angle 1 -#define EGL_PLATFORM_ANGLE_ANGLE 0x3202 -#define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203 -#define EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE 0x3204 -#define EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE 0x3205 -#define EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE 0x3206 -#endif /* EGL_ANGLE_platform_angle */ - -#ifndef EGL_ANGLE_platform_angle_d3d -#define EGL_ANGLE_platform_angle_d3d 1 -#define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207 -#define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208 -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209 -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE 0x320A -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE 0x320B -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE 0x320C -#define EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE 0x320F -#endif /* EGL_ANGLE_platform_angle_d3d */ - -#ifndef EGL_ANGLE_platform_angle_opengl -#define EGL_ANGLE_platform_angle_opengl 1 -#define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D -#define EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE 0x320E -#endif /* EGL_ANGLE_platform_angle_opengl */ - -#ifndef EGL_ANGLE_platform_angle_null -#define EGL_ANGLE_platform_angle_null 1 -#define EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE 0x33AE -#endif /* EGL_ANGLE_platform_angle_null */ - -#ifndef EGL_ANGLE_window_fixed_size -#define EGL_ANGLE_window_fixed_size 1 -#define EGL_FIXED_SIZE_ANGLE 0x3201 -#endif /* EGL_ANGLE_window_fixed_size */ - -#ifndef EGL_ANGLE_x11_visual -#define EGL_ANGLE_x11_visual -#define EGL_X11_VISUAL_ID_ANGLE 0x33A3 -#endif /* EGL_ANGLE_x11_visual */ - -#ifndef EGL_ANGLE_flexible_surface_compatibility -#define EGL_ANGLE_flexible_surface_compatibility 1 -#define EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 0x33A6 -#endif /* EGL_ANGLE_flexible_surface_compatibility */ - -#ifndef EGL_ANGLE_surface_orientation -#define EGL_ANGLE_surface_orientation -#define EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7 -#define EGL_SURFACE_ORIENTATION_ANGLE 0x33A8 -#define EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001 -#define EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE 0x0002 -#endif /* EGL_ANGLE_surface_orientation */ - -#ifndef EGL_ANGLE_experimental_present_path -#define EGL_ANGLE_experimental_present_path -#define EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE 0x33A4 -#define EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE 0x33A9 -#define EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE 0x33AA -#endif /* EGL_ANGLE_experimental_present_path */ - -#ifndef EGL_ANGLE_stream_producer_d3d_texture_nv12 -#define EGL_ANGLE_stream_producer_d3d_texture_nv12 -#define EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE 0x33AB -typedef EGLBoolean(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERD3DTEXTURENV12ANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMPOSTD3DTEXTURENV12ANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglCreateStreamProducerD3DTextureNV12ANGLE(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamPostD3DTextureNV12ANGLE(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_ANGLE_stream_producer_d3d_texture_nv12 */ - -#ifndef EGL_ANGLE_create_context_webgl_compatibility -#define EGL_ANGLE_create_context_webgl_compatibility 1 -#define EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x3AAC -#endif /* EGL_ANGLE_create_context_webgl_compatibility */ - -#ifndef EGL_CHROMIUM_create_context_bind_generates_resource -#define EGL_CHROMIUM_create_context_bind_generates_resource 1 -#define EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM 0x3AAD -#endif /* EGL_CHROMIUM_create_context_bind_generates_resource */ - -#ifndef EGL_ARM_pixmap_multisample_discard -#define EGL_ARM_pixmap_multisample_discard 1 -#define EGL_DISCARD_SAMPLES_ARM 0x3286 -#endif /* EGL_ARM_pixmap_multisample_discard */ - -#ifndef EGL_EXT_buffer_age -#define EGL_EXT_buffer_age 1 -#define EGL_BUFFER_AGE_EXT 0x313D -#endif /* EGL_EXT_buffer_age */ - -#ifndef EGL_EXT_client_extensions -#define EGL_EXT_client_extensions 1 -#endif /* EGL_EXT_client_extensions */ - -#ifndef EGL_EXT_create_context_robustness -#define EGL_EXT_create_context_robustness 1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 -#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF -#endif /* EGL_EXT_create_context_robustness */ - -#ifndef EGL_EXT_device_base -#define EGL_EXT_device_base 1 -typedef void *EGLDeviceEXT; -#define EGL_NO_DEVICE_EXT ((EGLDeviceEXT)(0)) -#define EGL_BAD_DEVICE_EXT 0x322B -#define EGL_DEVICE_EXT 0x322C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#endif -#endif /* EGL_EXT_device_base */ - -#ifndef EGL_ANGLE_device_creation -#define EGL_ANGLE_device_creation 1 -typedef EGLDeviceEXT (EGLAPIENTRYP PFNEGLCREATEDEVICEANGLEPROC) (EGLint device_type, void *native_device, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASEDEVICEANGLEPROC) (EGLDeviceEXT device); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE (EGLint device_type, void *native_device, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE (EGLDeviceEXT device); -#endif -#endif /* EGL_ANGLE_device_creation */ - -#ifndef EGL_EXT_device_drm -#define EGL_EXT_device_drm 1 -#define EGL_DRM_DEVICE_FILE_EXT 0x3233 -#endif /* EGL_EXT_device_drm */ - -#ifndef EGL_EXT_device_enumeration -#define EGL_EXT_device_enumeration 1 -#endif /* EGL_EXT_device_enumeration */ - -#ifndef EGL_EXT_device_openwf -#define EGL_EXT_device_openwf 1 -#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 -#endif /* EGL_EXT_device_openwf */ - -#ifndef EGL_EXT_device_query -#define EGL_EXT_device_query 1 -#endif /* EGL_EXT_device_query */ - -#ifndef EGL_EXT_image_dma_buf_import -#define EGL_EXT_image_dma_buf_import 1 -#define EGL_LINUX_DMA_BUF_EXT 0x3270 -#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 -#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 -#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 -#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 -#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 -#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 -#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 -#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 -#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 -#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A -#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B -#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C -#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D -#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E -#define EGL_ITU_REC601_EXT 0x327F -#define EGL_ITU_REC709_EXT 0x3280 -#define EGL_ITU_REC2020_EXT 0x3281 -#define EGL_YUV_FULL_RANGE_EXT 0x3282 -#define EGL_YUV_NARROW_RANGE_EXT 0x3283 -#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 -#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 -#endif /* EGL_EXT_image_dma_buf_import */ - -#ifndef EGL_EXT_multiview_window -#define EGL_EXT_multiview_window 1 -#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 -#endif /* EGL_EXT_multiview_window */ - -#ifndef EGL_EXT_output_base -#define EGL_EXT_output_base 1 -typedef void *EGLOutputLayerEXT; -typedef void *EGLOutputPortEXT; -#define EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0) -#define EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0) -#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D -#define EGL_BAD_OUTPUT_PORT_EXT 0x322E -#define EGL_SWAP_INTERVAL_EXT 0x322F -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#endif -#endif /* EGL_EXT_output_base */ - -#ifndef EGL_EXT_output_drm -#define EGL_EXT_output_drm 1 -#define EGL_DRM_CRTC_EXT 0x3234 -#define EGL_DRM_PLANE_EXT 0x3235 -#define EGL_DRM_CONNECTOR_EXT 0x3236 -#endif /* EGL_EXT_output_drm */ - -#ifndef EGL_EXT_output_openwf -#define EGL_EXT_output_openwf 1 -#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 -#define EGL_OPENWF_PORT_ID_EXT 0x3239 -#endif /* EGL_EXT_output_openwf */ - -#ifndef EGL_EXT_platform_base -#define EGL_EXT_platform_base 1 -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#endif -#endif /* EGL_EXT_platform_base */ - -#ifndef EGL_EXT_platform_device -#define EGL_EXT_platform_device 1 -#define EGL_PLATFORM_DEVICE_EXT 0x313F -#endif /* EGL_EXT_platform_device */ - -#ifndef EGL_EXT_platform_wayland -#define EGL_EXT_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 -#endif /* EGL_EXT_platform_wayland */ - -#ifndef EGL_EXT_platform_x11 -#define EGL_EXT_platform_x11 1 -#define EGL_PLATFORM_X11_EXT 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 -#endif /* EGL_EXT_platform_x11 */ - -#ifndef EGL_EXT_protected_surface -#define EGL_EXT_protected_surface 1 -#define EGL_PROTECTED_CONTENT_EXT 0x32C0 -#endif /* EGL_EXT_protected_surface */ - -#ifndef EGL_EXT_stream_consumer_egloutput -#define EGL_EXT_stream_consumer_egloutput 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#endif -#endif /* EGL_EXT_stream_consumer_egloutput */ - -#ifndef EGL_EXT_swap_buffers_with_damage -#define EGL_EXT_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_EXT_swap_buffers_with_damage */ - -#ifndef EGL_EXT_yuv_surface -#define EGL_EXT_yuv_surface 1 -#define EGL_YUV_ORDER_EXT 0x3301 -#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 -#define EGL_YUV_SUBSAMPLE_EXT 0x3312 -#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 -#define EGL_YUV_CSC_STANDARD_EXT 0x330A -#define EGL_YUV_PLANE_BPP_EXT 0x331A -#define EGL_YUV_BUFFER_EXT 0x3300 -#define EGL_YUV_ORDER_YUV_EXT 0x3302 -#define EGL_YUV_ORDER_YVU_EXT 0x3303 -#define EGL_YUV_ORDER_YUYV_EXT 0x3304 -#define EGL_YUV_ORDER_UYVY_EXT 0x3305 -#define EGL_YUV_ORDER_YVYU_EXT 0x3306 -#define EGL_YUV_ORDER_VYUY_EXT 0x3307 -#define EGL_YUV_ORDER_AYUV_EXT 0x3308 -#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 -#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 -#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 -#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 -#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 -#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B -#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C -#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D -#define EGL_YUV_PLANE_BPP_0_EXT 0x331B -#define EGL_YUV_PLANE_BPP_8_EXT 0x331C -#define EGL_YUV_PLANE_BPP_10_EXT 0x331D -#endif /* EGL_EXT_yuv_surface */ - -#ifndef EGL_HI_clientpixmap -#define EGL_HI_clientpixmap 1 -struct EGLClientPixmapHI { - void *pData; - EGLint iWidth; - EGLint iHeight; - EGLint iStride; -}; -#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#endif -#endif /* EGL_HI_clientpixmap */ - -#ifndef EGL_HI_colorformats -#define EGL_HI_colorformats 1 -#define EGL_COLOR_FORMAT_HI 0x8F70 -#define EGL_COLOR_RGB_HI 0x8F71 -#define EGL_COLOR_RGBA_HI 0x8F72 -#define EGL_COLOR_ARGB_HI 0x8F73 -#endif /* EGL_HI_colorformats */ - -#ifndef EGL_IMG_context_priority -#define EGL_IMG_context_priority 1 -#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 -#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 -#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 -#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 -#endif /* EGL_IMG_context_priority */ - -#ifndef EGL_IMG_image_plane_attribs -#define EGL_IMG_image_plane_attribs 1 -#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 -#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 -#endif /* EGL_IMG_image_plane_attribs */ - -#ifndef EGL_MESA_drm_image -#define EGL_MESA_drm_image 1 -#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 -#define EGL_DRM_BUFFER_USE_MESA 0x31D1 -#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 -#define EGL_DRM_BUFFER_MESA 0x31D3 -#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 -#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 -#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#endif -#endif /* EGL_MESA_drm_image */ - -#ifndef EGL_MESA_image_dma_buf_export -#define EGL_MESA_image_dma_buf_export 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#endif -#endif /* EGL_MESA_image_dma_buf_export */ - -#ifndef EGL_MESA_platform_gbm -#define EGL_MESA_platform_gbm 1 -#define EGL_PLATFORM_GBM_MESA 0x31D7 -#endif /* EGL_MESA_platform_gbm */ - -#ifndef EGL_NOK_swap_region -#define EGL_NOK_swap_region 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region */ - -#ifndef EGL_NOK_swap_region2 -#define EGL_NOK_swap_region2 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region2 */ - -#ifndef EGL_NOK_texture_from_pixmap -#define EGL_NOK_texture_from_pixmap 1 -#define EGL_Y_INVERTED_NOK 0x307F -#endif /* EGL_NOK_texture_from_pixmap */ - -#ifndef EGL_NV_3dvision_surface -#define EGL_NV_3dvision_surface 1 -#define EGL_AUTO_STEREO_NV 0x3136 -#endif /* EGL_NV_3dvision_surface */ - -#ifndef EGL_NV_coverage_sample -#define EGL_NV_coverage_sample 1 -#define EGL_COVERAGE_BUFFERS_NV 0x30E0 -#define EGL_COVERAGE_SAMPLES_NV 0x30E1 -#endif /* EGL_NV_coverage_sample */ - -#ifndef EGL_NV_coverage_sample_resolve -#define EGL_NV_coverage_sample_resolve 1 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 -#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 -#endif /* EGL_NV_coverage_sample_resolve */ - -#ifndef EGL_NV_cuda_event -#define EGL_NV_cuda_event 1 -#define EGL_CUDA_EVENT_HANDLE_NV 0x323B -#define EGL_SYNC_CUDA_EVENT_NV 0x323C -#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D -#endif /* EGL_NV_cuda_event */ - -#ifndef EGL_NV_depth_nonlinear -#define EGL_NV_depth_nonlinear 1 -#define EGL_DEPTH_ENCODING_NV 0x30E2 -#define EGL_DEPTH_ENCODING_NONE_NV 0 -#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 -#endif /* EGL_NV_depth_nonlinear */ - -#ifndef EGL_NV_device_cuda -#define EGL_NV_device_cuda 1 -#define EGL_CUDA_DEVICE_NV 0x323A -#endif /* EGL_NV_device_cuda */ - -#ifndef EGL_NV_native_query -#define EGL_NV_native_query 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#endif -#endif /* EGL_NV_native_query */ - -#ifndef EGL_NV_post_convert_rounding -#define EGL_NV_post_convert_rounding 1 -#endif /* EGL_NV_post_convert_rounding */ - -#ifndef EGL_NV_post_sub_buffer -#define EGL_NV_post_sub_buffer 1 -#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE -typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#endif -#endif /* EGL_NV_post_sub_buffer */ - -#ifndef EGL_NV_stream_consumer_gltexture_yuv -#define EGL_NV_stream_consumer_gltexture_yuv 1 -#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C -#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D -#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list); -#endif -#endif /* EGL_NV_stream_consumer_gltexture_yuv */ - -#ifndef EGL_NV_stream_metadata -#define EGL_NV_stream_metadata 1 -#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 -#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 -#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 -#define EGL_PRODUCER_METADATA_NV 0x3253 -#define EGL_CONSUMER_METADATA_NV 0x3254 -#define EGL_PENDING_METADATA_NV 0x3328 -#define EGL_METADATA0_SIZE_NV 0x3255 -#define EGL_METADATA1_SIZE_NV 0x3256 -#define EGL_METADATA2_SIZE_NV 0x3257 -#define EGL_METADATA3_SIZE_NV 0x3258 -#define EGL_METADATA0_TYPE_NV 0x3259 -#define EGL_METADATA1_TYPE_NV 0x325A -#define EGL_METADATA2_TYPE_NV 0x325B -#define EGL_METADATA3_TYPE_NV 0x325C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); -#endif -#endif /* EGL_NV_stream_metadata */ - -#ifndef EGL_NV_stream_sync -#define EGL_NV_stream_sync 1 -#define EGL_SYNC_NEW_FRAME_NV 0x321F -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#endif -#endif /* EGL_NV_stream_sync */ - -#ifndef EGL_NV_sync -#define EGL_NV_sync 1 -typedef void *EGLSyncNV; -typedef khronos_utime_nanoseconds_t EGLTimeNV; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 -#define EGL_SYNC_STATUS_NV 0x30E7 -#define EGL_SIGNALED_NV 0x30E8 -#define EGL_UNSIGNALED_NV 0x30E9 -#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 -#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull -#define EGL_ALREADY_SIGNALED_NV 0x30EA -#define EGL_TIMEOUT_EXPIRED_NV 0x30EB -#define EGL_CONDITION_SATISFIED_NV 0x30EC -#define EGL_SYNC_TYPE_NV 0x30ED -#define EGL_SYNC_CONDITION_NV 0x30EE -#define EGL_SYNC_FENCE_NV 0x30EF -#define EGL_NO_SYNC_NV ((EGLSyncNV)0) -typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); -EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_sync */ - -#ifndef EGL_NV_system_time -#define EGL_NV_system_time 1 -typedef khronos_utime_nanoseconds_t EGLuint64NV; -#ifdef KHRONOS_SUPPORT_INT64 -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_system_time */ - -#ifndef EGL_TIZEN_image_native_buffer -#define EGL_TIZEN_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 -#endif /* EGL_TIZEN_image_native_buffer */ - -#ifndef EGL_TIZEN_image_native_surface -#define EGL_TIZEN_image_native_surface 1 -#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 -#endif /* EGL_TIZEN_image_native_surface */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win10-specific/angle/include/EGL/eglplatform.h b/external/win10-specific/angle/include/EGL/eglplatform.h deleted file mode 100644 index 6d550da..0000000 --- a/external/win10-specific/angle/include/EGL/eglplatform.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef __eglplatform_h_ -#define __eglplatform_h_ - -/* -** Copyright (c) 2007-2013 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Platform-specific types and definitions for egl.h - * $Revision: 30994 $ on $Date: 2015-04-30 13:36:48 -0700 (Thu, 30 Apr 2015) $ - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * You are encouraged to submit all modifications to the Khronos group so that - * they can be included in future versions of this file. Please submit changes - * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) - * by filing a bug against product "EGL" component "Registry". - */ - -#include - -/* Macros used in EGL function prototype declarations. - * - * EGL functions should be prototyped as: - * - * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); - * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); - * - * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h - */ - -#ifndef EGLAPI -#define EGLAPI KHRONOS_APICALL -#endif - -#ifndef EGLAPIENTRY -#define EGLAPIENTRY KHRONOS_APIENTRY -#endif -#define EGLAPIENTRYP EGLAPIENTRY* - -/* The types NativeDisplayType, NativeWindowType, and NativePixmapType - * are aliases of window-system-dependent types, such as X Display * or - * Windows Device Context. They must be defined in platform-specific - * code below. The EGL-prefixed versions of Native*Type are the same - * types, renamed in EGL 1.3 so all types in the API start with "EGL". - * - * Khronos STRONGLY RECOMMENDS that you use the default definitions - * provided below, since these changes affect both binary and source - * portability of applications using EGL running on different EGL - * implementations. - */ - -#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include - -typedef HDC EGLNativeDisplayType; -typedef HBITMAP EGLNativePixmapType; - -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) /* Windows Desktop */ -typedef HWND EGLNativeWindowType; -#else /* Windows Store */ -#include -typedef IInspectable* EGLNativeWindowType; -#endif - -#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ - -typedef int EGLNativeDisplayType; -typedef void *EGLNativeWindowType; -typedef void *EGLNativePixmapType; - -#elif defined(__ANDROID__) || defined(ANDROID) - -#include - -struct egl_native_pixmap_t; - -typedef struct ANativeWindow* EGLNativeWindowType; -typedef struct egl_native_pixmap_t* EGLNativePixmapType; -typedef void* EGLNativeDisplayType; - -#elif defined(USE_OZONE) - -typedef intptr_t EGLNativeDisplayType; -typedef intptr_t EGLNativeWindowType; -typedef intptr_t EGLNativePixmapType; - -#elif defined(__unix__) - -/* X11 (tentative) */ -#include -#include - -typedef Display *EGLNativeDisplayType; -typedef Pixmap EGLNativePixmapType; -typedef Window EGLNativeWindowType; - -#elif defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) ) - -#if defined(__OBJC__) -@class CALayer; -#else -class CALayer; -#endif - -typedef void *EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef CALayer *EGLNativeWindowType; - -#else -#error "Platform not recognized" -#endif - -/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ -typedef EGLNativeDisplayType NativeDisplayType; -typedef EGLNativePixmapType NativePixmapType; -typedef EGLNativeWindowType NativeWindowType; - - -/* Define EGLint. This must be a signed integral type large enough to contain - * all legal attribute names and values passed into and out of EGL, whether - * their type is boolean, bitmask, enumerant (symbolic constant), integer, - * handle, or other. While in general a 32-bit integer will suffice, if - * handles are 64 bit types, then EGLint should be defined as a signed 64-bit - * integer type. - */ -typedef khronos_int32_t EGLint; - -#endif /* __eglplatform_h */ diff --git a/external/win10-specific/angle/include/GLES2/gl2.h b/external/win10-specific/angle/include/GLES2/gl2.h deleted file mode 100644 index 027e1f7..0000000 --- a/external/win10-specific/angle/include/GLES2/gl2.h +++ /dev/null @@ -1,673 +0,0 @@ -#ifndef __gl2_h_ -#define __gl2_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 31811 $ on $Date: 2015-08-10 00:01:11 -0700 (Mon, 10 Aug 2015) $ -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20150809 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef short GLshort; -typedef unsigned short GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win10-specific/angle/include/GLES2/gl2ext.h b/external/win10-specific/angle/include/GLES2/gl2ext.h deleted file mode 100644 index 34fa337..0000000 --- a/external/win10-specific/angle/include/GLES2/gl2ext.h +++ /dev/null @@ -1,3390 +0,0 @@ -#ifndef __gl2ext_h_ -#define __gl2ext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 31902 $ on $Date: 2015-09-03 15:44:53 -0700 (Thu, 03 Sep 2015) $ -*/ - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20150903 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9] - * Versions emitted: _nomatch_^ - * Default extensions included: gles2 - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_KHR_blend_equation_advanced -#define GL_KHR_blend_equation_advanced 1 -#define GL_MULTIPLY_KHR 0x9294 -#define GL_SCREEN_KHR 0x9295 -#define GL_OVERLAY_KHR 0x9296 -#define GL_DARKEN_KHR 0x9297 -#define GL_LIGHTEN_KHR 0x9298 -#define GL_COLORDODGE_KHR 0x9299 -#define GL_COLORBURN_KHR 0x929A -#define GL_HARDLIGHT_KHR 0x929B -#define GL_SOFTLIGHT_KHR 0x929C -#define GL_DIFFERENCE_KHR 0x929E -#define GL_EXCLUSION_KHR 0x92A0 -#define GL_HSL_HUE_KHR 0x92AD -#define GL_HSL_SATURATION_KHR 0x92AE -#define GL_HSL_COLOR_KHR 0x92AF -#define GL_HSL_LUMINOSITY_KHR 0x92B0 -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrierKHR (void); -#endif -#endif /* GL_KHR_blend_equation_advanced */ - -#ifndef GL_KHR_blend_equation_advanced_coherent -#define GL_KHR_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 -#endif /* GL_KHR_blend_equation_advanced_coherent */ - -#ifndef GL_KHR_context_flush_control -#define GL_KHR_context_flush_control 1 -#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB -#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC -#endif /* GL_KHR_context_flush_control */ - -#ifndef GL_KHR_debug -#define GL_KHR_debug 1 -typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_SAMPLER 0x82E6 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 -#define GL_DEBUG_SOURCE_API_KHR 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A -#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B -#define GL_DEBUG_TYPE_ERROR_KHR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 -#define GL_DEBUG_TYPE_OTHER_KHR 0x8251 -#define GL_DEBUG_TYPE_MARKER_KHR 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D -#define GL_BUFFER_KHR 0x82E0 -#define GL_SHADER_KHR 0x82E1 -#define GL_PROGRAM_KHR 0x82E2 -#define GL_VERTEX_ARRAY_KHR 0x8074 -#define GL_QUERY_KHR 0x82E3 -#define GL_PROGRAM_PIPELINE_KHR 0x82E4 -#define GL_SAMPLER_KHR 0x82E6 -#define GL_MAX_LABEL_LENGTH_KHR 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 -#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 -#define GL_DEBUG_OUTPUT_KHR 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 -#define GL_STACK_OVERFLOW_KHR 0x0503 -#define GL_STACK_UNDERFLOW_KHR 0x0504 -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void); -GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params); -#endif -#endif /* GL_KHR_debug */ - -#ifndef GL_KHR_no_error -#define GL_KHR_no_error 1 -#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 -#endif /* GL_KHR_no_error */ - -#ifndef GL_KHR_robust_buffer_access_behavior -#define GL_KHR_robust_buffer_access_behavior 1 -#endif /* GL_KHR_robust_buffer_access_behavior */ - -#ifndef GL_KHR_robustness -#define GL_KHR_robustness 1 -#define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3 -#define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252 -#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_KHR 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_KHR 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_KHR 0x8256 -#define GL_NO_RESET_NOTIFICATION_KHR 0x8261 -#define GL_CONTEXT_LOST_KHR 0x0507 -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSKHRPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusKHR (void); -GL_APICALL void GL_APIENTRY glReadnPixelsKHR (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvKHR (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivKHR (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuivKHR (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -#endif -#endif /* GL_KHR_robustness */ - -#ifndef GL_KHR_texture_compression_astc_hdr -#define GL_KHR_texture_compression_astc_hdr 1 -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD -#endif /* GL_KHR_texture_compression_astc_hdr */ - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_KHR_texture_compression_astc_ldr 1 -#endif /* GL_KHR_texture_compression_astc_ldr */ - -#ifndef GL_OES_EGL_image -#define GL_OES_EGL_image 1 -typedef void *GLeglImageOES; -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); -GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); -#endif -#endif /* GL_OES_EGL_image */ - -#ifndef GL_OES_EGL_image_external -#define GL_OES_EGL_image_external 1 -#define GL_TEXTURE_EXTERNAL_OES 0x8D65 -#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 -#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 -#define GL_SAMPLER_EXTERNAL_OES 0x8D66 -#endif /* GL_OES_EGL_image_external */ - -#ifndef GL_OES_EGL_image_external_essl3 -#define GL_OES_EGL_image_external_essl3 1 -#endif /* GL_OES_EGL_image_external_essl3 */ - -#ifndef GL_OES_compressed_ETC1_RGB8_sub_texture -#define GL_OES_compressed_ETC1_RGB8_sub_texture 1 -#endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ - -#ifndef GL_OES_compressed_ETC1_RGB8_texture -#define GL_OES_compressed_ETC1_RGB8_texture 1 -#define GL_ETC1_RGB8_OES 0x8D64 -#endif /* GL_OES_compressed_ETC1_RGB8_texture */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 -#endif /* GL_OES_compressed_paletted_texture */ - -#ifndef GL_OES_copy_image -#define GL_OES_copy_image 1 -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAOESPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#endif -#endif /* GL_OES_copy_image */ - -#ifndef GL_OES_depth24 -#define GL_OES_depth24 1 -#define GL_DEPTH_COMPONENT24_OES 0x81A6 -#endif /* GL_OES_depth24 */ - -#ifndef GL_OES_depth32 -#define GL_OES_depth32 1 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#endif /* GL_OES_depth32 */ - -#ifndef GL_OES_depth_texture -#define GL_OES_depth_texture 1 -#endif /* GL_OES_depth_texture */ - -#ifndef GL_OES_draw_buffers_indexed -#define GL_OES_draw_buffers_indexed 1 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -typedef void (GL_APIENTRYP PFNGLENABLEIOESPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIOESPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEnableiOES (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiOES (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationiOES (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiOES (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciOES (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiOES (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaskiOES (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediOES (GLenum target, GLuint index); -#endif -#endif /* GL_OES_draw_buffers_indexed */ - -#ifndef GL_OES_draw_elements_base_vertex -#define GL_OES_draw_elements_base_vertex 1 -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOES (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexOES (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex); -#endif -#endif /* GL_OES_draw_elements_base_vertex */ - -#ifndef GL_OES_element_index_uint -#define GL_OES_element_index_uint 1 -#endif /* GL_OES_element_index_uint */ - -#ifndef GL_OES_fbo_render_mipmap -#define GL_OES_fbo_render_mipmap 1 -#endif /* GL_OES_fbo_render_mipmap */ - -#ifndef GL_OES_fragment_precision_high -#define GL_OES_fragment_precision_high 1 -#endif /* GL_OES_fragment_precision_high */ - -#ifndef GL_OES_geometry_point_size -#define GL_OES_geometry_point_size 1 -#endif /* GL_OES_geometry_point_size */ - -#ifndef GL_OES_geometry_shader -#define GL_OES_geometry_shader 1 -#define GL_GEOMETRY_SHADER_OES 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 -#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 -#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 -#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F -#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E -#define GL_LINES_ADJACENCY_OES 0x000A -#define GL_LINE_STRIP_ADJACENCY_OES 0x000B -#define GL_TRIANGLES_ADJACENCY_OES 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E -#define GL_UNDEFINED_VERTEX_OES 0x8260 -#define GL_PRIMITIVES_GENERATED_OES 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREOESPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureOES (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif -#endif /* GL_OES_geometry_shader */ - -#ifndef GL_OES_get_program_binary -#define GL_OES_get_program_binary 1 -#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE -#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const void *binary, GLint length); -#endif -#endif /* GL_OES_get_program_binary */ - -#ifndef GL_OES_gpu_shader5 -#define GL_OES_gpu_shader5 1 -#endif /* GL_OES_gpu_shader5 */ - -#ifndef GL_OES_mapbuffer -#define GL_OES_mapbuffer 1 -#define GL_WRITE_ONLY_OES 0x88B9 -#define GL_BUFFER_ACCESS_OES 0x88BB -#define GL_BUFFER_MAPPED_OES 0x88BC -#define GL_BUFFER_MAP_POINTER_OES 0x88BD -typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void *GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); -GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_OES_mapbuffer */ - -#ifndef GL_OES_packed_depth_stencil -#define GL_OES_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH24_STENCIL8_OES 0x88F0 -#endif /* GL_OES_packed_depth_stencil */ - -#ifndef GL_OES_primitive_bounding_box -#define GL_OES_primitive_bounding_box 1 -#define GL_PRIMITIVE_BOUNDING_BOX_OES 0x92BE -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXOESPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxOES (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#endif -#endif /* GL_OES_primitive_bounding_box */ - -#ifndef GL_OES_required_internalformat -#define GL_OES_required_internalformat 1 -#define GL_ALPHA8_OES 0x803C -#define GL_DEPTH_COMPONENT16_OES 0x81A5 -#define GL_LUMINANCE4_ALPHA4_OES 0x8043 -#define GL_LUMINANCE8_ALPHA8_OES 0x8045 -#define GL_LUMINANCE8_OES 0x8040 -#define GL_RGBA4_OES 0x8056 -#define GL_RGB5_A1_OES 0x8057 -#define GL_RGB565_OES 0x8D62 -#define GL_RGB8_OES 0x8051 -#define GL_RGBA8_OES 0x8058 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB10_A2_EXT 0x8059 -#endif /* GL_OES_required_internalformat */ - -#ifndef GL_OES_rgb8_rgba8 -#define GL_OES_rgb8_rgba8 1 -#endif /* GL_OES_rgb8_rgba8 */ - -#ifndef GL_OES_sample_shading -#define GL_OES_sample_shading 1 -#define GL_SAMPLE_SHADING_OES 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMinSampleShadingOES (GLfloat value); -#endif -#endif /* GL_OES_sample_shading */ - -#ifndef GL_OES_sample_variables -#define GL_OES_sample_variables 1 -#endif /* GL_OES_sample_variables */ - -#ifndef GL_OES_shader_image_atomic -#define GL_OES_shader_image_atomic 1 -#endif /* GL_OES_shader_image_atomic */ - -#ifndef GL_OES_shader_io_blocks -#define GL_OES_shader_io_blocks 1 -#endif /* GL_OES_shader_io_blocks */ - -#ifndef GL_OES_shader_multisample_interpolation -#define GL_OES_shader_multisample_interpolation 1 -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D -#endif /* GL_OES_shader_multisample_interpolation */ - -#ifndef GL_OES_standard_derivatives -#define GL_OES_standard_derivatives 1 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B -#endif /* GL_OES_standard_derivatives */ - -#ifndef GL_OES_stencil1 -#define GL_OES_stencil1 1 -#define GL_STENCIL_INDEX1_OES 0x8D46 -#endif /* GL_OES_stencil1 */ - -#ifndef GL_OES_stencil4 -#define GL_OES_stencil4 1 -#define GL_STENCIL_INDEX4_OES 0x8D47 -#endif /* GL_OES_stencil4 */ - -#ifndef GL_OES_surfaceless_context -#define GL_OES_surfaceless_context 1 -#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 -#endif /* GL_OES_surfaceless_context */ - -#ifndef GL_OES_tessellation_point_size -#define GL_OES_tessellation_point_size 1 -#endif /* GL_OES_tessellation_point_size */ - -#ifndef GL_OES_tessellation_shader -#define GL_OES_tessellation_shader 1 -#define GL_PATCHES_OES 0x000E -#define GL_PATCH_VERTICES_OES 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 -#define GL_TESS_GEN_MODE_OES 0x8E76 -#define GL_TESS_GEN_SPACING_OES 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 -#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 -#define GL_ISOLINES_OES 0x8E7A -#define GL_QUADS_OES 0x0007 -#define GL_FRACTIONAL_ODD_OES 0x8E7B -#define GL_FRACTIONAL_EVEN_OES 0x8E7C -#define GL_MAX_PATCH_VERTICES_OES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 -#define GL_IS_PER_PATCH_OES 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 -#define GL_TESS_CONTROL_SHADER_OES 0x8E88 -#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIOESPROC) (GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPatchParameteriOES (GLenum pname, GLint value); -#endif -#endif /* GL_OES_tessellation_shader */ - -#ifndef GL_OES_texture_3D -#define GL_OES_texture_3D 1 -#define GL_TEXTURE_WRAP_R_OES 0x8072 -#define GL_TEXTURE_3D_OES 0x806F -#define GL_TEXTURE_BINDING_3D_OES 0x806A -#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 -#define GL_SAMPLER_3D_OES 0x8B5F -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#endif -#endif /* GL_OES_texture_3D */ - -#ifndef GL_OES_texture_border_clamp -#define GL_OES_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_OES 0x1004 -#define GL_CLAMP_TO_BORDER_OES 0x812D -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexParameterIivOES (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivOES (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivOES (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivOES (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivOES (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivOES (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivOES (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivOES (GLuint sampler, GLenum pname, GLuint *params); -#endif -#endif /* GL_OES_texture_border_clamp */ - -#ifndef GL_OES_texture_buffer -#define GL_OES_texture_buffer 1 -#define GL_TEXTURE_BUFFER_OES 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F -#define GL_SAMPLER_BUFFER_OES 0x8DC2 -#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 -#define GL_IMAGE_BUFFER_OES 0x9051 -#define GL_INT_IMAGE_BUFFER_OES 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D -#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E -typedef void (GL_APIENTRYP PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexBufferOES (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeOES (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_OES_texture_buffer */ - -#ifndef GL_OES_texture_compression_astc -#define GL_OES_texture_compression_astc 1 -#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 -#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 -#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 -#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 -#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 -#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 -#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 -#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 -#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 -#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 -#endif /* GL_OES_texture_compression_astc */ - -#ifndef GL_OES_texture_cube_map_array -#define GL_OES_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A -#endif /* GL_OES_texture_cube_map_array */ - -#ifndef GL_OES_texture_float -#define GL_OES_texture_float 1 -#endif /* GL_OES_texture_float */ - -#ifndef GL_OES_texture_float_linear -#define GL_OES_texture_float_linear 1 -#endif /* GL_OES_texture_float_linear */ - -#ifndef GL_OES_texture_half_float -#define GL_OES_texture_half_float 1 -#define GL_HALF_FLOAT_OES 0x8D61 -#endif /* GL_OES_texture_half_float */ - -#ifndef GL_OES_texture_half_float_linear -#define GL_OES_texture_half_float_linear 1 -#endif /* GL_OES_texture_half_float_linear */ - -#ifndef GL_OES_texture_npot -#define GL_OES_texture_npot 1 -#endif /* GL_OES_texture_npot */ - -#ifndef GL_OES_texture_stencil8 -#define GL_OES_texture_stencil8 1 -#define GL_STENCIL_INDEX_OES 0x1901 -#define GL_STENCIL_INDEX8_OES 0x8D48 -#endif /* GL_OES_texture_stencil8 */ - -#ifndef GL_OES_texture_storage_multisample_2d_array -#define GL_OES_texture_storage_multisample_2d_array 1 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif -#endif /* GL_OES_texture_storage_multisample_2d_array */ - -#ifndef GL_OES_texture_view -#define GL_OES_texture_view 1 -#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureViewOES (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#endif -#endif /* GL_OES_texture_view */ - -#ifndef GL_OES_vertex_array_object -#define GL_OES_vertex_array_object 1 -#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); -#endif -#endif /* GL_OES_vertex_array_object */ - -#ifndef GL_OES_vertex_half_float -#define GL_OES_vertex_half_float 1 -#endif /* GL_OES_vertex_half_float */ - -#ifndef GL_OES_vertex_type_10_10_10_2 -#define GL_OES_vertex_type_10_10_10_2 1 -#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 -#define GL_INT_10_10_10_2_OES 0x8DF7 -#endif /* GL_OES_vertex_type_10_10_10_2 */ - -#ifndef GL_AMD_compressed_3DC_texture -#define GL_AMD_compressed_3DC_texture 1 -#define GL_3DC_X_AMD 0x87F9 -#define GL_3DC_XY_AMD 0x87FA -#endif /* GL_AMD_compressed_3DC_texture */ - -#ifndef GL_AMD_compressed_ATC_texture -#define GL_AMD_compressed_ATC_texture 1 -#define GL_ATC_RGB_AMD 0x8C92 -#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 -#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE -#endif /* GL_AMD_compressed_ATC_texture */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); -typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); -GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif -#endif /* GL_AMD_performance_monitor */ - -#ifndef GL_AMD_program_binary_Z400 -#define GL_AMD_program_binary_Z400 1 -#define GL_Z400_BINARY_AMD 0x8740 -#endif /* GL_AMD_program_binary_Z400 */ - -#ifndef GL_ANDROID_extension_pack_es31a -#define GL_ANDROID_extension_pack_es31a 1 -#endif /* GL_ANDROID_extension_pack_es31a */ - -#ifndef GL_ANGLE_depth_texture -#define GL_ANGLE_depth_texture 1 -#endif /* GL_ANGLE_depth_texture */ - -#ifndef GL_ANGLE_framebuffer_blit -#define GL_ANGLE_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_ANGLE_framebuffer_blit */ - -#ifndef GL_ANGLE_request_extension -#define GL_ANGLE_request_extension 1 -#define GL_REQUESTABLE_EXTENSIONS_ANGLE 0x93A8 -#define GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE 0x93A8 -typedef GLboolean(GL_APIENTRYP PFNGLREQUESTEXTENSIONANGLEPROC) (const GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLboolean GL_APIENTRY glRequestExtensionANGLE (const GLchar *name); -#endif -#endif /* GL_ANGLE_webgl_compatibility */ - -#ifndef GL_CHROMIUM_framebuffer_mixed_samples -#define GL_CHROMIUM_frambuffer_mixed_samples 1 -#define GL_COVERAGE_MODULATION_CHROMIUM 0x9332 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONCHROMIUMPROC) (GLenum components); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageModulationCHROMIUM(GLenum components); -#endif -#endif /* GL_CHROMIUM_framebuffer_mixed_samples */ - -#ifndef GL_CHROMIUM_bind_generates_resource -#define GL_CHROMIUM_bind_generates_resource 1 -#define GL_BIND_GENERATES_RESOURCE_CHROMIUM 0x9244 -#endif /* GL_CHROMIUM_bind_generates_resource */ - -// needed by NV_path_rendering (and thus CHROMIUM_path_rendering) -// but CHROMIUM_path_rendering only needs MatrixLoadfEXT, MatrixLoadIdentityEXT -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -typedef void(GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC)(GLenum matrixMode, const GLfloat *m); -typedef void(GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum matrixMode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMatrixLoadfEXT(GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT(GLenum matrixMode); -#endif -#endif /* GL_EXT_direct_state_access */ - -#ifndef GL_CHROMIUM_path_rendering -#define GL_CHROMIUM_path_rendering 1 -#define GL_PATH_MODELVIEW_CHROMIUM 0x1700 -#define GL_PATH_PROJECTION_CHROMIUM 0x1701 -#define GL_CLOSE_PATH_CHROMIUM 0x00 -#define GL_MOVE_TO_CHROMIUM 0x02 -#define GL_LINE_TO_CHROMIUM 0x04 -#define GL_QUADRATIC_CURVE_TO_CHROMIUM 0x0A -#define GL_CUBIC_CURVE_TO_CHROMIUM 0x0C -#define GL_CONIC_CURVE_TO_CHROMIUM 0x1A -#define GL_PATH_MODELVIEW_MATRIX_CHROMIUM 0x0BA6 -#define GL_PATH_PROJECTION_MATRIX_CHROMIUM 0x0BA7 -#define GL_PATH_STROKE_WIDTH_CHROMIUM 0x9075 -#define GL_PATH_END_CAPS_CHROMIUM 0x9076 -#define GL_PATH_JOIN_STYLE_CHROMIUM 0x9079 -#define GL_PATH_MITER_LIMIT_CHROMIUM 0x907a -#define GL_PATH_STROKE_BOUND_CHROMIUM 0x9086 -#define GL_FLAT_CHROMIUM 0x1D00 -#define GL_SQUARE_CHROMIUM 0x90a3 -#define GL_ROUND_CHROMIUM 0x90a4 -#define GL_BEVEL_CHROMIUM 0x90A6 -#define GL_MITER_REVERT_CHROMIUM 0x90A7 -#define GL_COUNT_UP_CHROMIUM 0x9088 -#define GL_COUNT_DOWN_CHROMIUM 0x9089 -#define GL_CONVEX_HULL_CHROMIUM 0x908B -#define GL_BOUNDING_BOX_CHROMIUM 0x908D -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM 0x909C -#define GL_EYE_LINEAR_CHROMIUM 0x2400 -#define GL_OBJECT_LINEAR_CHROMIUM 0x2401 -#define GL_CONSTANT_CHROMIUM 0x8576 -#define GL_TRANSLATE_X_CHROMIUM 0x908E -#define GL_TRANSLATE_Y_CHROMIUM 0x908F -#define GL_TRANSLATE_2D_CHROMIUM 0x9090 -#define GL_TRANSLATE_3D_CHROMIUM 0x9091 -#define GL_AFFINE_2D_CHROMIUM 0x9092 -#define GL_AFFINE_3D_CHROMIUM 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_CHROMIUM 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_CHROMIUM 0x9098 -typedef void(GL_APIENTRYP PFNGLMATRIXLOADFCHROMIUMPROC)(GLenum matrixMode, const GLfloat *m); -typedef void(GL_APIENTRYP PFNGLMATRIXLOADIDENTITYCHROMIUMPROC)(GLenum matrixMode); -typedef GLuint(GL_APIENTRYP PFNGLGENPATHSCHROMIUMPROC)(GLsizei range); -typedef void(GL_APIENTRYP PFNGLDELETEPATHSCHROMIUMPROC)(GLuint path, GLsizei range); -typedef GLboolean(GL_APIENTRYP PFNGLISPATHCHROMIUMPROC)(GLuint path); -typedef void(GL_APIENTRYP PFNGLPATHCOMMANDSCHROMIUMPROC)(GLuint path, - GLsizei numCommands, - const GLubyte *commands, - GLsizei numCoords, - GLenum coordType, - const void *coords); -typedef void(GL_APIENTRYP PFNGLPATHPARAMETERICHROMIUMPROC)(GLuint path, GLenum pname, GLint value); -typedef void(GL_APIENTRYP PFNGLPATHPARAMETERFCHROMIUMPROC)(GLuint path, - GLenum pname, - GLfloat value); -typedef void(GL_APIENTRYP PFNGLGETPATHPARAMETERIVCHROMIUMPROC)(GLuint path, - GLenum pname, - GLint *value); -typedef void(GL_APIENTRYP PFNGLGETPATHPARAMETERFVCHROMIUMPROC)(GLuint path, - GLenum pname, - GLfloat *value); -typedef void(GL_APIENTRYP PFNGLPATHSTENCILFUNCCHROMIUMPROC)(GLenum func, GLint ref, GLuint mask); -typedef void(GL_APIENTRYP PFNGLSTENCILFILLPATHCHROMIUMPROC)(GLuint path, - GLenum fillMode, - GLuint mask); -typedef void(GL_APIENTRYP PFNGLSTENCILSTROKEPATHCHROMIUMPROC)(GLuint path, - GLint reference, - GLuint mask); -typedef void(GL_APIENTRYP PFNGLCOVERFILLPATHCHROMIUMPROC)(GLuint path, GLenum coverMode); -typedef void(GL_APIENTRYP PFNGLCOVERSTROKEPATHCHROMIUMPROC)(GLuint path, GLenum coverMode); -typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHCHROMIUMPROC)(GLuint path, - GLenum fillMode, - GLuint mask, - GLenum coverMode); -typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHCHROMIUMPROC)(GLuint path, - GLint reference, - GLuint mask, - GLenum coverMode); -typedef void(GL_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDCHROMIUMPROC)(GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); -typedef void(GL_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDCHROMIUMPROC)( - GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); -typedef void(GL_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDCHROMIUMPROC)( - GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum fillMode, - GLuint mask, - GLenum transformType, - const GLfloat *transformValues); -typedef void(GL_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDCHROMIUMPROC)( - GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLint reference, - GLuint mask, - GLenum transformType, - const GLfloat *transformValues); -typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDCHROMIUMPROC)( - GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum fillMode, - GLuint mask, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); -typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDCHROMIUMPROC)( - GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLint reference, - GLuint mask, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); - -typedef void(GL_APIENTRY PFNGLBINDFRAGMENTINPUTLOCATIONCHROMIUMPROC)(GLuint program, - GLint location, - const GLchar *name); -typedef void(GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENCHROMIUMPROC)(GLuint program, - GLint location, - GLenum genMode, - GLint components, - const GLfloat *coeffs); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMatrixLoadfCHROMIUM(GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadIdentityCHROMIUM(GLenum matrixMode); -GL_APICALL GLuint GL_APIENTRY glGenPathsCHROMIUM(GLsizei range); -GL_APICALL void GL_APIENTRY glDeletePathsCHROMIUM(GLuint path, GLsizei range); -GL_APICALL GLboolean GL_APIENTRY glIsPathCHROMIUM(GLuint path); -GL_APICALL void GL_APIENTRY glPathCommandsCHROMIUM(GLuint path, - GLsizei numCommands, - const GLubyte *commands, - GLsizei numCoords, - GLenum coordType, - const void *coords); -GL_APICALL void GL_APIENTRY glPathParameteriCHROMIUM(GLuint path, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glPathParameterfCHROMIUM(GLuint path, GLenum pname, GLfloat value); -GL_APICALL void GL_APIENTRY glGetPathParameterivCHROMIUM(GLuint path, GLenum pname, GLint *value); -GL_APICALL void GL_APIENTRY glGetPathParameterfvCHROMIUM(GLuint path, GLenum pname, GLfloat *value); -GL_APICALL void GL_APIENTRY glPathStencilFuncCHROMIUM(GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFillPathCHROMIUM(GLuint path, GLenum fillMode, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilStrokePathCHROMIUM(GLuint path, GLint reference, GLuint mask); -GL_APICALL void GL_APIENTRY glCoverFillPathCHROMIUM(GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverStrokePathCHROMIUM(GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathCHROMIUM(GLuint path, - GLenum fillMode, - GLuint mask, - GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathCHROMIUM(GLuint path, - GLint reference, - GLuint mask, - GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverFillPathInstancedCHROMIUM(GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glCoverStrokePathInstancedCHROMIUM(GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilFillPathInstancedCHROMIUM(GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum fillMode, - GLuint mask, - GLenum transformType, - const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilStrokePathInstancedCHROMIUM(GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLint reference, - GLuint mask, - GLenum transformType, - const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY -glStencilThenCoverFillPathInstancedCHROMIUM(GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLenum fillMode, - GLuint mask, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); - -GL_APICALL void GL_APIENTRY -glStencilThenCoverStrokePathInstancedCHROMIUM(GLsizei numPaths, - GLenum pathNameType, - const void *paths, - GLuint pathBase, - GLint reference, - GLuint mask, - GLenum coverMode, - GLenum transformType, - const GLfloat *transformValues); - -GL_APICALL void GL_APIENTRY glBindFragmentInputLocationCHROMIUM(GLuint program, - GLint location, - const GLchar *name); -GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenCHROMIUM(GLuint program, - GLint location, - GLenum genMode, - GLint components, - const GLfloat *coeffs); - -#endif -#endif /* GL_CHROMIUM_path_rendering */ - -#ifndef GL_ANGLE_framebuffer_multisample -#define GL_ANGLE_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 -#define GL_MAX_SAMPLES_ANGLE 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_ANGLE_framebuffer_multisample */ - -#ifndef GL_ANGLE_instanced_arrays -#define GL_ANGLE_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); -#endif -#endif /* GL_ANGLE_instanced_arrays */ - -#ifndef GL_ANGLE_pack_reverse_row_order -#define GL_ANGLE_pack_reverse_row_order 1 -#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 -#endif /* GL_ANGLE_pack_reverse_row_order */ - -#ifndef GL_ANGLE_program_binary -#define GL_ANGLE_program_binary 1 -#define GL_PROGRAM_BINARY_ANGLE 0x93A6 -#endif /* GL_ANGLE_program_binary */ - -#ifndef GL_ANGLE_texture_compression_dxt3 -#define GL_ANGLE_texture_compression_dxt3 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 -#endif /* GL_ANGLE_texture_compression_dxt3 */ - -#ifndef GL_ANGLE_texture_compression_dxt5 -#define GL_ANGLE_texture_compression_dxt5 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 -#endif /* GL_ANGLE_texture_compression_dxt5 */ - -#ifndef GL_ANGLE_texture_usage -#define GL_ANGLE_texture_usage 1 -#define GL_TEXTURE_USAGE_ANGLE 0x93A2 -#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 -#endif /* GL_ANGLE_texture_usage */ - -#ifndef GL_ANGLE_translated_shader_source -#define GL_ANGLE_translated_shader_source 1 -#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 -typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); -#endif -#endif /* GL_ANGLE_translated_shader_source */ - -#ifndef GL_APPLE_clip_distance -#define GL_APPLE_clip_distance 1 -#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 -#define GL_CLIP_DISTANCE0_APPLE 0x3000 -#define GL_CLIP_DISTANCE1_APPLE 0x3001 -#define GL_CLIP_DISTANCE2_APPLE 0x3002 -#define GL_CLIP_DISTANCE3_APPLE 0x3003 -#define GL_CLIP_DISTANCE4_APPLE 0x3004 -#define GL_CLIP_DISTANCE5_APPLE 0x3005 -#define GL_CLIP_DISTANCE6_APPLE 0x3006 -#define GL_CLIP_DISTANCE7_APPLE 0x3007 -#endif /* GL_APPLE_clip_distance */ - -#ifndef GL_APPLE_color_buffer_packed_float -#define GL_APPLE_color_buffer_packed_float 1 -#endif /* GL_APPLE_color_buffer_packed_float */ - -#ifndef GL_APPLE_copy_texture_levels -#define GL_APPLE_copy_texture_levels 1 -typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#endif -#endif /* GL_APPLE_copy_texture_levels */ - -#ifndef GL_APPLE_framebuffer_multisample -#define GL_APPLE_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 -#define GL_MAX_SAMPLES_APPLE 0x8D57 -#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); -#endif -#endif /* GL_APPLE_framebuffer_multisample */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#define GL_RGB_422_APPLE 0x8A1F -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_RAW_422_APPLE 0x8A51 -#endif /* GL_APPLE_rgb_422 */ - -#ifndef GL_APPLE_sync -#define GL_APPLE_sync 1 -#define GL_SYNC_OBJECT_APPLE 0x8A53 -#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 -#define GL_OBJECT_TYPE_APPLE 0x9112 -#define GL_SYNC_CONDITION_APPLE 0x9113 -#define GL_SYNC_STATUS_APPLE 0x9114 -#define GL_SYNC_FLAGS_APPLE 0x9115 -#define GL_SYNC_FENCE_APPLE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 -#define GL_UNSIGNALED_APPLE 0x9118 -#define GL_SIGNALED_APPLE 0x9119 -#define GL_ALREADY_SIGNALED_APPLE 0x911A -#define GL_TIMEOUT_EXPIRED_APPLE 0x911B -#define GL_CONDITION_SATISFIED_APPLE 0x911C -#define GL_WAIT_FAILED_APPLE 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 -#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif -#endif /* GL_APPLE_sync */ - -#ifndef GL_APPLE_texture_format_BGRA8888 -#define GL_APPLE_texture_format_BGRA8888 1 -#define GL_BGRA_EXT 0x80E1 -#define GL_BGRA8_EXT 0x93A1 -#endif /* GL_APPLE_texture_format_BGRA8888 */ - -#ifndef GL_APPLE_texture_max_level -#define GL_APPLE_texture_max_level 1 -#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D -#endif /* GL_APPLE_texture_max_level */ - -#ifndef GL_APPLE_texture_packed_float -#define GL_APPLE_texture_packed_float 1 -#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B -#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E -#define GL_R11F_G11F_B10F_APPLE 0x8C3A -#define GL_RGB9_E5_APPLE 0x8C3D -#endif /* GL_APPLE_texture_packed_float */ - -#ifndef GL_ARM_mali_program_binary -#define GL_ARM_mali_program_binary 1 -#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 -#endif /* GL_ARM_mali_program_binary */ - -#ifndef GL_ARM_mali_shader_binary -#define GL_ARM_mali_shader_binary 1 -#define GL_MALI_SHADER_BINARY_ARM 0x8F60 -#endif /* GL_ARM_mali_shader_binary */ - -#ifndef GL_ARM_rgba8 -#define GL_ARM_rgba8 1 -#endif /* GL_ARM_rgba8 */ - -#ifndef GL_ARM_shader_framebuffer_fetch -#define GL_ARM_shader_framebuffer_fetch 1 -#define GL_FETCH_PER_SAMPLE_ARM 0x8F65 -#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 -#endif /* GL_ARM_shader_framebuffer_fetch */ - -#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil -#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 -#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ - -#ifndef GL_CHROMIUM_copy_texture -#define GL_CHROMIUM_copy_texture 1 -typedef void(GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUMPROC)(GLuint sourceId, - GLuint destId, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -typedef void(GL_APIENTRYP PFNGLCOPYSUBTEXTURECHROMIUMPROC)(GLuint sourceId, - GLuint destId, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUM(GLuint sourceId, - GLuint destId, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -GL_APICALL void GL_APIENTRY glCopySubTextureCHROMIUM(GLuint sourceId, - GLuint destId, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -#endif -#endif /* GL_CHROMIUM_copy_texture */ - -#ifndef GL_CHROMIUM_compressed_copy_texture -#define GL_CHROMIUM_compressed_copy_texture 1 -typedef void(GL_APIENTRYP PFNGLCOMPRESSEDCOPYTEXTURECHROMIUMPROC)(GLuint sourceId, GLuint destId); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCompressedCopyTextureCHROMIUM(GLuint sourceId, GLuint destId); -#endif -#endif /* GL_CHROMIUM_compressed_copy_texture */ - -#ifndef GL_CHROMIUM_sync_query -#define GL_CHROMIUM_sync_query 1 -#define GL_COMMANDS_COMPLETED_CHROMIUM 0x84F7 -#endif /* GL_CHROMIUM_sync_query */ - -#ifndef GL_DMP_program_binary -#define GL_DMP_program_binary 1 -#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 -#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 -#define GL_DMP_PROGRAM_BINARY_DMP 0x9253 -#endif /* GL_DMP_program_binary */ - -#ifndef GL_DMP_shader_binary -#define GL_DMP_shader_binary 1 -#define GL_SHADER_BINARY_DMP 0x9250 -#endif /* GL_DMP_shader_binary */ - -#ifndef GL_EXT_YUV_target -#define GL_EXT_YUV_target 1 -#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 -#endif /* GL_EXT_YUV_target */ - -#ifndef GL_EXT_base_instance -#define GL_EXT_base_instance 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceEXT (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -#endif -#endif /* GL_EXT_base_instance */ - -#ifndef GL_EXT_blend_func_extended -#define GL_EXT_blend_func_extended 1 -#define GL_SRC1_COLOR_EXT 0x88F9 -#define GL_SRC1_ALPHA_EXT 0x8589 -#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB -#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 -#define GL_LOCATION_INDEX_EXT 0x930F -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT (GLuint program, const GLchar *name); -#endif -#endif /* GL_EXT_blend_func_extended */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#endif /* GL_EXT_blend_minmax */ - -#ifndef GL_EXT_buffer_storage -#define GL_EXT_buffer_storage 1 -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_PERSISTENT_BIT_EXT 0x0040 -#define GL_MAP_COHERENT_BIT_EXT 0x0080 -#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 -#define GL_CLIENT_STORAGE_BIT_EXT 0x0200 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 -#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F -#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -#endif -#endif /* GL_EXT_buffer_storage */ - -#ifndef GL_EXT_color_buffer_float -#define GL_EXT_color_buffer_float 1 -#endif /* GL_EXT_color_buffer_float */ - -#ifndef GL_EXT_color_buffer_half_float -#define GL_EXT_color_buffer_half_float 1 -#define GL_RGBA16F_EXT 0x881A -#define GL_RGB16F_EXT 0x881B -#define GL_RG16F_EXT 0x822F -#define GL_R16F_EXT 0x822D -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 -#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 -#endif /* GL_EXT_color_buffer_half_float */ - -#ifndef GL_EXT_copy_image -#define GL_EXT_copy_image 1 -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyImageSubDataEXT (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#endif -#endif /* GL_EXT_copy_image */ - -#ifndef GL_EXT_debug_label -#define GL_EXT_debug_label 1 -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -#endif /* GL_EXT_debug_label */ - -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); -#endif -#endif /* GL_EXT_debug_marker */ - -#ifndef GL_EXT_discard_framebuffer -#define GL_EXT_discard_framebuffer 1 -#define GL_COLOR_EXT 0x1800 -#define GL_DEPTH_EXT 0x1801 -#define GL_STENCIL_EXT 0x1802 -typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#endif -#endif /* GL_EXT_discard_framebuffer */ - -#ifndef GL_EXT_disjoint_timer_query -#define GL_EXT_disjoint_timer_query 1 -#define GL_QUERY_COUNTER_BITS_EXT 0x8864 -#define GL_CURRENT_QUERY_EXT 0x8865 -#define GL_QUERY_RESULT_EXT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 -#define GL_TIME_ELAPSED_EXT 0x88BF -#define GL_TIMESTAMP_EXT 0x8E28 -#define GL_GPU_DISJOINT_EXT 0x8FBB -typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); -GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); -#endif -#endif /* GL_EXT_disjoint_timer_query */ - -#ifndef GL_EXT_draw_buffers -#define GL_EXT_draw_buffers 1 -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 -#define GL_DRAW_BUFFER0_EXT 0x8825 -#define GL_DRAW_BUFFER1_EXT 0x8826 -#define GL_DRAW_BUFFER2_EXT 0x8827 -#define GL_DRAW_BUFFER3_EXT 0x8828 -#define GL_DRAW_BUFFER4_EXT 0x8829 -#define GL_DRAW_BUFFER5_EXT 0x882A -#define GL_DRAW_BUFFER6_EXT 0x882B -#define GL_DRAW_BUFFER7_EXT 0x882C -#define GL_DRAW_BUFFER8_EXT 0x882D -#define GL_DRAW_BUFFER9_EXT 0x882E -#define GL_DRAW_BUFFER10_EXT 0x882F -#define GL_DRAW_BUFFER11_EXT 0x8830 -#define GL_DRAW_BUFFER12_EXT 0x8831 -#define GL_DRAW_BUFFER13_EXT 0x8832 -#define GL_DRAW_BUFFER14_EXT 0x8833 -#define GL_DRAW_BUFFER15_EXT 0x8834 -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_EXT_draw_buffers */ - -#ifndef GL_EXT_draw_buffers_indexed -#define GL_EXT_draw_buffers_indexed 1 -typedef void (GL_APIENTRYP PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEnableiEXT (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiEXT (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationiEXT (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiEXT (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciEXT (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiEXT (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaskiEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediEXT (GLenum target, GLuint index); -#endif -#endif /* GL_EXT_draw_buffers_indexed */ - -#ifndef GL_EXT_draw_elements_base_vertex -#define GL_EXT_draw_elements_base_vertex 1 -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex); -#endif -#endif /* GL_EXT_draw_elements_base_vertex */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_EXT_draw_instanced */ - -#ifndef GL_EXT_float_blend -#define GL_EXT_float_blend 1 -#endif /* GL_EXT_float_blend */ - -#ifndef GL_EXT_geometry_point_size -#define GL_EXT_geometry_point_size 1 -#endif /* GL_EXT_geometry_point_size */ - -#ifndef GL_EXT_geometry_shader -#define GL_EXT_geometry_shader 1 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 -#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 -#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 -#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F -#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_UNDEFINED_VERTEX_EXT 0x8260 -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif -#endif /* GL_EXT_geometry_shader */ - -#ifndef GL_EXT_gpu_shader5 -#define GL_EXT_gpu_shader5 1 -#endif /* GL_EXT_gpu_shader5 */ - -#ifndef GL_EXT_instanced_arrays -#define GL_EXT_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glVertexAttribDivisorEXT (GLuint index, GLuint divisor); -#endif -#endif /* GL_EXT_instanced_arrays */ - -#ifndef GL_EXT_map_buffer_range -#define GL_EXT_map_buffer_range 1 -#define GL_MAP_READ_BIT_EXT 0x0001 -#define GL_MAP_WRITE_BIT_EXT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void *GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); -#endif -#endif /* GL_EXT_map_buffer_range */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#endif -#endif /* GL_EXT_multi_draw_arrays */ - -#ifndef GL_EXT_multi_draw_indirect -#define GL_EXT_multi_draw_indirect 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysIndirectEXT (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -GL_APICALL void GL_APIENTRY glMultiDrawElementsIndirectEXT (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -#endif -#endif /* GL_EXT_multi_draw_indirect */ - -#ifndef GL_EXT_multisampled_compatibility -#define GL_EXT_multisampled_compatibility 1 -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#endif /* GL_EXT_multisampled_compatibility */ - -#ifndef GL_EXT_multisampled_render_to_texture -#define GL_EXT_multisampled_render_to_texture 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_EXT_multisampled_render_to_texture */ - -#ifndef GL_EXT_multiview_draw_buffers -#define GL_EXT_multiview_draw_buffers 1 -#define GL_COLOR_ATTACHMENT_EXT 0x90F0 -#define GL_MULTIVIEW_EXT 0x90F1 -#define GL_DRAW_BUFFER_EXT 0x0C01 -#define GL_READ_BUFFER_EXT 0x0C02 -#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 -typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); -GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); -GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); -#endif -#endif /* GL_EXT_multiview_draw_buffers */ - -#ifndef GL_EXT_occlusion_query_boolean -#define GL_EXT_occlusion_query_boolean 1 -#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A -#endif /* GL_EXT_occlusion_query_boolean */ - -#ifndef GL_EXT_post_depth_coverage -#define GL_EXT_post_depth_coverage 1 -#endif /* GL_EXT_post_depth_coverage */ - -#ifndef GL_EXT_primitive_bounding_box -#define GL_EXT_primitive_bounding_box 1 -#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#endif -#endif /* GL_EXT_primitive_bounding_box */ - -#ifndef GL_EXT_pvrtc_sRGB -#define GL_EXT_pvrtc_sRGB 1 -#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 -#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1 -#endif /* GL_EXT_pvrtc_sRGB */ - -#ifndef GL_EXT_raster_multisample -#define GL_EXT_raster_multisample 1 -#define GL_RASTER_MULTISAMPLE_EXT 0x9327 -#define GL_RASTER_SAMPLES_EXT 0x9328 -#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 -#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A -#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B -#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C -typedef void (GL_APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); -#endif -#endif /* GL_EXT_raster_multisample */ - -#ifndef GL_EXT_read_format_bgra -#define GL_EXT_read_format_bgra 1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 -#endif /* GL_EXT_read_format_bgra */ - -#ifndef GL_EXT_render_snorm -#define GL_EXT_render_snorm 1 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM_EXT 0x8F98 -#define GL_RG16_SNORM_EXT 0x8F99 -#define GL_RGBA16_SNORM_EXT 0x8F9B -#endif /* GL_EXT_render_snorm */ - -#ifndef GL_EXT_robustness -#define GL_EXT_robustness 1 -#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 -#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 -#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 -#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 -#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); -GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_EXT_robustness */ - -#ifndef GL_EXT_sRGB -#define GL_EXT_sRGB 1 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 -#endif /* GL_EXT_sRGB */ - -#ifndef GL_EXT_sRGB_write_control -#define GL_EXT_sRGB_write_control 1 -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#endif /* GL_EXT_sRGB_write_control */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#define GL_ACTIVE_PROGRAM_EXT 0x8259 -#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 -#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE_EXT 0x8258 -#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); -GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_EXT_separate_shader_objects */ - -#ifndef GL_EXT_shader_framebuffer_fetch -#define GL_EXT_shader_framebuffer_fetch 1 -#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 -#endif /* GL_EXT_shader_framebuffer_fetch */ - -#ifndef GL_EXT_shader_implicit_conversions -#define GL_EXT_shader_implicit_conversions 1 -#endif /* GL_EXT_shader_implicit_conversions */ - -#ifndef GL_EXT_shader_integer_mix -#define GL_EXT_shader_integer_mix 1 -#endif /* GL_EXT_shader_integer_mix */ - -#ifndef GL_EXT_shader_io_blocks -#define GL_EXT_shader_io_blocks 1 -#endif /* GL_EXT_shader_io_blocks */ - -#ifndef GL_EXT_shader_pixel_local_storage -#define GL_EXT_shader_pixel_local_storage 1 -#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 -#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 -#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 -#endif /* GL_EXT_shader_pixel_local_storage */ - -#ifndef GL_EXT_shader_texture_lod -#define GL_EXT_shader_texture_lod 1 -#endif /* GL_EXT_shader_texture_lod */ - -#ifndef GL_EXT_shadow_samplers -#define GL_EXT_shadow_samplers 1 -#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C -#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D -#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E -#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 -#endif /* GL_EXT_shadow_samplers */ - -#ifndef GL_EXT_sparse_texture -#define GL_EXT_sparse_texture 1 -#define GL_TEXTURE_SPARSE_EXT 0x91A6 -#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 -#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA -#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 -#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_3D 0x806F -#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A -#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 -typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexPageCommitmentEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#endif -#endif /* GL_EXT_sparse_texture */ - -#ifndef GL_EXT_tessellation_point_size -#define GL_EXT_tessellation_point_size 1 -#endif /* GL_EXT_tessellation_point_size */ - -#ifndef GL_EXT_tessellation_shader -#define GL_EXT_tessellation_shader 1 -#define GL_PATCHES_EXT 0x000E -#define GL_PATCH_VERTICES_EXT 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 -#define GL_TESS_GEN_MODE_EXT 0x8E76 -#define GL_TESS_GEN_SPACING_EXT 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 -#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 -#define GL_ISOLINES_EXT 0x8E7A -#define GL_QUADS_EXT 0x0007 -#define GL_FRACTIONAL_ODD_EXT 0x8E7B -#define GL_FRACTIONAL_EVEN_EXT 0x8E7C -#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_IS_PER_PATCH_EXT 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 -#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 -#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPatchParameteriEXT (GLenum pname, GLint value); -#endif -#endif /* GL_EXT_tessellation_shader */ - -#ifndef GL_EXT_texture_border_clamp -#define GL_EXT_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 -#define GL_CLAMP_TO_BORDER_EXT 0x812D -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivEXT (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivEXT (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivEXT (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivEXT (GLuint sampler, GLenum pname, GLuint *params); -#endif -#endif /* GL_EXT_texture_border_clamp */ - -#ifndef GL_EXT_texture_buffer -#define GL_EXT_texture_buffer 1 -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D -#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E -typedef void (GL_APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEEXTPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeEXT (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_EXT_texture_buffer */ - -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif /* GL_EXT_texture_compression_dxt1 */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif /* GL_EXT_texture_compression_s3tc */ - -#ifndef GL_EXT_texture_cube_map_array -#define GL_EXT_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#endif /* GL_EXT_texture_cube_map_array */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif /* GL_EXT_texture_filter_anisotropic */ - -#ifndef GL_EXT_texture_filter_minmax -#define GL_EXT_texture_filter_minmax 1 -#endif /* GL_EXT_texture_filter_minmax */ - -#ifndef GL_EXT_texture_format_BGRA8888 -#define GL_EXT_texture_format_BGRA8888 1 -#endif /* GL_EXT_texture_format_BGRA8888 */ - -#ifndef GL_EXT_texture_norm16 -#define GL_EXT_texture_norm16 1 -#define GL_R16_EXT 0x822A -#define GL_RG16_EXT 0x822C -#define GL_RGBA16_EXT 0x805B -#define GL_RGB16_EXT 0x8054 -#define GL_RGB16_SNORM_EXT 0x8F9A -#endif /* GL_EXT_texture_norm16 */ - -#ifndef GL_EXT_texture_rg -#define GL_EXT_texture_rg 1 -#define GL_RED_EXT 0x1903 -#define GL_RG_EXT 0x8227 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#endif /* GL_EXT_texture_rg */ - -#ifndef GL_EXT_texture_sRGB_R8 -#define GL_EXT_texture_sRGB_R8 1 -#define GL_SR8_EXT 0x8FBD -#endif /* GL_EXT_texture_sRGB_R8 */ - -#ifndef GL_EXT_texture_sRGB_RG8 -#define GL_EXT_texture_sRGB_RG8 1 -#define GL_SRG8_EXT 0x8FBE -#endif /* GL_EXT_texture_sRGB_RG8 */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif /* GL_EXT_texture_sRGB_decode */ - -#ifndef GL_EXT_texture_storage -#define GL_EXT_texture_storage 1 -#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_RGBA32F_EXT 0x8814 -#define GL_RGB32F_EXT 0x8815 -#define GL_ALPHA32F_EXT 0x8816 -#define GL_LUMINANCE32F_EXT 0x8818 -#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 -#define GL_ALPHA16F_EXT 0x881C -#define GL_LUMINANCE16F_EXT 0x881E -#define GL_LUMINANCE_ALPHA16F_EXT 0x881F -#define GL_R32F_EXT 0x822E -#define GL_RG32F_EXT 0x8230 -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* GL_EXT_texture_storage */ - -#ifndef GL_EXT_texture_type_2_10_10_10_REV -#define GL_EXT_texture_type_2_10_10_10_REV 1 -#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 -#endif /* GL_EXT_texture_type_2_10_10_10_REV */ - -#ifndef GL_EXT_texture_view -#define GL_EXT_texture_view 1 -#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE -typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureViewEXT (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#endif -#endif /* GL_EXT_texture_view */ - -#ifndef GL_EXT_unpack_subimage -#define GL_EXT_unpack_subimage 1 -#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 -#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 -#endif /* GL_EXT_unpack_subimage */ - -#ifndef GL_FJ_shader_binary_GCCSO -#define GL_FJ_shader_binary_GCCSO 1 -#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 -#endif /* GL_FJ_shader_binary_GCCSO */ - -#ifndef GL_IMG_multisampled_render_to_texture -#define GL_IMG_multisampled_render_to_texture 1 -#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 -#define GL_MAX_SAMPLES_IMG 0x9135 -#define GL_TEXTURE_SAMPLES_IMG 0x9136 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_IMG_multisampled_render_to_texture */ - -#ifndef GL_IMG_program_binary -#define GL_IMG_program_binary 1 -#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 -#endif /* GL_IMG_program_binary */ - -#ifndef GL_IMG_read_format -#define GL_IMG_read_format 1 -#define GL_BGRA_IMG 0x80E1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 -#endif /* GL_IMG_read_format */ - -#ifndef GL_IMG_shader_binary -#define GL_IMG_shader_binary 1 -#define GL_SGX_BINARY_IMG 0x8C0A -#endif /* GL_IMG_shader_binary */ - -#ifndef GL_IMG_texture_compression_pvrtc -#define GL_IMG_texture_compression_pvrtc 1 -#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 -#endif /* GL_IMG_texture_compression_pvrtc */ - -#ifndef GL_IMG_texture_compression_pvrtc2 -#define GL_IMG_texture_compression_pvrtc2 1 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 -#endif /* GL_IMG_texture_compression_pvrtc2 */ - -#ifndef GL_INTEL_framebuffer_CMAA -#define GL_INTEL_framebuffer_CMAA 1 -typedef void (GL_APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); -#endif -#endif /* GL_INTEL_framebuffer_CMAA */ - -#ifndef GL_INTEL_performance_query -#define GL_INTEL_performance_query 1 -#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 -#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 -#define GL_PERFQUERY_WAIT_INTEL 0x83FB -#define GL_PERFQUERY_FLUSH_INTEL 0x83FA -#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 -#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 -#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 -#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 -#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 -#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 -#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 -#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 -#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 -#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA -#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB -#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC -#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD -#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE -#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF -#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 -typedef void (GL_APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); -typedef void (GL_APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); -typedef void (GL_APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); -typedef void (GL_APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); -GL_APICALL void GL_APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); -GL_APICALL void GL_APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); -GL_APICALL void GL_APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -GL_APICALL void GL_APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); -GL_APICALL void GL_APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); -GL_APICALL void GL_APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#endif -#endif /* GL_INTEL_performance_query */ - -#ifndef GL_NV_bindless_texture -#define GL_NV_bindless_texture 1 -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef GLuint64 (GL_APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); -typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef GLboolean (GL_APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleNV (GLuint texture); -GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); -GL_APICALL void GL_APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); -GL_APICALL void GL_APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); -GL_APICALL GLuint64 GL_APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -GL_APICALL void GL_APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); -GL_APICALL void GL_APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); -GL_APICALL void GL_APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -GL_APICALL GLboolean GL_APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); -GL_APICALL GLboolean GL_APIENTRY glIsImageHandleResidentNV (GLuint64 handle); -#endif -#endif /* GL_NV_bindless_texture */ - -#ifndef GL_NV_blend_equation_advanced -#define GL_NV_blend_equation_advanced 1 -#define GL_BLEND_OVERLAP_NV 0x9281 -#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 -#define GL_BLUE_NV 0x1905 -#define GL_COLORBURN_NV 0x929A -#define GL_COLORDODGE_NV 0x9299 -#define GL_CONJOINT_NV 0x9284 -#define GL_CONTRAST_NV 0x92A1 -#define GL_DARKEN_NV 0x9297 -#define GL_DIFFERENCE_NV 0x929E -#define GL_DISJOINT_NV 0x9283 -#define GL_DST_ATOP_NV 0x928F -#define GL_DST_IN_NV 0x928B -#define GL_DST_NV 0x9287 -#define GL_DST_OUT_NV 0x928D -#define GL_DST_OVER_NV 0x9289 -#define GL_EXCLUSION_NV 0x92A0 -#define GL_GREEN_NV 0x1904 -#define GL_HARDLIGHT_NV 0x929B -#define GL_HARDMIX_NV 0x92A9 -#define GL_HSL_COLOR_NV 0x92AF -#define GL_HSL_HUE_NV 0x92AD -#define GL_HSL_LUMINOSITY_NV 0x92B0 -#define GL_HSL_SATURATION_NV 0x92AE -#define GL_INVERT_OVG_NV 0x92B4 -#define GL_INVERT_RGB_NV 0x92A3 -#define GL_LIGHTEN_NV 0x9298 -#define GL_LINEARBURN_NV 0x92A5 -#define GL_LINEARDODGE_NV 0x92A4 -#define GL_LINEARLIGHT_NV 0x92A7 -#define GL_MINUS_CLAMPED_NV 0x92B3 -#define GL_MINUS_NV 0x929F -#define GL_MULTIPLY_NV 0x9294 -#define GL_OVERLAY_NV 0x9296 -#define GL_PINLIGHT_NV 0x92A8 -#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 -#define GL_PLUS_CLAMPED_NV 0x92B1 -#define GL_PLUS_DARKER_NV 0x9292 -#define GL_PLUS_NV 0x9291 -#define GL_RED_NV 0x1903 -#define GL_SCREEN_NV 0x9295 -#define GL_SOFTLIGHT_NV 0x929C -#define GL_SRC_ATOP_NV 0x928E -#define GL_SRC_IN_NV 0x928A -#define GL_SRC_NV 0x9286 -#define GL_SRC_OUT_NV 0x928C -#define GL_SRC_OVER_NV 0x9288 -#define GL_UNCORRELATED_NV 0x9282 -#define GL_VIVIDLIGHT_NV 0x92A6 -#define GL_XOR_NV 0x1506 -typedef void (GL_APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendParameteriNV (GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glBlendBarrierNV (void); -#endif -#endif /* GL_NV_blend_equation_advanced */ - -#ifndef GL_NV_blend_equation_advanced_coherent -#define GL_NV_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 -#endif /* GL_NV_blend_equation_advanced_coherent */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -typedef void (GL_APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (GL_APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); -GL_APICALL void GL_APIENTRY glEndConditionalRenderNV (void); -#endif -#endif /* GL_NV_conditional_render */ - -#ifndef GL_NV_conservative_raster -#define GL_NV_conservative_raster 1 -#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 -#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 -#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 -#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 -typedef void (GL_APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); -#endif -#endif /* GL_NV_conservative_raster */ - -#ifndef GL_NV_copy_buffer -#define GL_NV_copy_buffer 1 -#define GL_COPY_READ_BUFFER_NV 0x8F36 -#define GL_COPY_WRITE_BUFFER_NV 0x8F37 -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyBufferSubDataNV (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif -#endif /* GL_NV_copy_buffer */ - -#ifndef GL_NV_coverage_sample -#define GL_NV_coverage_sample 1 -#define GL_COVERAGE_COMPONENT_NV 0x8ED0 -#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 -#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 -#define GL_COVERAGE_BUFFERS_NV 0x8ED3 -#define GL_COVERAGE_SAMPLES_NV 0x8ED4 -#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 -#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 -#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 -#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); -typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); -GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); -#endif -#endif /* GL_NV_coverage_sample */ - -#ifndef GL_NV_depth_nonlinear -#define GL_NV_depth_nonlinear 1 -#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C -#endif /* GL_NV_depth_nonlinear */ - -#ifndef GL_NV_draw_buffers -#define GL_NV_draw_buffers 1 -#define GL_MAX_DRAW_BUFFERS_NV 0x8824 -#define GL_DRAW_BUFFER0_NV 0x8825 -#define GL_DRAW_BUFFER1_NV 0x8826 -#define GL_DRAW_BUFFER2_NV 0x8827 -#define GL_DRAW_BUFFER3_NV 0x8828 -#define GL_DRAW_BUFFER4_NV 0x8829 -#define GL_DRAW_BUFFER5_NV 0x882A -#define GL_DRAW_BUFFER6_NV 0x882B -#define GL_DRAW_BUFFER7_NV 0x882C -#define GL_DRAW_BUFFER8_NV 0x882D -#define GL_DRAW_BUFFER9_NV 0x882E -#define GL_DRAW_BUFFER10_NV 0x882F -#define GL_DRAW_BUFFER11_NV 0x8830 -#define GL_DRAW_BUFFER12_NV 0x8831 -#define GL_DRAW_BUFFER13_NV 0x8832 -#define GL_DRAW_BUFFER14_NV 0x8833 -#define GL_DRAW_BUFFER15_NV 0x8834 -#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 -#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 -#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 -#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 -#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 -#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 -#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 -#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 -#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 -#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 -#define GL_COLOR_ATTACHMENT10_NV 0x8CEA -#define GL_COLOR_ATTACHMENT11_NV 0x8CEB -#define GL_COLOR_ATTACHMENT12_NV 0x8CEC -#define GL_COLOR_ATTACHMENT13_NV 0x8CED -#define GL_COLOR_ATTACHMENT14_NV 0x8CEE -#define GL_COLOR_ATTACHMENT15_NV 0x8CEF -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_NV_draw_buffers */ - -#ifndef GL_NV_draw_instanced -#define GL_NV_draw_instanced 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_NV_draw_instanced */ - -#ifndef GL_NV_explicit_attrib_location -#define GL_NV_explicit_attrib_location 1 -#endif /* GL_NV_explicit_attrib_location */ - -#ifndef GL_NV_fbo_color_attachments -#define GL_NV_fbo_color_attachments 1 -#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF -#endif /* GL_NV_fbo_color_attachments */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); -GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif -#endif /* GL_NV_fence */ - -#ifndef GL_NV_fill_rectangle -#define GL_NV_fill_rectangle 1 -#define GL_FILL_RECTANGLE_NV 0x933C -#endif /* GL_NV_fill_rectangle */ - -#ifndef GL_NV_fragment_coverage_to_color -#define GL_NV_fragment_coverage_to_color 1 -#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD -#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE -typedef void (GL_APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFragmentCoverageColorNV (GLuint color); -#endif -#endif /* GL_NV_fragment_coverage_to_color */ - -#ifndef GL_NV_fragment_shader_interlock -#define GL_NV_fragment_shader_interlock 1 -#endif /* GL_NV_fragment_shader_interlock */ - -#ifndef GL_NV_framebuffer_blit -#define GL_NV_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_NV 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_NV_framebuffer_blit */ - -#ifndef GL_NV_framebuffer_mixed_samples -#define GL_NV_framebuffer_mixed_samples 1 -#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#define GL_DEPTH_SAMPLES_NV 0x932D -#define GL_STENCIL_SAMPLES_NV 0x932E -#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F -#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 -#define GL_COVERAGE_MODULATION_NV 0x9332 -#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufsize, GLfloat *v); -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); -GL_APICALL void GL_APIENTRY glGetCoverageModulationTableNV (GLsizei bufsize, GLfloat *v); -GL_APICALL void GL_APIENTRY glCoverageModulationNV (GLenum components); -#endif -#endif /* GL_NV_framebuffer_mixed_samples */ - -#ifndef GL_NV_framebuffer_multisample -#define GL_NV_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 -#define GL_MAX_SAMPLES_NV 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_NV_framebuffer_multisample */ - -#ifndef GL_NV_generate_mipmap_sRGB -#define GL_NV_generate_mipmap_sRGB 1 -#endif /* GL_NV_generate_mipmap_sRGB */ - -#ifndef GL_NV_geometry_shader_passthrough -#define GL_NV_geometry_shader_passthrough 1 -#endif /* GL_NV_geometry_shader_passthrough */ - -#ifndef GL_NV_image_formats -#define GL_NV_image_formats 1 -#endif /* GL_NV_image_formats */ - -#ifndef GL_NV_instanced_arrays -#define GL_NV_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor); -#endif -#endif /* GL_NV_instanced_arrays */ - -#ifndef GL_NV_internalformat_sample_query -#define GL_NV_internalformat_sample_query 1 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_MULTISAMPLES_NV 0x9371 -#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 -#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 -#define GL_CONFORMANT_NV 0x9374 -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_NV_internalformat_sample_query */ - -#ifndef GL_NV_non_square_matrices -#define GL_NV_non_square_matrices 1 -#define GL_FLOAT_MAT2x3_NV 0x8B65 -#define GL_FLOAT_MAT2x4_NV 0x8B66 -#define GL_FLOAT_MAT3x2_NV 0x8B67 -#define GL_FLOAT_MAT3x4_NV 0x8B68 -#define GL_FLOAT_MAT4x2_NV 0x8B69 -#define GL_FLOAT_MAT4x3_NV 0x8B6A -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_NV_non_square_matrices */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_CLOSE_PATH_NV 0x00 -#define GL_MOVE_TO_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_LINE_TO_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_RESTART_PATH_NV 0xF0 -#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 -#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 -#define GL_RECT_NV 0xF6 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_BOLD_BIT_NV 0x01 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 -#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 -#define GL_FONT_ASCENDER_BIT_NV 0x00200000 -#define GL_FONT_DESCENDER_BIT_NV 0x00400000 -#define GL_FONT_HEIGHT_BIT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 -#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 -#define GL_ROUNDED_RECT_NV 0xE8 -#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 -#define GL_ROUNDED_RECT2_NV 0xEA -#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB -#define GL_ROUNDED_RECT4_NV 0xEC -#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED -#define GL_ROUNDED_RECT8_NV 0xEE -#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF -#define GL_RELATIVE_RECT_NV 0xF7 -#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 -#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 -#define GL_FONT_UNAVAILABLE_NV 0x936A -#define GL_FONT_UNINTELLIGIBLE_NV 0x936B -#define GL_CONIC_CURVE_TO_NV 0x1A -#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B -#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 -#define GL_STANDARD_FONT_FORMAT_NV 0x936C -#define GL_PATH_PROJECTION_NV 0x1701 -#define GL_PATH_MODELVIEW_NV 0x1700 -#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 -#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 -#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 -#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 -#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 -#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 -#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 -#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 -#define GL_FRAGMENT_INPUT_NV 0x936D -typedef GLuint (GL_APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (GL_APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLboolean (GL_APIENTRYP PFNGLISPATHNVPROC) (GLuint path); -typedef void (GL_APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); -typedef void (GL_APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -typedef void (GL_APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (GL_APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef void (GL_APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (GL_APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -typedef void (GL_APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); -typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); -typedef void (GL_APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); -typedef void (GL_APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); -typedef void (GL_APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); -typedef void (GL_APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (GL_APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -typedef void (GL_APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef GLfloat (GL_APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef GLboolean (GL_APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]); -typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef GLenum (GL_APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLfloat *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint GL_APIENTRY glGenPathsNV (GLsizei range); -GL_APICALL void GL_APIENTRY glDeletePathsNV (GLuint path, GLsizei range); -GL_APICALL GLboolean GL_APIENTRY glIsPathNV (GLuint path); -GL_APICALL void GL_APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); -GL_APICALL void GL_APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -GL_APICALL void GL_APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); -GL_APICALL void GL_APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -GL_APICALL void GL_APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); -GL_APICALL void GL_APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); -GL_APICALL void GL_APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); -GL_APICALL void GL_APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -GL_APICALL void GL_APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glPathCoverDepthFuncNV (GLenum func); -GL_APICALL void GL_APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); -GL_APICALL void GL_APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); -GL_APICALL void GL_APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); -GL_APICALL void GL_APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); -GL_APICALL void GL_APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); -GL_APICALL void GL_APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -GL_APICALL void GL_APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -GL_APICALL void GL_APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -GL_APICALL GLboolean GL_APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); -GL_APICALL GLboolean GL_APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); -GL_APICALL GLfloat GL_APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); -GL_APICALL GLboolean GL_APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -GL_APICALL void GL_APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]); -GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL GLenum GL_APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -GL_APICALL void GL_APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLfloat *params); -#endif -#endif /* GL_NV_path_rendering */ - -#ifndef GL_NV_path_rendering_shared_edge -#define GL_NV_path_rendering_shared_edge 1 -#define GL_SHARED_EDGE_NV 0xC0 -#endif /* GL_NV_path_rendering_shared_edge */ - -#ifndef GL_NV_polygon_mode -#define GL_NV_polygon_mode 1 -#define GL_POLYGON_MODE_NV 0x0B40 -#define GL_POLYGON_OFFSET_POINT_NV 0x2A01 -#define GL_POLYGON_OFFSET_LINE_NV 0x2A02 -#define GL_POINT_NV 0x1B00 -#define GL_LINE_NV 0x1B01 -#define GL_FILL_NV 0x1B02 -typedef void (GL_APIENTRYP PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPolygonModeNV (GLenum face, GLenum mode); -#endif -#endif /* GL_NV_polygon_mode */ - -#ifndef GL_NV_read_buffer -#define GL_NV_read_buffer 1 -#define GL_READ_BUFFER_NV 0x0C02 -typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); -#endif -#endif /* GL_NV_read_buffer */ - -#ifndef GL_NV_read_buffer_front -#define GL_NV_read_buffer_front 1 -#endif /* GL_NV_read_buffer_front */ - -#ifndef GL_NV_read_depth -#define GL_NV_read_depth 1 -#endif /* GL_NV_read_depth */ - -#ifndef GL_NV_read_depth_stencil -#define GL_NV_read_depth_stencil 1 -#endif /* GL_NV_read_depth_stencil */ - -#ifndef GL_NV_read_stencil -#define GL_NV_read_stencil 1 -#endif /* GL_NV_read_stencil */ - -#ifndef GL_NV_sRGB_formats -#define GL_NV_sRGB_formats 1 -#define GL_SLUMINANCE_NV 0x8C46 -#define GL_SLUMINANCE_ALPHA_NV 0x8C44 -#define GL_SRGB8_NV 0x8C41 -#define GL_SLUMINANCE8_NV 0x8C47 -#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 -#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F -#define GL_ETC1_SRGB8_NV 0x88EE -#endif /* GL_NV_sRGB_formats */ - -#ifndef GL_NV_sample_locations -#define GL_NV_sample_locations 1 -#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D -#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E -#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 -#define GL_SAMPLE_LOCATION_NV 0x8E50 -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 -#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 -#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glResolveDepthValuesNV (void); -#endif -#endif /* GL_NV_sample_locations */ - -#ifndef GL_NV_sample_mask_override_coverage -#define GL_NV_sample_mask_override_coverage 1 -#endif /* GL_NV_sample_mask_override_coverage */ - -#ifndef GL_NV_shader_noperspective_interpolation -#define GL_NV_shader_noperspective_interpolation 1 -#endif /* GL_NV_shader_noperspective_interpolation */ - -#ifndef GL_NV_shadow_samplers_array -#define GL_NV_shadow_samplers_array 1 -#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 -#endif /* GL_NV_shadow_samplers_array */ - -#ifndef GL_NV_shadow_samplers_cube -#define GL_NV_shadow_samplers_cube 1 -#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 -#endif /* GL_NV_shadow_samplers_cube */ - -#ifndef GL_NV_texture_border_clamp -#define GL_NV_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 -#define GL_CLAMP_TO_BORDER_NV 0x812D -#endif /* GL_NV_texture_border_clamp */ - -#ifndef GL_NV_texture_compression_s3tc_update -#define GL_NV_texture_compression_s3tc_update 1 -#endif /* GL_NV_texture_compression_s3tc_update */ - -#ifndef GL_NV_texture_npot_2D_mipmap -#define GL_NV_texture_npot_2D_mipmap 1 -#endif /* GL_NV_texture_npot_2D_mipmap */ - -#ifndef GL_NV_viewport_array -#define GL_NV_viewport_array 1 -#define GL_MAX_VIEWPORTS_NV 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F -typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLENABLEINVPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEINVPROC) (GLenum target, GLuint index); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportArrayvNV (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glViewportIndexedfNV (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GL_APICALL void GL_APIENTRY glViewportIndexedfvNV (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glScissorArrayvNV (GLuint first, GLsizei count, const GLint *v); -GL_APICALL void GL_APIENTRY glScissorIndexedNV (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glScissorIndexedvNV (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glDepthRangeArrayfvNV (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glDepthRangeIndexedfNV (GLuint index, GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glGetFloati_vNV (GLenum target, GLuint index, GLfloat *data); -GL_APICALL void GL_APIENTRY glEnableiNV (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiNV (GLenum target, GLuint index); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediNV (GLenum target, GLuint index); -#endif -#endif /* GL_NV_viewport_array */ - -#ifndef GL_NV_viewport_array2 -#define GL_NV_viewport_array2 1 -#endif /* GL_NV_viewport_array2 */ - -#ifndef GL_OVR_multiview -#define GL_OVR_multiview 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 -#define GL_MAX_VIEWS_OVR 0x9631 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#endif -#endif /* GL_OVR_multiview */ - -#ifndef GL_OVR_multiview2 -#define GL_OVR_multiview2 1 -#endif /* GL_OVR_multiview2 */ - -#ifndef GL_QCOM_alpha_test -#define GL_QCOM_alpha_test 1 -#define GL_ALPHA_TEST_QCOM 0x0BC0 -#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 -#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 -typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); -#endif -#endif /* GL_QCOM_alpha_test */ - -#ifndef GL_QCOM_binning_control -#define GL_QCOM_binning_control 1 -#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 -#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 -#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 -#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 -#endif /* GL_QCOM_binning_control */ - -#ifndef GL_QCOM_driver_control -#define GL_QCOM_driver_control 1 -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); -GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); -GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); -#endif -#endif /* GL_QCOM_driver_control */ - -#ifndef GL_QCOM_extended_get -#define GL_QCOM_extended_get 1 -#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 -#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 -#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 -#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 -#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 -#define GL_TEXTURE_TYPE_QCOM 0x8BD7 -#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 -#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 -#define GL_TEXTURE_TARGET_QCOM 0x8BDA -#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB -#define GL_STATE_RESTORE 0x8BDC -typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); -GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params); -#endif -#endif /* GL_QCOM_extended_get */ - -#ifndef GL_QCOM_extended_get2 -#define GL_QCOM_extended_get2 1 -typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); -GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); -GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#endif -#endif /* GL_QCOM_extended_get2 */ - -#ifndef GL_QCOM_perfmon_global_mode -#define GL_QCOM_perfmon_global_mode 1 -#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 -#endif /* GL_QCOM_perfmon_global_mode */ - -#ifndef GL_QCOM_tiled_rendering -#define GL_QCOM_tiled_rendering 1 -#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 -#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 -#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 -#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 -#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 -#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 -#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 -#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 -#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 -#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 -#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 -#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 -#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 -#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 -#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 -#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 -#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 -#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 -#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 -#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 -#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 -#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 -#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 -#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 -#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 -#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 -#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 -#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 -#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 -#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 -#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 -#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 -typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); -#endif -#endif /* GL_QCOM_tiled_rendering */ - -#ifndef GL_QCOM_writeonly_rendering -#define GL_QCOM_writeonly_rendering 1 -#define GL_WRITEONLY_RENDERING_QCOM 0x8823 -#endif /* GL_QCOM_writeonly_rendering */ - -#ifndef GL_VIV_shader_binary -#define GL_VIV_shader_binary 1 -#define GL_SHADER_BINARY_VIV 0x8FC4 -#endif /* GL_VIV_shader_binary */ - -#ifndef GL_ANGLE_lossy_etc_decode -#define GL_ANGLE_lossy_etc_decode 1 -#define GL_ETC1_RGB8_LOSSY_DECODE_ANGLE 0x9690 -#define GL_COMPRESSED_R11_LOSSY_DECODE_EAC_ANGLE 0x9691 -#define GL_COMPRESSED_SIGNED_R11_LOSSY_DECODE_EAC_ANGLE 0x9692 -#define GL_COMPRESSED_RG11_LOSSY_DECODE_EAC_ANGLE 0x9693 -#define GL_COMPRESSED_SIGNED_RG11_LOSSY_DECODE_EAC_ANGLE 0x9694 -#define GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE 0x9695 -#define GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE 0x9696 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE 0x9697 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE 0x9698 -#define GL_COMPRESSED_RGBA8_LOSSY_DECODE_ETC2_EAC_ANGLE 0x9699 -#define GL_COMPRESSED_SRGB8_ALPHA8_LOSSY_DECODE_ETC2_EAC_ANGLE 0x969A -#endif /* GL_ANGLE_lossy_etc_decode */ - -#ifndef GL_ANGLE_robust_client_memory -#define GL_ANGLE_robust_client_memory 1 -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETFLOATVROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVROBUSTANGLE) (GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVROBUSTANGLE) (GLuint program, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVROBUSTANGLE) (GLuint shader, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, void **pointer); -typedef void (GL_APIENTRYP PFNGLREADPIXELSROBUSTANGLE) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DROBUSTANGLE) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DROBUSTANGLE) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DROBUSTANGLE) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DROBUSTANGLE) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVROBUSTANGLE) (GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VROBUSTANGLE) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint *data); -typedef void (GL_APIENTRYP PFNGETINTERNALFORMATIVROBUSTANGLE) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVROBUSTANGLE) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VROBUSTANGLE) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVROBUSTANGLE) (GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VROBUSTANGLE) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVROBUSTANGLE) (GLenum pname, GLuint index, GLsizei bufSize, GLsizei *length, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVROBUSTANGLE) (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVROBUSTANGLE) (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVROBUSTANGLEROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSROBUSTANGLE) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVROBUSTANGLE)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VROBUSTANGLE)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VROBUSTANGLE)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint64 *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetBooleanvRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetFloatvRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameterivRobustANGLE (GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegervRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramivRobustANGLE (GLuint program, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderivRobustANGLE (GLuint shader, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterfvRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfvRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribfvRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointervRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, void **pointer); -GL_APICALL void GL_APIENTRY glReadPixelsRobustANGLE (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, void *pixels); -GL_APICALL void GL_APIENTRY glTexImage2DRobustANGLE (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterfvRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2DRobustANGLE (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glTexImage3DRobustANGLE (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3DRobustANGLE (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glGetQueryivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivRobustANGLE (GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetBufferPointervRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -GL_APICALL void GL_APIENTRY glGetIntegeri_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint *data); -GL_APICALL void GL_APIENTRY glGetInternalformativRobustANGLE (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetUniformuivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockivRobustANGLE (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetInteger64vRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetInteger64i_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64vRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -GL_APICALL void GL_APIENTRY glSamplerParameterivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterfvRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfvRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetFramebufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceivRobustANGLE (GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetBooleani_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetMultisamplefvRobustANGLE (GLenum pname, GLuint index, GLsizei bufSize, GLsizei *length, GLfloat *val); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterivRobustANGLE (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvRobustANGLE (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetPointervRobustANGLERobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -GL_APICALL void GL_APIENTRY glReadnPixelsRobustANGLE (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glTexParameterIivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint64 *params); -#endif -#endif /* GL_ANGLE_robust_client_memory */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win10-specific/angle/include/GLES2/gl2platform.h b/external/win10-specific/angle/include/GLES2/gl2platform.h deleted file mode 100644 index 89d4d44..0000000 --- a/external/win10-specific/angle/include/GLES2/gl2platform.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __gl2platform_h_ -#define __gl2platform_h_ - -/* $Revision: 23328 $ on $Date:: 2013-10-02 02:28:28 -0700 #$ */ - -/* - * This document is licensed under the SGI Free Software B License Version - * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - */ - -/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * You are encouraged to submit all modifications to the Khronos group so that - * they can be included in future versions of this file. Please submit changes - * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) - * by filing a bug against product "OpenGL-ES" component "Registry". - */ - -#include - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl2platform_h_ */ diff --git a/external/win10-specific/angle/include/GLES3/gl3.h b/external/win10-specific/angle/include/GLES3/gl3.h deleted file mode 100644 index 53c59b8..0000000 --- a/external/win10-specific/angle/include/GLES3/gl3.h +++ /dev/null @@ -1,1209 +0,0 @@ -#ifndef __gl3_h_ -#define __gl3_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision: 31811 $ on $Date: 2015-08-10 00:01:11 -0700 (Mon, 10 Aug 2015) $ -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20150809 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.0 - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef short GLshort; -typedef unsigned short GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef unsigned short GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win10-specific/angle/include/GLES3/gl31.h b/external/win10-specific/angle/include/GLES3/gl31.h deleted file mode 100644 index 26f869b..0000000 --- a/external/win10-specific/angle/include/GLES3/gl31.h +++ /dev/null @@ -1,1524 +0,0 @@ -#ifndef __gl31_h_ -#define __gl31_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision$ on $Date$ -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20150809 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[01] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef short GLshort; -typedef unsigned short GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef unsigned short GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win10-specific/angle/include/GLES3/gl32.h b/external/win10-specific/angle/include/GLES3/gl32.h deleted file mode 100644 index 2975a6f..0000000 --- a/external/win10-specific/angle/include/GLES3/gl32.h +++ /dev/null @@ -1,1825 +0,0 @@ -#ifndef __gl32_h_ -#define __gl32_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2015 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.opengl.org/registry/ -** -** Khronos $Revision$ on $Date$ -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20150809 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[012] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef short GLshort; -typedef unsigned short GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef unsigned short GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifndef GL_ES_VERSION_3_2 -#define GL_ES_VERSION_3_2 1 -typedef void (GL_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_MULTISAMPLE_LINE_WIDTH_RANGE 0x9381 -#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY 0x9382 -#define GL_MULTIPLY 0x9294 -#define GL_SCREEN 0x9295 -#define GL_OVERLAY 0x9296 -#define GL_DARKEN 0x9297 -#define GL_LIGHTEN 0x9298 -#define GL_COLORDODGE 0x9299 -#define GL_COLORBURN 0x929A -#define GL_HARDLIGHT 0x929B -#define GL_SOFTLIGHT 0x929C -#define GL_DIFFERENCE 0x929E -#define GL_EXCLUSION 0x92A0 -#define GL_HSL_HUE 0x92AD -#define GL_HSL_SATURATION 0x92AE -#define GL_HSL_COLOR 0x92AF -#define GL_HSL_LUMINOSITY 0x92B0 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_PRIMITIVE_BOUNDING_BOX 0x92BE -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 -#define GL_CONTEXT_FLAGS 0x821E -#define GL_LOSE_CONTEXT_ON_RESET 0x8252 -#define GL_GUILTY_CONTEXT_RESET 0x8253 -#define GL_INNOCENT_CONTEXT_RESET 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 -#define GL_NO_RESET_NOTIFICATION 0x8261 -#define GL_CONTEXT_LOST 0x0507 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_QUADS 0x0007 -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_IS_PER_PATCH 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_COMPRESSED_RGBA_ASTC_4x4 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERPROC) (void); -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrier (void); -GL_APICALL void GL_APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroup (void); -GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glEnablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnabledi (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBox (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatus (void); -GL_APICALL void GL_APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GL_APICALL void GL_APIENTRY glMinSampleShading (GLfloat value); -GL_APICALL void GL_APIENTRY glPatchParameteri (GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif -#endif /* GL_ES_VERSION_3_2 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win10-specific/angle/include/GLES3/gl3platform.h b/external/win10-specific/angle/include/GLES3/gl3platform.h deleted file mode 100644 index b1e869d..0000000 --- a/external/win10-specific/angle/include/GLES3/gl3platform.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __gl3platform_h_ -#define __gl3platform_h_ - -/* $Revision: 23328 $ on $Date:: 2013-10-02 02:28:28 -0700 #$ */ - -/* - * This document is licensed under the SGI Free Software B License Version - * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - */ - -/* Platform-specific types and definitions for OpenGL ES 3.X gl3.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * You are encouraged to submit all modifications to the Khronos group so that - * they can be included in future versions of this file. Please submit changes - * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) - * by filing a bug against product "OpenGL-ES" component "Registry". - */ - -#include - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl3platform_h_ */ diff --git a/external/win10-specific/angle/include/KHR/khrplatform.h b/external/win10-specific/angle/include/KHR/khrplatform.h deleted file mode 100644 index c9e6f17..0000000 --- a/external/win10-specific/angle/include/KHR/khrplatform.h +++ /dev/null @@ -1,282 +0,0 @@ -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2009 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. - * - * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by sending them to the public Khronos Bugzilla - * (http://khronos.org/bugzilla) by filing a bug against product - * "Khronos (general)" component "Registry". - * - * A predefined template which fills in some of the bug fields can be - * reached using http://tinyurl.com/khrplatform-h-bugreport, but you - * must create a Bugzilla login first. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(_WIN32) && !defined(__SCITECH_SNAP__) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) - /* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* - * Using - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__VMS ) || defined(__sgi) - -/* - * Using - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* - * Generic fallback - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef _WIN64 -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ diff --git a/external/win10-specific/angle/include/angle_windowsstore.h b/external/win10-specific/angle/include/angle_windowsstore.h deleted file mode 100644 index b8f76de..0000000 --- a/external/win10-specific/angle/include/angle_windowsstore.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// angle_windowsstore.h: - -#ifndef ANGLE_WINDOWSSTORE_H_ -#define ANGLE_WINDOWSSTORE_H_ - -// The following properties can be set on the CoreApplication to support additional -// ANGLE configuration options. -// -// The Visual Studio sample templates provided with this version of ANGLE have examples -// of how to set these property values. - -// -// Property: EGLNativeWindowTypeProperty -// Type: IInspectable -// Description: Set this property to specify the window type to use for creating a surface. -// If this property is missing, surface creation will fail. -// -const wchar_t EGLNativeWindowTypeProperty[] = L"EGLNativeWindowTypeProperty"; - -// -// Property: EGLRenderSurfaceSizeProperty -// Type: Size -// Description: Set this property to specify a preferred size in pixels of the render surface. -// The render surface size width and height must be greater than 0. -// If this property is set, then the render surface size is fixed. -// The render surface will then be scaled to the window dimensions. -// If this property is missing, a default behavior will be provided. -// The default behavior uses the window size if a CoreWindow is specified or -// the size of the SwapChainPanel control if one is specified. -// -const wchar_t EGLRenderSurfaceSizeProperty[] = L"EGLRenderSurfaceSizeProperty"; - -// -// Property: EGLRenderResolutionScaleProperty -// Type: Single -// Description: Use this to specify a preferred scale for the render surface compared to the window. -// For example, if the window is 800x480, and: -// - scale is set to 0.5f then the surface will be 400x240 -// - scale is set to 1.2f then the surface will be 960x576 -// If the window resizes or rotates then the surface will resize accordingly. -// EGLRenderResolutionScaleProperty and EGLRenderSurfaceSizeProperty cannot both be set. -// The scale factor should be > 0.0f. -// -const wchar_t EGLRenderResolutionScaleProperty[] = L"EGLRenderResolutionScaleProperty"; - -#endif // ANGLE_WINDOWSSTORE_H_ diff --git a/external/win10-specific/angle/prebuilt/arm/libEGL.dll b/external/win10-specific/angle/prebuilt/arm/libEGL.dll deleted file mode 100644 index c35c7a1..0000000 Binary files a/external/win10-specific/angle/prebuilt/arm/libEGL.dll and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/arm/libEGL.lib b/external/win10-specific/angle/prebuilt/arm/libEGL.lib deleted file mode 100644 index 862a759..0000000 Binary files a/external/win10-specific/angle/prebuilt/arm/libEGL.lib and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/arm/libGLESv2.dll b/external/win10-specific/angle/prebuilt/arm/libGLESv2.dll deleted file mode 100644 index a83e96e..0000000 Binary files a/external/win10-specific/angle/prebuilt/arm/libGLESv2.dll and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/arm/libGLESv2.lib b/external/win10-specific/angle/prebuilt/arm/libGLESv2.lib deleted file mode 100644 index 97ae0a6..0000000 Binary files a/external/win10-specific/angle/prebuilt/arm/libGLESv2.lib and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/win32/libEGL.dll b/external/win10-specific/angle/prebuilt/win32/libEGL.dll deleted file mode 100644 index 66316ec..0000000 Binary files a/external/win10-specific/angle/prebuilt/win32/libEGL.dll and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/win32/libEGL.lib b/external/win10-specific/angle/prebuilt/win32/libEGL.lib deleted file mode 100644 index ee8e073..0000000 Binary files a/external/win10-specific/angle/prebuilt/win32/libEGL.lib and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/win32/libGLESv2.dll b/external/win10-specific/angle/prebuilt/win32/libGLESv2.dll deleted file mode 100644 index 242a5ec..0000000 Binary files a/external/win10-specific/angle/prebuilt/win32/libGLESv2.dll and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/win32/libGLESv2.lib b/external/win10-specific/angle/prebuilt/win32/libGLESv2.lib deleted file mode 100644 index 3dabf9a..0000000 Binary files a/external/win10-specific/angle/prebuilt/win32/libGLESv2.lib and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/x64/libEGL.dll b/external/win10-specific/angle/prebuilt/x64/libEGL.dll deleted file mode 100644 index 2053a59..0000000 Binary files a/external/win10-specific/angle/prebuilt/x64/libEGL.dll and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/x64/libEGL.lib b/external/win10-specific/angle/prebuilt/x64/libEGL.lib deleted file mode 100644 index 1db878c..0000000 Binary files a/external/win10-specific/angle/prebuilt/x64/libEGL.lib and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/x64/libGLESv2.dll b/external/win10-specific/angle/prebuilt/x64/libGLESv2.dll deleted file mode 100644 index 502e077..0000000 Binary files a/external/win10-specific/angle/prebuilt/x64/libGLESv2.dll and /dev/null differ diff --git a/external/win10-specific/angle/prebuilt/x64/libGLESv2.lib b/external/win10-specific/angle/prebuilt/x64/libGLESv2.lib deleted file mode 100644 index dc9ad94..0000000 Binary files a/external/win10-specific/angle/prebuilt/x64/libGLESv2.lib and /dev/null differ diff --git a/external/win10-specific/zlib/include/zconf.h b/external/win10-specific/zlib/include/zconf.h deleted file mode 100644 index 352f552..0000000 --- a/external/win10-specific/zlib/include/zconf.h +++ /dev/null @@ -1,536 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H -/* #undef Z_PREFIX */ -/* #undef Z_HAVE_UNISTD_H */ - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols and init macros */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# define adler32_z z_adler32_z -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define crc32_z z_crc32_z -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateGetDictionary z_deflateGetDictionary -# define deflateInit z_deflateInit -# define deflateInit2 z_deflateInit2 -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzfread z_gzfread -# define gzfwrite z_gzfwrite -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzvprintf z_gzvprintf -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit z_inflateBackInit -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCodesUsed z_inflateCodesUsed -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetDictionary z_inflateGetDictionary -# define inflateGetHeader z_inflateGetHeader -# define inflateInit z_inflateInit -# define inflateInit2 z_inflateInit2 -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateResetKeep z_inflateResetKeep -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateValidate z_inflateValidate -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# define uncompress2 z_uncompress2 -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -#ifdef Z_SOLO - typedef unsigned long z_size_t; -#else -# define z_longlong long long -# if defined(NO_SIZE_T) - typedef unsigned NO_SIZE_T z_size_t; -# elif defined(STDC) -# include - typedef size_t z_size_t; -# else - typedef unsigned long z_size_t; -# endif -# undef z_longlong -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus about 7 kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/external/win10-specific/zlib/include/zlib.h b/external/win10-specific/zlib/include/zlib.h deleted file mode 100644 index f09cdaf..0000000 --- a/external/win10-specific/zlib/include/zlib.h +++ /dev/null @@ -1,1912 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 - - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.11" -#define ZLIB_VERNUM 0x12b0 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip and raw deflate streams in - memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in the case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ - - Bytef *next_out; /* next output byte will go here */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ - - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text - for deflate, or the decoding state for inflate */ - uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. In that case, zlib is thread-safe. When zalloc and zfree are - Z_NULL on entry to the initialization function, they are set to internal - routines that use the standard library functions malloc() and free(). - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use by the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field for deflate() */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Generate more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary. Some output may be provided even if - flush is zero. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. See deflatePending(), - which can be used if desired to determine whether or not there is more ouput - in that case. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed - codes block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this - function must be called again with Z_FINISH and more output space (updated - avail_out) but no more input data, until it returns with Z_STREAM_END or an - error. After deflate has returned Z_STREAM_END, the only possible operations - on the stream are deflateReset or deflateEnd. - - Z_FINISH can be used in the first deflate call after deflateInit if all the - compression is to be done in a single step. In order to complete in one - call, avail_out must be at least the value returned by deflateBound (see - below). Then deflate is guaranteed to return Z_STREAM_END. If not enough - output space is provided, deflate will not return Z_STREAM_END, and it must - be called again as described above. - - deflate() sets strm->adler to the Adler-32 checksum of all input read - so far (that is, total_in bytes). If a gzip stream is being generated, then - strm->adler will be the CRC-32 checksum of the input read so far. (See - deflateInit2 below.) - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). If in doubt, the data is - considered binary. This field is only for information purposes and does not - affect the compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL or the state was inadvertently written over - by the application), or Z_BUF_ERROR if no progress is possible (for example - avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and - deflate() can be called again with more input and more output space to - continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. In the current version of inflate, the provided input is not - read or consumed. The allocation of a sliding window will be deferred to - the first call of inflate (if the decompression does not complete on the - first call). If zalloc and zfree are set to Z_NULL, inflateInit updates - them to use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression. - Actual decompression will be done by inflate(). So next_in, and avail_in, - next_out, and avail_out are unused and unchanged. The current - implementation of inflateInit() does not process any header information -- - that is deferred until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), then next_in and avail_in are updated - accordingly, and processing will resume at this point for the next call of - inflate(). - - - Generate more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. If the - caller of inflate() does not provide both available input and available - output space, it is possible that there will be no progress made. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - To assist in this, on return inflate() always sets strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed Adler-32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained unless inflateGetHeader() is used. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - produced so far. The CRC-32 is checked against the gzip trailer, as is the - uncompressed length, modulo 2^32. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value, in which case strm->msg points to a string with a more specific - error), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL, or the state was inadvertently written over - by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR - if no progress was possible or if there was not enough room in the output - buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is to be attempted. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state - was inconsistent. -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - For the current implementation of deflate(), a windowBits value of 8 (a - window size of 256 bytes) is not supported. As a result, a request for 8 - will result in 9 (a 512-byte window). In that case, providing 8 to - inflateInit2() will result in an error when the zlib header with 9 is - checked against the initialization of inflate(). The remedy is to not use 8 - with deflateInit2() with this initialization, or at least in that case use 9 - with inflateInit2(). - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute a check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to the appropriate value, - if the operating system was determined at compile time. If a gzip stream is - being written, strm->adler is a CRC-32 instead of an Adler-32. - - For raw deflate or gzip encoding, a request for a 256-byte window is - rejected as invalid, since only the zlib header provides a means of - transmitting the window size to the decompressor. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the Adler-32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The Adler-32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - Adler-32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by deflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If deflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - deflateGetDictionary() may return a length less than the window size, even - when more than the window size in input has been provided. It may return up - to 258 bytes less in that case, due to how zlib's implementation of deflate - manages the sliding window and lookahead for matches, where matches can be - up to 258 bytes long. If the application needs the last window-size bytes of - input, then that would need to be saved by the application outside of zlib. - - deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, but - does not free and reallocate the internal compression state. The stream - will leave the compression level and any other attributes that may have been - set unchanged. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2(). This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). - - If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does - not have enough output space to complete, then the parameter change will not - take effect. In this case, deflateParams() can be called again with the - same parameters and more output space to try again. - - In order to assure a change in the parameters on the first try, the - deflate stream should be flushed using deflate() with Z_BLOCK or other flush - request until strm.avail_out is not zero, before calling deflateParams(). - Then no more input data should be provided before the deflateParams() call. - If this is done, the old level and strategy will be applied to the data - compressed before deflateParams(), and the new level and strategy will be - applied to the the data compressed after deflateParams(). - - deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream - state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if - there was not enough output space to complete the compression of the - available input data before a change in the strategy or approach. Note that - in the case of a Z_BUF_ERROR, the parameters are not changed. A return - value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be - retried with more output space. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an Adler-32 or a CRC-32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the Adler-32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect Adler-32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurrences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. If the window size is changed, then the - memory allocated for the window is freed, and the window will be reallocated - by inflate() if needed. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above, or -65536 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is potentially more efficient than - inflate() for file i/o applications, in that it avoids copying between the - output and the sliding window by simply making the window itself the output - buffer. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() trusts the application to not change the output - buffer passed by the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the default - behavior of inflate(), which expects a zlib header and trailer around the - deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero -- buf is ignored in that - case -- and inflateBack() will return a buffer error. inflateBack() will - call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. - out() should return zero on success, or non-zero on failure. If out() - returns non-zero, inflateBack() will return with an error. Neither in() nor - out() are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: ZLIB_DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed data. compress() is equivalent to compress2() with a level - parameter of Z_DEFAULT_COMPRESSION. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed data. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed data. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); -/* - Same as uncompress, except that sourceLen is a pointer, where the - length of the source is *sourceLen. On return, *sourceLen is the number of - source bytes consumed. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Three times that size in buffer space is allocated. A larger buffer - size of, for example, 64K or 128K bytes will noticeably increase the speed - of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. Previously provided - data is flushed before the parameter change. - - gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not - opened for writing, Z_ERRNO if there is an error writing the flushed data, - or Z_MEM_ERROR if there is a memory allocation error. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. If len is too large to fit in an int, - then nothing is read, -1 is returned, and the error state is set to - Z_STREAM_ERROR. -*/ - -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); -/* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. - - gzfread() returns the number of full items read of size size, or zero if - the end of the file was reached and a full item could not be read, or if - there was an error. gzerror() must be consulted if zero is returned in - order to determine if there was an error. If the multiplication of size and - nitems overflows, i.e. the product does not fit in a z_size_t, then nothing - is read, zero is returned, and the error state is set to Z_STREAM_ERROR. - - In the event that the end of file is reached and only a partial item is - available at the end, i.e. the remaining uncompressed data length is not a - multiple of size, then the final partial item is nevetheless read into buf - and the end-of-file flag is set. The length of the partial item read is not - provided, but could be inferred from the result of gztell(). This behavior - is the same as the behavior of fread() implementations in common libraries, - but it prevents the direct use of gzfread() to read a concurrently written - file, reseting and retrying on end-of-file, when size is not 1. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); -/* - gzfwrite() writes nitems items of size size from buf to file, duplicating - the interface of stdio's fwrite(), with size_t request and return types. If - the library defines size_t, then z_size_t is identical to size_t. If not, - then z_size_t is an unsigned integer type that can contain a pointer. - - gzfwrite() returns the number of full items written of size size, or zero - if there was an error. If the multiplication of size and nitems overflows, - i.e. the product does not fit in a z_size_t, then nothing is written, zero - is returned, and the error state is set to Z_STREAM_ERROR. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or a negative zlib error code in case - of error. The number of uncompressed bytes written is limited to 8191, or - one less than the buffer size given to gzbuffer(). The caller should assure - that this limit is not exceeded. If it is exceeded, then gzprintf() will - return an error (0) with nothing written. In this case, there may also be a - buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() - because the secure snprintf() or vsnprintf() functions were not available. - This can be determined using zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatenated gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as adler32(), but with a size_t length. -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as crc32(), but with a size_t length. -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#ifdef Z_PREFIX_SET -# define z_deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define z_inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#else -# define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#endif - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/external/win10-specific/zlib/prebuilt/arm/zlib.lib b/external/win10-specific/zlib/prebuilt/arm/zlib.lib deleted file mode 100644 index 9a74dc1..0000000 Binary files a/external/win10-specific/zlib/prebuilt/arm/zlib.lib and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/arm/zlib1.dll b/external/win10-specific/zlib/prebuilt/arm/zlib1.dll deleted file mode 100644 index cf9a665..0000000 Binary files a/external/win10-specific/zlib/prebuilt/arm/zlib1.dll and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/arm/zlibstatic.lib b/external/win10-specific/zlib/prebuilt/arm/zlibstatic.lib deleted file mode 100644 index 0208743..0000000 Binary files a/external/win10-specific/zlib/prebuilt/arm/zlibstatic.lib and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/win32/zlib.lib b/external/win10-specific/zlib/prebuilt/win32/zlib.lib deleted file mode 100644 index 2037dec..0000000 Binary files a/external/win10-specific/zlib/prebuilt/win32/zlib.lib and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/win32/zlib1.dll b/external/win10-specific/zlib/prebuilt/win32/zlib1.dll deleted file mode 100644 index 9cdfbe9..0000000 Binary files a/external/win10-specific/zlib/prebuilt/win32/zlib1.dll and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/win32/zlibstatic.lib b/external/win10-specific/zlib/prebuilt/win32/zlibstatic.lib deleted file mode 100644 index 347e4a7..0000000 Binary files a/external/win10-specific/zlib/prebuilt/win32/zlibstatic.lib and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/x64/zlib.lib b/external/win10-specific/zlib/prebuilt/x64/zlib.lib deleted file mode 100644 index 12eea68..0000000 Binary files a/external/win10-specific/zlib/prebuilt/x64/zlib.lib and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/x64/zlib1.dll b/external/win10-specific/zlib/prebuilt/x64/zlib1.dll deleted file mode 100644 index 09e25e8..0000000 Binary files a/external/win10-specific/zlib/prebuilt/x64/zlib1.dll and /dev/null differ diff --git a/external/win10-specific/zlib/prebuilt/x64/zlibstatic.lib b/external/win10-specific/zlib/prebuilt/x64/zlibstatic.lib deleted file mode 100644 index 2ec463f..0000000 Binary files a/external/win10-specific/zlib/prebuilt/x64/zlibstatic.lib and /dev/null differ diff --git a/external/win32-specific/MP3Decoder/CMakeLists.txt b/external/win32-specific/MP3Decoder/CMakeLists.txt deleted file mode 100644 index f7f797e..0000000 --- a/external/win32-specific/MP3Decoder/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -cmake_minimum_required(VERSION 3.6) - -set(lib_name MP3Decoder) -set(target_name ext_${lib_name}) - -project(${lib_name}) - -include(../../cmake/CocosExternalConfig.cmake) - -add_library(${target_name} SHARED IMPORTED GLOBAL) - -set_target_properties(${target_name} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include -) - -set_target_properties(${target_name} PROPERTIES - IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libmpg123.dll" - IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libmpg123.lib" -) diff --git a/external/win32-specific/MP3Decoder/include/mpg123.h b/external/win32-specific/MP3Decoder/include/mpg123.h deleted file mode 100644 index 5d49694..0000000 --- a/external/win32-specific/MP3Decoder/include/mpg123.h +++ /dev/null @@ -1,1128 +0,0 @@ -/* - libmpg123: MPEG Audio Decoder library (version 1.20.1) - - copyright 1995-2010 by the mpg123 project - free software under the terms of the LGPL 2.1 - see COPYING and AUTHORS files in distribution or http://mpg123.org -*/ - -#ifndef MPG123_LIB_H -#define MPG123_LIB_H - -/** \file mpg123.h The header file for the libmpg123 MPEG Audio decoder */ - -/* A macro to check at compile time which set of API functions to expect. - This should be incremented at least each time a new symbol is added to the header. */ -#define MPG123_API_VERSION 40 - -/* These aren't actually in use... seems to work without using libtool. */ -#ifdef BUILD_MPG123_DLL -/* The dll exports. */ -#define EXPORT __declspec(dllexport) -#else -#ifdef LINK_MPG123_DLL -/* The exe imports. */ -#define EXPORT __declspec(dllimport) -#else -/* Nothing on normal/UNIX builds */ -#define EXPORT -#endif -#endif - -#ifndef MPG123_NO_CONFIGURE /* Enable use of this file without configure. */ -#include -#include - -/* Simplified large file handling. - I used to have a check here that prevents building for a library with conflicting large file setup - (application that uses 32 bit offsets with library that uses 64 bits). - While that was perfectly fine in an environment where there is one incarnation of the library, - it hurt GNU/Linux and Solaris systems with multilib where the distribution fails to provide the - correct header matching the 32 bit library (where large files need explicit support) or - the 64 bit library (where there is no distinction). - - New approach: When the app defines _FILE_OFFSET_BITS, it wants non-default large file support, - and thus functions with added suffix (mpg123_open_64). - Any mismatch will be caught at link time because of the _FILE_OFFSET_BITS setting used when - building libmpg123. Plus, there's dual mode large file support in mpg123 since 1.12 now. - Link failure is not the expected outcome of any half-sane usage anymore. - - More complication: What about client code defining _LARGEFILE64_SOURCE? It might want direct access to the _64 functions, along with the ones without suffix. Well, that's possible now via defining MPG123_NO_LARGENAME and MPG123_LARGESUFFIX, respectively, for disabling or enforcing the suffix names. -*/ - -/* - Now, the renaming of large file aware functions. - By default, it appends underscore _FILE_OFFSET_BITS (so, mpg123_seek_64 for mpg123_seek), if _FILE_OFFSET_BITS is defined. You can force a different suffix via MPG123_LARGESUFFIX (that must include the underscore), or you can just disable the whole mess by defining MPG123_NO_LARGENAME. -*/ -#if (!defined MPG123_NO_LARGENAME) && ((defined _FILE_OFFSET_BITS) || (defined MPG123_LARGESUFFIX)) - -/* Need some trickery to concatenate the value(s) of the given macro(s). */ -#define MPG123_MACROCAT_REALLY(a, b) a ## b -#define MPG123_MACROCAT(a, b) MPG123_MACROCAT_REALLY(a, b) -#ifndef MPG123_LARGESUFFIX -#define MPG123_LARGESUFFIX MPG123_MACROCAT(_, _FILE_OFFSET_BITS) -#endif -#define MPG123_LARGENAME(func) MPG123_MACROCAT(func, MPG123_LARGESUFFIX) - -#define mpg123_open MPG123_LARGENAME(mpg123_open) -#define mpg123_open_fd MPG123_LARGENAME(mpg123_open_fd) -#define mpg123_open_handle MPG123_LARGENAME(mpg123_open_handle) -#define mpg123_framebyframe_decode MPG123_LARGENAME(mpg123_framebyframe_decode) -#define mpg123_decode_frame MPG123_LARGENAME(mpg123_decode_frame) -#define mpg123_tell MPG123_LARGENAME(mpg123_tell) -#define mpg123_tellframe MPG123_LARGENAME(mpg123_tellframe) -#define mpg123_tell_stream MPG123_LARGENAME(mpg123_tell_stream) -#define mpg123_seek MPG123_LARGENAME(mpg123_seek) -#define mpg123_feedseek MPG123_LARGENAME(mpg123_feedseek) -#define mpg123_seek_frame MPG123_LARGENAME(mpg123_seek_frame) -#define mpg123_timeframe MPG123_LARGENAME(mpg123_timeframe) -#define mpg123_index MPG123_LARGENAME(mpg123_index) -#define mpg123_set_index MPG123_LARGENAME(mpg123_set_index) -#define mpg123_position MPG123_LARGENAME(mpg123_position) -#define mpg123_length MPG123_LARGENAME(mpg123_length) -#define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize) -#define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader) -#define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle) -#define mpg123_framepos MPG123_LARGENAME(mpg123_framepos) - -#endif /* largefile hackery */ - -#endif /* MPG123_NO_CONFIGURE */ - -#ifdef __cplusplus -extern "C" { -#endif - -/** \defgroup mpg123_init mpg123 library and handle setup - * - * Functions to initialise and shutdown the mpg123 library and handles. - * The parameters of handles have workable defaults, you only have to tune them when you want to tune something;-) - * Tip: Use a RVA setting... - * - * @{ - */ - -/** Opaque structure for the libmpg123 decoder handle. */ -struct mpg123_handle_struct; - -/** Opaque structure for the libmpg123 decoder handle. - * Most functions take a pointer to a mpg123_handle as first argument and operate on its data in an object-oriented manner. - */ -typedef struct mpg123_handle_struct mpg123_handle; - -/** Function to initialise the mpg123 library. - * This function is not thread-safe. Call it exactly once per process, before any other (possibly threaded) work with the library. - * - * \return MPG123_OK if successful, otherwise an error number. - */ -EXPORT int mpg123_init(void); - -/** Function to close down the mpg123 library. - * This function is not thread-safe. Call it exactly once per process, before any other (possibly threaded) work with the library. */ -EXPORT void mpg123_exit(void); - -/** Create a handle with optional choice of decoder (named by a string, see mpg123_decoders() or mpg123_supported_decoders()). - * and optional retrieval of an error code to feed to mpg123_plain_strerror(). - * Optional means: Any of or both the parameters may be NULL. - * - * \return Non-NULL pointer when successful. - */ -EXPORT mpg123_handle *mpg123_new(const char* decoder, int *error); - -/** Delete handle, mh is either a valid mpg123 handle or NULL. */ -EXPORT void mpg123_delete(mpg123_handle *mh); - -/** Enumeration of the parameters types that it is possible to set/get. */ -enum mpg123_parms -{ - MPG123_VERBOSE = 0, /**< set verbosity value for enabling messages to stderr, >= 0 makes sense (integer) */ - MPG123_FLAGS, /**< set all flags, p.ex val = MPG123_GAPLESS|MPG123_MONO_MIX (integer) */ - MPG123_ADD_FLAGS, /**< add some flags (integer) */ - MPG123_FORCE_RATE, /**< when value > 0, force output rate to that value (integer) */ - MPG123_DOWN_SAMPLE, /**< 0=native rate, 1=half rate, 2=quarter rate (integer) */ - MPG123_RVA, /**< one of the RVA choices above (integer) */ - MPG123_DOWNSPEED, /**< play a frame N times (integer) */ - MPG123_UPSPEED, /**< play every Nth frame (integer) */ - MPG123_START_FRAME, /**< start with this frame (skip frames before that, integer) */ - MPG123_DECODE_FRAMES, /**< decode only this number of frames (integer) */ - MPG123_ICY_INTERVAL, /**< stream contains ICY metadata with this interval (integer) */ - MPG123_OUTSCALE, /**< the scale for output samples (amplitude - integer or float according to mpg123 output format, normally integer) */ - MPG123_TIMEOUT, /**< timeout for reading from a stream (not supported on win32, integer) */ - MPG123_REMOVE_FLAGS, /**< remove some flags (inverse of MPG123_ADD_FLAGS, integer) */ - MPG123_RESYNC_LIMIT, /**< Try resync on frame parsing for that many bytes or until end of stream (<0 ... integer). This can enlarge the limit for skipping junk on beginning, too (but not reduce it). */ - MPG123_INDEX_SIZE /**< Set the frame index size (if supported). Values <0 mean that the index is allowed to grow dynamically in these steps (in positive direction, of course) -- Use this when you really want a full index with every individual frame. */ - ,MPG123_PREFRAMES /**< Decode/ignore that many frames in advance for layer 3. This is needed to fill bit reservoir after seeking, for example (but also at least one frame in advance is needed to have all "normal" data for layer 3). Give a positive integer value, please.*/ - ,MPG123_FEEDPOOL /**< For feeder mode, keep that many buffers in a pool to avoid frequent malloc/free. The pool is allocated on mpg123_open_feed(). If you change this parameter afterwards, you can trigger growth and shrinkage during decoding. The default value could change any time. If you care about this, then set it. (integer) */ - ,MPG123_FEEDBUFFER /**< Minimal size of one internal feeder buffer, again, the default value is subject to change. (integer) */ -}; - -/** Flag bits for MPG123_FLAGS, use the usual binary or to combine. */ -enum mpg123_param_flags -{ - MPG123_FORCE_MONO = 0x7 /**< 0111 Force some mono mode: This is a test bitmask for seeing if any mono forcing is active. */ - ,MPG123_MONO_LEFT = 0x1 /**< 0001 Force playback of left channel only. */ - ,MPG123_MONO_RIGHT = 0x2 /**< 0010 Force playback of right channel only. */ - ,MPG123_MONO_MIX = 0x4 /**< 0100 Force playback of mixed mono. */ - ,MPG123_FORCE_STEREO = 0x8 /**< 1000 Force stereo output. */ - ,MPG123_FORCE_8BIT = 0x10 /**< 00010000 Force 8bit formats. */ - ,MPG123_QUIET = 0x20 /**< 00100000 Suppress any printouts (overrules verbose). */ - ,MPG123_GAPLESS = 0x40 /**< 01000000 Enable gapless decoding (default on if libmpg123 has support). */ - ,MPG123_NO_RESYNC = 0x80 /**< 10000000 Disable resync stream after error. */ - ,MPG123_SEEKBUFFER = 0x100 /**< 000100000000 Enable small buffer on non-seekable streams to allow some peek-ahead (for better MPEG sync). */ - ,MPG123_FUZZY = 0x200 /**< 001000000000 Enable fuzzy seeks (guessing byte offsets or using approximate seek points from Xing TOC) */ - ,MPG123_FORCE_FLOAT = 0x400 /**< 010000000000 Force floating point output (32 or 64 bits depends on mpg123 internal precision). */ - ,MPG123_PLAIN_ID3TEXT = 0x800 /**< 100000000000 Do not translate ID3 text data to UTF-8. ID3 strings will contain the raw text data, with the first byte containing the ID3 encoding code. */ - ,MPG123_IGNORE_STREAMLENGTH = 0x1000 /**< 1000000000000 Ignore any stream length information contained in the stream, which can be contained in a 'TLEN' frame of an ID3v2 tag or a Xing tag */ - ,MPG123_SKIP_ID3V2 = 0x2000 /**< 10 0000 0000 0000 Do not parse ID3v2 tags, just skip them. */ - ,MPG123_IGNORE_INFOFRAME = 0x4000 /**< 100 0000 0000 0000 Do not parse the LAME/Xing info frame, treat it as normal MPEG data. */ - ,MPG123_AUTO_RESAMPLE = 0x8000 /**< 1000 0000 0000 0000 Allow automatic internal resampling of any kind (default on if supported). Especially when going lowlevel with replacing output buffer, you might want to unset this flag. Setting MPG123_DOWNSAMPLE or MPG123_FORCE_RATE will override this. */ - ,MPG123_PICTURE = 0x10000 /**< 17th bit: Enable storage of pictures from tags (ID3v2 APIC). */ -}; - -/** choices for MPG123_RVA */ -enum mpg123_param_rva -{ - MPG123_RVA_OFF = 0 /**< RVA disabled (default). */ - ,MPG123_RVA_MIX = 1 /**< Use mix/track/radio gain. */ - ,MPG123_RVA_ALBUM = 2 /**< Use album/audiophile gain */ - ,MPG123_RVA_MAX = MPG123_RVA_ALBUM /**< The maximum RVA code, may increase in future. */ -}; - -/* TODO: Assess the possibilities and troubles of changing parameters during playback. */ - -/** Set a specific parameter, for a specific mpg123_handle, using a parameter - * type key chosen from the mpg123_parms enumeration, to the specified value. */ -EXPORT int mpg123_param(mpg123_handle *mh, enum mpg123_parms type, long value, double fvalue); - -/** Get a specific parameter, for a specific mpg123_handle. - * See the mpg123_parms enumeration for a list of available parameters. */ -EXPORT int mpg123_getparam(mpg123_handle *mh, enum mpg123_parms type, long *val, double *fval); - -/** Feature set available for query with mpg123_feature. */ -enum mpg123_feature_set -{ - MPG123_FEATURE_ABI_UTF8OPEN = 0 /**< mpg123 expects path names to be given in UTF-8 encoding instead of plain native. */ - ,MPG123_FEATURE_OUTPUT_8BIT /**< 8bit output */ - ,MPG123_FEATURE_OUTPUT_16BIT /**< 16bit output */ - ,MPG123_FEATURE_OUTPUT_32BIT /**< 32bit output */ - ,MPG123_FEATURE_INDEX /**< support for building a frame index for accurate seeking */ - ,MPG123_FEATURE_PARSE_ID3V2 /**< id3v2 parsing */ - ,MPG123_FEATURE_DECODE_LAYER1 /**< mpeg layer-1 decoder enabled */ - ,MPG123_FEATURE_DECODE_LAYER2 /**< mpeg layer-2 decoder enabled */ - ,MPG123_FEATURE_DECODE_LAYER3 /**< mpeg layer-3 decoder enabled */ - ,MPG123_FEATURE_DECODE_ACCURATE /**< accurate decoder rounding */ - ,MPG123_FEATURE_DECODE_DOWNSAMPLE /**< downsample (sample omit) */ - ,MPG123_FEATURE_DECODE_NTOM /**< flexible rate decoding */ - ,MPG123_FEATURE_PARSE_ICY /**< ICY support */ - ,MPG123_FEATURE_TIMEOUT_READ /**< Reader with timeout (network). */ -}; - -/** Query libmpg123 feature, 1 for success, 0 for unimplemented functions. */ -EXPORT int mpg123_feature(const enum mpg123_feature_set key); - -/* @} */ - - -/** \defgroup mpg123_error mpg123 error handling - * - * Functions to get text version of the error numbers and an enumeration - * of the error codes returned by libmpg123. - * - * Most functions operating on a mpg123_handle simply return MPG123_OK on success and MPG123_ERR on failure (setting the internal error variable of the handle to the specific error code). - * Decoding/seek functions may also return message codes MPG123_DONE, MPG123_NEW_FORMAT and MPG123_NEED_MORE (please read up on these on how to react!). - * The positive range of return values is used for "useful" values when appropriate. - * - * @{ - */ - -/** Enumeration of the message and error codes and returned by libmpg123 functions. */ -enum mpg123_errors -{ - MPG123_DONE=-12, /**< Message: Track ended. Stop decoding. */ - MPG123_NEW_FORMAT=-11, /**< Message: Output format will be different on next call. Note that some libmpg123 versions between 1.4.3 and 1.8.0 insist on you calling mpg123_getformat() after getting this message code. Newer verisons behave like advertised: You have the chance to call mpg123_getformat(), but you can also just continue decoding and get your data. */ - MPG123_NEED_MORE=-10, /**< Message: For feed reader: "Feed me more!" (call mpg123_feed() or mpg123_decode() with some new input data). */ - MPG123_ERR=-1, /**< Generic Error */ - MPG123_OK=0, /**< Success */ - MPG123_BAD_OUTFORMAT, /**< Unable to set up output format! */ - MPG123_BAD_CHANNEL, /**< Invalid channel number specified. */ - MPG123_BAD_RATE, /**< Invalid sample rate specified. */ - MPG123_ERR_16TO8TABLE, /**< Unable to allocate memory for 16 to 8 converter table! */ - MPG123_BAD_PARAM, /**< Bad parameter id! */ - MPG123_BAD_BUFFER, /**< Bad buffer given -- invalid pointer or too small size. */ - MPG123_OUT_OF_MEM, /**< Out of memory -- some malloc() failed. */ - MPG123_NOT_INITIALIZED, /**< You didn't initialize the library! */ - MPG123_BAD_DECODER, /**< Invalid decoder choice. */ - MPG123_BAD_HANDLE, /**< Invalid mpg123 handle. */ - MPG123_NO_BUFFERS, /**< Unable to initialize frame buffers (out of memory?). */ - MPG123_BAD_RVA, /**< Invalid RVA mode. */ - MPG123_NO_GAPLESS, /**< This build doesn't support gapless decoding. */ - MPG123_NO_SPACE, /**< Not enough buffer space. */ - MPG123_BAD_TYPES, /**< Incompatible numeric data types. */ - MPG123_BAD_BAND, /**< Bad equalizer band. */ - MPG123_ERR_NULL, /**< Null pointer given where valid storage address needed. */ - MPG123_ERR_READER, /**< Error reading the stream. */ - MPG123_NO_SEEK_FROM_END,/**< Cannot seek from end (end is not known). */ - MPG123_BAD_WHENCE, /**< Invalid 'whence' for seek function.*/ - MPG123_NO_TIMEOUT, /**< Build does not support stream timeouts. */ - MPG123_BAD_FILE, /**< File access error. */ - MPG123_NO_SEEK, /**< Seek not supported by stream. */ - MPG123_NO_READER, /**< No stream opened. */ - MPG123_BAD_PARS, /**< Bad parameter handle. */ - MPG123_BAD_INDEX_PAR, /**< Bad parameters to mpg123_index() and mpg123_set_index() */ - MPG123_OUT_OF_SYNC, /**< Lost track in bytestream and did not try to resync. */ - MPG123_RESYNC_FAIL, /**< Resync failed to find valid MPEG data. */ - MPG123_NO_8BIT, /**< No 8bit encoding possible. */ - MPG123_BAD_ALIGN, /**< Stack aligmnent error */ - MPG123_NULL_BUFFER, /**< NULL input buffer with non-zero size... */ - MPG123_NO_RELSEEK, /**< Relative seek not possible (screwed up file offset) */ - MPG123_NULL_POINTER, /**< You gave a null pointer somewhere where you shouldn't have. */ - MPG123_BAD_KEY, /**< Bad key value given. */ - MPG123_NO_INDEX, /**< No frame index in this build. */ - MPG123_INDEX_FAIL, /**< Something with frame index went wrong. */ - MPG123_BAD_DECODER_SETUP, /**< Something prevents a proper decoder setup */ - MPG123_MISSING_FEATURE /**< This feature has not been built into libmpg123. */ - ,MPG123_BAD_VALUE /**< A bad value has been given, somewhere. */ - ,MPG123_LSEEK_FAILED /**< Low-level seek failed. */ - ,MPG123_BAD_CUSTOM_IO /**< Custom I/O not prepared. */ - ,MPG123_LFS_OVERFLOW /**< Offset value overflow during translation of large file API calls -- your client program cannot handle that large file. */ - ,MPG123_INT_OVERFLOW /**< Some integer overflow. */ -}; - -/** Return a string describing that error errcode means. */ -EXPORT const char* mpg123_plain_strerror(int errcode); - -/** Give string describing what error has occured in the context of handle mh. - * When a function operating on an mpg123 handle returns MPG123_ERR, you should check for the actual reason via - * char *errmsg = mpg123_strerror(mh) - * This function will catch mh == NULL and return the message for MPG123_BAD_HANDLE. */ -EXPORT const char* mpg123_strerror(mpg123_handle *mh); - -/** Return the plain errcode intead of a string. */ -EXPORT int mpg123_errcode(mpg123_handle *mh); - -/*@}*/ - - -/** \defgroup mpg123_decoder mpg123 decoder selection - * - * Functions to list and select the available decoders. - * Perhaps the most prominent feature of mpg123: You have several (optimized) decoders to choose from (on x86 and PPC (MacOS) systems, that is). - * - * @{ - */ - -/** Return a NULL-terminated array of generally available decoder names (plain 8bit ASCII). */ -EXPORT const char **mpg123_decoders(void); - -/** Return a NULL-terminated array of the decoders supported by the CPU (plain 8bit ASCII). */ -EXPORT const char **mpg123_supported_decoders(void); - -/** Set the chosen decoder to 'decoder_name' */ -EXPORT int mpg123_decoder(mpg123_handle *mh, const char* decoder_name); - -/** Get the currently active decoder engine name. - The active decoder engine can vary depening on output constraints, - mostly non-resampling, integer output is accelerated via 3DNow & Co. but for other modes a fallback engine kicks in. - Note that this can return a decoder that is ony active in the hidden and not available as decoder choice from the outside. - \return The decoder name or NULL on error. */ -EXPORT const char* mpg123_current_decoder(mpg123_handle *mh); - -/*@}*/ - - -/** \defgroup mpg123_output mpg123 output audio format - * - * Functions to get and select the format of the decoded audio. - * - * Before you dive in, please be warned that you might get confused by this. This seems to happen a lot, therefore I am trying to explain in advance. - * - * The mpg123 library decides what output format to use when encountering the first frame in a stream, or actually any frame that is still valid but differs from the frames before in the prompted output format. At such a deciding point, an internal table of allowed encodings, sampling rates and channel setups is consulted. According to this table, an output format is chosen and the decoding engine set up accordingly (including ptimized routines for different output formats). This might seem unusual but it just follows from the non-existence of "MPEG audio files" with defined overall properties. There are streams, streams are concatenations of (semi) independent frames. We store streams on disk and call them "MPEG audio files", but that does not change their nature as the decoder is concerned (the LAME/Xing header for gapless decoding makes things interesting again). - * - * To get to the point: What you do with mpg123_format() and friends is to fill the internal table of allowed formats before it is used. That includes removing support for some formats or adding your forced sample rate (see MPG123_FORCE_RATE) that will be used with the crude internal resampler. Also keep in mind that the sample encoding is just a question of choice -- the MPEG frames do only indicate their native sampling rate and channel count. If you want to decode to integer or float samples, 8 or 16 bit ... that is your decision. In a "clean" world, libmpg123 would always decode to 32 bit float and let you handle any sample conversion. But there are optimized routines that work faster by directly decoding to the desired encoding / accuracy. We prefer efficiency over conceptual tidyness. - * - * People often start out thinking that mpg123_format() should change the actual decoding format on the fly. That is wrong. It only has effect on the next natural change of output format, when libmpg123 will consult its format table again. To make life easier, you might want to call mpg123_format_none() before any thing else and then just allow one desired encoding and a limited set of sample rates / channel choices that you actually intend to deal with. You can force libmpg123 to decode everything to 44100 KHz, stereo, 16 bit integer ... it will duplicate mono channels and even do resampling if needed (unless that feature is disabled in the build, same with some encodings). But I have to stress that the resampling of libmpg123 is very crude and doesn't even contain any kind of "proper" interpolation. - * - * In any case, watch out for MPG123_NEW_FORMAT as return message from decoding routines and call mpg123_getformat() to get the currently active output format. - * - * @{ - */ - -/** An enum over all sample types possibly known to mpg123. - * The values are designed as bit flags to allow bitmasking for encoding families. - * - * Note that (your build of) libmpg123 does not necessarily support all these. - * Usually, you can expect the 8bit encodings and signed 16 bit. - * Also 32bit float will be usual beginning with mpg123-1.7.0 . - * What you should bear in mind is that (SSE, etc) optimized routines may be absent - * for some formats. We do have SSE for 16, 32 bit and float, though. - * 24 bit integer is done via postprocessing of 32 bit output -- just cutting - * the last byte, no rounding, even. If you want better, do it yourself. - * - * All formats are in native byte order. If you need different endinaness, you - * can simply postprocess the output buffers (libmpg123 wouldn't do anything else). - * mpg123_encsize() can be helpful there. - */ -enum mpg123_enc_enum -{ - MPG123_ENC_8 = 0x00f /**< 0000 0000 1111 Some 8 bit integer encoding. */ - ,MPG123_ENC_16 = 0x040 /**< 0000 0100 0000 Some 16 bit integer encoding. */ - ,MPG123_ENC_24 = 0x4000 /**< 0100 0000 0000 0000 Some 24 bit integer encoding. */ - ,MPG123_ENC_32 = 0x100 /**< 0001 0000 0000 Some 32 bit integer encoding. */ - ,MPG123_ENC_SIGNED = 0x080 /**< 0000 1000 0000 Some signed integer encoding. */ - ,MPG123_ENC_FLOAT = 0xe00 /**< 1110 0000 0000 Some float encoding. */ - ,MPG123_ENC_SIGNED_16 = (MPG123_ENC_16|MPG123_ENC_SIGNED|0x10) /**< 1101 0000 signed 16 bit */ - ,MPG123_ENC_UNSIGNED_16 = (MPG123_ENC_16|0x20) /**< 0110 0000 unsigned 16 bit */ - ,MPG123_ENC_UNSIGNED_8 = 0x01 /**< 0000 0001 unsigned 8 bit */ - ,MPG123_ENC_SIGNED_8 = (MPG123_ENC_SIGNED|0x02) /**< 1000 0010 signed 8 bit */ - ,MPG123_ENC_ULAW_8 = 0x04 /**< 0000 0100 ulaw 8 bit */ - ,MPG123_ENC_ALAW_8 = 0x08 /**< 0000 1000 alaw 8 bit */ - ,MPG123_ENC_SIGNED_32 = MPG123_ENC_32|MPG123_ENC_SIGNED|0x1000 /**< 0001 0001 1000 0000 signed 32 bit */ - ,MPG123_ENC_UNSIGNED_32 = MPG123_ENC_32|0x2000 /**< 0010 0001 0000 0000 unsigned 32 bit */ - ,MPG123_ENC_SIGNED_24 = MPG123_ENC_24|MPG123_ENC_SIGNED|0x1000 /**< 0101 0000 1000 0000 signed 24 bit */ - ,MPG123_ENC_UNSIGNED_24 = MPG123_ENC_24|0x2000 /**< 0110 0000 0000 0000 unsigned 24 bit */ - ,MPG123_ENC_FLOAT_32 = 0x200 /**< 0010 0000 0000 32bit float */ - ,MPG123_ENC_FLOAT_64 = 0x400 /**< 0100 0000 0000 64bit float */ - ,MPG123_ENC_ANY = ( MPG123_ENC_SIGNED_16 | MPG123_ENC_UNSIGNED_16 | MPG123_ENC_UNSIGNED_8 - | MPG123_ENC_SIGNED_8 | MPG123_ENC_ULAW_8 | MPG123_ENC_ALAW_8 - | MPG123_ENC_SIGNED_32 | MPG123_ENC_UNSIGNED_32 - | MPG123_ENC_SIGNED_24 | MPG123_ENC_UNSIGNED_24 - | MPG123_ENC_FLOAT_32 | MPG123_ENC_FLOAT_64 ) /**< Any encoding on the list. */ -}; - -/** They can be combined into one number (3) to indicate mono and stereo... */ -enum mpg123_channelcount -{ - MPG123_MONO = 1 - ,MPG123_STEREO = 2 -}; - -/** An array of supported standard sample rates - * These are possible native sample rates of MPEG audio files. - * You can still force mpg123 to resample to a different one, but by default you will only get audio in one of these samplings. - * \param list Store a pointer to the sample rates array there. - * \param number Store the number of sample rates there. */ -EXPORT void mpg123_rates(const long **list, size_t *number); - -/** An array of supported audio encodings. - * An audio encoding is one of the fully qualified members of mpg123_enc_enum (MPG123_ENC_SIGNED_16, not MPG123_SIGNED). - * \param list Store a pointer to the encodings array there. - * \param number Store the number of encodings there. */ -EXPORT void mpg123_encodings(const int **list, size_t *number); - -/** Return the size (in bytes) of one mono sample of the named encoding. - * \param encoding The encoding value to analyze. - * \return positive size of encoding in bytes, 0 on invalid encoding. */ -EXPORT int mpg123_encsize(int encoding); - -/** Configure a mpg123 handle to accept no output format at all, - * use before specifying supported formats with mpg123_format */ -EXPORT int mpg123_format_none(mpg123_handle *mh); - -/** Configure mpg123 handle to accept all formats - * (also any custom rate you may set) -- this is default. */ -EXPORT int mpg123_format_all(mpg123_handle *mh); - -/** Set the audio format support of a mpg123_handle in detail: - * \param mh audio decoder handle - * \param rate The sample rate value (in Hertz). - * \param channels A combination of MPG123_STEREO and MPG123_MONO. - * \param encodings A combination of accepted encodings for rate and channels, p.ex MPG123_ENC_SIGNED16 | MPG123_ENC_ULAW_8 (or 0 for no support). Please note that some encodings may not be supported in the library build and thus will be ignored here. - * \return MPG123_OK on success, MPG123_ERR if there was an error. */ -EXPORT int mpg123_format(mpg123_handle *mh, long rate, int channels, int encodings); - -/** Check to see if a specific format at a specific rate is supported - * by mpg123_handle. - * \return 0 for no support (that includes invalid parameters), MPG123_STEREO, - * MPG123_MONO or MPG123_STEREO|MPG123_MONO. */ -EXPORT int mpg123_format_support(mpg123_handle *mh, long rate, int encoding); - -/** Get the current output format written to the addresses givenr. */ -EXPORT int mpg123_getformat(mpg123_handle *mh, long *rate, int *channels, int *encoding); - -/*@}*/ - - -/** \defgroup mpg123_input mpg123 file input and decoding - * - * Functions for input bitstream and decoding operations. - * Decoding/seek functions may also return message codes MPG123_DONE, MPG123_NEW_FORMAT and MPG123_NEED_MORE (please read up on these on how to react!). - * @{ - */ - -/* reading samples / triggering decoding, possible return values: */ -/** Enumeration of the error codes returned by libmpg123 functions. */ - -/** Open and prepare to decode the specified file by filesystem path. - * This does not open HTTP urls; libmpg123 contains no networking code. - * If you want to decode internet streams, use mpg123_open_fd() or mpg123_open_feed(). - */ -EXPORT int mpg123_open(mpg123_handle *mh, const char *path); - -/** Use an already opened file descriptor as the bitstream input - * mpg123_close() will _not_ close the file descriptor. - */ -EXPORT int mpg123_open_fd(mpg123_handle *mh, int fd); - -/** Use an opaque handle as bitstream input. This works only with the - * replaced I/O from mpg123_replace_reader_handle()! - * mpg123_close() will call the cleanup callback for your handle (if you gave one). - */ -EXPORT int mpg123_open_handle(mpg123_handle *mh, void *iohandle); - -/** Open a new bitstream and prepare for direct feeding - * This works together with mpg123_decode(); you are responsible for reading and feeding the input bitstream. - */ -EXPORT int mpg123_open_feed(mpg123_handle *mh); - -/** Closes the source, if libmpg123 opened it. */ -EXPORT int mpg123_close(mpg123_handle *mh); - -/** Read from stream and decode up to outmemsize bytes. - * \param outmemory address of output buffer to write to - * \param outmemsize maximum number of bytes to write - * \param done address to store the number of actually decoded bytes to - * \return error/message code (watch out for MPG123_DONE and friends!) */ -EXPORT int mpg123_read(mpg123_handle *mh, unsigned char *outmemory, size_t outmemsize, size_t *done); - -/** Feed data for a stream that has been opened with mpg123_open_feed(). - * It's give and take: You provide the bytestream, mpg123 gives you the decoded samples. - * \param in input buffer - * \param size number of input bytes - * \return error/message code. */ -EXPORT int mpg123_feed(mpg123_handle *mh, const unsigned char *in, size_t size); - -/** Decode MPEG Audio from inmemory to outmemory. - * This is very close to a drop-in replacement for old mpglib. - * When you give zero-sized output buffer the input will be parsed until - * decoded data is available. This enables you to get MPG123_NEW_FORMAT (and query it) - * without taking decoded data. - * Think of this function being the union of mpg123_read() and mpg123_feed() (which it actually is, sort of;-). - * You can actually always decide if you want those specialized functions in separate steps or one call this one here. - * \param inmemory input buffer - * \param inmemsize number of input bytes - * \param outmemory output buffer - * \param outmemsize maximum number of output bytes - * \param done address to store the number of actually decoded bytes to - * \return error/message code (watch out especially for MPG123_NEED_MORE) - */ -EXPORT int mpg123_decode(mpg123_handle *mh, const unsigned char *inmemory, size_t inmemsize, unsigned char *outmemory, size_t outmemsize, size_t *done); - -/** Decode next MPEG frame to internal buffer - * or read a frame and return after setting a new format. - * \param num current frame offset gets stored there - * \param audio This pointer is set to the internal buffer to read the decoded audio from. - * \param bytes number of output bytes ready in the buffer - */ -EXPORT int mpg123_decode_frame(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes); - -/** Decode current MPEG frame to internal buffer. - * Warning: This is experimental API that might change in future releases! - * Please watch mpg123 development closely when using it. - * \param num last frame offset gets stored there - * \param audio this pointer is set to the internal buffer to read the decoded audio from. - * \param bytes number of output bytes ready in the buffer - */ -EXPORT int mpg123_framebyframe_decode(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes); - -/** Find, read and parse the next mp3 frame - * Warning: This is experimental API that might change in future releases! - * Please watch mpg123 development closely when using it. - */ -EXPORT int mpg123_framebyframe_next(mpg123_handle *mh); - -/** Get access to the raw input data for the last parsed frame. - * This gives you a direct look (and write access) to the frame body data. - * Together with the raw header, you can reconstruct the whole raw MPEG stream without junk and meta data, or play games by actually modifying the frame body data before decoding this frame (mpg123_framebyframe_decode()). - * A more sane use would be to use this for CRC checking (see mpg123_info() and MPG123_CRC), the first two bytes of the body make up the CRC16 checksum, if present. - * You can provide NULL for a parameter pointer when you are not interested in the value. - * - * \param header the 4-byte MPEG header - * \param bodydata pointer to the frame body stored in the handle (without the header) - * \param bodybytes size of frame body in bytes (without the header) - * \return MPG123_OK if there was a yet un-decoded frame to get the data from, MPG123_ERR otherwise (without further explanation, the error state of the mpg123_handle is not modified by this function). - */ -EXPORT int mpg123_framedata(mpg123_handle *mh, unsigned long *header, unsigned char **bodydata, size_t *bodybytes); - -/** Get the input position (byte offset in stream) of the last parsed frame. - * This can be used for external seek index building, for example. - * It just returns the internally stored offset, regardless of validity -- you ensure that a valid frame has been parsed before! */ -EXPORT off_t mpg123_framepos(mpg123_handle *mh); - -/*@}*/ - - -/** \defgroup mpg123_seek mpg123 position and seeking - * - * Functions querying and manipulating position in the decoded audio bitstream. - * The position is measured in decoded audio samples, or MPEG frame offset for the specific functions. - * If gapless code is in effect, the positions are adjusted to compensate the skipped padding/delay - meaning, you should not care about that at all and just use the position defined for the samples you get out of the decoder;-) - * The general usage is modelled after stdlib's ftell() and fseek(). - * Especially, the whence parameter for the seek functions has the same meaning as the one for fseek() and needs the same constants from stdlib.h: - * - SEEK_SET: set position to (or near to) specified offset - * - SEEK_CUR: change position by offset from now - * - SEEK_END: set position to offset from end - * - * Note that sample-accurate seek only works when gapless support has been enabled at compile time; seek is frame-accurate otherwise. - * Also, really sample-accurate seeking (meaning that you get the identical sample value after seeking compared to plain decoding up to the position) is only guaranteed when you do not mess with the position code by using MPG123_UPSPEED, MPG123_DOWNSPEED or MPG123_START_FRAME. The first two mainly should cause trouble with NtoM resampling, but in any case with these options in effect, you have to keep in mind that the sample offset is not the same as counting the samples you get from decoding since mpg123 counts the skipped samples, too (or the samples played twice only once)! - * Short: When you care about the sample position, don't mess with those parameters;-) - * Also, seeking is not guaranteed to work for all streams (underlying stream may not support it). - * And yet another caveat: If the stream is concatenated out of differing pieces (Frankenstein stream), seeking may suffer, too. - * - * @{ - */ - -/** Returns the current position in samples. - * On the next read, you'd get that sample. */ -EXPORT off_t mpg123_tell(mpg123_handle *mh); - -/** Returns the frame number that the next read will give you data from. */ -EXPORT off_t mpg123_tellframe(mpg123_handle *mh); - -/** Returns the current byte offset in the input stream. */ -EXPORT off_t mpg123_tell_stream(mpg123_handle *mh); - -/** Seek to a desired sample offset. - * Set whence to SEEK_SET, SEEK_CUR or SEEK_END. - * \return The resulting offset >= 0 or error/message code */ -EXPORT off_t mpg123_seek(mpg123_handle *mh, off_t sampleoff, int whence); - -/** Seek to a desired sample offset in data feeding mode. - * This just prepares things to be right only if you ensure that the next chunk of input data will be from input_offset byte position. - * \param input_offset The position it expects to be at the - * next time data is fed to mpg123_decode(). - * \return The resulting offset >= 0 or error/message code */ -EXPORT off_t mpg123_feedseek(mpg123_handle *mh, off_t sampleoff, int whence, off_t *input_offset); - -/** Seek to a desired MPEG frame index. - * Set whence to SEEK_SET, SEEK_CUR or SEEK_END. - * \return The resulting offset >= 0 or error/message code */ -EXPORT off_t mpg123_seek_frame(mpg123_handle *mh, off_t frameoff, int whence); - -/** Return a MPEG frame offset corresponding to an offset in seconds. - * This assumes that the samples per frame do not change in the file/stream, which is a good assumption for any sane file/stream only. - * \return frame offset >= 0 or error/message code */ -EXPORT off_t mpg123_timeframe(mpg123_handle *mh, double sec); - -/** Give access to the frame index table that is managed for seeking. - * You are asked not to modify the values... Use mpg123_set_index to set the - * seek index - * \param offsets pointer to the index array - * \param step one index byte offset advances this many MPEG frames - * \param fill number of recorded index offsets; size of the array */ -EXPORT int mpg123_index(mpg123_handle *mh, off_t **offsets, off_t *step, size_t *fill); - -/** Set the frame index table - * Setting offsets to NULL and fill > 0 will allocate fill entries. Setting offsets - * to NULL and fill to 0 will clear the index and free the allocated memory used by the index. - * \param offsets pointer to the index array - * \param step one index byte offset advances this many MPEG frames - * \param fill number of recorded index offsets; size of the array */ -EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step, size_t fill); - -/** Get information about current and remaining frames/seconds. - * WARNING: This function is there because of special usage by standalone mpg123 and may be removed in the final version of libmpg123! - * You provide an offset (in frames) from now and a number of output bytes - * served by libmpg123 but not yet played. You get the projected current frame - * and seconds, as well as the remaining frames/seconds. This does _not_ care - * about skipped samples due to gapless playback. */ -EXPORT int mpg123_position( mpg123_handle *mh, off_t frame_offset, off_t buffered_bytes, off_t *current_frame, off_t *frames_left, double *current_seconds, double *seconds_left); - -/*@}*/ - - -/** \defgroup mpg123_voleq mpg123 volume and equalizer - * - * @{ - */ - -enum mpg123_channels -{ - MPG123_LEFT=0x1 /**< The Left Channel. */ - ,MPG123_RIGHT=0x2 /**< The Right Channel. */ - ,MPG123_LR=0x3 /**< Both left and right channel; same as MPG123_LEFT|MPG123_RIGHT */ -}; - -/** Set the 32 Band Audio Equalizer settings. - * \param channel Can be MPG123_LEFT, MPG123_RIGHT or MPG123_LEFT|MPG123_RIGHT for both. - * \param band The equaliser band to change (from 0 to 31) - * \param val The (linear) adjustment factor. */ -EXPORT int mpg123_eq(mpg123_handle *mh, enum mpg123_channels channel, int band, double val); - -/** Get the 32 Band Audio Equalizer settings. - * \param channel Can be MPG123_LEFT, MPG123_RIGHT or MPG123_LEFT|MPG123_RIGHT for (arithmetic mean of) both. - * \param band The equaliser band to change (from 0 to 31) - * \return The (linear) adjustment factor. */ -EXPORT double mpg123_geteq(mpg123_handle *mh, enum mpg123_channels channel, int band); - -/** Reset the 32 Band Audio Equalizer settings to flat */ -EXPORT int mpg123_reset_eq(mpg123_handle *mh); - -/** Set the absolute output volume including the RVA setting, - * vol<0 just applies (a possibly changed) RVA setting. */ -EXPORT int mpg123_volume(mpg123_handle *mh, double vol); - -/** Adjust output volume including the RVA setting by chosen amount */ -EXPORT int mpg123_volume_change(mpg123_handle *mh, double change); - -/** Return current volume setting, the actual value due to RVA, and the RVA - * adjustment itself. It's all as double float value to abstract the sample - * format. The volume values are linear factors / amplitudes (not percent) - * and the RVA value is in decibels. */ -EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db); - -/* TODO: Set some preamp in addition / to replace internal RVA handling? */ - -/*@}*/ - - -/** \defgroup mpg123_status mpg123 status and information - * - * @{ - */ - -/** Enumeration of the mode types of Variable Bitrate */ -enum mpg123_vbr { - MPG123_CBR=0, /**< Constant Bitrate Mode (default) */ - MPG123_VBR, /**< Variable Bitrate Mode */ - MPG123_ABR /**< Average Bitrate Mode */ -}; - -/** Enumeration of the MPEG Versions */ -enum mpg123_version { - MPG123_1_0=0, /**< MPEG Version 1.0 */ - MPG123_2_0, /**< MPEG Version 2.0 */ - MPG123_2_5 /**< MPEG Version 2.5 */ -}; - - -/** Enumeration of the MPEG Audio mode. - * Only the mono mode has 1 channel, the others have 2 channels. */ -enum mpg123_mode { - MPG123_M_STEREO=0, /**< Standard Stereo. */ - MPG123_M_JOINT, /**< Joint Stereo. */ - MPG123_M_DUAL, /**< Dual Channel. */ - MPG123_M_MONO /**< Single Channel. */ -}; - - -/** Enumeration of the MPEG Audio flag bits */ -enum mpg123_flags { - MPG123_CRC=0x1, /**< The bitstream is error protected using 16-bit CRC. */ - MPG123_COPYRIGHT=0x2, /**< The bitstream is copyrighted. */ - MPG123_PRIVATE=0x4, /**< The private bit has been set. */ - MPG123_ORIGINAL=0x8 /**< The bitstream is an original, not a copy. */ -}; - -/** Data structure for storing information about a frame of MPEG Audio */ -struct mpg123_frameinfo -{ - enum mpg123_version version; /**< The MPEG version (1.0/2.0/2.5). */ - int layer; /**< The MPEG Audio Layer (MP1/MP2/MP3). */ - long rate; /**< The sampling rate in Hz. */ - enum mpg123_mode mode; /**< The audio mode (Mono, Stereo, Joint-stero, Dual Channel). */ - int mode_ext; /**< The mode extension bit flag. */ - int framesize; /**< The size of the frame (in bytes, including header). */ - enum mpg123_flags flags; /**< MPEG Audio flag bits. Just now I realize that it should be declared as int, not enum. It's a bitwise combination of the enum values. */ - int emphasis; /**< The emphasis type. */ - int bitrate; /**< Bitrate of the frame (kbps). */ - int abr_rate; /**< The target average bitrate. */ - enum mpg123_vbr vbr; /**< The VBR mode. */ -}; - -/** Get frame information about the MPEG audio bitstream and store it in a mpg123_frameinfo structure. */ -EXPORT int mpg123_info(mpg123_handle *mh, struct mpg123_frameinfo *mi); - -/** Get the safe output buffer size for all cases (when you want to replace the internal buffer) */ -EXPORT size_t mpg123_safe_buffer(void); - -/** Make a full parsing scan of each frame in the file. ID3 tags are found. An accurate length - * value is stored. Seek index will be filled. A seek back to current position - * is performed. At all, this function refuses work when stream is - * not seekable. - * \return MPG123_OK or MPG123_ERR. - */ -EXPORT int mpg123_scan(mpg123_handle *mh); - -/** Return, if possible, the full (expected) length of current track in samples. - * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ -EXPORT off_t mpg123_length(mpg123_handle *mh); - -/** Override the value for file size in bytes. - * Useful for getting sensible track length values in feed mode or for HTTP streams. - * \return MPG123_OK or MPG123_ERR */ -EXPORT int mpg123_set_filesize(mpg123_handle *mh, off_t size); - -/** Returns the time (seconds) per frame; <0 is error. */ -EXPORT double mpg123_tpf(mpg123_handle *mh); - -/** Returns the samples per frame for the most recently parsed frame; <0 is error. */ -EXPORT int mpg123_spf(mpg123_handle *mh); - -/** Get and reset the clip count. */ -EXPORT long mpg123_clip(mpg123_handle *mh); - - -/** The key values for state information from mpg123_getstate(). */ -enum mpg123_state -{ - MPG123_ACCURATE = 1 /**< Query if positons are currently accurate (integer value, 0 if false, 1 if true). */ - ,MPG123_BUFFERFILL /**< Get fill of internal (feed) input buffer as integer byte count returned as long and as double. An error is returned on integer overflow while converting to (signed) long, but the returned floating point value shold still be fine. */ - ,MPG123_FRANKENSTEIN /**< Stream consists of carelessly stitched together files. Seeking may yield unexpected results (also with MPG123_ACCURATE, it may be confused). */ - ,MPG123_FRESH_DECODER /**< Decoder structure has been updated, possibly indicating changed stream (integer value, 0 if false, 1 if true). Flag is cleared after retrieval. */ -}; - -/** Get various current decoder/stream state information. - * \param key the key to identify the information to give. - * \param val the address to return (long) integer values to - * \param fval the address to return floating point values to - * \return MPG123_OK or MPG123_ERR for success - */ -EXPORT int mpg123_getstate(mpg123_handle *mh, enum mpg123_state key, long *val, double *fval); - -/*@}*/ - - -/** \defgroup mpg123_metadata mpg123 metadata handling - * - * Functions to retrieve the metadata from MPEG Audio files and streams. - * Also includes string handling functions. - * - * @{ - */ - -/** Data structure for storing strings in a safer way than a standard C-String. - * Can also hold a number of null-terminated strings. */ -typedef struct -{ - char* p; /**< pointer to the string data */ - size_t size; /**< raw number of bytes allocated */ - size_t fill; /**< number of used bytes (including closing zero byte) */ -} mpg123_string; - -/** Create and allocate memory for a new mpg123_string */ -EXPORT void mpg123_init_string(mpg123_string* sb); - -/** Free-up mempory for an existing mpg123_string */ -EXPORT void mpg123_free_string(mpg123_string* sb); - -/** Change the size of a mpg123_string - * \return 0 on error, 1 on success */ -EXPORT int mpg123_resize_string(mpg123_string* sb, size_t news); - -/** Increase size of a mpg123_string if necessary (it may stay larger). - * Note that the functions for adding and setting in current libmpg123 use this instead of mpg123_resize_string(). - * That way, you can preallocate memory and safely work afterwards with pieces. - * \return 0 on error, 1 on success */ -EXPORT int mpg123_grow_string(mpg123_string* sb, size_t news); - -/** Copy the contents of one mpg123_string string to another. - * \return 0 on error, 1 on success */ -EXPORT int mpg123_copy_string(mpg123_string* from, mpg123_string* to); - -/** Append a C-String to an mpg123_string - * \return 0 on error, 1 on success */ -EXPORT int mpg123_add_string(mpg123_string* sb, const char* stuff); - -/** Append a C-substring to an mpg123 string - * \return 0 on error, 1 on success - * \param from offset to copy from - * \param count number of characters to copy (a null-byte is always appended) */ -EXPORT int mpg123_add_substring(mpg123_string *sb, const char *stuff, size_t from, size_t count); - -/** Set the conents of a mpg123_string to a C-string - * \return 0 on error, 1 on success */ -EXPORT int mpg123_set_string(mpg123_string* sb, const char* stuff); - -/** Set the contents of a mpg123_string to a C-substring - * \return 0 on error, 1 on success - * \param from offset to copy from - * \param count number of characters to copy (a null-byte is always appended) */ -EXPORT int mpg123_set_substring(mpg123_string *sb, const char *stuff, size_t from, size_t count); - -/** Count characters in a mpg123 string (non-null bytes or UTF-8 characters). - * \return character count - * \param sb the string - * \param utf8 a flag to tell if the string is in utf8 encoding - * Even with the fill property, the character count is not obvious as there could be multiple trailing null bytes. -*/ -EXPORT size_t mpg123_strlen(mpg123_string *sb, int utf8); - -/** Remove trailing \r and \n, if present. - * \return 0 on error, 1 on success - * \param sb the string - */ -EXPORT int mpg123_chomp_string(mpg123_string *sb); - -/** The mpg123 text encodings. This contains encodings we encounter in ID3 tags or ICY meta info. */ -enum mpg123_text_encoding -{ - mpg123_text_unknown = 0 /**< Unkown encoding... mpg123_id3_encoding can return that on invalid codes. */ - ,mpg123_text_utf8 = 1 /**< UTF-8 */ - ,mpg123_text_latin1 = 2 /**< ISO-8859-1. Note that sometimes latin1 in ID3 is abused for totally different encodings. */ - ,mpg123_text_icy = 3 /**< ICY metadata encoding, usually CP-1252 but we take it as UTF-8 if it qualifies as such. */ - ,mpg123_text_cp1252 = 4 /**< Really CP-1252 without any guessing. */ - ,mpg123_text_utf16 = 5 /**< Some UTF-16 encoding. The last of a set of leading BOMs (byte order mark) rules. - * When there is no BOM, big endian ordering is used. Note that UCS-2 qualifies as UTF-8 when - * you don't mess with the reserved code points. If you want to decode little endian data - * without BOM you need to prepend 0xff 0xfe yourself. */ - ,mpg123_text_utf16bom = 6 /**< Just an alias for UTF-16, ID3v2 has this as distinct code. */ - ,mpg123_text_utf16be = 7 /**< Another alias for UTF16 from ID3v2. Note, that, because of the mess that is reality, - * BOMs are used if encountered. There really is not much distinction between the UTF16 types for mpg123 - * One exception: Since this is seen in ID3v2 tags, leading null bytes are skipped for all other UTF16 - * types (we expect a BOM before real data there), not so for utf16be!*/ - ,mpg123_text_max = 7 /**< Placeholder for the maximum encoding value. */ -}; - -/** The encoding byte values from ID3v2. */ -enum mpg123_id3_enc -{ - mpg123_id3_latin1 = 0 /**< Note: This sometimes can mean anything in practice... */ - ,mpg123_id3_utf16bom = 1 /**< UTF16, UCS-2 ... it's all the same for practical purposes. */ - ,mpg123_id3_utf16be = 2 /**< Big-endian UTF-16, BOM see note for mpg123_text_utf16be. */ - ,mpg123_id3_utf8 = 3 /**< Our lovely overly ASCII-compatible 8 byte encoding for the world. */ - ,mpg123_id3_enc_max = 3 /**< Placeholder to check valid range of encoding byte. */ -}; - -/** Convert ID3 encoding byte to mpg123 encoding index. */ -EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte); - -/** Store text data in string, after converting to UTF-8 from indicated encoding - * \return 0 on error, 1 on success (on error, mpg123_free_string is called on sb) - * \param sb target string - * \param enc mpg123 text encoding value - * \param source source buffer with plain unsigned bytes (you might need to cast from char *) - * \param source_size number of bytes in the source buffer - * - * A prominent error can be that you provided an unknown encoding value, or this build of libmpg123 lacks support for certain encodings (ID3 or ICY stuff missing). - * Also, you might want to take a bit of care with preparing the data; for example, strip leading zeroes (I have seen that). - */ -EXPORT int mpg123_store_utf8(mpg123_string *sb, enum mpg123_text_encoding enc, const unsigned char *source, size_t source_size); - -/** Sub data structure for ID3v2, for storing various text fields (including comments). - * This is for ID3v2 COMM, TXXX and all the other text fields. - * Only COMM and TXXX have a description, only COMM and USLT have a language. - * You should consult the ID3v2 specification for the use of the various text fields ("frames" in ID3v2 documentation, I use "fields" here to separate from MPEG frames). */ -typedef struct -{ - char lang[3]; /**< Three-letter language code (not terminated). */ - char id[4]; /**< The ID3v2 text field id, like TALB, TPE2, ... (4 characters, no string termination). */ - mpg123_string description; /**< Empty for the generic comment... */ - mpg123_string text; /**< ... */ -} mpg123_text; - -/** The picture type values from ID3v2. */ -enum mpg123_id3_pic_type -{ - mpg123_id3_pic_other = 0 - ,mpg123_id3_pic_icon = 1 - ,mpg123_id3_pic_other_icon = 2 - ,mpg123_id3_pic_front_cover = 3 - ,mpg123_id3_pic_back_cover = 4 - ,mpg123_id3_pic_leaflet = 5 - ,mpg123_id3_pic_media = 6 - ,mpg123_id3_pic_lead = 7 - ,mpg123_id3_pic_artist = 8 - ,mpg123_id3_pic_conductor = 9 - ,mpg123_id3_pic_orchestra = 10 - ,mpg123_id3_pic_composer = 11 - ,mpg123_id3_pic_lyricist = 12 - ,mpg123_id3_pic_location = 13 - ,mpg123_id3_pic_recording = 14 - ,mpg123_id3_pic_performance = 15 - ,mpg123_id3_pic_video = 16 - ,mpg123_id3_pic_fish = 17 - ,mpg123_id3_pic_illustration = 18 - ,mpg123_id3_pic_artist_logo = 19 - ,mpg123_id3_pic_publisher_logo = 20 -}; - -/** Sub data structure for ID3v2, for storing picture data including comment. - * This is for the ID3v2 APIC field. You should consult the ID3v2 specification - * for the use of the APIC field ("frames" in ID3v2 documentation, I use "fields" - * here to separate from MPEG frames). */ -typedef struct -{ - char type; - mpg123_string description; - mpg123_string mime_type; - size_t size; - unsigned char* data; -} mpg123_picture; - -/** Data structure for storing IDV3v2 tags. - * This structure is not a direct binary mapping with the file contents. - * The ID3v2 text frames are allowed to contain multiple strings. - * So check for null bytes until you reach the mpg123_string fill. - * All text is encoded in UTF-8. */ -typedef struct -{ - unsigned char version; /**< 3 or 4 for ID3v2.3 or ID3v2.4. */ - mpg123_string *title; /**< Title string (pointer into text_list). */ - mpg123_string *artist; /**< Artist string (pointer into text_list). */ - mpg123_string *album; /**< Album string (pointer into text_list). */ - mpg123_string *year; /**< The year as a string (pointer into text_list). */ - mpg123_string *genre; /**< Genre String (pointer into text_list). The genre string(s) may very well need postprocessing, esp. for ID3v2.3. */ - mpg123_string *comment; /**< Pointer to last encountered comment text with empty description. */ - /* Encountered ID3v2 fields are appended to these lists. - There can be multiple occurences, the pointers above always point to the last encountered data. */ - mpg123_text *comment_list; /**< Array of comments. */ - size_t comments; /**< Number of comments. */ - mpg123_text *text; /**< Array of ID3v2 text fields (including USLT) */ - size_t texts; /**< Numer of text fields. */ - mpg123_text *extra; /**< The array of extra (TXXX) fields. */ - size_t extras; /**< Number of extra text (TXXX) fields. */ - mpg123_picture *picture; /**< Array of ID3v2 pictures fields (APIC). */ - size_t pictures; /**< Number of picture (APIC) fields. */ -} mpg123_id3v2; - -/** Data structure for ID3v1 tags (the last 128 bytes of a file). - * Don't take anything for granted (like string termination)! - * Also note the change ID3v1.1 did: comment[28] = 0; comment[29] = track_number - * It is your task to support ID3v1 only or ID3v1.1 ...*/ -typedef struct -{ - char tag[3]; /**< Always the string "TAG", the classic intro. */ - char title[30]; /**< Title string. */ - char artist[30]; /**< Artist string. */ - char album[30]; /**< Album string. */ - char year[4]; /**< Year string. */ - char comment[30]; /**< Comment string. */ - unsigned char genre; /**< Genre index. */ -} mpg123_id3v1; - -#define MPG123_ID3 0x3 /**< 0011 There is some ID3 info. Also matches 0010 or NEW_ID3. */ -#define MPG123_NEW_ID3 0x1 /**< 0001 There is ID3 info that changed since last call to mpg123_id3. */ -#define MPG123_ICY 0xc /**< 1100 There is some ICY info. Also matches 0100 or NEW_ICY.*/ -#define MPG123_NEW_ICY 0x4 /**< 0100 There is ICY info that changed since last call to mpg123_icy. */ - -/** Query if there is (new) meta info, be it ID3 or ICY (or something new in future). - The check function returns a combination of flags. */ -EXPORT int mpg123_meta_check(mpg123_handle *mh); /* On error (no valid handle) just 0 is returned. */ - -/** Clean up meta data storage (ID3v2 and ICY), freeing memory. */ -EXPORT void mpg123_meta_free(mpg123_handle *mh); - -/** Point v1 and v2 to existing data structures wich may change on any next read/decode function call. - * v1 and/or v2 can be set to NULL when there is no corresponding data. - * \return Return value is MPG123_OK or MPG123_ERR, */ -EXPORT int mpg123_id3(mpg123_handle *mh, mpg123_id3v1 **v1, mpg123_id3v2 **v2); - -/** Point icy_meta to existing data structure wich may change on any next read/decode function call. - * \return Return value is MPG123_OK or MPG123_ERR, */ -EXPORT int mpg123_icy(mpg123_handle *mh, char **icy_meta); /* same for ICY meta string */ - -/** Decode from windows-1252 (the encoding ICY metainfo used) to UTF-8. - * Note that this is very similar to mpg123_store_utf8(&sb, mpg123_text_icy, icy_text, strlen(icy_text+1)) . - * \param icy_text The input data in ICY encoding - * \return pointer to newly allocated buffer with UTF-8 data (You free() it!) */ -EXPORT char* mpg123_icy2utf8(const char* icy_text); - - -/* @} */ - - -/** \defgroup mpg123_advpar mpg123 advanced parameter API - * - * Direct access to a parameter set without full handle around it. - * Possible uses: - * - Influence behaviour of library _during_ initialization of handle (MPG123_VERBOSE). - * - Use one set of parameters for multiple handles. - * - * The functions for handling mpg123_pars (mpg123_par() and mpg123_fmt() - * family) directly return a fully qualified mpg123 error code, the ones - * operating on full handles normally MPG123_OK or MPG123_ERR, storing the - * specific error code itseld inside the handle. - * - * @{ - */ - -/** Opaque structure for the libmpg123 decoder parameters. */ -struct mpg123_pars_struct; - -/** Opaque structure for the libmpg123 decoder parameters. */ -typedef struct mpg123_pars_struct mpg123_pars; - -/** Create a handle with preset parameters. */ -EXPORT mpg123_handle *mpg123_parnew(mpg123_pars *mp, const char* decoder, int *error); - -/** Allocate memory for and return a pointer to a new mpg123_pars */ -EXPORT mpg123_pars *mpg123_new_pars(int *error); - -/** Delete and free up memory used by a mpg123_pars data structure */ -EXPORT void mpg123_delete_pars(mpg123_pars* mp); - -/** Configure mpg123 parameters to accept no output format at all, - * use before specifying supported formats with mpg123_format */ -EXPORT int mpg123_fmt_none(mpg123_pars *mp); - -/** Configure mpg123 parameters to accept all formats - * (also any custom rate you may set) -- this is default. */ -EXPORT int mpg123_fmt_all(mpg123_pars *mp); - -/** Set the audio format support of a mpg123_pars in detail: - \param rate The sample rate value (in Hertz). - \param channels A combination of MPG123_STEREO and MPG123_MONO. - \param encodings A combination of accepted encodings for rate and channels, p.ex MPG123_ENC_SIGNED16|MPG123_ENC_ULAW_8 (or 0 for no support). - \return 0 on success, -1 if there was an error. / -*/ -EXPORT int mpg123_fmt(mpg123_pars *mh, long rate, int channels, int encodings); /* 0 is good, -1 is error */ - -/** Check to see if a specific format at a specific rate is supported - * by mpg123_pars. - * \return 0 for no support (that includes invalid parameters), MPG123_STEREO, - * MPG123_MONO or MPG123_STEREO|MPG123_MONO. */ -EXPORT int mpg123_fmt_support(mpg123_pars *mh, long rate, int encoding); - -/** Set a specific parameter, for a specific mpg123_pars, using a parameter - * type key chosen from the mpg123_parms enumeration, to the specified value. */ -EXPORT int mpg123_par(mpg123_pars *mp, enum mpg123_parms type, long value, double fvalue); - -/** Get a specific parameter, for a specific mpg123_pars. - * See the mpg123_parms enumeration for a list of available parameters. */ -EXPORT int mpg123_getpar(mpg123_pars *mp, enum mpg123_parms type, long *val, double *fval); - -/* @} */ - - -/** \defgroup mpg123_lowio mpg123 low level I/O - * You may want to do tricky stuff with I/O that does not work with mpg123's default file access or you want to make it decode into your own pocket... - * - * @{ */ - -/** Replace default internal buffer with user-supplied buffer. - * Instead of working on it's own private buffer, mpg123 will directly use the one you provide for storing decoded audio. - * Note that the required buffer size could be bigger than expected from output - * encoding if libmpg123 has to convert from primary decoder output (p.ex. 32 bit - * storage for 24 bit output. */ -EXPORT int mpg123_replace_buffer(mpg123_handle *mh, unsigned char *data, size_t size); - -/** The max size of one frame's decoded output with current settings. - * Use that to determine an appropriate minimum buffer size for decoding one frame. */ -EXPORT size_t mpg123_outblock(mpg123_handle *mh); - -/** Replace low-level stream access functions; read and lseek as known in POSIX. - * You can use this to make any fancy file opening/closing yourself, - * using mpg123_open_fd() to set the file descriptor for your read/lseek (doesn't need to be a "real" file descriptor...). - * Setting a function to NULL means that the default internal read is - * used (active from next mpg123_open call on). - * Note: As it would be troublesome to mess with this while having a file open, - * this implies mpg123_close(). */ -EXPORT int mpg123_replace_reader(mpg123_handle *mh, ssize_t (*r_read) (int, void *, size_t), off_t (*r_lseek)(int, off_t, int)); - -/** Replace I/O functions with your own ones operating on some kind of handle instead of integer descriptors. - * The handle is a void pointer, so you can pass any data you want... - * mpg123_open_handle() is the call you make to use the I/O defined here. - * There is no fallback to internal read/seek here. - * Note: As it would be troublesome to mess with this while having a file open, - * this mpg123_close() is implied here. - * \param r_read The callback for reading (behaviour like posix read). - * \param r_lseek The callback for seeking (like posix lseek). - * \param cleanup A callback to clean up an I/O handle on mpg123_close, can be NULL for none (you take care of cleaning your handles). */ -EXPORT int mpg123_replace_reader_handle(mpg123_handle *mh, ssize_t (*r_read) (void *, void *, size_t), off_t (*r_lseek)(void *, off_t, int), void (*cleanup)(void*)); - -/* @} */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win32-specific/MP3Decoder/prebuilt/libmpg123.dll b/external/win32-specific/MP3Decoder/prebuilt/libmpg123.dll deleted file mode 100644 index d253fc1..0000000 Binary files a/external/win32-specific/MP3Decoder/prebuilt/libmpg123.dll and /dev/null differ diff --git a/external/win32-specific/MP3Decoder/prebuilt/libmpg123.lib b/external/win32-specific/MP3Decoder/prebuilt/libmpg123.lib deleted file mode 100644 index c74b3b8..0000000 Binary files a/external/win32-specific/MP3Decoder/prebuilt/libmpg123.lib and /dev/null differ diff --git a/external/win32-specific/OggDecoder/CMakeLists.txt b/external/win32-specific/OggDecoder/CMakeLists.txt deleted file mode 100644 index 412aed7..0000000 --- a/external/win32-specific/OggDecoder/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -cmake_minimum_required(VERSION 3.6) - -set(lib_name OggDecoder) -set(target_name ext_${lib_name}) - -project(${lib_name}) - -include(../../cmake/CocosExternalConfig.cmake) - -add_library(${target_name} SHARED IMPORTED GLOBAL) - -set_target_properties(${target_name} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include -) - -set_target_properties(${target_name} PROPERTIES - IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libogg.dll" - IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libogg.lib" -) - -# internal link depend - set_property(TARGET ${target_name} APPEND PROPERTY - INTERFACE_LINK_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libvorbis.lib" -) -set_property(TARGET ${target_name} APPEND PROPERTY - IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libvorbis.dll" -) -set_property(TARGET ${target_name} APPEND PROPERTY - INTERFACE_LINK_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libvorbisfile.lib" -) -set_property(TARGET ${target_name} APPEND PROPERTY - IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/libvorbisfile.dll" -) - diff --git a/external/win32-specific/OggDecoder/include/ogg/ogg.h b/external/win32-specific/OggDecoder/include/ogg/ogg.h deleted file mode 100644 index cea4ebe..0000000 --- a/external/win32-specific/OggDecoder/include/ogg/ogg.h +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel libogg include - last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ - - ********************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -typedef struct { - void *iov_base; - size_t iov_len; -} ogg_iovec_t; - -typedef struct { - long endbyte; - int endbit; - - unsigned char *buffer; - unsigned char *ptr; - long storage; -} oggpack_buffer; - -/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ - -typedef struct { - unsigned char *header; - long header_len; - unsigned char *body; - long body_len; -} ogg_page; - -/* ogg_stream_state contains the current encode/decode state of a logical - Ogg bitstream **********************************************************/ - -typedef struct { - unsigned char *body_data; /* bytes from packet bodies */ - long body_storage; /* storage elements allocated */ - long body_fill; /* elements stored; fill mark */ - long body_returned; /* elements of fill returned */ - - - int *lacing_vals; /* The values that will go to the segment table */ - ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact - this way, but it is simple coupled to the - lacing fifo */ - long lacing_storage; - long lacing_fill; - long lacing_packet; - long lacing_returned; - - unsigned char header[282]; /* working space for header encode */ - int header_fill; - - int e_o_s; /* set when we have buffered the last packet in the - logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - -} ogg_stream_state; - -/* ogg_packet is used to encapsulate the data and metadata belonging - to a single raw Ogg/Vorbis packet *************************************/ - -typedef struct { - unsigned char *packet; - long bytes; - long b_o_s; - long e_o_s; - - ogg_int64_t granulepos; - - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - unsigned char *data; - int storage; - int fill; - int returned; - - int unsynced; - int headerbytes; - int bodybytes; -} ogg_sync_state; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_writeinit(oggpack_buffer *b); -extern int oggpack_writecheck(oggpack_buffer *b); -extern void oggpack_writetrunc(oggpack_buffer *b,long bits); -extern void oggpack_writealign(oggpack_buffer *b); -extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpack_reset(oggpack_buffer *b); -extern void oggpack_writeclear(oggpack_buffer *b); -extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern long oggpack_look1(oggpack_buffer *b); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern void oggpack_adv1(oggpack_buffer *b); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_read1(oggpack_buffer *b); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); - -extern void oggpackB_writeinit(oggpack_buffer *b); -extern int oggpackB_writecheck(oggpack_buffer *b); -extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); -extern void oggpackB_writealign(oggpack_buffer *b); -extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpackB_reset(oggpack_buffer *b); -extern void oggpackB_writeclear(oggpack_buffer *b); -extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpackB_look(oggpack_buffer *b,int bits); -extern long oggpackB_look1(oggpack_buffer *b); -extern void oggpackB_adv(oggpack_buffer *b,int bits); -extern void oggpackB_adv1(oggpack_buffer *b); -extern long oggpackB_read(oggpack_buffer *b,int bits); -extern long oggpackB_read1(oggpack_buffer *b); -extern long oggpackB_bytes(oggpack_buffer *b); -extern long oggpackB_bits(oggpack_buffer *b); -extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); - -/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ - -extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, - int count, long e_o_s, ogg_int64_t granulepos); -extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); -extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern int ogg_sync_init(ogg_sync_state *oy); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_check(ogg_sync_state *oy); - -extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern int ogg_stream_init(ogg_stream_state *os,int serialno); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_check(ogg_stream_state *os); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern void ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(const ogg_page *og); -extern int ogg_page_continued(const ogg_page *og); -extern int ogg_page_bos(const ogg_page *og); -extern int ogg_page_eos(const ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); -extern int ogg_page_serialno(const ogg_page *og); -extern long ogg_page_pageno(const ogg_page *og); -extern int ogg_page_packets(const ogg_page *og); - -extern void ogg_packet_clear(ogg_packet *op); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/external/win32-specific/OggDecoder/include/ogg/os_types.h b/external/win32-specific/OggDecoder/include/ogg/os_types.h deleted file mode 100644 index 8bf8210..0000000 --- a/external/win32-specific/OggDecoder/include/ogg/os_types.h +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id: os_types.h 19098 2014-02-26 19:06:45Z giles $ - - ********************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined(_WIN32) - -# if defined(__CYGWIN__) -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# elif defined(__MINGW32__) -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - typedef unsigned long long ogg_uint64_t; -# elif defined(__MWERKS__) - typedef long long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; -# else - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# endif - -#elif defined(__MACOS__) - -# include - typedef SInt16 ogg_int16_t; - typedef UInt16 ogg_uint16_t; - typedef SInt32 ogg_int32_t; - typedef UInt32 ogg_uint32_t; - typedef SInt64 ogg_int64_t; - -#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ - -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__HAIKU__) - - /* Haiku */ -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined (DJGPP) - - /* DJGPP */ - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(R5900) - - /* PS2 EE */ - typedef long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned ogg_uint32_t; - typedef short ogg_int16_t; - -#elif defined(__SYMBIAN32__) - - /* Symbian GCC */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#elif defined(__TMS320C6X__) - - /* TI C64x compiler */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#else - -# include - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/external/win32-specific/OggDecoder/include/vorbis/codec.h b/external/win32-specific/OggDecoder/include/vorbis/codec.h deleted file mode 100644 index 999aa33..0000000 --- a/external/win32-specific/OggDecoder/include/vorbis/codec.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - - ******************************************************************** - - function: libvorbis codec headers - last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -#ifndef _vorbis_codec_h_ -#define _vorbis_codec_h_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include - -typedef struct vorbis_info{ - int version; - int channels; - long rate; - - /* The below bitrate declarations are *hints*. - Combinations of the three values carry the following implications: - - all three set to the same value: - implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard - upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal - may also be set to give a nominal rate. - none set: - the coder does not care to speculate. - */ - - long bitrate_upper; - long bitrate_nominal; - long bitrate_lower; - long bitrate_window; - - void *codec_setup; -} vorbis_info; - -/* vorbis_dsp_state buffers the current vorbis audio - analysis/synthesis state. The DSP state belongs to a specific - logical bitstream ****************************************************/ -typedef struct vorbis_dsp_state{ - int analysisp; - vorbis_info *vi; - - float **pcm; - float **pcmret; - int pcm_storage; - int pcm_current; - int pcm_returned; - - int preextrapolate; - int eofflag; - - long lW; - long W; - long nW; - long centerW; - - ogg_int64_t granulepos; - ogg_int64_t sequence; - - ogg_int64_t glue_bits; - ogg_int64_t time_bits; - ogg_int64_t floor_bits; - ogg_int64_t res_bits; - - void *backend_state; -} vorbis_dsp_state; - -typedef struct vorbis_block{ - /* necessary stream state for linking to the framing abstraction */ - float **pcm; /* this is a pointer into local storage */ - oggpack_buffer opb; - - long lW; - long W; - long nW; - int pcmend; - int mode; - - int eofflag; - ogg_int64_t granulepos; - ogg_int64_t sequence; - vorbis_dsp_state *vd; /* For read-only access of configuration */ - - /* local storage to avoid remallocing; it's up to the mapping to - structure it */ - void *localstore; - long localtop; - long localalloc; - long totaluse; - struct alloc_chain *reap; - - /* bitmetrics for the frame */ - long glue_bits; - long time_bits; - long floor_bits; - long res_bits; - - void *internal; - -} vorbis_block; - -/* vorbis_block is a single block of data to be processed as part of -the analysis/synthesis stream; it belongs to a specific logical -bitstream, but is independent from other vorbis_blocks belonging to -that logical bitstream. *************************************************/ - -struct alloc_chain{ - void *ptr; - struct alloc_chain *next; -}; - -/* vorbis_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). vorbis_info and substructures are in backends.h. -*********************************************************************/ - -/* the comments are not part of vorbis_info so that vorbis_info can be - static storage */ -typedef struct vorbis_comment{ - /* unlimited user comment fields. libvorbis writes 'libvorbis' - whatever vendor is set to in encode */ - char **user_comments; - int *comment_lengths; - int comments; - char *vendor; - -} vorbis_comment; - - -/* libvorbis encodes in two abstraction layers; first we perform DSP - and produce a packet (see docs/analysis.txt). The packet is then - coded into a framed OggSquish bitstream by the second layer (see - docs/framing.txt). Decode is the reverse process; we sync/frame - the bitstream and extract individual packets, then decode the - packet back into PCM audio. - - The extra framing/packetizing is used in streaming formats, such as - files. Over the net (such as with UDP), the framing and - packetization aren't necessary as they're provided by the transport - and the streaming layer is not used */ - -/* Vorbis PRIMITIVES: general ***************************************/ - -extern void vorbis_info_init(vorbis_info *vi); -extern void vorbis_info_clear(vorbis_info *vi); -extern int vorbis_info_blocksize(vorbis_info *vi,int zo); -extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - const char *tag, const char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); -extern void vorbis_comment_clear(vorbis_comment *vc); - -extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); -extern int vorbis_block_clear(vorbis_block *vb); -extern void vorbis_dsp_clear(vorbis_dsp_state *v); -extern double vorbis_granule_time(vorbis_dsp_state *v, - ogg_int64_t granulepos); - -extern const char *vorbis_version_string(void); - -/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ - -extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); -extern int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); -extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); - -extern int vorbis_bitrate_addblock(vorbis_block *vb); -extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, - ogg_packet *op); - -/* Vorbis PRIMITIVES: synthesis layer *******************************/ -extern int vorbis_synthesis_idheader(ogg_packet *op); -extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, - ogg_packet *op); - -extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_synthesis_restart(vorbis_dsp_state *v); -extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); -extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); - -extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); -extern int vorbis_synthesis_halfrate_p(vorbis_info *v); - -/* Vorbis ERRORS and return codes ***********************************/ - -#define OV_FALSE -1 -#define OV_EOF -2 -#define OV_HOLE -3 - -#define OV_EREAD -128 -#define OV_EFAULT -129 -#define OV_EIMPL -130 -#define OV_EINVAL -131 -#define OV_ENOTVORBIS -132 -#define OV_EBADHEADER -133 -#define OV_EVERSION -134 -#define OV_ENOTAUDIO -135 -#define OV_EBADPACKET -136 -#define OV_EBADLINK -137 -#define OV_ENOSEEK -138 - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/external/win32-specific/OggDecoder/include/vorbis/vorbisenc.h b/external/win32-specific/OggDecoder/include/vorbis/vorbisenc.h deleted file mode 100644 index 02332b5..0000000 --- a/external/win32-specific/OggDecoder/include/vorbis/vorbisenc.h +++ /dev/null @@ -1,436 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: vorbis encode-engine setup - last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $ - - ********************************************************************/ - -/** \file - * Libvorbisenc is a convenient API for setting up an encoding - * environment using libvorbis. Libvorbisenc encapsulates the - * actions needed to set up the encoder properly. - */ - -#ifndef _OV_ENC_H_ -#define _OV_ENC_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "codec.h" - -/** - * This is the primary function within libvorbisenc for setting up managed - * bitrate modes. - * - * Before this function is called, the \ref vorbis_info - * struct should be initialized by using vorbis_info_init() from the libvorbis - * API. After encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step bitrate-managed encode - * setup. It functions similarly to the one-step setup performed by \ref - * vorbis_encode_init but allows an application to make further encode setup - * tweaks using \ref vorbis_encode_ctl before finally calling \ref - * vorbis_encode_setup_init to complete the setup process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set - * constraints for the encoded file. This function uses these settings to - * select the appropriate encoding mode and set it up. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. - * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. - * \param min_bitrate Desired minimum bitrate. -1 indicates unset. - * - * \return Zero for success, and negative for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. - */ -extern int vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -/** - * This function performs step-one of a three-step variable bitrate - * (quality-based) encode setup. It functions similarly to the one-step setup - * performed by \ref vorbis_encode_init_vbr() but allows an application to - * make further encode setup tweaks using \ref vorbis_encode_ctl() before - * finally calling \ref vorbis_encode_setup_init to complete the setup - * process. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using \ref vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_setup_vbr(vorbis_info *vi, - long channels, - long rate, - - float quality - ); - -/** - * This is the primary function within libvorbisenc for setting up variable - * bitrate ("quality" based) modes. - * - * - * Before this function is called, the vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API. After - * encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized vorbis_info struct. - * \param channels The number of channels to be encoded. - * \param rate The sampling rate of the source audio. - * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). - * - * - * \return Zero for success, or a negative number for failure. - * - * \retval 0 Success - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * \retval OV_EINVAL Invalid setup request, eg, out of range argument. - * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. - */ -extern int vorbis_encode_init_vbr(vorbis_info *vi, - long channels, - long rate, - - float base_quality - ); - -/** - * This function performs the last stage of three-step encoding setup, as - * described in the API overview under managed bitrate modes. - * - * Before this function is called, the \ref vorbis_info struct should be - * initialized by using vorbis_info_init() from the libvorbis API, one of - * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to - * initialize the high-level encoding setup, and \ref vorbis_encode_ctl() - * called if necessary to make encoding setup changes. - * vorbis_encode_setup_init() finalizes the highlevel encoding structure into - * a complete encoding setup after which the application may make no further - * setup changes. - * - * After encoding, vorbis_info_clear() should be called. - * - * \param vi Pointer to an initialized \ref vorbis_info struct. - * - * \return Zero for success, and negative values for failure. - * - * \retval 0 Success. - * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. - * - * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first - * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to - * initialize the high-level encoding setup - * - */ -extern int vorbis_encode_setup_init(vorbis_info *vi); - -/** - * This function implements a generic interface to miscellaneous encoder - * settings similar to the classic UNIX 'ioctl()' system call. Applications - * may use vorbis_encode_ctl() to query or set bitrate management or quality - * mode details by using one of several \e request arguments detailed below. - * vorbis_encode_ctl() must be called after one of - * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used - * to modify settings, \ref vorbis_encode_ctl() must be called before \ref - * vorbis_encode_setup_init(). - * - * \param vi Pointer to an initialized vorbis_info struct. - * - * \param number Specifies the desired action; See \ref encctlcodes "the list - * of available requests". - * - * \param arg void * pointing to a data structure matching the request - * argument. - * - * \retval 0 Success. Any further return information (such as the result of a - * query) is placed into the storage pointed to by *arg. - * - * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after - * calling vorbis_encode_setup_init(). - * - * \retval OV_EIMPL Unimplemented or unknown request - */ -extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); - -/** - * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl() - * with the \ref ovectl_ratemanage2_arg struct and \ref - * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code. - * - * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl() - * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref - * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. -*/ -struct ovectl_ratemanage_arg { - int management_active; /**< nonzero if bitrate management is active*/ -/** hard lower limit (in kilobits per second) below which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_min; -/** hard upper limit (in kilobits per second) above which the stream bitrate - will never be allowed for any given bitrate_hard_window seconds of time.*/ - long bitrate_hard_max; -/** the window period (in seconds) used to regulate the hard bitrate minimum - and maximum*/ - double bitrate_hard_window; -/** soft lower limit (in kilobits per second) below which the average bitrate - tracker will start nudging the bitrate higher.*/ - long bitrate_av_lo; -/** soft upper limit (in kilobits per second) above which the average bitrate - tracker will start nudging the bitrate lower.*/ - long bitrate_av_hi; -/** the window period (in seconds) used to regulate the average bitrate - minimum and maximum.*/ - double bitrate_av_window; -/** Regulates the relative centering of the average and hard windows; in - libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but - followed the average window regulation. In libvorbis 1.1 a bit-reservoir - interface replaces the old windowing interface; the older windowing - interface is simulated and this field has no effect.*/ - double bitrate_av_window_center; -}; - -/** - * \name struct ovectl_ratemanage2_arg - * - * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and - * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to - * query and modify specifics of the encoder's bitrate management - * configuration. - * -*/ -struct ovectl_ratemanage2_arg { - int management_active; /**< nonzero if bitrate management is active */ -/** Lower allowed bitrate limit in kilobits per second */ - long bitrate_limit_min_kbps; -/** Upper allowed bitrate limit in kilobits per second */ - long bitrate_limit_max_kbps; - long bitrate_limit_reservoir_bits; /**struct ovectl_ratemanage2_arg * - * - * Used to query the current encoder bitrate management setting. Also used to - * initialize fields of an ovectl_ratemanage2_arg structure for use with - * \ref OV_ECTL_RATEMANAGE2_SET. - */ -#define OV_ECTL_RATEMANAGE2_GET 0x14 - -/** - * Set the current encoder bitrate management settings. - * - * Argument: struct ovectl_ratemanage2_arg * - * - * Used to set the current encoder bitrate management settings to the values - * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable - * bitrate management. -*/ -#define OV_ECTL_RATEMANAGE2_SET 0x15 - -/** - * Returns the current encoder hard-lowpass setting (kHz) in the double - * pointed to by arg. - * - * Argument: double * -*/ -#define OV_ECTL_LOWPASS_GET 0x20 - -/** - * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid - * lowpass settings range from 2 to 99. - * - * Argument: double * -*/ -#define OV_ECTL_LOWPASS_SET 0x21 - -/** - * Returns the current encoder impulse block setting in the double pointed - * to by arg. - * - * Argument: double * -*/ -#define OV_ECTL_IBLOCK_GET 0x30 - -/** - * Sets the impulse block bias to the the value pointed to by arg. - * - * Argument: double * - * - * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will - * direct to encoder to use more bits when incoding short blocks that contain - * strong impulses, thus improving the accuracy of impulse encoding. - */ -#define OV_ECTL_IBLOCK_SET 0x31 - -/** - * Returns the current encoder coupling setting in the int pointed - * to by arg. - * - * Argument: int * -*/ -#define OV_ECTL_COUPLING_GET 0x40 - -/** - * Enables/disables channel coupling in multichannel encoding according to arg. - * - * Argument: int * - * - * Zero disables channel coupling for multichannel inputs, nonzer enables - * channel coupling. Setting has no effect on monophonic encoding or - * multichannel counts that do not offer coupling. At present, coupling is - * available for stereo and 5.1 encoding. - */ -#define OV_ECTL_COUPLING_SET 0x41 - - /* deprecated rate management supported only for compatibility */ - -/** - * Old interface to querying bitrate management settings. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_GET 0x10 -/** - * Old interface to modifying bitrate management settings. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_SET 0x11 -/** - * Old interface to setting average-bitrate encoding mode. - * - * Deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_AVG 0x12 -/** - * Old interface to setting bounded-bitrate encoding modes. - * - * deprecated after move to bit-reservoir style management in 1.1 rendered - * this interface partially obsolete. - * - * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. - * - * Argument: struct ovectl_ratemanage_arg * - */ -#define OV_ECTL_RATEMANAGE_HARD 0x13 - -/*@}*/ - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif diff --git a/external/win32-specific/OggDecoder/include/vorbis/vorbisfile.h b/external/win32-specific/OggDecoder/include/vorbis/vorbisfile.h deleted file mode 100644 index 9271331..0000000 --- a/external/win32-specific/OggDecoder/include/vorbis/vorbisfile.h +++ /dev/null @@ -1,206 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $ - - ********************************************************************/ - -#ifndef _OV_FILE_H_ -#define _OV_FILE_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include -#include "codec.h" - -/* The function prototypes for the callbacks are basically the same as for - * the stdio functions fread, fseek, fclose, ftell. - * The one difference is that the FILE * arguments have been replaced with - * a void * - this is to be used as a pointer to whatever internal data these - * functions might need. In the stdio case, it's just a FILE * cast to a void * - * - * If you use other functions, check the docs for these functions and return - * the right values. For seek_func(), you *MUST* return -1 if the stream is - * unseekable - */ -typedef struct { - size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); - int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); - int (*close_func) (void *datasource); - long (*tell_func) (void *datasource); -} ov_callbacks; - -#ifndef OV_EXCLUDE_STATIC_CALLBACKS - -/* a few sets of convenient callbacks, especially for use under - * Windows where ov_open_callbacks() should always be used instead of - * ov_open() to avoid problems with incompatible crt.o version linking - * issues. */ - -static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ - if(f==NULL)return(-1); - -#ifdef __MINGW32__ - return fseeko64(f,off,whence); -#elif defined (_WIN32) - return _fseeki64(f,off,whence); -#else - return fseek(f,off,whence); -#endif -} - -/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as - * static data. That means that every file which includes this header - * will get its own copy of these structs whether it uses them or - * not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS. - * These static symbols are essential on platforms such as Windows on - * which several different versions of stdio support may be linked to - * by different DLLs, and we need to be certain we know which one - * we're using (the same one as the main application). - */ - -static ov_callbacks OV_CALLBACKS_DEFAULT = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) fclose, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, - (int (*)(void *)) NULL, - (long (*)(void *)) ftell -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) fclose, - (long (*)(void *)) NULL -}; - -static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { - (size_t (*)(void *, size_t, size_t, void *)) fread, - (int (*)(void *, ogg_int64_t, int)) NULL, - (int (*)(void *)) NULL, - (long (*)(void *)) NULL -}; - -#endif - -#define NOTOPEN 0 -#define PARTOPEN 1 -#define OPENED 2 -#define STREAMSET 3 -#define INITSET 4 - -typedef struct OggVorbis_File { - void *datasource; /* Pointer to a FILE *, etc. */ - int seekable; - ogg_int64_t offset; - ogg_int64_t end; - ogg_sync_state oy; - - /* If the FILE handle isn't seekable (eg, a pipe), only the current - stream appears */ - int links; - ogg_int64_t *offsets; - ogg_int64_t *dataoffsets; - long *serialnos; - ogg_int64_t *pcmlengths; /* overloaded to maintain binary - compatibility; x2 size, stores both - beginning and end values */ - vorbis_info *vi; - vorbis_comment *vc; - - /* Decoding working state local storage */ - ogg_int64_t pcm_offset; - int ready_state; - long current_serialno; - int current_link; - - double bittrack; - double samptrack; - - ogg_stream_state os; /* take physical pages, weld into a logical - stream of packets */ - vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ - vorbis_block vb; /* local working space for packet->PCM decode */ - - ov_callbacks callbacks; - -} OggVorbis_File; - - -extern int ov_clear(OggVorbis_File *vf); -extern int ov_fopen(const char *path,OggVorbis_File *vf); -extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); - -extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); -extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, - const char *initial, long ibytes, ov_callbacks callbacks); -extern int ov_test_open(OggVorbis_File *vf); - -extern long ov_bitrate(OggVorbis_File *vf,int i); -extern long ov_bitrate_instant(OggVorbis_File *vf); -extern long ov_streams(OggVorbis_File *vf); -extern long ov_seekable(OggVorbis_File *vf); -extern long ov_serialnumber(OggVorbis_File *vf,int i); - -extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); -extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); -extern double ov_time_total(OggVorbis_File *vf,int i); - -extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page(OggVorbis_File *vf,double pos); - -extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos); -extern int ov_time_seek_lap(OggVorbis_File *vf,double pos); -extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos); - -extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); -extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); -extern double ov_time_tell(OggVorbis_File *vf); - -extern vorbis_info *ov_info(OggVorbis_File *vf,int link); -extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); - -extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, - int *bitstream); -extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream, - void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); -extern long ov_read(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream); -extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); - -extern int ov_halfrate(OggVorbis_File *vf,int flag); -extern int ov_halfrate_p(OggVorbis_File *vf); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/external/win32-specific/OggDecoder/prebuilt/libogg.dll b/external/win32-specific/OggDecoder/prebuilt/libogg.dll deleted file mode 100644 index 7c07ad7..0000000 Binary files a/external/win32-specific/OggDecoder/prebuilt/libogg.dll and /dev/null differ diff --git a/external/win32-specific/OggDecoder/prebuilt/libogg.lib b/external/win32-specific/OggDecoder/prebuilt/libogg.lib deleted file mode 100644 index 55e1d7d..0000000 Binary files a/external/win32-specific/OggDecoder/prebuilt/libogg.lib and /dev/null differ diff --git a/external/win32-specific/OggDecoder/prebuilt/libvorbis.dll b/external/win32-specific/OggDecoder/prebuilt/libvorbis.dll deleted file mode 100644 index 21b9159..0000000 Binary files a/external/win32-specific/OggDecoder/prebuilt/libvorbis.dll and /dev/null differ diff --git a/external/win32-specific/OggDecoder/prebuilt/libvorbis.lib b/external/win32-specific/OggDecoder/prebuilt/libvorbis.lib deleted file mode 100644 index 77adc14..0000000 Binary files a/external/win32-specific/OggDecoder/prebuilt/libvorbis.lib and /dev/null differ diff --git a/external/win32-specific/OggDecoder/prebuilt/libvorbisfile.dll b/external/win32-specific/OggDecoder/prebuilt/libvorbisfile.dll deleted file mode 100644 index 07d524e..0000000 Binary files a/external/win32-specific/OggDecoder/prebuilt/libvorbisfile.dll and /dev/null differ diff --git a/external/win32-specific/OggDecoder/prebuilt/libvorbisfile.lib b/external/win32-specific/OggDecoder/prebuilt/libvorbisfile.lib deleted file mode 100644 index 28e6759..0000000 Binary files a/external/win32-specific/OggDecoder/prebuilt/libvorbisfile.lib and /dev/null differ diff --git a/external/win32-specific/OpenalSoft/CMakeLists.txt b/external/win32-specific/OpenalSoft/CMakeLists.txt deleted file mode 100644 index c7929b5..0000000 --- a/external/win32-specific/OpenalSoft/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -cmake_minimum_required(VERSION 3.6) - -set(lib_name OpenalSoft) -set(target_name ext_${lib_name}) - -project(${lib_name}) - -include(../../cmake/CocosExternalConfig.cmake) - -add_library(${target_name} SHARED IMPORTED GLOBAL) - -set_target_properties(${target_name} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include -) - -set_target_properties(${target_name} PROPERTIES - IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/OpenAL32.dll" - IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/prebuilt/OpenAL32.lib" -) diff --git a/external/win32-specific/OpenalSoft/include/AL/al.h b/external/win32-specific/OpenalSoft/include/AL/al.h deleted file mode 100644 index 413b383..0000000 --- a/external/win32-specific/OpenalSoft/include/AL/al.h +++ /dev/null @@ -1,656 +0,0 @@ -#ifndef AL_AL_H -#define AL_AL_H - -#if defined(__cplusplus) -extern "C" { -#endif - -#ifndef AL_API - #if defined(AL_LIBTYPE_STATIC) - #define AL_API - #elif defined(_WIN32) - #define AL_API __declspec(dllimport) - #else - #define AL_API extern - #endif -#endif - -#if defined(_WIN32) - #define AL_APIENTRY __cdecl -#else - #define AL_APIENTRY -#endif - - -/** Deprecated macro. */ -#define OPENAL -#define ALAPI AL_API -#define ALAPIENTRY AL_APIENTRY -#define AL_INVALID (-1) -#define AL_ILLEGAL_ENUM AL_INVALID_ENUM -#define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION - -/** Supported AL version. */ -#define AL_VERSION_1_0 -#define AL_VERSION_1_1 - -/** 8-bit boolean */ -typedef char ALboolean; - -/** character */ -typedef char ALchar; - -/** signed 8-bit 2's complement integer */ -typedef signed char ALbyte; - -/** unsigned 8-bit integer */ -typedef unsigned char ALubyte; - -/** signed 16-bit 2's complement integer */ -typedef short ALshort; - -/** unsigned 16-bit integer */ -typedef unsigned short ALushort; - -/** signed 32-bit 2's complement integer */ -typedef int ALint; - -/** unsigned 32-bit integer */ -typedef unsigned int ALuint; - -/** non-negative 32-bit binary integer size */ -typedef int ALsizei; - -/** enumerated 32-bit value */ -typedef int ALenum; - -/** 32-bit IEEE754 floating-point */ -typedef float ALfloat; - -/** 64-bit IEEE754 floating-point */ -typedef double ALdouble; - -/** void type (for opaque pointers only) */ -typedef void ALvoid; - - -/* Enumerant values begin at column 50. No tabs. */ - -/** "no distance model" or "no buffer" */ -#define AL_NONE 0 - -/** Boolean False. */ -#define AL_FALSE 0 - -/** Boolean True. */ -#define AL_TRUE 1 - - -/** - * Relative source. - * Type: ALboolean - * Range: [AL_TRUE, AL_FALSE] - * Default: AL_FALSE - * - * Specifies if the Source has relative coordinates. - */ -#define AL_SOURCE_RELATIVE 0x202 - - -/** - * Inner cone angle, in degrees. - * Type: ALint, ALfloat - * Range: [0 - 360] - * Default: 360 - * - * The angle covered by the inner cone, where the source will not attenuate. - */ -#define AL_CONE_INNER_ANGLE 0x1001 - -/** - * Outer cone angle, in degrees. - * Range: [0 - 360] - * Default: 360 - * - * The angle covered by the outer cone, where the source will be fully - * attenuated. - */ -#define AL_CONE_OUTER_ANGLE 0x1002 - -/** - * Source pitch. - * Type: ALfloat - * Range: [0.5 - 2.0] - * Default: 1.0 - * - * A multiplier for the frequency (sample rate) of the source's buffer. - */ -#define AL_PITCH 0x1003 - -/** - * Source or listener position. - * Type: ALfloat[3], ALint[3] - * Default: {0, 0, 0} - * - * The source or listener location in three dimensional space. - * - * OpenAL, like OpenGL, uses a right handed coordinate system, where in a - * frontal default view X (thumb) points right, Y points up (index finger), and - * Z points towards the viewer/camera (middle finger). - * - * To switch from a left handed coordinate system, flip the sign on the Z - * coordinate. - */ -#define AL_POSITION 0x1004 - -/** - * Source direction. - * Type: ALfloat[3], ALint[3] - * Default: {0, 0, 0} - * - * Specifies the current direction in local space. - * A zero-length vector specifies an omni-directional source (cone is ignored). - */ -#define AL_DIRECTION 0x1005 - -/** - * Source or listener velocity. - * Type: ALfloat[3], ALint[3] - * Default: {0, 0, 0} - * - * Specifies the current velocity in local space. - */ -#define AL_VELOCITY 0x1006 - -/** - * Source looping. - * Type: ALboolean - * Range: [AL_TRUE, AL_FALSE] - * Default: AL_FALSE - * - * Specifies whether source is looping. - */ -#define AL_LOOPING 0x1007 - -/** - * Source buffer. - * Type: ALuint - * Range: any valid Buffer. - * - * Specifies the buffer to provide sound samples. - */ -#define AL_BUFFER 0x1009 - -/** - * Source or listener gain. - * Type: ALfloat - * Range: [0.0 - ] - * - * A value of 1.0 means unattenuated. Each division by 2 equals an attenuation - * of about -6dB. Each multiplicaton by 2 equals an amplification of about - * +6dB. - * - * A value of 0.0 is meaningless with respect to a logarithmic scale; it is - * silent. - */ -#define AL_GAIN 0x100A - -/** - * Minimum source gain. - * Type: ALfloat - * Range: [0.0 - 1.0] - * - * The minimum gain allowed for a source, after distance and cone attenation is - * applied (if applicable). - */ -#define AL_MIN_GAIN 0x100D - -/** - * Maximum source gain. - * Type: ALfloat - * Range: [0.0 - 1.0] - * - * The maximum gain allowed for a source, after distance and cone attenation is - * applied (if applicable). - */ -#define AL_MAX_GAIN 0x100E - -/** - * Listener orientation. - * Type: ALfloat[6] - * Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0} - * - * Effectively two three dimensional vectors. The first vector is the front (or - * "at") and the second is the top (or "up"). - * - * Both vectors are in local space. - */ -#define AL_ORIENTATION 0x100F - -/** - * Source state (query only). - * Type: ALint - * Range: [AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED] - */ -#define AL_SOURCE_STATE 0x1010 - -/** Source state value. */ -#define AL_INITIAL 0x1011 -#define AL_PLAYING 0x1012 -#define AL_PAUSED 0x1013 -#define AL_STOPPED 0x1014 - -/** - * Source Buffer Queue size (query only). - * Type: ALint - * - * The number of buffers queued using alSourceQueueBuffers, minus the buffers - * removed with alSourceUnqueueBuffers. - */ -#define AL_BUFFERS_QUEUED 0x1015 - -/** - * Source Buffer Queue processed count (query only). - * Type: ALint - * - * The number of queued buffers that have been fully processed, and can be - * removed with alSourceUnqueueBuffers. - * - * Looping sources will never fully process buffers because they will be set to - * play again for when the source loops. - */ -#define AL_BUFFERS_PROCESSED 0x1016 - -/** - * Source reference distance. - * Type: ALfloat - * Range: [0.0 - ] - * Default: 1.0 - * - * The distance in units that no attenuation occurs. - * - * At 0.0, no distance attenuation ever occurs on non-linear attenuation models. - */ -#define AL_REFERENCE_DISTANCE 0x1020 - -/** - * Source rolloff factor. - * Type: ALfloat - * Range: [0.0 - ] - * Default: 1.0 - * - * Multiplier to exaggerate or diminish distance attenuation. - * - * At 0.0, no distance attenuation ever occurs. - */ -#define AL_ROLLOFF_FACTOR 0x1021 - -/** - * Outer cone gain. - * Type: ALfloat - * Range: [0.0 - 1.0] - * Default: 0.0 - * - * The gain attenuation applied when the listener is outside of the source's - * outer cone. - */ -#define AL_CONE_OUTER_GAIN 0x1022 - -/** - * Source maximum distance. - * Type: ALfloat - * Range: [0.0 - ] - * Default: +inf - * - * The distance above which the source is not attenuated any further with a - * clamped distance model, or where attenuation reaches 0.0 gain for linear - * distance models with a default rolloff factor. - */ -#define AL_MAX_DISTANCE 0x1023 - -/** Source buffer position, in seconds */ -#define AL_SEC_OFFSET 0x1024 -/** Source buffer position, in sample frames */ -#define AL_SAMPLE_OFFSET 0x1025 -/** Source buffer position, in bytes */ -#define AL_BYTE_OFFSET 0x1026 - -/** - * Source type (query only). - * Type: ALint - * Range: [AL_STATIC, AL_STREAMING, AL_UNDETERMINED] - * - * A Source is Static if a Buffer has been attached using AL_BUFFER. - * - * A Source is Streaming if one or more Buffers have been attached using - * alSourceQueueBuffers. - * - * A Source is Undetermined when it has the NULL buffer attached using - * AL_BUFFER. - */ -#define AL_SOURCE_TYPE 0x1027 - -/** Source type value. */ -#define AL_STATIC 0x1028 -#define AL_STREAMING 0x1029 -#define AL_UNDETERMINED 0x1030 - -/** Buffer format specifier. */ -#define AL_FORMAT_MONO8 0x1100 -#define AL_FORMAT_MONO16 0x1101 -#define AL_FORMAT_STEREO8 0x1102 -#define AL_FORMAT_STEREO16 0x1103 - -/** Buffer frequency (query only). */ -#define AL_FREQUENCY 0x2001 -/** Buffer bits per sample (query only). */ -#define AL_BITS 0x2002 -/** Buffer channel count (query only). */ -#define AL_CHANNELS 0x2003 -/** Buffer data size (query only). */ -#define AL_SIZE 0x2004 - -/** - * Buffer state. - * - * Not for public use. - */ -#define AL_UNUSED 0x2010 -#define AL_PENDING 0x2011 -#define AL_PROCESSED 0x2012 - - -/** No error. */ -#define AL_NO_ERROR 0 - -/** Invalid name paramater passed to AL call. */ -#define AL_INVALID_NAME 0xA001 - -/** Invalid enum parameter passed to AL call. */ -#define AL_INVALID_ENUM 0xA002 - -/** Invalid value parameter passed to AL call. */ -#define AL_INVALID_VALUE 0xA003 - -/** Illegal AL call. */ -#define AL_INVALID_OPERATION 0xA004 - -/** Not enough memory. */ -#define AL_OUT_OF_MEMORY 0xA005 - - -/** Context string: Vendor ID. */ -#define AL_VENDOR 0xB001 -/** Context string: Version. */ -#define AL_VERSION 0xB002 -/** Context string: Renderer ID. */ -#define AL_RENDERER 0xB003 -/** Context string: Space-separated extension list. */ -#define AL_EXTENSIONS 0xB004 - - -/** - * Doppler scale. - * Type: ALfloat - * Range: [0.0 - ] - * Default: 1.0 - * - * Scale for source and listener velocities. - */ -#define AL_DOPPLER_FACTOR 0xC000 -AL_API void AL_APIENTRY alDopplerFactor(ALfloat value); - -/** - * Doppler velocity (deprecated). - * - * A multiplier applied to the Speed of Sound. - */ -#define AL_DOPPLER_VELOCITY 0xC001 -AL_API void AL_APIENTRY alDopplerVelocity(ALfloat value); - -/** - * Speed of Sound, in units per second. - * Type: ALfloat - * Range: [0.0001 - ] - * Default: 343.3 - * - * The speed at which sound waves are assumed to travel, when calculating the - * doppler effect. - */ -#define AL_SPEED_OF_SOUND 0xC003 -AL_API void AL_APIENTRY alSpeedOfSound(ALfloat value); - -/** - * Distance attenuation model. - * Type: ALint - * Range: [AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED, - * AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED, - * AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED] - * Default: AL_INVERSE_DISTANCE_CLAMPED - * - * The model by which sources attenuate with distance. - * - * None - No distance attenuation. - * Inverse - Doubling the distance halves the source gain. - * Linear - Linear gain scaling between the reference and max distances. - * Exponent - Exponential gain dropoff. - * - * Clamped variations work like the non-clamped counterparts, except the - * distance calculated is clamped between the reference and max distances. - */ -#define AL_DISTANCE_MODEL 0xD000 -AL_API void AL_APIENTRY alDistanceModel(ALenum distanceModel); - -/** Distance model value. */ -#define AL_INVERSE_DISTANCE 0xD001 -#define AL_INVERSE_DISTANCE_CLAMPED 0xD002 -#define AL_LINEAR_DISTANCE 0xD003 -#define AL_LINEAR_DISTANCE_CLAMPED 0xD004 -#define AL_EXPONENT_DISTANCE 0xD005 -#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006 - -/** Renderer State management. */ -AL_API void AL_APIENTRY alEnable(ALenum capability); -AL_API void AL_APIENTRY alDisable(ALenum capability); -AL_API ALboolean AL_APIENTRY alIsEnabled(ALenum capability); - -/** State retrieval. */ -AL_API const ALchar* AL_APIENTRY alGetString(ALenum param); -AL_API void AL_APIENTRY alGetBooleanv(ALenum param, ALboolean *values); -AL_API void AL_APIENTRY alGetIntegerv(ALenum param, ALint *values); -AL_API void AL_APIENTRY alGetFloatv(ALenum param, ALfloat *values); -AL_API void AL_APIENTRY alGetDoublev(ALenum param, ALdouble *values); -AL_API ALboolean AL_APIENTRY alGetBoolean(ALenum param); -AL_API ALint AL_APIENTRY alGetInteger(ALenum param); -AL_API ALfloat AL_APIENTRY alGetFloat(ALenum param); -AL_API ALdouble AL_APIENTRY alGetDouble(ALenum param); - -/** - * Error retrieval. - * - * Obtain the first error generated in the AL context since the last check. - */ -AL_API ALenum AL_APIENTRY alGetError(void); - -/** - * Extension support. - * - * Query for the presence of an extension, and obtain any appropriate function - * pointers and enum values. - */ -AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname); -AL_API void* AL_APIENTRY alGetProcAddress(const ALchar *fname); -AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename); - - -/** Set Listener parameters */ -AL_API void AL_APIENTRY alListenerf(ALenum param, ALfloat value); -AL_API void AL_APIENTRY alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); -AL_API void AL_APIENTRY alListenerfv(ALenum param, const ALfloat *values); -AL_API void AL_APIENTRY alListeneri(ALenum param, ALint value); -AL_API void AL_APIENTRY alListener3i(ALenum param, ALint value1, ALint value2, ALint value3); -AL_API void AL_APIENTRY alListeneriv(ALenum param, const ALint *values); - -/** Get Listener parameters */ -AL_API void AL_APIENTRY alGetListenerf(ALenum param, ALfloat *value); -AL_API void AL_APIENTRY alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); -AL_API void AL_APIENTRY alGetListenerfv(ALenum param, ALfloat *values); -AL_API void AL_APIENTRY alGetListeneri(ALenum param, ALint *value); -AL_API void AL_APIENTRY alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3); -AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint *values); - - -/** Create Source objects. */ -AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources); -/** Delete Source objects. */ -AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources); -/** Verify a handle is a valid Source. */ -AL_API ALboolean AL_APIENTRY alIsSource(ALuint source); - -/** Set Source parameters. */ -AL_API void AL_APIENTRY alSourcef(ALuint source, ALenum param, ALfloat value); -AL_API void AL_APIENTRY alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); -AL_API void AL_APIENTRY alSourcefv(ALuint source, ALenum param, const ALfloat *values); -AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value); -AL_API void AL_APIENTRY alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); -AL_API void AL_APIENTRY alSourceiv(ALuint source, ALenum param, const ALint *values); - -/** Get Source parameters. */ -AL_API void AL_APIENTRY alGetSourcef(ALuint source, ALenum param, ALfloat *value); -AL_API void AL_APIENTRY alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); -AL_API void AL_APIENTRY alGetSourcefv(ALuint source, ALenum param, ALfloat *values); -AL_API void AL_APIENTRY alGetSourcei(ALuint source, ALenum param, ALint *value); -AL_API void AL_APIENTRY alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); -AL_API void AL_APIENTRY alGetSourceiv(ALuint source, ALenum param, ALint *values); - - -/** Play, replay, or resume (if paused) a list of Sources */ -AL_API void AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources); -/** Stop a list of Sources */ -AL_API void AL_APIENTRY alSourceStopv(ALsizei n, const ALuint *sources); -/** Rewind a list of Sources */ -AL_API void AL_APIENTRY alSourceRewindv(ALsizei n, const ALuint *sources); -/** Pause a list of Sources */ -AL_API void AL_APIENTRY alSourcePausev(ALsizei n, const ALuint *sources); - -/** Play, replay, or resume a Source */ -AL_API void AL_APIENTRY alSourcePlay(ALuint source); -/** Stop a Source */ -AL_API void AL_APIENTRY alSourceStop(ALuint source); -/** Rewind a Source (set playback postiton to beginning) */ -AL_API void AL_APIENTRY alSourceRewind(ALuint source); -/** Pause a Source */ -AL_API void AL_APIENTRY alSourcePause(ALuint source); - -/** Queue buffers onto a source */ -AL_API void AL_APIENTRY alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers); -/** Unqueue processed buffers from a source */ -AL_API void AL_APIENTRY alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers); - - -/** Create Buffer objects */ -AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers); -/** Delete Buffer objects */ -AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers); -/** Verify a handle is a valid Buffer */ -AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer); - -/** Specifies the data to be copied into a buffer */ -AL_API void AL_APIENTRY alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); - -/** Set Buffer parameters, */ -AL_API void AL_APIENTRY alBufferf(ALuint buffer, ALenum param, ALfloat value); -AL_API void AL_APIENTRY alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); -AL_API void AL_APIENTRY alBufferfv(ALuint buffer, ALenum param, const ALfloat *values); -AL_API void AL_APIENTRY alBufferi(ALuint buffer, ALenum param, ALint value); -AL_API void AL_APIENTRY alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); -AL_API void AL_APIENTRY alBufferiv(ALuint buffer, ALenum param, const ALint *values); - -/** Get Buffer parameters. */ -AL_API void AL_APIENTRY alGetBufferf(ALuint buffer, ALenum param, ALfloat *value); -AL_API void AL_APIENTRY alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); -AL_API void AL_APIENTRY alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values); -AL_API void AL_APIENTRY alGetBufferi(ALuint buffer, ALenum param, ALint *value); -AL_API void AL_APIENTRY alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); -AL_API void AL_APIENTRY alGetBufferiv(ALuint buffer, ALenum param, ALint *values); - -/** Pointer-to-function type, useful for dynamically getting AL entry points. */ -typedef void (AL_APIENTRY *LPALENABLE)(ALenum capability); -typedef void (AL_APIENTRY *LPALDISABLE)(ALenum capability); -typedef ALboolean (AL_APIENTRY *LPALISENABLED)(ALenum capability); -typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)(ALenum param); -typedef void (AL_APIENTRY *LPALGETBOOLEANV)(ALenum param, ALboolean *values); -typedef void (AL_APIENTRY *LPALGETINTEGERV)(ALenum param, ALint *values); -typedef void (AL_APIENTRY *LPALGETFLOATV)(ALenum param, ALfloat *values); -typedef void (AL_APIENTRY *LPALGETDOUBLEV)(ALenum param, ALdouble *values); -typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)(ALenum param); -typedef ALint (AL_APIENTRY *LPALGETINTEGER)(ALenum param); -typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)(ALenum param); -typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)(ALenum param); -typedef ALenum (AL_APIENTRY *LPALGETERROR)(void); -typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar *extname); -typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)(const ALchar *fname); -typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)(const ALchar *ename); -typedef void (AL_APIENTRY *LPALLISTENERF)(ALenum param, ALfloat value); -typedef void (AL_APIENTRY *LPALLISTENER3F)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); -typedef void (AL_APIENTRY *LPALLISTENERFV)(ALenum param, const ALfloat *values); -typedef void (AL_APIENTRY *LPALLISTENERI)(ALenum param, ALint value); -typedef void (AL_APIENTRY *LPALLISTENER3I)(ALenum param, ALint value1, ALint value2, ALint value3); -typedef void (AL_APIENTRY *LPALLISTENERIV)(ALenum param, const ALint *values); -typedef void (AL_APIENTRY *LPALGETLISTENERF)(ALenum param, ALfloat *value); -typedef void (AL_APIENTRY *LPALGETLISTENER3F)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); -typedef void (AL_APIENTRY *LPALGETLISTENERFV)(ALenum param, ALfloat *values); -typedef void (AL_APIENTRY *LPALGETLISTENERI)(ALenum param, ALint *value); -typedef void (AL_APIENTRY *LPALGETLISTENER3I)(ALenum param, ALint *value1, ALint *value2, ALint *value3); -typedef void (AL_APIENTRY *LPALGETLISTENERIV)(ALenum param, ALint *values); -typedef void (AL_APIENTRY *LPALGENSOURCES)(ALsizei n, ALuint *sources); -typedef void (AL_APIENTRY *LPALDELETESOURCES)(ALsizei n, const ALuint *sources); -typedef ALboolean (AL_APIENTRY *LPALISSOURCE)(ALuint source); -typedef void (AL_APIENTRY *LPALSOURCEF)(ALuint source, ALenum param, ALfloat value); -typedef void (AL_APIENTRY *LPALSOURCE3F)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); -typedef void (AL_APIENTRY *LPALSOURCEFV)(ALuint source, ALenum param, const ALfloat *values); -typedef void (AL_APIENTRY *LPALSOURCEI)(ALuint source, ALenum param, ALint value); -typedef void (AL_APIENTRY *LPALSOURCE3I)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); -typedef void (AL_APIENTRY *LPALSOURCEIV)(ALuint source, ALenum param, const ALint *values); -typedef void (AL_APIENTRY *LPALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value); -typedef void (AL_APIENTRY *LPALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); -typedef void (AL_APIENTRY *LPALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values); -typedef void (AL_APIENTRY *LPALGETSOURCEI)(ALuint source, ALenum param, ALint *value); -typedef void (AL_APIENTRY *LPALGETSOURCE3I)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); -typedef void (AL_APIENTRY *LPALGETSOURCEIV)(ALuint source, ALenum param, ALint *values); -typedef void (AL_APIENTRY *LPALSOURCEPLAYV)(ALsizei n, const ALuint *sources); -typedef void (AL_APIENTRY *LPALSOURCESTOPV)(ALsizei n, const ALuint *sources); -typedef void (AL_APIENTRY *LPALSOURCEREWINDV)(ALsizei n, const ALuint *sources); -typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)(ALsizei n, const ALuint *sources); -typedef void (AL_APIENTRY *LPALSOURCEPLAY)(ALuint source); -typedef void (AL_APIENTRY *LPALSOURCESTOP)(ALuint source); -typedef void (AL_APIENTRY *LPALSOURCEREWIND)(ALuint source); -typedef void (AL_APIENTRY *LPALSOURCEPAUSE)(ALuint source); -typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei nb, const ALuint *buffers); -typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei nb, ALuint *buffers); -typedef void (AL_APIENTRY *LPALGENBUFFERS)(ALsizei n, ALuint *buffers); -typedef void (AL_APIENTRY *LPALDELETEBUFFERS)(ALsizei n, const ALuint *buffers); -typedef ALboolean (AL_APIENTRY *LPALISBUFFER)(ALuint buffer); -typedef void (AL_APIENTRY *LPALBUFFERDATA)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); -typedef void (AL_APIENTRY *LPALBUFFERF)(ALuint buffer, ALenum param, ALfloat value); -typedef void (AL_APIENTRY *LPALBUFFER3F)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); -typedef void (AL_APIENTRY *LPALBUFFERFV)(ALuint buffer, ALenum param, const ALfloat *values); -typedef void (AL_APIENTRY *LPALBUFFERI)(ALuint buffer, ALenum param, ALint value); -typedef void (AL_APIENTRY *LPALBUFFER3I)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); -typedef void (AL_APIENTRY *LPALBUFFERIV)(ALuint buffer, ALenum param, const ALint *values); -typedef void (AL_APIENTRY *LPALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value); -typedef void (AL_APIENTRY *LPALGETBUFFER3F)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); -typedef void (AL_APIENTRY *LPALGETBUFFERFV)(ALuint buffer, ALenum param, ALfloat *values); -typedef void (AL_APIENTRY *LPALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value); -typedef void (AL_APIENTRY *LPALGETBUFFER3I)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); -typedef void (AL_APIENTRY *LPALGETBUFFERIV)(ALuint buffer, ALenum param, ALint *values); -typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)(ALfloat value); -typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)(ALfloat value); -typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)(ALfloat value); -typedef void (AL_APIENTRY *LPALDISTANCEMODEL)(ALenum distanceModel); - -#if defined(__cplusplus) -} /* extern "C" */ -#endif - -#endif /* AL_AL_H */ diff --git a/external/win32-specific/OpenalSoft/include/AL/alc.h b/external/win32-specific/OpenalSoft/include/AL/alc.h deleted file mode 100644 index 294e8b3..0000000 --- a/external/win32-specific/OpenalSoft/include/AL/alc.h +++ /dev/null @@ -1,237 +0,0 @@ -#ifndef AL_ALC_H -#define AL_ALC_H - -#if defined(__cplusplus) -extern "C" { -#endif - -#ifndef ALC_API - #if defined(AL_LIBTYPE_STATIC) - #define ALC_API - #elif defined(_WIN32) - #define ALC_API __declspec(dllimport) - #else - #define ALC_API extern - #endif -#endif - -#if defined(_WIN32) - #define ALC_APIENTRY __cdecl -#else - #define ALC_APIENTRY -#endif - - -/** Deprecated macro. */ -#define ALCAPI ALC_API -#define ALCAPIENTRY ALC_APIENTRY -#define ALC_INVALID 0 - -/** Supported ALC version? */ -#define ALC_VERSION_0_1 1 - -/** Opaque device handle */ -typedef struct ALCdevice_struct ALCdevice; -/** Opaque context handle */ -typedef struct ALCcontext_struct ALCcontext; - -/** 8-bit boolean */ -typedef char ALCboolean; - -/** character */ -typedef char ALCchar; - -/** signed 8-bit 2's complement integer */ -typedef signed char ALCbyte; - -/** unsigned 8-bit integer */ -typedef unsigned char ALCubyte; - -/** signed 16-bit 2's complement integer */ -typedef short ALCshort; - -/** unsigned 16-bit integer */ -typedef unsigned short ALCushort; - -/** signed 32-bit 2's complement integer */ -typedef int ALCint; - -/** unsigned 32-bit integer */ -typedef unsigned int ALCuint; - -/** non-negative 32-bit binary integer size */ -typedef int ALCsizei; - -/** enumerated 32-bit value */ -typedef int ALCenum; - -/** 32-bit IEEE754 floating-point */ -typedef float ALCfloat; - -/** 64-bit IEEE754 floating-point */ -typedef double ALCdouble; - -/** void type (for opaque pointers only) */ -typedef void ALCvoid; - - -/* Enumerant values begin at column 50. No tabs. */ - -/** Boolean False. */ -#define ALC_FALSE 0 - -/** Boolean True. */ -#define ALC_TRUE 1 - -/** Context attribute: Hz. */ -#define ALC_FREQUENCY 0x1007 - -/** Context attribute: Hz. */ -#define ALC_REFRESH 0x1008 - -/** Context attribute: AL_TRUE or AL_FALSE. */ -#define ALC_SYNC 0x1009 - -/** Context attribute: requested Mono (3D) Sources. */ -#define ALC_MONO_SOURCES 0x1010 - -/** Context attribute: requested Stereo Sources. */ -#define ALC_STEREO_SOURCES 0x1011 - -/** No error. */ -#define ALC_NO_ERROR 0 - -/** Invalid device handle. */ -#define ALC_INVALID_DEVICE 0xA001 - -/** Invalid context handle. */ -#define ALC_INVALID_CONTEXT 0xA002 - -/** Invalid enum parameter passed to an ALC call. */ -#define ALC_INVALID_ENUM 0xA003 - -/** Invalid value parameter passed to an ALC call. */ -#define ALC_INVALID_VALUE 0xA004 - -/** Out of memory. */ -#define ALC_OUT_OF_MEMORY 0xA005 - - -/** Runtime ALC version. */ -#define ALC_MAJOR_VERSION 0x1000 -#define ALC_MINOR_VERSION 0x1001 - -/** Context attribute list properties. */ -#define ALC_ATTRIBUTES_SIZE 0x1002 -#define ALC_ALL_ATTRIBUTES 0x1003 - -/** String for the default device specifier. */ -#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004 -/** - * String for the given device's specifier. - * - * If device handle is NULL, it is instead a null-char separated list of - * strings of known device specifiers (list ends with an empty string). - */ -#define ALC_DEVICE_SPECIFIER 0x1005 -/** String for space-separated list of ALC extensions. */ -#define ALC_EXTENSIONS 0x1006 - - -/** Capture extension */ -#define ALC_EXT_CAPTURE 1 -/** - * String for the given capture device's specifier. - * - * If device handle is NULL, it is instead a null-char separated list of - * strings of known capture device specifiers (list ends with an empty string). - */ -#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310 -/** String for the default capture device specifier. */ -#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311 -/** Number of sample frames available for capture. */ -#define ALC_CAPTURE_SAMPLES 0x312 - - -/** Enumerate All extension */ -#define ALC_ENUMERATE_ALL_EXT 1 -/** String for the default extended device specifier. */ -#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012 -/** - * String for the given extended device's specifier. - * - * If device handle is NULL, it is instead a null-char separated list of - * strings of known extended device specifiers (list ends with an empty string). - */ -#define ALC_ALL_DEVICES_SPECIFIER 0x1013 - - -/** Context management. */ -ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCint* attrlist); -ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent(ALCcontext *context); -ALC_API void ALC_APIENTRY alcProcessContext(ALCcontext *context); -ALC_API void ALC_APIENTRY alcSuspendContext(ALCcontext *context); -ALC_API void ALC_APIENTRY alcDestroyContext(ALCcontext *context); -ALC_API ALCcontext* ALC_APIENTRY alcGetCurrentContext(void); -ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice(ALCcontext *context); - -/** Device management. */ -ALC_API ALCdevice* ALC_APIENTRY alcOpenDevice(const ALCchar *devicename); -ALC_API ALCboolean ALC_APIENTRY alcCloseDevice(ALCdevice *device); - - -/** - * Error support. - * - * Obtain the most recent Device error. - */ -ALC_API ALCenum ALC_APIENTRY alcGetError(ALCdevice *device); - -/** - * Extension support. - * - * Query for the presence of an extension, and obtain any appropriate - * function pointers and enum values. - */ -ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent(ALCdevice *device, const ALCchar *extname); -ALC_API void* ALC_APIENTRY alcGetProcAddress(ALCdevice *device, const ALCchar *funcname); -ALC_API ALCenum ALC_APIENTRY alcGetEnumValue(ALCdevice *device, const ALCchar *enumname); - -/** Query function. */ -ALC_API const ALCchar* ALC_APIENTRY alcGetString(ALCdevice *device, ALCenum param); -ALC_API void ALC_APIENTRY alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values); - -/** Capture function. */ -ALC_API ALCdevice* ALC_APIENTRY alcCaptureOpenDevice(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize); -ALC_API ALCboolean ALC_APIENTRY alcCaptureCloseDevice(ALCdevice *device); -ALC_API void ALC_APIENTRY alcCaptureStart(ALCdevice *device); -ALC_API void ALC_APIENTRY alcCaptureStop(ALCdevice *device); -ALC_API void ALC_APIENTRY alcCaptureSamples(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); - -/** Pointer-to-function type, useful for dynamically getting ALC entry points. */ -typedef ALCcontext* (ALC_APIENTRY *LPALCCREATECONTEXT)(ALCdevice *device, const ALCint *attrlist); -typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)(ALCcontext *context); -typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)(ALCcontext *context); -typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)(ALCcontext *context); -typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)(ALCcontext *context); -typedef ALCcontext* (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)(void); -typedef ALCdevice* (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)(ALCcontext *context); -typedef ALCdevice* (ALC_APIENTRY *LPALCOPENDEVICE)(const ALCchar *devicename); -typedef ALCboolean (ALC_APIENTRY *LPALCCLOSEDEVICE)(ALCdevice *device); -typedef ALCenum (ALC_APIENTRY *LPALCGETERROR)(ALCdevice *device); -typedef ALCboolean (ALC_APIENTRY *LPALCISEXTENSIONPRESENT)(ALCdevice *device, const ALCchar *extname); -typedef void* (ALC_APIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname); -typedef ALCenum (ALC_APIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname); -typedef const ALCchar* (ALC_APIENTRY *LPALCGETSTRING)(ALCdevice *device, ALCenum param); -typedef void (ALC_APIENTRY *LPALCGETINTEGERV)(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values); -typedef ALCdevice* (ALC_APIENTRY *LPALCCAPTUREOPENDEVICE)(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize); -typedef ALCboolean (ALC_APIENTRY *LPALCCAPTURECLOSEDEVICE)(ALCdevice *device); -typedef void (ALC_APIENTRY *LPALCCAPTURESTART)(ALCdevice *device); -typedef void (ALC_APIENTRY *LPALCCAPTURESTOP)(ALCdevice *device); -typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); - -#if defined(__cplusplus) -} -#endif - -#endif /* AL_ALC_H */ diff --git a/external/win32-specific/OpenalSoft/include/AL/alext.h b/external/win32-specific/OpenalSoft/include/AL/alext.h deleted file mode 100644 index 7d2a952..0000000 --- a/external/win32-specific/OpenalSoft/include/AL/alext.h +++ /dev/null @@ -1,400 +0,0 @@ -/** - * OpenAL cross platform audio library - * Copyright (C) 2008 by authors. - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * Or go to http://www.gnu.org/copyleft/lgpl.html - */ - -#ifndef AL_ALEXT_H -#define AL_ALEXT_H - -#include -/* Define int64_t and uint64_t types */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -/* Fallback if nothing above works */ -#include -#endif - -#include "alc.h" -#include "al.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef AL_LOKI_IMA_ADPCM_format -#define AL_LOKI_IMA_ADPCM_format 1 -#define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000 -#define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001 -#endif - -#ifndef AL_LOKI_WAVE_format -#define AL_LOKI_WAVE_format 1 -#define AL_FORMAT_WAVE_EXT 0x10002 -#endif - -#ifndef AL_EXT_vorbis -#define AL_EXT_vorbis 1 -#define AL_FORMAT_VORBIS_EXT 0x10003 -#endif - -#ifndef AL_LOKI_quadriphonic -#define AL_LOKI_quadriphonic 1 -#define AL_FORMAT_QUAD8_LOKI 0x10004 -#define AL_FORMAT_QUAD16_LOKI 0x10005 -#endif - -#ifndef AL_EXT_float32 -#define AL_EXT_float32 1 -#define AL_FORMAT_MONO_FLOAT32 0x10010 -#define AL_FORMAT_STEREO_FLOAT32 0x10011 -#endif - -#ifndef AL_EXT_double -#define AL_EXT_double 1 -#define AL_FORMAT_MONO_DOUBLE_EXT 0x10012 -#define AL_FORMAT_STEREO_DOUBLE_EXT 0x10013 -#endif - -#ifndef AL_EXT_MULAW -#define AL_EXT_MULAW 1 -#define AL_FORMAT_MONO_MULAW_EXT 0x10014 -#define AL_FORMAT_STEREO_MULAW_EXT 0x10015 -#endif - -#ifndef AL_EXT_ALAW -#define AL_EXT_ALAW 1 -#define AL_FORMAT_MONO_ALAW_EXT 0x10016 -#define AL_FORMAT_STEREO_ALAW_EXT 0x10017 -#endif - -#ifndef ALC_LOKI_audio_channel -#define ALC_LOKI_audio_channel 1 -#define ALC_CHAN_MAIN_LOKI 0x500001 -#define ALC_CHAN_PCM_LOKI 0x500002 -#define ALC_CHAN_CD_LOKI 0x500003 -#endif - -#ifndef AL_EXT_MCFORMATS -#define AL_EXT_MCFORMATS 1 -#define AL_FORMAT_QUAD8 0x1204 -#define AL_FORMAT_QUAD16 0x1205 -#define AL_FORMAT_QUAD32 0x1206 -#define AL_FORMAT_REAR8 0x1207 -#define AL_FORMAT_REAR16 0x1208 -#define AL_FORMAT_REAR32 0x1209 -#define AL_FORMAT_51CHN8 0x120A -#define AL_FORMAT_51CHN16 0x120B -#define AL_FORMAT_51CHN32 0x120C -#define AL_FORMAT_61CHN8 0x120D -#define AL_FORMAT_61CHN16 0x120E -#define AL_FORMAT_61CHN32 0x120F -#define AL_FORMAT_71CHN8 0x1210 -#define AL_FORMAT_71CHN16 0x1211 -#define AL_FORMAT_71CHN32 0x1212 -#endif - -#ifndef AL_EXT_MULAW_MCFORMATS -#define AL_EXT_MULAW_MCFORMATS 1 -#define AL_FORMAT_MONO_MULAW 0x10014 -#define AL_FORMAT_STEREO_MULAW 0x10015 -#define AL_FORMAT_QUAD_MULAW 0x10021 -#define AL_FORMAT_REAR_MULAW 0x10022 -#define AL_FORMAT_51CHN_MULAW 0x10023 -#define AL_FORMAT_61CHN_MULAW 0x10024 -#define AL_FORMAT_71CHN_MULAW 0x10025 -#endif - -#ifndef AL_EXT_IMA4 -#define AL_EXT_IMA4 1 -#define AL_FORMAT_MONO_IMA4 0x1300 -#define AL_FORMAT_STEREO_IMA4 0x1301 -#endif - -#ifndef AL_EXT_STATIC_BUFFER -#define AL_EXT_STATIC_BUFFER 1 -typedef ALvoid (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei); -#ifdef AL_ALEXT_PROTOTYPES -AL_API ALvoid AL_APIENTRY alBufferDataStatic(const ALint buffer, ALenum format, ALvoid *data, ALsizei len, ALsizei freq); -#endif -#endif - -#ifndef ALC_EXT_EFX -#define ALC_EXT_EFX 1 -#include "efx.h" -#endif - -#ifndef ALC_EXT_disconnect -#define ALC_EXT_disconnect 1 -#define ALC_CONNECTED 0x313 -#endif - -#ifndef ALC_EXT_thread_local_context -#define ALC_EXT_thread_local_context 1 -typedef ALCboolean (ALC_APIENTRY*PFNALCSETTHREADCONTEXTPROC)(ALCcontext *context); -typedef ALCcontext* (ALC_APIENTRY*PFNALCGETTHREADCONTEXTPROC)(void); -#ifdef AL_ALEXT_PROTOTYPES -ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context); -ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void); -#endif -#endif - -#ifndef AL_EXT_source_distance_model -#define AL_EXT_source_distance_model 1 -#define AL_SOURCE_DISTANCE_MODEL 0x200 -#endif - -#ifndef AL_SOFT_buffer_sub_data -#define AL_SOFT_buffer_sub_data 1 -#define AL_BYTE_RW_OFFSETS_SOFT 0x1031 -#define AL_SAMPLE_RW_OFFSETS_SOFT 0x1032 -typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATASOFTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei); -#ifdef AL_ALEXT_PROTOTYPES -AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length); -#endif -#endif - -#ifndef AL_SOFT_loop_points -#define AL_SOFT_loop_points 1 -#define AL_LOOP_POINTS_SOFT 0x2015 -#endif - -#ifndef AL_EXT_FOLDBACK -#define AL_EXT_FOLDBACK 1 -#define AL_EXT_FOLDBACK_NAME "AL_EXT_FOLDBACK" -#define AL_FOLDBACK_EVENT_BLOCK 0x4112 -#define AL_FOLDBACK_EVENT_START 0x4111 -#define AL_FOLDBACK_EVENT_STOP 0x4113 -#define AL_FOLDBACK_MODE_MONO 0x4101 -#define AL_FOLDBACK_MODE_STEREO 0x4102 -typedef void (AL_APIENTRY*LPALFOLDBACKCALLBACK)(ALenum,ALsizei); -typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTART)(ALenum,ALsizei,ALsizei,ALfloat*,LPALFOLDBACKCALLBACK); -typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTOP)(void); -#ifdef AL_ALEXT_PROTOTYPES -AL_API void AL_APIENTRY alRequestFoldbackStart(ALenum mode,ALsizei count,ALsizei length,ALfloat *mem,LPALFOLDBACKCALLBACK callback); -AL_API void AL_APIENTRY alRequestFoldbackStop(void); -#endif -#endif - -#ifndef ALC_EXT_DEDICATED -#define ALC_EXT_DEDICATED 1 -#define AL_DEDICATED_GAIN 0x0001 -#define AL_EFFECT_DEDICATED_DIALOGUE 0x9001 -#define AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT 0x9000 -#endif - -#ifndef AL_SOFT_buffer_samples -#define AL_SOFT_buffer_samples 1 -/* Channel configurations */ -#define AL_MONO_SOFT 0x1500 -#define AL_STEREO_SOFT 0x1501 -#define AL_REAR_SOFT 0x1502 -#define AL_QUAD_SOFT 0x1503 -#define AL_5POINT1_SOFT 0x1504 -#define AL_6POINT1_SOFT 0x1505 -#define AL_7POINT1_SOFT 0x1506 - -/* Sample types */ -#define AL_BYTE_SOFT 0x1400 -#define AL_UNSIGNED_BYTE_SOFT 0x1401 -#define AL_SHORT_SOFT 0x1402 -#define AL_UNSIGNED_SHORT_SOFT 0x1403 -#define AL_INT_SOFT 0x1404 -#define AL_UNSIGNED_INT_SOFT 0x1405 -#define AL_FLOAT_SOFT 0x1406 -#define AL_DOUBLE_SOFT 0x1407 -#define AL_BYTE3_SOFT 0x1408 -#define AL_UNSIGNED_BYTE3_SOFT 0x1409 - -/* Storage formats */ -#define AL_MONO8_SOFT 0x1100 -#define AL_MONO16_SOFT 0x1101 -#define AL_MONO32F_SOFT 0x10010 -#define AL_STEREO8_SOFT 0x1102 -#define AL_STEREO16_SOFT 0x1103 -#define AL_STEREO32F_SOFT 0x10011 -#define AL_QUAD8_SOFT 0x1204 -#define AL_QUAD16_SOFT 0x1205 -#define AL_QUAD32F_SOFT 0x1206 -#define AL_REAR8_SOFT 0x1207 -#define AL_REAR16_SOFT 0x1208 -#define AL_REAR32F_SOFT 0x1209 -#define AL_5POINT1_8_SOFT 0x120A -#define AL_5POINT1_16_SOFT 0x120B -#define AL_5POINT1_32F_SOFT 0x120C -#define AL_6POINT1_8_SOFT 0x120D -#define AL_6POINT1_16_SOFT 0x120E -#define AL_6POINT1_32F_SOFT 0x120F -#define AL_7POINT1_8_SOFT 0x1210 -#define AL_7POINT1_16_SOFT 0x1211 -#define AL_7POINT1_32F_SOFT 0x1212 - -/* Buffer attributes */ -#define AL_INTERNAL_FORMAT_SOFT 0x2008 -#define AL_BYTE_LENGTH_SOFT 0x2009 -#define AL_SAMPLE_LENGTH_SOFT 0x200A -#define AL_SEC_LENGTH_SOFT 0x200B - -typedef void (AL_APIENTRY*LPALBUFFERSAMPLESSOFT)(ALuint,ALuint,ALenum,ALsizei,ALenum,ALenum,const ALvoid*); -typedef void (AL_APIENTRY*LPALBUFFERSUBSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,const ALvoid*); -typedef void (AL_APIENTRY*LPALGETBUFFERSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,ALvoid*); -typedef ALboolean (AL_APIENTRY*LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum); -#ifdef AL_ALEXT_PROTOTYPES -AL_API void AL_APIENTRY alBufferSamplesSOFT(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); -AL_API void AL_APIENTRY alBufferSubSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); -AL_API void AL_APIENTRY alGetBufferSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, ALvoid *data); -AL_API ALboolean AL_APIENTRY alIsBufferFormatSupportedSOFT(ALenum format); -#endif -#endif - -#ifndef AL_SOFT_direct_channels -#define AL_SOFT_direct_channels 1 -#define AL_DIRECT_CHANNELS_SOFT 0x1033 -#endif - -#ifndef ALC_SOFT_loopback -#define ALC_SOFT_loopback 1 -#define ALC_FORMAT_CHANNELS_SOFT 0x1990 -#define ALC_FORMAT_TYPE_SOFT 0x1991 - -/* Sample types */ -#define ALC_BYTE_SOFT 0x1400 -#define ALC_UNSIGNED_BYTE_SOFT 0x1401 -#define ALC_SHORT_SOFT 0x1402 -#define ALC_UNSIGNED_SHORT_SOFT 0x1403 -#define ALC_INT_SOFT 0x1404 -#define ALC_UNSIGNED_INT_SOFT 0x1405 -#define ALC_FLOAT_SOFT 0x1406 - -/* Channel configurations */ -#define ALC_MONO_SOFT 0x1500 -#define ALC_STEREO_SOFT 0x1501 -#define ALC_QUAD_SOFT 0x1503 -#define ALC_5POINT1_SOFT 0x1504 -#define ALC_6POINT1_SOFT 0x1505 -#define ALC_7POINT1_SOFT 0x1506 - -typedef ALCdevice* (ALC_APIENTRY*LPALCLOOPBACKOPENDEVICESOFT)(const ALCchar*); -typedef ALCboolean (ALC_APIENTRY*LPALCISRENDERFORMATSUPPORTEDSOFT)(ALCdevice*,ALCsizei,ALCenum,ALCenum); -typedef void (ALC_APIENTRY*LPALCRENDERSAMPLESSOFT)(ALCdevice*,ALCvoid*,ALCsizei); -#ifdef AL_ALEXT_PROTOTYPES -ALC_API ALCdevice* ALC_APIENTRY alcLoopbackOpenDeviceSOFT(const ALCchar *deviceName); -ALC_API ALCboolean ALC_APIENTRY alcIsRenderFormatSupportedSOFT(ALCdevice *device, ALCsizei freq, ALCenum channels, ALCenum type); -ALC_API void ALC_APIENTRY alcRenderSamplesSOFT(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); -#endif -#endif - -#ifndef AL_EXT_STEREO_ANGLES -#define AL_EXT_STEREO_ANGLES 1 -#define AL_STEREO_ANGLES 0x1030 -#endif - -#ifndef AL_EXT_SOURCE_RADIUS -#define AL_EXT_SOURCE_RADIUS 1 -#define AL_SOURCE_RADIUS 0x1031 -#endif - -#ifndef AL_SOFT_source_latency -#define AL_SOFT_source_latency 1 -#define AL_SAMPLE_OFFSET_LATENCY_SOFT 0x1200 -#define AL_SEC_OFFSET_LATENCY_SOFT 0x1201 -typedef int64_t ALint64SOFT; -typedef uint64_t ALuint64SOFT; -typedef void (AL_APIENTRY*LPALSOURCEDSOFT)(ALuint,ALenum,ALdouble); -typedef void (AL_APIENTRY*LPALSOURCE3DSOFT)(ALuint,ALenum,ALdouble,ALdouble,ALdouble); -typedef void (AL_APIENTRY*LPALSOURCEDVSOFT)(ALuint,ALenum,const ALdouble*); -typedef void (AL_APIENTRY*LPALGETSOURCEDSOFT)(ALuint,ALenum,ALdouble*); -typedef void (AL_APIENTRY*LPALGETSOURCE3DSOFT)(ALuint,ALenum,ALdouble*,ALdouble*,ALdouble*); -typedef void (AL_APIENTRY*LPALGETSOURCEDVSOFT)(ALuint,ALenum,ALdouble*); -typedef void (AL_APIENTRY*LPALSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT); -typedef void (AL_APIENTRY*LPALSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT,ALint64SOFT,ALint64SOFT); -typedef void (AL_APIENTRY*LPALSOURCEI64VSOFT)(ALuint,ALenum,const ALint64SOFT*); -typedef void (AL_APIENTRY*LPALGETSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT*); -typedef void (AL_APIENTRY*LPALGETSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT*,ALint64SOFT*,ALint64SOFT*); -typedef void (AL_APIENTRY*LPALGETSOURCEI64VSOFT)(ALuint,ALenum,ALint64SOFT*); -#ifdef AL_ALEXT_PROTOTYPES -AL_API void AL_APIENTRY alSourcedSOFT(ALuint source, ALenum param, ALdouble value); -AL_API void AL_APIENTRY alSource3dSOFT(ALuint source, ALenum param, ALdouble value1, ALdouble value2, ALdouble value3); -AL_API void AL_APIENTRY alSourcedvSOFT(ALuint source, ALenum param, const ALdouble *values); -AL_API void AL_APIENTRY alGetSourcedSOFT(ALuint source, ALenum param, ALdouble *value); -AL_API void AL_APIENTRY alGetSource3dSOFT(ALuint source, ALenum param, ALdouble *value1, ALdouble *value2, ALdouble *value3); -AL_API void AL_APIENTRY alGetSourcedvSOFT(ALuint source, ALenum param, ALdouble *values); -AL_API void AL_APIENTRY alSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT value); -AL_API void AL_APIENTRY alSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT value1, ALint64SOFT value2, ALint64SOFT value3); -AL_API void AL_APIENTRY alSourcei64vSOFT(ALuint source, ALenum param, const ALint64SOFT *values); -AL_API void AL_APIENTRY alGetSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT *value); -AL_API void AL_APIENTRY alGetSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT *value1, ALint64SOFT *value2, ALint64SOFT *value3); -AL_API void AL_APIENTRY alGetSourcei64vSOFT(ALuint source, ALenum param, ALint64SOFT *values); -#endif -#endif - -#ifndef ALC_EXT_DEFAULT_FILTER_ORDER -#define ALC_EXT_DEFAULT_FILTER_ORDER 1 -#define ALC_DEFAULT_FILTER_ORDER 0x1100 -#endif - -#ifndef AL_SOFT_deferred_updates -#define AL_SOFT_deferred_updates 1 -#define AL_DEFERRED_UPDATES_SOFT 0xC002 -typedef ALvoid (AL_APIENTRY*LPALDEFERUPDATESSOFT)(void); -typedef ALvoid (AL_APIENTRY*LPALPROCESSUPDATESSOFT)(void); -#ifdef AL_ALEXT_PROTOTYPES -AL_API ALvoid AL_APIENTRY alDeferUpdatesSOFT(void); -AL_API ALvoid AL_APIENTRY alProcessUpdatesSOFT(void); -#endif -#endif - -#ifndef AL_SOFT_block_alignment -#define AL_SOFT_block_alignment 1 -#define AL_UNPACK_BLOCK_ALIGNMENT_SOFT 0x200C -#define AL_PACK_BLOCK_ALIGNMENT_SOFT 0x200D -#endif - -#ifndef AL_SOFT_MSADPCM -#define AL_SOFT_MSADPCM 1 -#define AL_FORMAT_MONO_MSADPCM_SOFT 0x1302 -#define AL_FORMAT_STEREO_MSADPCM_SOFT 0x1303 -#endif - -#ifndef AL_SOFT_source_length -#define AL_SOFT_source_length 1 -/*#define AL_BYTE_LENGTH_SOFT 0x2009*/ -/*#define AL_SAMPLE_LENGTH_SOFT 0x200A*/ -/*#define AL_SEC_LENGTH_SOFT 0x200B*/ -#endif - -#ifndef ALC_SOFT_pause_device -#define ALC_SOFT_pause_device 1 -typedef void (ALC_APIENTRY*LPALCDEVICEPAUSESOFT)(ALCdevice *device); -typedef void (ALC_APIENTRY*LPALCDEVICERESUMESOFT)(ALCdevice *device); -#ifdef AL_ALEXT_PROTOTYPES -ALC_API void ALC_APIENTRY alcDevicePauseSOFT(ALCdevice *device); -ALC_API void ALC_APIENTRY alcDeviceResumeSOFT(ALCdevice *device); -#endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/external/win32-specific/OpenalSoft/include/AL/efx-creative.h b/external/win32-specific/OpenalSoft/include/AL/efx-creative.h deleted file mode 100644 index 0a04c98..0000000 --- a/external/win32-specific/OpenalSoft/include/AL/efx-creative.h +++ /dev/null @@ -1,3 +0,0 @@ -/* The tokens that would be defined here are already defined in efx.h. This - * empty file is here to provide compatibility with Windows-based projects - * that would include it. */ diff --git a/external/win32-specific/OpenalSoft/include/AL/efx-presets.h b/external/win32-specific/OpenalSoft/include/AL/efx-presets.h deleted file mode 100644 index 86dcbda..0000000 --- a/external/win32-specific/OpenalSoft/include/AL/efx-presets.h +++ /dev/null @@ -1,402 +0,0 @@ -/* Reverb presets for EFX */ - -#ifndef EFX_PRESETS_H -#define EFX_PRESETS_H - -#ifndef EFXEAXREVERBPROPERTIES_DEFINED -#define EFXEAXREVERBPROPERTIES_DEFINED -typedef struct { - float flDensity; - float flDiffusion; - float flGain; - float flGainHF; - float flGainLF; - float flDecayTime; - float flDecayHFRatio; - float flDecayLFRatio; - float flReflectionsGain; - float flReflectionsDelay; - float flReflectionsPan[3]; - float flLateReverbGain; - float flLateReverbDelay; - float flLateReverbPan[3]; - float flEchoTime; - float flEchoDepth; - float flModulationTime; - float flModulationDepth; - float flAirAbsorptionGainHF; - float flHFReference; - float flLFReference; - float flRoomRolloffFactor; - int iDecayHFLimit; -} EFXEAXREVERBPROPERTIES, *LPEFXEAXREVERBPROPERTIES; -#endif - -/* Default Presets */ - -#define EFX_REVERB_PRESET_GENERIC \ - { 1.0000f, 1.0000f, 0.3162f, 0.8913f, 1.0000f, 1.4900f, 0.8300f, 1.0000f, 0.0500f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_PADDEDCELL \ - { 0.1715f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.1700f, 0.1000f, 1.0000f, 0.2500f, 0.0010f, { 0.0000f, 0.0000f, 0.0000f }, 1.2691f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ROOM \ - { 0.4287f, 1.0000f, 0.3162f, 0.5929f, 1.0000f, 0.4000f, 0.8300f, 1.0000f, 0.1503f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 1.0629f, 0.0030f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_BATHROOM \ - { 0.1715f, 1.0000f, 0.3162f, 0.2512f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.6531f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 3.2734f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_LIVINGROOM \ - { 0.9766f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.5000f, 0.1000f, 1.0000f, 0.2051f, 0.0030f, { 0.0000f, 0.0000f, 0.0000f }, 0.2805f, 0.0040f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_STONEROOM \ - { 1.0000f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 2.3100f, 0.6400f, 1.0000f, 0.4411f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1003f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_AUDITORIUM \ - { 1.0000f, 1.0000f, 0.3162f, 0.5781f, 1.0000f, 4.3200f, 0.5900f, 1.0000f, 0.4032f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.7170f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CONCERTHALL \ - { 1.0000f, 1.0000f, 0.3162f, 0.5623f, 1.0000f, 3.9200f, 0.7000f, 1.0000f, 0.2427f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.9977f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CAVE \ - { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 2.9100f, 1.3000f, 1.0000f, 0.5000f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.7063f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_ARENA \ - { 1.0000f, 1.0000f, 0.3162f, 0.4477f, 1.0000f, 7.2400f, 0.3300f, 1.0000f, 0.2612f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.0186f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_HANGAR \ - { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 10.0500f, 0.2300f, 1.0000f, 0.5000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2560f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CARPETEDHALLWAY \ - { 0.4287f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 0.3000f, 0.1000f, 1.0000f, 0.1215f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 0.1531f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_HALLWAY \ - { 0.3645f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 1.4900f, 0.5900f, 1.0000f, 0.2458f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.6615f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_STONECORRIDOR \ - { 1.0000f, 1.0000f, 0.3162f, 0.7612f, 1.0000f, 2.7000f, 0.7900f, 1.0000f, 0.2472f, 0.0130f, { 0.0000f, 0.0000f, 0.0000f }, 1.5758f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ALLEY \ - { 1.0000f, 0.3000f, 0.3162f, 0.7328f, 1.0000f, 1.4900f, 0.8600f, 1.0000f, 0.2500f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.9954f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.9500f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FOREST \ - { 1.0000f, 0.3000f, 0.3162f, 0.0224f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.0525f, 0.1620f, { 0.0000f, 0.0000f, 0.0000f }, 0.7682f, 0.0880f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CITY \ - { 1.0000f, 0.5000f, 0.3162f, 0.3981f, 1.0000f, 1.4900f, 0.6700f, 1.0000f, 0.0730f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.1427f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_MOUNTAINS \ - { 1.0000f, 0.2700f, 0.3162f, 0.0562f, 1.0000f, 1.4900f, 0.2100f, 1.0000f, 0.0407f, 0.3000f, { 0.0000f, 0.0000f, 0.0000f }, 0.1919f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_QUARRY \ - { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 1.4900f, 0.8300f, 1.0000f, 0.0000f, 0.0610f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0250f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.7000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_PLAIN \ - { 1.0000f, 0.2100f, 0.3162f, 0.1000f, 1.0000f, 1.4900f, 0.5000f, 1.0000f, 0.0585f, 0.1790f, { 0.0000f, 0.0000f, 0.0000f }, 0.1089f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_PARKINGLOT \ - { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 1.6500f, 1.5000f, 1.0000f, 0.2082f, 0.0080f, { 0.0000f, 0.0000f, 0.0000f }, 0.2652f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_SEWERPIPE \ - { 0.3071f, 0.8000f, 0.3162f, 0.3162f, 1.0000f, 2.8100f, 0.1400f, 1.0000f, 1.6387f, 0.0140f, { 0.0000f, 0.0000f, 0.0000f }, 3.2471f, 0.0210f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_UNDERWATER \ - { 0.3645f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 1.4900f, 0.1000f, 1.0000f, 0.5963f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 7.0795f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 1.1800f, 0.3480f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_DRUGGED \ - { 0.4287f, 0.5000f, 0.3162f, 1.0000f, 1.0000f, 8.3900f, 1.3900f, 1.0000f, 0.8760f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 3.1081f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_DIZZY \ - { 0.3645f, 0.6000f, 0.3162f, 0.6310f, 1.0000f, 17.2300f, 0.5600f, 1.0000f, 0.1392f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.4937f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.8100f, 0.3100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_PSYCHOTIC \ - { 0.0625f, 0.5000f, 0.3162f, 0.8404f, 1.0000f, 7.5600f, 0.9100f, 1.0000f, 0.4864f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 2.4378f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 4.0000f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -/* Castle Presets */ - -#define EFX_REVERB_PRESET_CASTLE_SMALLROOM \ - { 1.0000f, 0.8900f, 0.3162f, 0.3981f, 0.1000f, 1.2200f, 0.8300f, 0.3100f, 0.8913f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CASTLE_SHORTPASSAGE \ - { 1.0000f, 0.8900f, 0.3162f, 0.3162f, 0.1000f, 2.3200f, 0.8300f, 0.3100f, 0.8913f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CASTLE_MEDIUMROOM \ - { 1.0000f, 0.9300f, 0.3162f, 0.2818f, 0.1000f, 2.0400f, 0.8300f, 0.4600f, 0.6310f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1550f, 0.0300f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CASTLE_LARGEROOM \ - { 1.0000f, 0.8200f, 0.3162f, 0.2818f, 0.1259f, 2.5300f, 0.8300f, 0.5000f, 0.4467f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1850f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CASTLE_LONGPASSAGE \ - { 1.0000f, 0.8900f, 0.3162f, 0.3981f, 0.1000f, 3.4200f, 0.8300f, 0.3100f, 0.8913f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CASTLE_HALL \ - { 1.0000f, 0.8100f, 0.3162f, 0.2818f, 0.1778f, 3.1400f, 0.7900f, 0.6200f, 0.1778f, 0.0560f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CASTLE_CUPBOARD \ - { 1.0000f, 0.8900f, 0.3162f, 0.2818f, 0.1000f, 0.6700f, 0.8700f, 0.3100f, 1.4125f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 3.5481f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CASTLE_COURTYARD \ - { 1.0000f, 0.4200f, 0.3162f, 0.4467f, 0.1995f, 2.1300f, 0.6100f, 0.2300f, 0.2239f, 0.1600f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0360f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.3700f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_CASTLE_ALCOVE \ - { 1.0000f, 0.8900f, 0.3162f, 0.5012f, 0.1000f, 1.6400f, 0.8700f, 0.3100f, 1.0000f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } - -/* Factory Presets */ - -#define EFX_REVERB_PRESET_FACTORY_SMALLROOM \ - { 0.3645f, 0.8200f, 0.3162f, 0.7943f, 0.5012f, 1.7200f, 0.6500f, 1.3100f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.1190f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_SHORTPASSAGE \ - { 0.3645f, 0.6400f, 0.2512f, 0.7943f, 0.5012f, 2.5300f, 0.6500f, 1.3100f, 1.0000f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.1350f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_MEDIUMROOM \ - { 0.4287f, 0.8200f, 0.2512f, 0.7943f, 0.5012f, 2.7600f, 0.6500f, 1.3100f, 0.2818f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1740f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_LARGEROOM \ - { 0.4287f, 0.7500f, 0.2512f, 0.7079f, 0.6310f, 4.2400f, 0.5100f, 1.3100f, 0.1778f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.2310f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_LONGPASSAGE \ - { 0.3645f, 0.6400f, 0.2512f, 0.7943f, 0.5012f, 4.0600f, 0.6500f, 1.3100f, 1.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0370f, { 0.0000f, 0.0000f, 0.0000f }, 0.1350f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_HALL \ - { 0.4287f, 0.7500f, 0.3162f, 0.7079f, 0.6310f, 7.4300f, 0.5100f, 1.3100f, 0.0631f, 0.0730f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_CUPBOARD \ - { 0.3071f, 0.6300f, 0.2512f, 0.7943f, 0.5012f, 0.4900f, 0.6500f, 1.3100f, 1.2589f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.1070f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_COURTYARD \ - { 0.3071f, 0.5700f, 0.3162f, 0.3162f, 0.6310f, 2.3200f, 0.2900f, 0.5600f, 0.2239f, 0.1400f, { 0.0000f, 0.0000f, 0.0000f }, 0.3981f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2900f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_FACTORY_ALCOVE \ - { 0.3645f, 0.5900f, 0.2512f, 0.7943f, 0.5012f, 3.1400f, 0.6500f, 1.3100f, 1.4125f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.1140f, 0.1000f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } - -/* Ice Palace Presets */ - -#define EFX_REVERB_PRESET_ICEPALACE_SMALLROOM \ - { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 0.2818f, 1.5100f, 1.5300f, 0.2700f, 0.8913f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1640f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_SHORTPASSAGE \ - { 1.0000f, 0.7500f, 0.3162f, 0.5623f, 0.2818f, 1.7900f, 1.4600f, 0.2800f, 0.5012f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.1770f, 0.0900f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_MEDIUMROOM \ - { 1.0000f, 0.8700f, 0.3162f, 0.5623f, 0.4467f, 2.2200f, 1.5300f, 0.3200f, 0.3981f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.1860f, 0.1200f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_LARGEROOM \ - { 1.0000f, 0.8100f, 0.3162f, 0.5623f, 0.4467f, 3.1400f, 1.5300f, 0.3200f, 0.2512f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.2140f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_LONGPASSAGE \ - { 1.0000f, 0.7700f, 0.3162f, 0.5623f, 0.3981f, 3.0100f, 1.4600f, 0.2800f, 0.7943f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0250f, { 0.0000f, 0.0000f, 0.0000f }, 0.1860f, 0.0400f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_HALL \ - { 1.0000f, 0.7600f, 0.3162f, 0.4467f, 0.5623f, 5.4900f, 1.5300f, 0.3800f, 0.1122f, 0.0540f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0520f, { 0.0000f, 0.0000f, 0.0000f }, 0.2260f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_CUPBOARD \ - { 1.0000f, 0.8300f, 0.3162f, 0.5012f, 0.2239f, 0.7600f, 1.5300f, 0.2600f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1430f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_COURTYARD \ - { 1.0000f, 0.5900f, 0.3162f, 0.2818f, 0.3162f, 2.0400f, 1.2000f, 0.3800f, 0.3162f, 0.1730f, { 0.0000f, 0.0000f, 0.0000f }, 0.3162f, 0.0430f, { 0.0000f, 0.0000f, 0.0000f }, 0.2350f, 0.4800f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_ICEPALACE_ALCOVE \ - { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 0.2818f, 2.7600f, 1.4600f, 0.2800f, 1.1220f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1610f, 0.0900f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } - -/* Space Station Presets */ - -#define EFX_REVERB_PRESET_SPACESTATION_SMALLROOM \ - { 0.2109f, 0.7000f, 0.3162f, 0.7079f, 0.8913f, 1.7200f, 0.8200f, 0.5500f, 0.7943f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0130f, { 0.0000f, 0.0000f, 0.0000f }, 0.1880f, 0.2600f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPACESTATION_SHORTPASSAGE \ - { 0.2109f, 0.8700f, 0.3162f, 0.6310f, 0.8913f, 3.5700f, 0.5000f, 0.5500f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1720f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPACESTATION_MEDIUMROOM \ - { 0.2109f, 0.7500f, 0.3162f, 0.6310f, 0.8913f, 3.0100f, 0.5000f, 0.5500f, 0.3981f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0350f, { 0.0000f, 0.0000f, 0.0000f }, 0.2090f, 0.3100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPACESTATION_LARGEROOM \ - { 0.3645f, 0.8100f, 0.3162f, 0.6310f, 0.8913f, 3.8900f, 0.3800f, 0.6100f, 0.3162f, 0.0560f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0350f, { 0.0000f, 0.0000f, 0.0000f }, 0.2330f, 0.2800f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPACESTATION_LONGPASSAGE \ - { 0.4287f, 0.8200f, 0.3162f, 0.6310f, 0.8913f, 4.6200f, 0.6200f, 0.5500f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0310f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPACESTATION_HALL \ - { 0.4287f, 0.8700f, 0.3162f, 0.6310f, 0.8913f, 7.1100f, 0.3800f, 0.6100f, 0.1778f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0470f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2500f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPACESTATION_CUPBOARD \ - { 0.1715f, 0.5600f, 0.3162f, 0.7079f, 0.8913f, 0.7900f, 0.8100f, 0.5500f, 1.4125f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0180f, { 0.0000f, 0.0000f, 0.0000f }, 0.1810f, 0.3100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPACESTATION_ALCOVE \ - { 0.2109f, 0.7800f, 0.3162f, 0.7079f, 0.8913f, 1.1600f, 0.8100f, 0.5500f, 1.4125f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0180f, { 0.0000f, 0.0000f, 0.0000f }, 0.1920f, 0.2100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } - -/* Wooden Galleon Presets */ - -#define EFX_REVERB_PRESET_WOODEN_SMALLROOM \ - { 1.0000f, 1.0000f, 0.3162f, 0.1122f, 0.3162f, 0.7900f, 0.3200f, 0.8700f, 1.0000f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_SHORTPASSAGE \ - { 1.0000f, 1.0000f, 0.3162f, 0.1259f, 0.3162f, 1.7500f, 0.5000f, 0.8700f, 0.8913f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_MEDIUMROOM \ - { 1.0000f, 1.0000f, 0.3162f, 0.1000f, 0.2818f, 1.4700f, 0.4200f, 0.8200f, 0.8913f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_LARGEROOM \ - { 1.0000f, 1.0000f, 0.3162f, 0.0891f, 0.2818f, 2.6500f, 0.3300f, 0.8200f, 0.8913f, 0.0660f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_LONGPASSAGE \ - { 1.0000f, 1.0000f, 0.3162f, 0.1000f, 0.3162f, 1.9900f, 0.4000f, 0.7900f, 1.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.4467f, 0.0360f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_HALL \ - { 1.0000f, 1.0000f, 0.3162f, 0.0794f, 0.2818f, 3.4500f, 0.3000f, 0.8200f, 0.8913f, 0.0880f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0630f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_CUPBOARD \ - { 1.0000f, 1.0000f, 0.3162f, 0.1413f, 0.3162f, 0.5600f, 0.4600f, 0.9100f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_COURTYARD \ - { 1.0000f, 0.6500f, 0.3162f, 0.0794f, 0.3162f, 1.7900f, 0.3500f, 0.7900f, 0.5623f, 0.1230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1000f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_WOODEN_ALCOVE \ - { 1.0000f, 1.0000f, 0.3162f, 0.1259f, 0.3162f, 1.2200f, 0.6200f, 0.9100f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } - -/* Sports Presets */ - -#define EFX_REVERB_PRESET_SPORT_EMPTYSTADIUM \ - { 1.0000f, 1.0000f, 0.3162f, 0.4467f, 0.7943f, 6.2600f, 0.5100f, 1.1000f, 0.0631f, 0.1830f, { 0.0000f, 0.0000f, 0.0000f }, 0.3981f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPORT_SQUASHCOURT \ - { 1.0000f, 0.7500f, 0.3162f, 0.3162f, 0.7943f, 2.2200f, 0.9100f, 1.1600f, 0.4467f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1260f, 0.1900f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPORT_SMALLSWIMMINGPOOL \ - { 1.0000f, 0.7000f, 0.3162f, 0.7943f, 0.8913f, 2.7600f, 1.2500f, 1.1400f, 0.6310f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1790f, 0.1500f, 0.8950f, 0.1900f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_SPORT_LARGESWIMMINGPOOL \ - { 1.0000f, 0.8200f, 0.3162f, 0.7943f, 1.0000f, 5.4900f, 1.3100f, 1.1400f, 0.4467f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 0.5012f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2220f, 0.5500f, 1.1590f, 0.2100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_SPORT_GYMNASIUM \ - { 1.0000f, 0.8100f, 0.3162f, 0.4467f, 0.8913f, 3.1400f, 1.0600f, 1.3500f, 0.3981f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.5623f, 0.0450f, { 0.0000f, 0.0000f, 0.0000f }, 0.1460f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPORT_FULLSTADIUM \ - { 1.0000f, 1.0000f, 0.3162f, 0.0708f, 0.7943f, 5.2500f, 0.1700f, 0.8000f, 0.1000f, 0.1880f, { 0.0000f, 0.0000f, 0.0000f }, 0.2818f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SPORT_STADIUMTANNOY \ - { 1.0000f, 0.7800f, 0.3162f, 0.5623f, 0.5012f, 2.5300f, 0.8800f, 0.6800f, 0.2818f, 0.2300f, { 0.0000f, 0.0000f, 0.0000f }, 0.5012f, 0.0630f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -/* Prefab Presets */ - -#define EFX_REVERB_PRESET_PREFAB_WORKSHOP \ - { 0.4287f, 1.0000f, 0.3162f, 0.1413f, 0.3981f, 0.7600f, 1.0000f, 1.0000f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_PREFAB_SCHOOLROOM \ - { 0.4022f, 0.6900f, 0.3162f, 0.6310f, 0.5012f, 0.9800f, 0.4500f, 0.1800f, 1.4125f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.0950f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_PREFAB_PRACTISEROOM \ - { 0.4022f, 0.8700f, 0.3162f, 0.3981f, 0.5012f, 1.1200f, 0.5600f, 0.1800f, 1.2589f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.0950f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_PREFAB_OUTHOUSE \ - { 1.0000f, 0.8200f, 0.3162f, 0.1122f, 0.1585f, 1.3800f, 0.3800f, 0.3500f, 0.8913f, 0.0240f, { 0.0000f, 0.0000f, -0.0000f }, 0.6310f, 0.0440f, { 0.0000f, 0.0000f, 0.0000f }, 0.1210f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_PREFAB_CARAVAN \ - { 1.0000f, 1.0000f, 0.3162f, 0.0891f, 0.1259f, 0.4300f, 1.5000f, 1.0000f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -/* Dome and Pipe Presets */ - -#define EFX_REVERB_PRESET_DOME_TOMB \ - { 1.0000f, 0.7900f, 0.3162f, 0.3548f, 0.2239f, 4.1800f, 0.2100f, 0.1000f, 0.3868f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 1.6788f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.1770f, 0.1900f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_PIPE_SMALL \ - { 1.0000f, 1.0000f, 0.3162f, 0.3548f, 0.2239f, 5.0400f, 0.1000f, 0.1000f, 0.5012f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 2.5119f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_DOME_SAINTPAULS \ - { 1.0000f, 0.8700f, 0.3162f, 0.3548f, 0.2239f, 10.4800f, 0.1900f, 0.1000f, 0.1778f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0420f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1200f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_PIPE_LONGTHIN \ - { 0.2560f, 0.9100f, 0.3162f, 0.4467f, 0.2818f, 9.2100f, 0.1800f, 0.1000f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_PIPE_LARGE \ - { 1.0000f, 1.0000f, 0.3162f, 0.3548f, 0.2239f, 8.4500f, 0.1000f, 0.1000f, 0.3981f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_PIPE_RESONANT \ - { 0.1373f, 0.9100f, 0.3162f, 0.4467f, 0.2818f, 6.8100f, 0.1800f, 0.1000f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } - -/* Outdoors Presets */ - -#define EFX_REVERB_PRESET_OUTDOORS_BACKYARD \ - { 1.0000f, 0.4500f, 0.3162f, 0.2512f, 0.5012f, 1.1200f, 0.3400f, 0.4600f, 0.4467f, 0.0690f, { 0.0000f, 0.0000f, -0.0000f }, 0.7079f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.2180f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_OUTDOORS_ROLLINGPLAINS \ - { 1.0000f, 0.0000f, 0.3162f, 0.0112f, 0.6310f, 2.1300f, 0.2100f, 0.4600f, 0.1778f, 0.3000f, { 0.0000f, 0.0000f, -0.0000f }, 0.4467f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_OUTDOORS_DEEPCANYON \ - { 1.0000f, 0.7400f, 0.3162f, 0.1778f, 0.6310f, 3.8900f, 0.2100f, 0.4600f, 0.3162f, 0.2230f, { 0.0000f, 0.0000f, -0.0000f }, 0.3548f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_OUTDOORS_CREEK \ - { 1.0000f, 0.3500f, 0.3162f, 0.1778f, 0.5012f, 2.1300f, 0.2100f, 0.4600f, 0.3981f, 0.1150f, { 0.0000f, 0.0000f, -0.0000f }, 0.1995f, 0.0310f, { 0.0000f, 0.0000f, 0.0000f }, 0.2180f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_OUTDOORS_VALLEY \ - { 1.0000f, 0.2800f, 0.3162f, 0.0282f, 0.1585f, 2.8800f, 0.2600f, 0.3500f, 0.1413f, 0.2630f, { 0.0000f, 0.0000f, -0.0000f }, 0.3981f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } - -/* Mood Presets */ - -#define EFX_REVERB_PRESET_MOOD_HEAVEN \ - { 1.0000f, 0.9400f, 0.3162f, 0.7943f, 0.4467f, 5.0400f, 1.1200f, 0.5600f, 0.2427f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0800f, 2.7420f, 0.0500f, 0.9977f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_MOOD_HELL \ - { 1.0000f, 0.5700f, 0.3162f, 0.3548f, 0.4467f, 3.5700f, 0.4900f, 2.0000f, 0.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1100f, 0.0400f, 2.1090f, 0.5200f, 0.9943f, 5000.0000f, 139.5000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_MOOD_MEMORY \ - { 1.0000f, 0.8500f, 0.3162f, 0.6310f, 0.3548f, 4.0600f, 0.8200f, 0.5600f, 0.0398f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.4740f, 0.4500f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -/* Driving Presets */ - -#define EFX_REVERB_PRESET_DRIVING_COMMENTATOR \ - { 1.0000f, 0.0000f, 3.1623f, 0.5623f, 0.5012f, 2.4200f, 0.8800f, 0.6800f, 0.1995f, 0.0930f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_DRIVING_PITGARAGE \ - { 0.4287f, 0.5900f, 0.3162f, 0.7079f, 0.5623f, 1.7200f, 0.9300f, 0.8700f, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_DRIVING_INCAR_RACER \ - { 0.0832f, 0.8000f, 0.3162f, 1.0000f, 0.7943f, 0.1700f, 2.0000f, 0.4100f, 1.7783f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_DRIVING_INCAR_SPORTS \ - { 0.0832f, 0.8000f, 0.3162f, 0.6310f, 1.0000f, 0.1700f, 0.7500f, 0.4100f, 1.0000f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_DRIVING_INCAR_LUXURY \ - { 0.2560f, 1.0000f, 0.3162f, 0.1000f, 0.5012f, 0.1300f, 0.4100f, 0.4600f, 0.7943f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_DRIVING_FULLGRANDSTAND \ - { 1.0000f, 1.0000f, 0.3162f, 0.2818f, 0.6310f, 3.0100f, 1.3700f, 1.2800f, 0.3548f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 0.1778f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10420.2002f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_DRIVING_EMPTYGRANDSTAND \ - { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 0.7943f, 4.6200f, 1.7500f, 1.4000f, 0.2082f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10420.2002f, 250.0000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_DRIVING_TUNNEL \ - { 1.0000f, 0.8100f, 0.3162f, 0.3981f, 0.8913f, 3.4200f, 0.9400f, 1.3100f, 0.7079f, 0.0510f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0470f, { 0.0000f, 0.0000f, 0.0000f }, 0.2140f, 0.0500f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 155.3000f, 0.0000f, 0x1 } - -/* City Presets */ - -#define EFX_REVERB_PRESET_CITY_STREETS \ - { 1.0000f, 0.7800f, 0.3162f, 0.7079f, 0.8913f, 1.7900f, 1.1200f, 0.9100f, 0.2818f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 0.1995f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CITY_SUBWAY \ - { 1.0000f, 0.7400f, 0.3162f, 0.7079f, 0.8913f, 3.0100f, 1.2300f, 0.9100f, 0.7079f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.2100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CITY_MUSEUM \ - { 1.0000f, 0.8200f, 0.3162f, 0.1778f, 0.1778f, 3.2800f, 1.4000f, 0.5700f, 0.2512f, 0.0390f, { 0.0000f, 0.0000f, -0.0000f }, 0.8913f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_CITY_LIBRARY \ - { 1.0000f, 0.8200f, 0.3162f, 0.2818f, 0.0891f, 2.7600f, 0.8900f, 0.4100f, 0.3548f, 0.0290f, { 0.0000f, 0.0000f, -0.0000f }, 0.8913f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } - -#define EFX_REVERB_PRESET_CITY_UNDERPASS \ - { 1.0000f, 0.8200f, 0.3162f, 0.4467f, 0.8913f, 3.5700f, 1.1200f, 0.9100f, 0.3981f, 0.0590f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0370f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1400f, 0.2500f, 0.0000f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CITY_ABANDONED \ - { 1.0000f, 0.6900f, 0.3162f, 0.7943f, 0.8913f, 3.2800f, 1.1700f, 0.9100f, 0.4467f, 0.0440f, { 0.0000f, 0.0000f, 0.0000f }, 0.2818f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9966f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -/* Misc. Presets */ - -#define EFX_REVERB_PRESET_DUSTYROOM \ - { 0.3645f, 0.5600f, 0.3162f, 0.7943f, 0.7079f, 1.7900f, 0.3800f, 0.2100f, 0.5012f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0060f, { 0.0000f, 0.0000f, 0.0000f }, 0.2020f, 0.0500f, 0.2500f, 0.0000f, 0.9886f, 13046.0000f, 163.3000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_CHAPEL \ - { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 1.0000f, 4.6200f, 0.6400f, 1.2300f, 0.4467f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.1100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } - -#define EFX_REVERB_PRESET_SMALLWATERROOM \ - { 1.0000f, 0.7000f, 0.3162f, 0.4477f, 1.0000f, 1.5100f, 1.2500f, 1.1400f, 0.8913f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1790f, 0.1500f, 0.8950f, 0.1900f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } - -#endif /* EFX_PRESETS_H */ diff --git a/external/win32-specific/OpenalSoft/include/AL/efx.h b/external/win32-specific/OpenalSoft/include/AL/efx.h deleted file mode 100644 index 5776698..0000000 --- a/external/win32-specific/OpenalSoft/include/AL/efx.h +++ /dev/null @@ -1,761 +0,0 @@ -#ifndef AL_EFX_H -#define AL_EFX_H - - -#include "alc.h" -#include "al.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ALC_EXT_EFX_NAME "ALC_EXT_EFX" - -#define ALC_EFX_MAJOR_VERSION 0x20001 -#define ALC_EFX_MINOR_VERSION 0x20002 -#define ALC_MAX_AUXILIARY_SENDS 0x20003 - - -/* Listener properties. */ -#define AL_METERS_PER_UNIT 0x20004 - -/* Source properties. */ -#define AL_DIRECT_FILTER 0x20005 -#define AL_AUXILIARY_SEND_FILTER 0x20006 -#define AL_AIR_ABSORPTION_FACTOR 0x20007 -#define AL_ROOM_ROLLOFF_FACTOR 0x20008 -#define AL_CONE_OUTER_GAINHF 0x20009 -#define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A -#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B -#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C - - -/* Effect properties. */ - -/* Reverb effect parameters */ -#define AL_REVERB_DENSITY 0x0001 -#define AL_REVERB_DIFFUSION 0x0002 -#define AL_REVERB_GAIN 0x0003 -#define AL_REVERB_GAINHF 0x0004 -#define AL_REVERB_DECAY_TIME 0x0005 -#define AL_REVERB_DECAY_HFRATIO 0x0006 -#define AL_REVERB_REFLECTIONS_GAIN 0x0007 -#define AL_REVERB_REFLECTIONS_DELAY 0x0008 -#define AL_REVERB_LATE_REVERB_GAIN 0x0009 -#define AL_REVERB_LATE_REVERB_DELAY 0x000A -#define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B -#define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C -#define AL_REVERB_DECAY_HFLIMIT 0x000D - -/* EAX Reverb effect parameters */ -#define AL_EAXREVERB_DENSITY 0x0001 -#define AL_EAXREVERB_DIFFUSION 0x0002 -#define AL_EAXREVERB_GAIN 0x0003 -#define AL_EAXREVERB_GAINHF 0x0004 -#define AL_EAXREVERB_GAINLF 0x0005 -#define AL_EAXREVERB_DECAY_TIME 0x0006 -#define AL_EAXREVERB_DECAY_HFRATIO 0x0007 -#define AL_EAXREVERB_DECAY_LFRATIO 0x0008 -#define AL_EAXREVERB_REFLECTIONS_GAIN 0x0009 -#define AL_EAXREVERB_REFLECTIONS_DELAY 0x000A -#define AL_EAXREVERB_REFLECTIONS_PAN 0x000B -#define AL_EAXREVERB_LATE_REVERB_GAIN 0x000C -#define AL_EAXREVERB_LATE_REVERB_DELAY 0x000D -#define AL_EAXREVERB_LATE_REVERB_PAN 0x000E -#define AL_EAXREVERB_ECHO_TIME 0x000F -#define AL_EAXREVERB_ECHO_DEPTH 0x0010 -#define AL_EAXREVERB_MODULATION_TIME 0x0011 -#define AL_EAXREVERB_MODULATION_DEPTH 0x0012 -#define AL_EAXREVERB_AIR_ABSORPTION_GAINHF 0x0013 -#define AL_EAXREVERB_HFREFERENCE 0x0014 -#define AL_EAXREVERB_LFREFERENCE 0x0015 -#define AL_EAXREVERB_ROOM_ROLLOFF_FACTOR 0x0016 -#define AL_EAXREVERB_DECAY_HFLIMIT 0x0017 - -/* Chorus effect parameters */ -#define AL_CHORUS_WAVEFORM 0x0001 -#define AL_CHORUS_PHASE 0x0002 -#define AL_CHORUS_RATE 0x0003 -#define AL_CHORUS_DEPTH 0x0004 -#define AL_CHORUS_FEEDBACK 0x0005 -#define AL_CHORUS_DELAY 0x0006 - -/* Distortion effect parameters */ -#define AL_DISTORTION_EDGE 0x0001 -#define AL_DISTORTION_GAIN 0x0002 -#define AL_DISTORTION_LOWPASS_CUTOFF 0x0003 -#define AL_DISTORTION_EQCENTER 0x0004 -#define AL_DISTORTION_EQBANDWIDTH 0x0005 - -/* Echo effect parameters */ -#define AL_ECHO_DELAY 0x0001 -#define AL_ECHO_LRDELAY 0x0002 -#define AL_ECHO_DAMPING 0x0003 -#define AL_ECHO_FEEDBACK 0x0004 -#define AL_ECHO_SPREAD 0x0005 - -/* Flanger effect parameters */ -#define AL_FLANGER_WAVEFORM 0x0001 -#define AL_FLANGER_PHASE 0x0002 -#define AL_FLANGER_RATE 0x0003 -#define AL_FLANGER_DEPTH 0x0004 -#define AL_FLANGER_FEEDBACK 0x0005 -#define AL_FLANGER_DELAY 0x0006 - -/* Frequency shifter effect parameters */ -#define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001 -#define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002 -#define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003 - -/* Vocal morpher effect parameters */ -#define AL_VOCAL_MORPHER_PHONEMEA 0x0001 -#define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING 0x0002 -#define AL_VOCAL_MORPHER_PHONEMEB 0x0003 -#define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING 0x0004 -#define AL_VOCAL_MORPHER_WAVEFORM 0x0005 -#define AL_VOCAL_MORPHER_RATE 0x0006 - -/* Pitchshifter effect parameters */ -#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001 -#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002 - -/* Ringmodulator effect parameters */ -#define AL_RING_MODULATOR_FREQUENCY 0x0001 -#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002 -#define AL_RING_MODULATOR_WAVEFORM 0x0003 - -/* Autowah effect parameters */ -#define AL_AUTOWAH_ATTACK_TIME 0x0001 -#define AL_AUTOWAH_RELEASE_TIME 0x0002 -#define AL_AUTOWAH_RESONANCE 0x0003 -#define AL_AUTOWAH_PEAK_GAIN 0x0004 - -/* Compressor effect parameters */ -#define AL_COMPRESSOR_ONOFF 0x0001 - -/* Equalizer effect parameters */ -#define AL_EQUALIZER_LOW_GAIN 0x0001 -#define AL_EQUALIZER_LOW_CUTOFF 0x0002 -#define AL_EQUALIZER_MID1_GAIN 0x0003 -#define AL_EQUALIZER_MID1_CENTER 0x0004 -#define AL_EQUALIZER_MID1_WIDTH 0x0005 -#define AL_EQUALIZER_MID2_GAIN 0x0006 -#define AL_EQUALIZER_MID2_CENTER 0x0007 -#define AL_EQUALIZER_MID2_WIDTH 0x0008 -#define AL_EQUALIZER_HIGH_GAIN 0x0009 -#define AL_EQUALIZER_HIGH_CUTOFF 0x000A - -/* Effect type */ -#define AL_EFFECT_FIRST_PARAMETER 0x0000 -#define AL_EFFECT_LAST_PARAMETER 0x8000 -#define AL_EFFECT_TYPE 0x8001 - -/* Effect types, used with the AL_EFFECT_TYPE property */ -#define AL_EFFECT_NULL 0x0000 -#define AL_EFFECT_REVERB 0x0001 -#define AL_EFFECT_CHORUS 0x0002 -#define AL_EFFECT_DISTORTION 0x0003 -#define AL_EFFECT_ECHO 0x0004 -#define AL_EFFECT_FLANGER 0x0005 -#define AL_EFFECT_FREQUENCY_SHIFTER 0x0006 -#define AL_EFFECT_VOCAL_MORPHER 0x0007 -#define AL_EFFECT_PITCH_SHIFTER 0x0008 -#define AL_EFFECT_RING_MODULATOR 0x0009 -#define AL_EFFECT_AUTOWAH 0x000A -#define AL_EFFECT_COMPRESSOR 0x000B -#define AL_EFFECT_EQUALIZER 0x000C -#define AL_EFFECT_EAXREVERB 0x8000 - -/* Auxiliary Effect Slot properties. */ -#define AL_EFFECTSLOT_EFFECT 0x0001 -#define AL_EFFECTSLOT_GAIN 0x0002 -#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003 - -/* NULL Auxiliary Slot ID to disable a source send. */ -#define AL_EFFECTSLOT_NULL 0x0000 - - -/* Filter properties. */ - -/* Lowpass filter parameters */ -#define AL_LOWPASS_GAIN 0x0001 -#define AL_LOWPASS_GAINHF 0x0002 - -/* Highpass filter parameters */ -#define AL_HIGHPASS_GAIN 0x0001 -#define AL_HIGHPASS_GAINLF 0x0002 - -/* Bandpass filter parameters */ -#define AL_BANDPASS_GAIN 0x0001 -#define AL_BANDPASS_GAINLF 0x0002 -#define AL_BANDPASS_GAINHF 0x0003 - -/* Filter type */ -#define AL_FILTER_FIRST_PARAMETER 0x0000 -#define AL_FILTER_LAST_PARAMETER 0x8000 -#define AL_FILTER_TYPE 0x8001 - -/* Filter types, used with the AL_FILTER_TYPE property */ -#define AL_FILTER_NULL 0x0000 -#define AL_FILTER_LOWPASS 0x0001 -#define AL_FILTER_HIGHPASS 0x0002 -#define AL_FILTER_BANDPASS 0x0003 - - -/* Effect object function types. */ -typedef void (AL_APIENTRY *LPALGENEFFECTS)(ALsizei, ALuint*); -typedef void (AL_APIENTRY *LPALDELETEEFFECTS)(ALsizei, const ALuint*); -typedef ALboolean (AL_APIENTRY *LPALISEFFECT)(ALuint); -typedef void (AL_APIENTRY *LPALEFFECTI)(ALuint, ALenum, ALint); -typedef void (AL_APIENTRY *LPALEFFECTIV)(ALuint, ALenum, const ALint*); -typedef void (AL_APIENTRY *LPALEFFECTF)(ALuint, ALenum, ALfloat); -typedef void (AL_APIENTRY *LPALEFFECTFV)(ALuint, ALenum, const ALfloat*); -typedef void (AL_APIENTRY *LPALGETEFFECTI)(ALuint, ALenum, ALint*); -typedef void (AL_APIENTRY *LPALGETEFFECTIV)(ALuint, ALenum, ALint*); -typedef void (AL_APIENTRY *LPALGETEFFECTF)(ALuint, ALenum, ALfloat*); -typedef void (AL_APIENTRY *LPALGETEFFECTFV)(ALuint, ALenum, ALfloat*); - -/* Filter object function types. */ -typedef void (AL_APIENTRY *LPALGENFILTERS)(ALsizei, ALuint*); -typedef void (AL_APIENTRY *LPALDELETEFILTERS)(ALsizei, const ALuint*); -typedef ALboolean (AL_APIENTRY *LPALISFILTER)(ALuint); -typedef void (AL_APIENTRY *LPALFILTERI)(ALuint, ALenum, ALint); -typedef void (AL_APIENTRY *LPALFILTERIV)(ALuint, ALenum, const ALint*); -typedef void (AL_APIENTRY *LPALFILTERF)(ALuint, ALenum, ALfloat); -typedef void (AL_APIENTRY *LPALFILTERFV)(ALuint, ALenum, const ALfloat*); -typedef void (AL_APIENTRY *LPALGETFILTERI)(ALuint, ALenum, ALint*); -typedef void (AL_APIENTRY *LPALGETFILTERIV)(ALuint, ALenum, ALint*); -typedef void (AL_APIENTRY *LPALGETFILTERF)(ALuint, ALenum, ALfloat*); -typedef void (AL_APIENTRY *LPALGETFILTERFV)(ALuint, ALenum, ALfloat*); - -/* Auxiliary Effect Slot object function types. */ -typedef void (AL_APIENTRY *LPALGENAUXILIARYEFFECTSLOTS)(ALsizei, ALuint*); -typedef void (AL_APIENTRY *LPALDELETEAUXILIARYEFFECTSLOTS)(ALsizei, const ALuint*); -typedef ALboolean (AL_APIENTRY *LPALISAUXILIARYEFFECTSLOT)(ALuint); -typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint); -typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, const ALint*); -typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat); -typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, const ALfloat*); -typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint*); -typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, ALint*); -typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat*); -typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, ALfloat*); - -#ifdef AL_ALEXT_PROTOTYPES -AL_API ALvoid AL_APIENTRY alGenEffects(ALsizei n, ALuint *effects); -AL_API ALvoid AL_APIENTRY alDeleteEffects(ALsizei n, const ALuint *effects); -AL_API ALboolean AL_APIENTRY alIsEffect(ALuint effect); -AL_API ALvoid AL_APIENTRY alEffecti(ALuint effect, ALenum param, ALint iValue); -AL_API ALvoid AL_APIENTRY alEffectiv(ALuint effect, ALenum param, const ALint *piValues); -AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue); -AL_API ALvoid AL_APIENTRY alEffectfv(ALuint effect, ALenum param, const ALfloat *pflValues); -AL_API ALvoid AL_APIENTRY alGetEffecti(ALuint effect, ALenum param, ALint *piValue); -AL_API ALvoid AL_APIENTRY alGetEffectiv(ALuint effect, ALenum param, ALint *piValues); -AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pflValue); -AL_API ALvoid AL_APIENTRY alGetEffectfv(ALuint effect, ALenum param, ALfloat *pflValues); - -AL_API ALvoid AL_APIENTRY alGenFilters(ALsizei n, ALuint *filters); -AL_API ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, const ALuint *filters); -AL_API ALboolean AL_APIENTRY alIsFilter(ALuint filter); -AL_API ALvoid AL_APIENTRY alFilteri(ALuint filter, ALenum param, ALint iValue); -AL_API ALvoid AL_APIENTRY alFilteriv(ALuint filter, ALenum param, const ALint *piValues); -AL_API ALvoid AL_APIENTRY alFilterf(ALuint filter, ALenum param, ALfloat flValue); -AL_API ALvoid AL_APIENTRY alFilterfv(ALuint filter, ALenum param, const ALfloat *pflValues); -AL_API ALvoid AL_APIENTRY alGetFilteri(ALuint filter, ALenum param, ALint *piValue); -AL_API ALvoid AL_APIENTRY alGetFilteriv(ALuint filter, ALenum param, ALint *piValues); -AL_API ALvoid AL_APIENTRY alGetFilterf(ALuint filter, ALenum param, ALfloat *pflValue); -AL_API ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pflValues); - -AL_API ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots); -AL_API ALvoid AL_APIENTRY alDeleteAuxiliaryEffectSlots(ALsizei n, const ALuint *effectslots); -AL_API ALboolean AL_APIENTRY alIsAuxiliaryEffectSlot(ALuint effectslot); -AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint iValue); -AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, const ALint *piValues); -AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat flValue); -AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, const ALfloat *pflValues); -AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint *piValue); -AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues); -AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat *pflValue); -AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues); -#endif - -/* Filter ranges and defaults. */ - -/* Lowpass filter */ -#define AL_LOWPASS_MIN_GAIN (0.0f) -#define AL_LOWPASS_MAX_GAIN (1.0f) -#define AL_LOWPASS_DEFAULT_GAIN (1.0f) - -#define AL_LOWPASS_MIN_GAINHF (0.0f) -#define AL_LOWPASS_MAX_GAINHF (1.0f) -#define AL_LOWPASS_DEFAULT_GAINHF (1.0f) - -/* Highpass filter */ -#define AL_HIGHPASS_MIN_GAIN (0.0f) -#define AL_HIGHPASS_MAX_GAIN (1.0f) -#define AL_HIGHPASS_DEFAULT_GAIN (1.0f) - -#define AL_HIGHPASS_MIN_GAINLF (0.0f) -#define AL_HIGHPASS_MAX_GAINLF (1.0f) -#define AL_HIGHPASS_DEFAULT_GAINLF (1.0f) - -/* Bandpass filter */ -#define AL_BANDPASS_MIN_GAIN (0.0f) -#define AL_BANDPASS_MAX_GAIN (1.0f) -#define AL_BANDPASS_DEFAULT_GAIN (1.0f) - -#define AL_BANDPASS_MIN_GAINHF (0.0f) -#define AL_BANDPASS_MAX_GAINHF (1.0f) -#define AL_BANDPASS_DEFAULT_GAINHF (1.0f) - -#define AL_BANDPASS_MIN_GAINLF (0.0f) -#define AL_BANDPASS_MAX_GAINLF (1.0f) -#define AL_BANDPASS_DEFAULT_GAINLF (1.0f) - - -/* Effect parameter ranges and defaults. */ - -/* Standard reverb effect */ -#define AL_REVERB_MIN_DENSITY (0.0f) -#define AL_REVERB_MAX_DENSITY (1.0f) -#define AL_REVERB_DEFAULT_DENSITY (1.0f) - -#define AL_REVERB_MIN_DIFFUSION (0.0f) -#define AL_REVERB_MAX_DIFFUSION (1.0f) -#define AL_REVERB_DEFAULT_DIFFUSION (1.0f) - -#define AL_REVERB_MIN_GAIN (0.0f) -#define AL_REVERB_MAX_GAIN (1.0f) -#define AL_REVERB_DEFAULT_GAIN (0.32f) - -#define AL_REVERB_MIN_GAINHF (0.0f) -#define AL_REVERB_MAX_GAINHF (1.0f) -#define AL_REVERB_DEFAULT_GAINHF (0.89f) - -#define AL_REVERB_MIN_DECAY_TIME (0.1f) -#define AL_REVERB_MAX_DECAY_TIME (20.0f) -#define AL_REVERB_DEFAULT_DECAY_TIME (1.49f) - -#define AL_REVERB_MIN_DECAY_HFRATIO (0.1f) -#define AL_REVERB_MAX_DECAY_HFRATIO (2.0f) -#define AL_REVERB_DEFAULT_DECAY_HFRATIO (0.83f) - -#define AL_REVERB_MIN_REFLECTIONS_GAIN (0.0f) -#define AL_REVERB_MAX_REFLECTIONS_GAIN (3.16f) -#define AL_REVERB_DEFAULT_REFLECTIONS_GAIN (0.05f) - -#define AL_REVERB_MIN_REFLECTIONS_DELAY (0.0f) -#define AL_REVERB_MAX_REFLECTIONS_DELAY (0.3f) -#define AL_REVERB_DEFAULT_REFLECTIONS_DELAY (0.007f) - -#define AL_REVERB_MIN_LATE_REVERB_GAIN (0.0f) -#define AL_REVERB_MAX_LATE_REVERB_GAIN (10.0f) -#define AL_REVERB_DEFAULT_LATE_REVERB_GAIN (1.26f) - -#define AL_REVERB_MIN_LATE_REVERB_DELAY (0.0f) -#define AL_REVERB_MAX_LATE_REVERB_DELAY (0.1f) -#define AL_REVERB_DEFAULT_LATE_REVERB_DELAY (0.011f) - -#define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF (0.892f) -#define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF (1.0f) -#define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF (0.994f) - -#define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR (0.0f) -#define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR (10.0f) -#define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) - -#define AL_REVERB_MIN_DECAY_HFLIMIT AL_FALSE -#define AL_REVERB_MAX_DECAY_HFLIMIT AL_TRUE -#define AL_REVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE - -/* EAX reverb effect */ -#define AL_EAXREVERB_MIN_DENSITY (0.0f) -#define AL_EAXREVERB_MAX_DENSITY (1.0f) -#define AL_EAXREVERB_DEFAULT_DENSITY (1.0f) - -#define AL_EAXREVERB_MIN_DIFFUSION (0.0f) -#define AL_EAXREVERB_MAX_DIFFUSION (1.0f) -#define AL_EAXREVERB_DEFAULT_DIFFUSION (1.0f) - -#define AL_EAXREVERB_MIN_GAIN (0.0f) -#define AL_EAXREVERB_MAX_GAIN (1.0f) -#define AL_EAXREVERB_DEFAULT_GAIN (0.32f) - -#define AL_EAXREVERB_MIN_GAINHF (0.0f) -#define AL_EAXREVERB_MAX_GAINHF (1.0f) -#define AL_EAXREVERB_DEFAULT_GAINHF (0.89f) - -#define AL_EAXREVERB_MIN_GAINLF (0.0f) -#define AL_EAXREVERB_MAX_GAINLF (1.0f) -#define AL_EAXREVERB_DEFAULT_GAINLF (1.0f) - -#define AL_EAXREVERB_MIN_DECAY_TIME (0.1f) -#define AL_EAXREVERB_MAX_DECAY_TIME (20.0f) -#define AL_EAXREVERB_DEFAULT_DECAY_TIME (1.49f) - -#define AL_EAXREVERB_MIN_DECAY_HFRATIO (0.1f) -#define AL_EAXREVERB_MAX_DECAY_HFRATIO (2.0f) -#define AL_EAXREVERB_DEFAULT_DECAY_HFRATIO (0.83f) - -#define AL_EAXREVERB_MIN_DECAY_LFRATIO (0.1f) -#define AL_EAXREVERB_MAX_DECAY_LFRATIO (2.0f) -#define AL_EAXREVERB_DEFAULT_DECAY_LFRATIO (1.0f) - -#define AL_EAXREVERB_MIN_REFLECTIONS_GAIN (0.0f) -#define AL_EAXREVERB_MAX_REFLECTIONS_GAIN (3.16f) -#define AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN (0.05f) - -#define AL_EAXREVERB_MIN_REFLECTIONS_DELAY (0.0f) -#define AL_EAXREVERB_MAX_REFLECTIONS_DELAY (0.3f) -#define AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY (0.007f) - -#define AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ (0.0f) - -#define AL_EAXREVERB_MIN_LATE_REVERB_GAIN (0.0f) -#define AL_EAXREVERB_MAX_LATE_REVERB_GAIN (10.0f) -#define AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN (1.26f) - -#define AL_EAXREVERB_MIN_LATE_REVERB_DELAY (0.0f) -#define AL_EAXREVERB_MAX_LATE_REVERB_DELAY (0.1f) -#define AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY (0.011f) - -#define AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ (0.0f) - -#define AL_EAXREVERB_MIN_ECHO_TIME (0.075f) -#define AL_EAXREVERB_MAX_ECHO_TIME (0.25f) -#define AL_EAXREVERB_DEFAULT_ECHO_TIME (0.25f) - -#define AL_EAXREVERB_MIN_ECHO_DEPTH (0.0f) -#define AL_EAXREVERB_MAX_ECHO_DEPTH (1.0f) -#define AL_EAXREVERB_DEFAULT_ECHO_DEPTH (0.0f) - -#define AL_EAXREVERB_MIN_MODULATION_TIME (0.04f) -#define AL_EAXREVERB_MAX_MODULATION_TIME (4.0f) -#define AL_EAXREVERB_DEFAULT_MODULATION_TIME (0.25f) - -#define AL_EAXREVERB_MIN_MODULATION_DEPTH (0.0f) -#define AL_EAXREVERB_MAX_MODULATION_DEPTH (1.0f) -#define AL_EAXREVERB_DEFAULT_MODULATION_DEPTH (0.0f) - -#define AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF (0.892f) -#define AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF (1.0f) -#define AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF (0.994f) - -#define AL_EAXREVERB_MIN_HFREFERENCE (1000.0f) -#define AL_EAXREVERB_MAX_HFREFERENCE (20000.0f) -#define AL_EAXREVERB_DEFAULT_HFREFERENCE (5000.0f) - -#define AL_EAXREVERB_MIN_LFREFERENCE (20.0f) -#define AL_EAXREVERB_MAX_LFREFERENCE (1000.0f) -#define AL_EAXREVERB_DEFAULT_LFREFERENCE (250.0f) - -#define AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR (0.0f) -#define AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR (10.0f) -#define AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) - -#define AL_EAXREVERB_MIN_DECAY_HFLIMIT AL_FALSE -#define AL_EAXREVERB_MAX_DECAY_HFLIMIT AL_TRUE -#define AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE - -/* Chorus effect */ -#define AL_CHORUS_WAVEFORM_SINUSOID (0) -#define AL_CHORUS_WAVEFORM_TRIANGLE (1) - -#define AL_CHORUS_MIN_WAVEFORM (0) -#define AL_CHORUS_MAX_WAVEFORM (1) -#define AL_CHORUS_DEFAULT_WAVEFORM (1) - -#define AL_CHORUS_MIN_PHASE (-180) -#define AL_CHORUS_MAX_PHASE (180) -#define AL_CHORUS_DEFAULT_PHASE (90) - -#define AL_CHORUS_MIN_RATE (0.0f) -#define AL_CHORUS_MAX_RATE (10.0f) -#define AL_CHORUS_DEFAULT_RATE (1.1f) - -#define AL_CHORUS_MIN_DEPTH (0.0f) -#define AL_CHORUS_MAX_DEPTH (1.0f) -#define AL_CHORUS_DEFAULT_DEPTH (0.1f) - -#define AL_CHORUS_MIN_FEEDBACK (-1.0f) -#define AL_CHORUS_MAX_FEEDBACK (1.0f) -#define AL_CHORUS_DEFAULT_FEEDBACK (0.25f) - -#define AL_CHORUS_MIN_DELAY (0.0f) -#define AL_CHORUS_MAX_DELAY (0.016f) -#define AL_CHORUS_DEFAULT_DELAY (0.016f) - -/* Distortion effect */ -#define AL_DISTORTION_MIN_EDGE (0.0f) -#define AL_DISTORTION_MAX_EDGE (1.0f) -#define AL_DISTORTION_DEFAULT_EDGE (0.2f) - -#define AL_DISTORTION_MIN_GAIN (0.01f) -#define AL_DISTORTION_MAX_GAIN (1.0f) -#define AL_DISTORTION_DEFAULT_GAIN (0.05f) - -#define AL_DISTORTION_MIN_LOWPASS_CUTOFF (80.0f) -#define AL_DISTORTION_MAX_LOWPASS_CUTOFF (24000.0f) -#define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF (8000.0f) - -#define AL_DISTORTION_MIN_EQCENTER (80.0f) -#define AL_DISTORTION_MAX_EQCENTER (24000.0f) -#define AL_DISTORTION_DEFAULT_EQCENTER (3600.0f) - -#define AL_DISTORTION_MIN_EQBANDWIDTH (80.0f) -#define AL_DISTORTION_MAX_EQBANDWIDTH (24000.0f) -#define AL_DISTORTION_DEFAULT_EQBANDWIDTH (3600.0f) - -/* Echo effect */ -#define AL_ECHO_MIN_DELAY (0.0f) -#define AL_ECHO_MAX_DELAY (0.207f) -#define AL_ECHO_DEFAULT_DELAY (0.1f) - -#define AL_ECHO_MIN_LRDELAY (0.0f) -#define AL_ECHO_MAX_LRDELAY (0.404f) -#define AL_ECHO_DEFAULT_LRDELAY (0.1f) - -#define AL_ECHO_MIN_DAMPING (0.0f) -#define AL_ECHO_MAX_DAMPING (0.99f) -#define AL_ECHO_DEFAULT_DAMPING (0.5f) - -#define AL_ECHO_MIN_FEEDBACK (0.0f) -#define AL_ECHO_MAX_FEEDBACK (1.0f) -#define AL_ECHO_DEFAULT_FEEDBACK (0.5f) - -#define AL_ECHO_MIN_SPREAD (-1.0f) -#define AL_ECHO_MAX_SPREAD (1.0f) -#define AL_ECHO_DEFAULT_SPREAD (-1.0f) - -/* Flanger effect */ -#define AL_FLANGER_WAVEFORM_SINUSOID (0) -#define AL_FLANGER_WAVEFORM_TRIANGLE (1) - -#define AL_FLANGER_MIN_WAVEFORM (0) -#define AL_FLANGER_MAX_WAVEFORM (1) -#define AL_FLANGER_DEFAULT_WAVEFORM (1) - -#define AL_FLANGER_MIN_PHASE (-180) -#define AL_FLANGER_MAX_PHASE (180) -#define AL_FLANGER_DEFAULT_PHASE (0) - -#define AL_FLANGER_MIN_RATE (0.0f) -#define AL_FLANGER_MAX_RATE (10.0f) -#define AL_FLANGER_DEFAULT_RATE (0.27f) - -#define AL_FLANGER_MIN_DEPTH (0.0f) -#define AL_FLANGER_MAX_DEPTH (1.0f) -#define AL_FLANGER_DEFAULT_DEPTH (1.0f) - -#define AL_FLANGER_MIN_FEEDBACK (-1.0f) -#define AL_FLANGER_MAX_FEEDBACK (1.0f) -#define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f) - -#define AL_FLANGER_MIN_DELAY (0.0f) -#define AL_FLANGER_MAX_DELAY (0.004f) -#define AL_FLANGER_DEFAULT_DELAY (0.002f) - -/* Frequency shifter effect */ -#define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY (0.0f) -#define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY (24000.0f) -#define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY (0.0f) - -#define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION (0) -#define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION (2) -#define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION (0) - -#define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN (0) -#define AL_FREQUENCY_SHIFTER_DIRECTION_UP (1) -#define AL_FREQUENCY_SHIFTER_DIRECTION_OFF (2) - -#define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION (0) -#define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION (2) -#define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION (0) - -/* Vocal morpher effect */ -#define AL_VOCAL_MORPHER_MIN_PHONEMEA (0) -#define AL_VOCAL_MORPHER_MAX_PHONEMEA (29) -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA (0) - -#define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING (-24) -#define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING (24) -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING (0) - -#define AL_VOCAL_MORPHER_MIN_PHONEMEB (0) -#define AL_VOCAL_MORPHER_MAX_PHONEMEB (29) -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB (10) - -#define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING (-24) -#define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING (24) -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING (0) - -#define AL_VOCAL_MORPHER_PHONEME_A (0) -#define AL_VOCAL_MORPHER_PHONEME_E (1) -#define AL_VOCAL_MORPHER_PHONEME_I (2) -#define AL_VOCAL_MORPHER_PHONEME_O (3) -#define AL_VOCAL_MORPHER_PHONEME_U (4) -#define AL_VOCAL_MORPHER_PHONEME_AA (5) -#define AL_VOCAL_MORPHER_PHONEME_AE (6) -#define AL_VOCAL_MORPHER_PHONEME_AH (7) -#define AL_VOCAL_MORPHER_PHONEME_AO (8) -#define AL_VOCAL_MORPHER_PHONEME_EH (9) -#define AL_VOCAL_MORPHER_PHONEME_ER (10) -#define AL_VOCAL_MORPHER_PHONEME_IH (11) -#define AL_VOCAL_MORPHER_PHONEME_IY (12) -#define AL_VOCAL_MORPHER_PHONEME_UH (13) -#define AL_VOCAL_MORPHER_PHONEME_UW (14) -#define AL_VOCAL_MORPHER_PHONEME_B (15) -#define AL_VOCAL_MORPHER_PHONEME_D (16) -#define AL_VOCAL_MORPHER_PHONEME_F (17) -#define AL_VOCAL_MORPHER_PHONEME_G (18) -#define AL_VOCAL_MORPHER_PHONEME_J (19) -#define AL_VOCAL_MORPHER_PHONEME_K (20) -#define AL_VOCAL_MORPHER_PHONEME_L (21) -#define AL_VOCAL_MORPHER_PHONEME_M (22) -#define AL_VOCAL_MORPHER_PHONEME_N (23) -#define AL_VOCAL_MORPHER_PHONEME_P (24) -#define AL_VOCAL_MORPHER_PHONEME_R (25) -#define AL_VOCAL_MORPHER_PHONEME_S (26) -#define AL_VOCAL_MORPHER_PHONEME_T (27) -#define AL_VOCAL_MORPHER_PHONEME_V (28) -#define AL_VOCAL_MORPHER_PHONEME_Z (29) - -#define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID (0) -#define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE (1) -#define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH (2) - -#define AL_VOCAL_MORPHER_MIN_WAVEFORM (0) -#define AL_VOCAL_MORPHER_MAX_WAVEFORM (2) -#define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM (0) - -#define AL_VOCAL_MORPHER_MIN_RATE (0.0f) -#define AL_VOCAL_MORPHER_MAX_RATE (10.0f) -#define AL_VOCAL_MORPHER_DEFAULT_RATE (1.41f) - -/* Pitch shifter effect */ -#define AL_PITCH_SHIFTER_MIN_COARSE_TUNE (-12) -#define AL_PITCH_SHIFTER_MAX_COARSE_TUNE (12) -#define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE (12) - -#define AL_PITCH_SHIFTER_MIN_FINE_TUNE (-50) -#define AL_PITCH_SHIFTER_MAX_FINE_TUNE (50) -#define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE (0) - -/* Ring modulator effect */ -#define AL_RING_MODULATOR_MIN_FREQUENCY (0.0f) -#define AL_RING_MODULATOR_MAX_FREQUENCY (8000.0f) -#define AL_RING_MODULATOR_DEFAULT_FREQUENCY (440.0f) - -#define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF (0.0f) -#define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF (24000.0f) -#define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF (800.0f) - -#define AL_RING_MODULATOR_SINUSOID (0) -#define AL_RING_MODULATOR_SAWTOOTH (1) -#define AL_RING_MODULATOR_SQUARE (2) - -#define AL_RING_MODULATOR_MIN_WAVEFORM (0) -#define AL_RING_MODULATOR_MAX_WAVEFORM (2) -#define AL_RING_MODULATOR_DEFAULT_WAVEFORM (0) - -/* Autowah effect */ -#define AL_AUTOWAH_MIN_ATTACK_TIME (0.0001f) -#define AL_AUTOWAH_MAX_ATTACK_TIME (1.0f) -#define AL_AUTOWAH_DEFAULT_ATTACK_TIME (0.06f) - -#define AL_AUTOWAH_MIN_RELEASE_TIME (0.0001f) -#define AL_AUTOWAH_MAX_RELEASE_TIME (1.0f) -#define AL_AUTOWAH_DEFAULT_RELEASE_TIME (0.06f) - -#define AL_AUTOWAH_MIN_RESONANCE (2.0f) -#define AL_AUTOWAH_MAX_RESONANCE (1000.0f) -#define AL_AUTOWAH_DEFAULT_RESONANCE (1000.0f) - -#define AL_AUTOWAH_MIN_PEAK_GAIN (0.00003f) -#define AL_AUTOWAH_MAX_PEAK_GAIN (31621.0f) -#define AL_AUTOWAH_DEFAULT_PEAK_GAIN (11.22f) - -/* Compressor effect */ -#define AL_COMPRESSOR_MIN_ONOFF (0) -#define AL_COMPRESSOR_MAX_ONOFF (1) -#define AL_COMPRESSOR_DEFAULT_ONOFF (1) - -/* Equalizer effect */ -#define AL_EQUALIZER_MIN_LOW_GAIN (0.126f) -#define AL_EQUALIZER_MAX_LOW_GAIN (7.943f) -#define AL_EQUALIZER_DEFAULT_LOW_GAIN (1.0f) - -#define AL_EQUALIZER_MIN_LOW_CUTOFF (50.0f) -#define AL_EQUALIZER_MAX_LOW_CUTOFF (800.0f) -#define AL_EQUALIZER_DEFAULT_LOW_CUTOFF (200.0f) - -#define AL_EQUALIZER_MIN_MID1_GAIN (0.126f) -#define AL_EQUALIZER_MAX_MID1_GAIN (7.943f) -#define AL_EQUALIZER_DEFAULT_MID1_GAIN (1.0f) - -#define AL_EQUALIZER_MIN_MID1_CENTER (200.0f) -#define AL_EQUALIZER_MAX_MID1_CENTER (3000.0f) -#define AL_EQUALIZER_DEFAULT_MID1_CENTER (500.0f) - -#define AL_EQUALIZER_MIN_MID1_WIDTH (0.01f) -#define AL_EQUALIZER_MAX_MID1_WIDTH (1.0f) -#define AL_EQUALIZER_DEFAULT_MID1_WIDTH (1.0f) - -#define AL_EQUALIZER_MIN_MID2_GAIN (0.126f) -#define AL_EQUALIZER_MAX_MID2_GAIN (7.943f) -#define AL_EQUALIZER_DEFAULT_MID2_GAIN (1.0f) - -#define AL_EQUALIZER_MIN_MID2_CENTER (1000.0f) -#define AL_EQUALIZER_MAX_MID2_CENTER (8000.0f) -#define AL_EQUALIZER_DEFAULT_MID2_CENTER (3000.0f) - -#define AL_EQUALIZER_MIN_MID2_WIDTH (0.01f) -#define AL_EQUALIZER_MAX_MID2_WIDTH (1.0f) -#define AL_EQUALIZER_DEFAULT_MID2_WIDTH (1.0f) - -#define AL_EQUALIZER_MIN_HIGH_GAIN (0.126f) -#define AL_EQUALIZER_MAX_HIGH_GAIN (7.943f) -#define AL_EQUALIZER_DEFAULT_HIGH_GAIN (1.0f) - -#define AL_EQUALIZER_MIN_HIGH_CUTOFF (4000.0f) -#define AL_EQUALIZER_MAX_HIGH_CUTOFF (16000.0f) -#define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF (6000.0f) - - -/* Source parameter value ranges and defaults. */ -#define AL_MIN_AIR_ABSORPTION_FACTOR (0.0f) -#define AL_MAX_AIR_ABSORPTION_FACTOR (10.0f) -#define AL_DEFAULT_AIR_ABSORPTION_FACTOR (0.0f) - -#define AL_MIN_ROOM_ROLLOFF_FACTOR (0.0f) -#define AL_MAX_ROOM_ROLLOFF_FACTOR (10.0f) -#define AL_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) - -#define AL_MIN_CONE_OUTER_GAINHF (0.0f) -#define AL_MAX_CONE_OUTER_GAINHF (1.0f) -#define AL_DEFAULT_CONE_OUTER_GAINHF (1.0f) - -#define AL_MIN_DIRECT_FILTER_GAINHF_AUTO AL_FALSE -#define AL_MAX_DIRECT_FILTER_GAINHF_AUTO AL_TRUE -#define AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO AL_TRUE - -#define AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_FALSE -#define AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE -#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE - -#define AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_FALSE -#define AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE -#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE - - -/* Listener parameter value ranges and defaults. */ -#define AL_MIN_METERS_PER_UNIT FLT_MIN -#define AL_MAX_METERS_PER_UNIT FLT_MAX -#define AL_DEFAULT_METERS_PER_UNIT (1.0f) - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* AL_EFX_H */ diff --git a/external/win32-specific/OpenalSoft/prebuilt/OpenAL32.dll b/external/win32-specific/OpenalSoft/prebuilt/OpenAL32.dll deleted file mode 100644 index af29da9..0000000 Binary files a/external/win32-specific/OpenalSoft/prebuilt/OpenAL32.dll and /dev/null differ diff --git a/external/win32-specific/OpenalSoft/prebuilt/OpenAL32.lib b/external/win32-specific/OpenalSoft/prebuilt/OpenAL32.lib deleted file mode 100644 index 6425903..0000000 Binary files a/external/win32-specific/OpenalSoft/prebuilt/OpenAL32.lib and /dev/null differ diff --git a/external/win32-specific/zlib/Readme.md b/external/win32-specific/zlib/Readme.md deleted file mode 100644 index 7559778..0000000 --- a/external/win32-specific/zlib/Readme.md +++ /dev/null @@ -1,3 +0,0 @@ -### Tips - -use same CMakeLists.txt file with "../../zlib" (/zlib) \ No newline at end of file diff --git a/external/win32-specific/zlib/include/zconf.h b/external/win32-specific/zlib/include/zconf.h deleted file mode 100755 index 02ce56c..0000000 --- a/external/win32-specific/zlib/include/zconf.h +++ /dev/null @@ -1,428 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2010 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ - -/* all linked symbols */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzgetc z_gzgetc -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# define gzprintf z_gzprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzwrite z_gzwrite -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetHeader z_inflateGetHeader -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# define uncompress z_uncompress -# define zError z_zError -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# define gzFile z_gzFile -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef STDC -# include /* for off_t */ -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include /* for SEEK_* and off_t */ -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -#endif - -#ifndef SEEK_SET -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 -# define z_off64_t off64_t -#else -# define z_off64_t z_off_t -#endif - -#if defined(__OS400__) -# define NO_vsnprintf -#endif - -#if defined(__MVS__) -# define NO_vsnprintf -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/external/win32-specific/zlib/include/zlib.h b/external/win32-specific/zlib/include/zlib.h deleted file mode 100755 index bfbba83..0000000 --- a/external/win32-specific/zlib/include/zlib.h +++ /dev/null @@ -1,1613 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.5, April 19th, 2010 - - Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt - (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). -*/ - -#ifndef ZLIB_H -#define ZLIB_H - -#include "zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.2.5" -#define ZLIB_VERNUM 0x1250 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 5 -#define ZLIB_VER_SUBREVISION 0 - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed data. - This version of the library supports only one compression method (deflation) - but other algorithms will be added later and will have the same stream - interface. - - Compression can be done in a single step if the buffers are large enough, - or can be done by repeated calls of the compression function. In the latter - case, the application must provide more input and/or consume the output - (providing more output space) before each call. - - The compressed data format used by default by the in-memory functions is - the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped - around a deflate stream, which is itself documented in RFC 1951. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio using the functions that start - with "gz". The gzip format is different from the zlib format. gzip is a - gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. - - This library can optionally read and write gzip streams in memory as well. - - The zlib format was designed to be compact and fast for use in memory - and on communications channels. The gzip format was designed for single- - file compression on file systems, has a larger header than zlib to maintain - directory information, and uses a different, slower check method than zlib. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never crash - even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total nb of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total nb of bytes output so far */ - - char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: binary or text */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - gzip header information passed to and from zlib routines. See RFC 1952 - for more details on the meanings of these fields. -*/ -typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ -} gz_header; - -typedef gz_header FAR *gz_headerp; - -/* - The application must update next_in and avail_in when avail_in has dropped - to zero. It must update next_out and avail_out when avail_out has dropped - to zero. The application must initialize zalloc, zfree and opaque before - calling the init function. All other fields are set by the compression - library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or progress - reports. After compression, total_in holds the total size of the - uncompressed data and may be saved for use in the decompressor (particularly - if the decompressor wants to decompress everything in a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -#define Z_BLOCK 5 -#define Z_TREES 6 -/* Allowed flush values; see deflate() and inflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative values - * are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_RLE 3 -#define Z_FIXED 4 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_TEXT 1 -#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ -#define Z_UNKNOWN 2 -/* Possible values of the data_type field (though see inflate()) */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - - /* basic functions */ - -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is not - compatible with the zlib.h header file used by the application. This check - is automatically made by deflateInit and inflateInit. - */ - -/* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at all - (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION - requests a default compromise between speed and compression (currently - equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if level is not a valid compression level, or - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). msg is set to null - if there is no error message. deflateInit does not perform any compression: - this will be done by deflate(). -*/ - - -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). Some - output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating avail_in or avail_out accordingly; avail_out should - never be zero before the call. The application can consume the compressed - output when it wants, for example when the output buffer is full (avail_out - == 0), or after each call of deflate(). If deflate returns Z_OK and with - zero avail_out, it must be called again after making room in the output - buffer because there might be more output pending. - - Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to - decide how much data to accumulate before producing output, in order to - maximize compression. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In - particular avail_in is zero after the call if enough output space has been - provided before the call.) Flushing may degrade compression for some - compression algorithms and so it should be used only when necessary. This - completes the current deflate block and follows it with an empty stored block - that is three bits plus filler bits to the next byte, followed by four bytes - (00 00 ff ff). - - If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the - output buffer, but the output is not aligned to a byte boundary. All of the - input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. - This completes the current deflate block and follows it with an empty fixed - codes block that is 10 bits long. This assures that enough bytes are output - in order for the decompressor to finish the block before the empty fixed code - block. - - If flush is set to Z_BLOCK, a deflate block is completed and emitted, as - for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to - seven bits of the current block are held to be written as the next byte after - the next deflate block is completed. In this case, the decompressor may not - be provided enough bits at this point in order to complete decompression of - the data provided so far to the compressor. It may need to wait for the next - block to be emitted. This is for advanced applications that need to control - the emission of deflate blocks. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there was - enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the stream - are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least the - value returned by deflateBound (see below). If deflate does not return - Z_STREAM_END, then it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect the - compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the - exact value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit() does not process any header information -- that is deferred - until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing will - resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all the uncompressed data. (The size - of the uncompressed data may have been saved by the compressor for this - purpose.) The next operation on this stream must be inflateEnd to deallocate - the decompression state. The use of Z_FINISH is never required, but can be - used to inform inflate that a faster approach may be used for the single - inflate() call. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the only effect of the flush parameter in this implementation - is on the return value of inflate(), as noted below, or when it returns early - because Z_BLOCK or Z_TREES is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the adler32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the adler32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained, so applications that need that information should - instead use raw inflate, see inflateInit2() below, or inflateBack() and - perform their own processing of the gzip header and trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. This function must be called - immediately after deflateInit, deflateInit2 or deflateReset, before any call - of deflate. The compressor and decompressor must use exactly the same - dictionary (see inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if the compression method is bsort). deflateSetDictionary does not - perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. The - stream will keep the same compression level and any other attributes that - may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression level is changed, the input available so far is - compressed with the old level (and may be flushed); the new level will take - effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to be - compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if - strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). -*/ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called - immediately after inflateInit2() or inflateReset() and before any call of - inflate() to set the dictionary. The application must insure that the - dictionary that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a full flush point (see above the - description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR - if no more input was provided, Z_DATA_ERROR if no flush point has been - found, or Z_STREAM_ERROR if the stream structure was inconsistent. In the - success case, the application may save the current current value of total_in - which indicates where valid compressed data was found. In the error case, - the application may repeatedly call inflateSync, providing more input each - time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above or -1 << 16 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the paramaters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is more efficient than inflate() for - file i/o applications in that it avoids copying between the output and the - sliding window by simply making the window itself the output buffer. This - function trusts the application to not change the output buffer passed by - the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the normal - behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed buffer. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. -*/ - - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef voidp gzFile; /* opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) Also "a" - can be used instead of "w" to request that the gzip stream that will be - written be appended to the file. "+" will result in an error, since reading - and writing to the same gzip file is not supported. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Two buffers are allocated, either both of the specified size when - writing, or one of the specified size and the other twice that size when - reading. A larger buffer size of, for example, 64K or 128K bytes will - noticeably increase the speed of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file was not in gzip format, gzread copies the given number of - bytes into the buffer. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream, or failing that, reading the rest - of the input file directly without decompression. The entire input file - will be read if gzread is called until it returns less than the requested - len. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or 0 in case of error. The number of - uncompressed bytes written is limited to 8191, or one less than the buffer - size given to gzbuffer(). The caller should assure that this limit is not - exceeded. If it is exceeded, then gzprintf() will return an error (0) with - nothing written. In this case, there may also be a buffer overflow with - unpredictable consequences, which is possible only if zlib was compiled with - the insecure functions sprintf() or vsprintf() because the secure snprintf() - or vsnprintf() functions were not available. This can be determined using - zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatented gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. This state can change from - false to true while reading the input file if the end of a gzip stream is - reached, but is followed by data that is not another gzip stream. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the for the crc. Pre- and post-conditioning (one's - complement) is performed within this function so it shouldn't be done by the - application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, sizeof(z_stream)) - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0 -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# ifdef _LARGEFILE64_SOURCE - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -/* hack for buggy compilers */ -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; -#endif - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/external/zlib/CMakeLists.txt b/external/zlib/CMakeLists.txt index e46c9f7..559df0a 100644 --- a/external/zlib/CMakeLists.txt +++ b/external/zlib/CMakeLists.txt @@ -13,20 +13,18 @@ else() add_library(${target_name} STATIC IMPORTED GLOBAL) endif() +set_target_properties(${target_name} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include" +) + if(MACOSX OR ANDROID) - set_target_properties(${target_name} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include" - ) set_target_properties(${target_name} PROPERTIES IMPORTED_LOCATION "${platform_spec_path}/libz.a" ) elseif(WINDOWS) set_target_properties(${target_name} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/../win32-specific/zlib/include" - ) - set_target_properties(${target_name} PROPERTIES - IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../win32-specific/zlib/prebuilt/zlib1.dll" - IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/../win32-specific/zlib/prebuilt/libzlib.lib" + IMPORTED_LOCATION "${platform_spec_path}/zlib1.dll" + IMPORTED_IMPLIB "${platform_spec_path}/libzlib.lib" ) endif() diff --git a/external/win32-specific/zlib/prebuilt/libzlib.lib b/external/zlib/prebuilt/win32/libzlib.lib similarity index 100% rename from external/win32-specific/zlib/prebuilt/libzlib.lib rename to external/zlib/prebuilt/win32/libzlib.lib diff --git a/external/win32-specific/zlib/prebuilt/zlib1.dll b/external/zlib/prebuilt/win32/zlib1.dll similarity index 100% rename from external/win32-specific/zlib/prebuilt/zlib1.dll rename to external/zlib/prebuilt/win32/zlib1.dll diff --git a/tools/CreateProject.py b/tools/CreateProject.py index 5cac832..2b54c5b 100755 --- a/tools/CreateProject.py +++ b/tools/CreateProject.py @@ -140,8 +140,8 @@ def createProject(packageName, outputDir, isLandscape, needCopyCocos2d): os.mkdir(joinDir(outputDir, "frameworks", "cocos2d-x")) for dirName in ["cmake", "cocos", "extensions", "external"]: shutil.copytree(joinDir(engineRoot, dirName), joinDir(outputDir, "frameworks", "cocos2d-x", dirName)) - for fileName in ["CHANGELOG", "VERSION", "README.md"]: - copyFile(joinDir(engineRoot, fileName), joinDir(outputDir, "frameworks", "cocos2d-x", fileName)) + # for fileName in ["CHANGELOG", "VERSION", "README.md"]: + # copyFile(joinDir(engineRoot, fileName), joinDir(outputDir, "frameworks", "cocos2d-x", fileName)) copyFile(joinDir(engineRoot, "cocos", "scripting", "lua-bindings", "manual", "lua_module_register.h"), joinDir(outputDir, "frameworks", "runtime-src", "Classes", "lua_module_register.h")) shutil.rmtree(joinDir(outputDir, "frameworks", "cocos2d-x", "cocos", "scripting", "lua-bindings", "script")) # remove double files print("====> Done.")