Benny Prijono | eb30bf5 | 2006-03-04 20:43:52 +0000 | [diff] [blame] | 1 | /* Copyright (C) 2002 Jean-Marc Valin */ |
| 2 | /** |
| 3 | @file misc.h |
| 4 | @brief Various compatibility routines for Speex |
| 5 | */ |
| 6 | /* |
| 7 | Redistribution and use in source and binary forms, with or without |
| 8 | modification, are permitted provided that the following conditions |
| 9 | are met: |
| 10 | |
| 11 | - Redistributions of source code must retain the above copyright |
| 12 | notice, this list of conditions and the following disclaimer. |
| 13 | |
| 14 | - Redistributions in binary form must reproduce the above copyright |
| 15 | notice, this list of conditions and the following disclaimer in the |
| 16 | documentation and/or other materials provided with the distribution. |
| 17 | |
| 18 | - Neither the name of the Xiph.org Foundation nor the names of its |
| 19 | contributors may be used to endorse or promote products derived from |
| 20 | this software without specific prior written permission. |
| 21 | |
| 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 23 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 24 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 25 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR |
| 26 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| 27 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| 28 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| 29 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
| 30 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 31 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 32 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 33 | */ |
| 34 | |
| 35 | #ifndef MISC_H |
| 36 | #define MISC_H |
| 37 | |
| 38 | #ifndef SPEEX_VERSION |
| 39 | #define SPEEX_MAJOR_VERSION 1 /**< Major Speex version. */ |
| 40 | #define SPEEX_MINOR_VERSION 1 /**< Minor Speex version. */ |
| 41 | #define SPEEX_MICRO_VERSION 12 /**< Micro Speex version. */ |
| 42 | #define SPEEX_EXTRA_VERSION "" /**< Extra Speex version. */ |
| 43 | #define SPEEX_VERSION "speex-1.1.12" /**< Speex version string. */ |
| 44 | #endif |
| 45 | |
| 46 | #include "arch.h" |
| 47 | |
| 48 | #ifndef RELEASE |
| 49 | /** Print a named vector to stdout */ |
| 50 | void print_vec(float *vec, int len, char *name); |
| 51 | #endif |
| 52 | |
| 53 | /** Convert big endian */ |
| 54 | spx_uint32_t be_int(spx_uint32_t i); |
| 55 | /** Convert little endian */ |
| 56 | spx_uint32_t le_int(spx_uint32_t i); |
| 57 | |
| 58 | /** Speex wrapper for calloc. To do your own dynamic allocation, all you need to do is replace this function, speex_realloc and speex_free */ |
| 59 | void *speex_alloc (int size); |
| 60 | |
| 61 | /** Same as speex_alloc, except that the area is only needed inside a Speex call (might cause problem with wideband though) */ |
| 62 | void *speex_alloc_scratch (int size); |
| 63 | |
| 64 | /** Speex wrapper for realloc. To do your own dynamic allocation, all you need to do is replace this function, speex_alloc and speex_free */ |
| 65 | void *speex_realloc (void *ptr, int size); |
| 66 | |
| 67 | /** Speex wrapper for calloc. To do your own dynamic allocation, all you need to do is replace this function, speex_realloc and speex_alloc */ |
| 68 | void speex_free (void *ptr); |
| 69 | |
| 70 | /** Same as speex_alloc, except that the area is only needed inside a Speex call (might cause problem with wideband though) */ |
| 71 | void speex_free_scratch (void *ptr); |
| 72 | |
| 73 | /** Speex wrapper for mem_move */ |
| 74 | void *speex_move (void *dest, void *src, int n); |
| 75 | |
| 76 | /** Speex wrapper for memcpy */ |
| 77 | void speex_memcpy_bytes(char *dst, char *src, int nbytes); |
| 78 | |
| 79 | /** Speex wrapper for memset */ |
| 80 | void speex_memset_bytes(char *dst, char src, int nbytes); |
| 81 | |
| 82 | /** Print error message to stderr */ |
| 83 | void speex_error(const char *str); |
| 84 | |
| 85 | /** Print warning message to stderr */ |
| 86 | void speex_warning(const char *str); |
| 87 | |
| 88 | /** Print warning message with integer argument to stderr */ |
| 89 | void speex_warning_int(const char *str, int val); |
| 90 | |
| 91 | /** Generate a vector of random numbers */ |
| 92 | void speex_rand_vec(float std, spx_sig_t *data, int len); |
| 93 | |
| 94 | /** Generate a random number */ |
| 95 | spx_word32_t speex_rand(spx_word16_t std, spx_int32_t *seed); |
| 96 | |
| 97 | /** Speex wrapper for putc */ |
| 98 | void _speex_putc(int ch, void *file); |
| 99 | |
| 100 | #endif |