diff Source/Decoder.h @ 12:87dc3d84c120

Addressed the load program defaults over user settings 'feature'. Removed isChild on objects that are added before the frame creation since a)they're always there and b) doesn't write to all displays present.
author martinm_home <martin.morrell@eecs.qmul.ac.uk>
date Thu, 27 Sep 2012 23:29:16 +0100
parents 76e2e62635b4
children
line wrap: on
line diff
--- a/Source/Decoder.h	Thu Sep 27 12:33:46 2012 +0100
+++ b/Source/Decoder.h	Thu Sep 27 23:29:16 2012 +0100
@@ -1,6 +1,6 @@
 /*
  *  Decoder.h
- *  SoundField
+ *  ClassicAmbiDec
  *
  *  Created by Martin Morrell on 14/06/2012.
  *  Copyright 2012 Queen Mary University of London. All rights reserved.
@@ -12,6 +12,8 @@
 {	
 	friend class MyEditor;
 public:
+    Decoder();
+    
     //Transforms & Zoom
 	double Rotate; //+/-180 degrees
 	double Tilt; //+/-180 degrees
@@ -30,60 +32,38 @@
 	int    Mode; //0 or 1 for xy or ms
 	double RearVerb; //0-24dB
 	double HiVerb; //0-24dB
-	double outputL; //Left output
-	double outputR; //Right output
 	
     //Centre Speaker Decoding
-    double outputC; //Centre output
     double centrePattern; //Centre mic pattern
     double centreGain; //Centre mic gain
     
     //Subwoofer Signal
-    double outputS; //Subwoofer output
     double subGain; //Subwoofer gain
     
     //Surround Speaker Decoding
-    double outputSL; //Surround Left output
-    double outputSR; //Surround Right output
     int    surMode; //Rear mics mode
     double surPattern; //Rear mics pattern
     double surWidth; //Rear mics width
     double surGain; //Rear mics gain
-    double output[6]; //Final Output
     
-
-    
-    
-    //Filter Code for subwoofer
+    //Filter Code
     int Fs; //Sample Rate
     int Fc; //Crossover Frequency
-    double bLF[3]; //b Coefficients for Lower Frequency Band
-    double bHF[3]; //b Coefficients for Higher Frequency Band
-    double a[3]; //a Coefficients
-    double prevInS[2]; //Previous Input LF Samples
-    double prevOutS[2]; //Previous Output LF Samples
-    double prevInw[2]; //Previous Input w Samples
-    double prevOutw[2]; //Previous Output w Samples
-    double prevInx[2]; //Previous Input x Samples
-    double prevOutx[2]; //Previous Output x Samples
-    double prevIny[2]; //Previous Input y Samples
-    double prevOuty[2]; //Previous Output y Samples
-    double prevInz[2]; //Previous Input z Samples
-    double prevOutz[2]; //Previous Output z Samples
-    
     void   clearFilter(); //Clears the previous filter values
-    
+    void filterCoefs(); //Calculates the filter coefficients
     
 	//Overall Decoding Functions
+    double output[6]; //Final Output
     int processDecoder(double &w, double &x, double &y, double &z); //Called fucntion to do the decoding
    
     
 	
-//private:
+private:
+    //Conversion Functions
 	double degRad(double angle); //Convert degreesto radians
 	double radDeg(double angle); //Convert radians to degrees
 	
-	//SoundField Rotations
+	//Sound Field Rotations
 	void rotateField(double &x, double &y);
 	void tiltField(double &x, double &y);
 	void tumbleField(double &x, double &y);
@@ -108,12 +88,24 @@
 	void msSurDecode(double &w, double &x, double &y, double &z);
     
     //Filter Code
-    void filterCoefs();
     void filterLF(double &w);
     void filterHF(double &w, double &x, double &y, double &z);
+    double bLF[3]; //b Coefficients for Lower Frequency Band
+    double bHF[3]; //b Coefficients for Higher Frequency Band
+    double a[3]; //a Coefficients
+    double prevInS[2]; //Previous Input LF Samples
+    double prevOutS[2]; //Previous Output LF Samples
+    double prevInw[2]; //Previous Input w Samples
+    double prevOutw[2]; //Previous Output w Samples
+    double prevInx[2]; //Previous Input x Samples
+    double prevOutx[2]; //Previous Output x Samples
+    double prevIny[2]; //Previous Input y Samples
+    double prevOuty[2]; //Previous Output y Samples
+    double prevInz[2]; //Previous Input z Samples
+    double prevOutz[2]; //Previous Output z Samples
     
     //Decoder Types
-    void monoDecoder(double &w, double &x, double &y, double &z); //Decode to mono
+    void monoDecoder(double &w, double &x, double &y, double &z); //Decode to mono, implemented but not used
 	void stereoDecoder(double &w, double &x, double &y, double &z); //Decode to stereo
     void twoOneDecoder(double &w, double &x, double &y, double &z); //Decode to stereo
     void quadDecoder(double &w, double &x, double &y, double &z); //Decode to LRCS
@@ -121,5 +113,10 @@
 	void fiveOneDecoder(double &w, double &x, double &y, double &z); //Decode to 5.1
     void heller1(double &w, double &x, double &y, double &z);
     void heller2(double &w, double &x, double &y, double &z);
-    void craven(double &w, double &x, double &y, double &z);
+    double outputL; //Left output
+    double outputR; //Right output
+    double outputC; //Centre output
+    double outputS; //Subwoofer output
+    double outputSL; //Surround Left output
+    double outputSR; //Surround Right output
 };
\ No newline at end of file