Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / filebaseulaw.C
diff --git a/cinelerra-5.0/cinelerra/filebaseulaw.C b/cinelerra-5.0/cinelerra/filebaseulaw.C
deleted file mode 100644 (file)
index fa4a748..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-
-/*
- * CINELERRA
- * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program 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 General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- * 
- */
-
-#include "assets.h"
-#include "byteorder.h"
-#include "file.h"
-#include "filebase.h"
-#include "sizes.h"
-
-// ======================================= ulaw codecs
-
-float FileBase::ulawtofloat(char ulaw)
-{
-//printf("%f\n", ulawtofloat_ptr[ulaw]);
-       return ulawtofloat_ptr[(unsigned char)ulaw];
-}
-
-char FileBase::floattoulaw(float value)
-{
-       return floattoulaw_ptr[(int)(value * 32767)];
-}
-
-// turn off the trap as per the MIL-STD
-#undef ZEROTRAP
-// define the add-in bias for 16 bit samples
-#define uBIAS 0x84
-#define uCLIP 32635
-
-int FileBase::generate_ulaw_tables()
-{
-       if( !ulawtofloat_table )
-       {
-               static int exp_lut[8] = {
-                       0, 132, 396, 924, 1980, 4092, 8316, 16764
-               };
-               int sign, exponent, mantissa, sample;
-               unsigned char ulawbyte;
-
-               ulawtofloat_table = new float[256];
-               ulawtofloat_ptr = ulawtofloat_table;
-               for(int i = 0; i < 256; i++)
-               {
-                       ulawbyte = (unsigned char)i;
-                       ulawbyte = ~ ulawbyte;
-                       sign = ( ulawbyte & 0x80 );
-                       exponent = ( ulawbyte >> 4 ) & 0x07;
-                       mantissa = ulawbyte & 0x0F;
-                       sample = exp_lut[exponent] + ( mantissa << ( exponent + 3 ) );
-                       if ( sign != 0 ) sample = -sample;
-                       ulawtofloat_ptr[(int)i] = (float)sample / 32768;
-               }
-       }
-
-       if( !floattoulaw_table )
-       {
-               int sign, exponent, mantissa;
-               unsigned char ulawbyte;
-               int sample;
-               int exp_lut[256] = {
-                       0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,
-                       4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-                       5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-                       5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-                       6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-                       6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-                       6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-                       6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-                       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-               };
-
-               floattoulaw_table = new unsigned char[65536];
-               floattoulaw_ptr = floattoulaw_table + 32768;
-
-               for(int i = -32768; i < 32768; i++)
-               {
-                       sample = i;
-// Get the sample into sign-magnitude.
-                       sign = (sample >> 8) & 0x80;            // set aside the sign
-                       if ( sign != 0 ) sample = -sample;              // get magnitude
-                       if ( sample > uCLIP ) sample = uCLIP;           // clip the magnitude
-// Convert from 16 bit linear to ulaw.
-                       sample = sample + uBIAS;
-                       exponent = exp_lut[( sample >> 7 ) & 0xFF];
-                       mantissa = ( sample >> ( exponent + 3 ) ) & 0x0F;
-                       ulawbyte = ~ ( sign | ( exponent << 4 ) | mantissa );
-#ifdef ZEROTRAP
-                       if ( ulawbyte == 0 ) ulawbyte = 0x02;   /* optional CCITT trap */
-#endif
-                       floattoulaw_ptr[i] = ulawbyte;
-               }
-       }
-       return 0;
-}
-
-int FileBase::delete_ulaw_tables()
-{
-       if(floattoulaw_table) delete [] floattoulaw_table;
-       if(ulawtofloat_table) delete [] ulawtofloat_table;
-       floattoulaw_table = 0;
-       ulawtofloat_table = 0;
-       return 0;
-}