provides makefile and makes it compile for david
authoryeom <yeom>
Mon, 20 Jun 2011 22:01:38 +0000 (22:01 +0000)
committeryeom <yeom>
Mon, 20 Jun 2011 22:01:38 +0000 (22:01 +0000)
33 files changed:
Robust/src/Tests/ssJava/mp3decoder/BitReserve.java
Robust/src/Tests/ssJava/mp3decoder/Bitstream.java
Robust/src/Tests/ssJava/mp3decoder/BitstreamErrors.java
Robust/src/Tests/ssJava/mp3decoder/BitstreamException.java
Robust/src/Tests/ssJava/mp3decoder/Control.java
Robust/src/Tests/ssJava/mp3decoder/Crc16.java
Robust/src/Tests/ssJava/mp3decoder/Decoder.java
Robust/src/Tests/ssJava/mp3decoder/DecoderErrors.java
Robust/src/Tests/ssJava/mp3decoder/DecoderException.java
Robust/src/Tests/ssJava/mp3decoder/Equalizer.java
Robust/src/Tests/ssJava/mp3decoder/FrameDecoder.java
Robust/src/Tests/ssJava/mp3decoder/Header.java
Robust/src/Tests/ssJava/mp3decoder/InputStreamSource.java
Robust/src/Tests/ssJava/mp3decoder/JavaLayerError.java
Robust/src/Tests/ssJava/mp3decoder/JavaLayerErrors.java
Robust/src/Tests/ssJava/mp3decoder/JavaLayerException.java
Robust/src/Tests/ssJava/mp3decoder/JavaLayerHook.java
Robust/src/Tests/ssJava/mp3decoder/JavaLayerUtils.java
Robust/src/Tests/ssJava/mp3decoder/LATTICE.java [new file with mode: 0644]
Robust/src/Tests/ssJava/mp3decoder/LOC.java [new file with mode: 0644]
Robust/src/Tests/ssJava/mp3decoder/LayerIDecoder.java
Robust/src/Tests/ssJava/mp3decoder/LayerIIDecoder.java
Robust/src/Tests/ssJava/mp3decoder/LayerIIIDecoder.java
Robust/src/Tests/ssJava/mp3decoder/METHODDEFAULT.java [new file with mode: 0644]
Robust/src/Tests/ssJava/mp3decoder/Manager.java
Robust/src/Tests/ssJava/mp3decoder/Obuffer.java
Robust/src/Tests/ssJava/mp3decoder/OutputChannels.java
Robust/src/Tests/ssJava/mp3decoder/Player.java
Robust/src/Tests/ssJava/mp3decoder/SampleBuffer.java
Robust/src/Tests/ssJava/mp3decoder/Source.java
Robust/src/Tests/ssJava/mp3decoder/SynthesisFilter.java
Robust/src/Tests/ssJava/mp3decoder/huffcodetab.java
Robust/src/Tests/ssJava/mp3decoder/makefile [new file with mode: 0644]

index 9b6da48e951a84b3d446e2e557f5f5e1bfbdd0f8..24794c1aecfeee440410a1a4639469ede4c62af4 100644 (file)
@@ -24,8 +24,6 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
  *----------------------------------------------------------------------\r
  */\r
-\r
-package javazoom.jl.decoder;\r
        \r
 /**\r
  * Implementation of Bit Reservoir for Layer III.\r
index d91ea26f79750f60ad0f66cc449a820021f215c5..b04930458daddac591a9a8997bca750ba79fdcf2 100644 (file)
@@ -33,8 +33,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
-\r
 import java.io.BufferedInputStream;\r
 import java.io.ByteArrayInputStream;\r
 import java.io.IOException;\r
index 26daeb9dffa49fbdbbab686af316b05bb1b3d6eb..07114dbf0c4774b041eac67becb4270f43debe64 100644 (file)
@@ -19,8 +19,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
-\r
 /**\r
  * This interface describes all error codes that can be thrown \r
  * in <code>BistreamException</code>s.\r
index e4afb1a1ff41b9d4fe2535467388539bf9db0b74..ba005809674e358dab2227719d88129774f97476 100644 (file)
@@ -18,8 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
-\r
 /**\r
  * Instances of <code>BitstreamException</code> are thrown \r
  * when operations on a <code>Bitstream</code> fail. \r
index 9d5660495a4bc0af095c5c206dff29138da22cef..c677b5fd1abf5dcd6d323a978e38635a8ae4fc91 100644 (file)
@@ -17,8 +17,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
-\r
 /**\r
  * Work in progress.\r
  */\r
index caad01cae68a9d7a2435baada2e3e346fafebae0..058896af586df805013ad92beada1851db862d10 100644 (file)
@@ -22,7 +22,6 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
  *----------------------------------------------------------------------\r
  */\r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * 16-Bit CRC checksum\r
index 6de55997e69d264a529750ffeebec29d3a1633a2..ffafed306bd0d687aa6e6cae2d8e60563ae8a28a 100644 (file)
@@ -18,7 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
  \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * The <code>Decoder</code> class encapsulates the details of\r
index 686f26022130c7ba60d9a5766f0cc52a5a099ad7..ef3552ada024fc94204c119bd3efd919a8b88ef2 100644 (file)
@@ -19,7 +19,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * This interface provides constants describing the error\r
index 87638ad2642ec330f5e4949a03befd6262f84bd4..a00a20b5a67e5581d448c8659985afe12188a113 100644 (file)
@@ -18,7 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * The <code>DecoderException</code> represents the class of\r
index 439279e610024793a7bcb06d896672df3a64ceec..1dc88f42de9bdd820ef8c76ce8340ecbc709cefc 100644 (file)
@@ -19,7 +19,6 @@
  */\r
 \r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * The <code>Equalizer</code> class can be used to specify\r
index 12912f6e918babb8ccbfda15f05ada1244aeb3a7..9c7029dd5ba5bcbab2ba8c60bdd716d1b12a2c63 100644 (file)
@@ -19,7 +19,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * Implementations of FrameDecoder are responsible for decoding\r
index a36572dc51474ded99d77bfa5cadc9ebc9a69fda..b0dd1001f05f981f8dab18e7f55a5076c3b8ebfc 100644 (file)
@@ -29,7 +29,6 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
  *----------------------------------------------------------------------\r
  */\r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * Class for extracting information from a frame header.\r
index fb6c029930436803347101d7e80fadcab912f9eb..3945c3d0dafe6e911096ad3643e9ba378dc6bab7 100644 (file)
@@ -18,8 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
-\r
 import java.io.IOException;\r
 import java.io.InputStream;\r
 \r
index 042d83a5a4a09c9fe53324aac941a78b074104a3..cc8dde737b8236153237481eef4b280a9b0a2ac7 100644 (file)
@@ -18,8 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
-\r
 /**\r
  * Work in progress.\r
  * \r
index b141ce843d81fb3351f124e90bd1b7c0dbb28abb..4d11270c14f1216fd3b4ef44630f31f6cdf63569 100644 (file)
@@ -18,7 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * Exception erorr codes for components of the JavaLayer API.\r
index 0767bf217708cd6f3e0ba4c2cb4f462b4b8ef0c1..2d47f5cdecbfd669a99064e5e10605599b08b3c3 100644 (file)
@@ -18,7 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 import java.io.PrintStream;\r
 \r
index edd890dd6936f489df405bf14aedf457272225fb..2096d65adc7ec702c3d642002184378b10e1193a 100644 (file)
@@ -17,7 +17,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 import java.io.InputStream;\r
 \r
index b7cd54848af843d9fab907bbd9f8a21d7d783c1f..2156e3dbecdff5c606f612de3888655b35dcb8df 100644 (file)
@@ -18,7 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 import java.io.IOException;\r
 import java.io.InputStream;\r
diff --git a/Robust/src/Tests/ssJava/mp3decoder/LATTICE.java b/Robust/src/Tests/ssJava/mp3decoder/LATTICE.java
new file mode 100644 (file)
index 0000000..3dc53b8
--- /dev/null
@@ -0,0 +1,3 @@
+public @interface LATTICE{
+    String value();
+}
diff --git a/Robust/src/Tests/ssJava/mp3decoder/LOC.java b/Robust/src/Tests/ssJava/mp3decoder/LOC.java
new file mode 100644 (file)
index 0000000..3918fe5
--- /dev/null
@@ -0,0 +1,3 @@
+public @interface LOC{
+    String value();
+}
\ No newline at end of file
index fb936d2b913022324d3963f538310e0908bba7d4..97363a97410173a51d20b3287b8955a580b9d597 100644 (file)
@@ -24,7 +24,6 @@
  *----------------------------------------------------------------------
  */
  
-package javazoom.jl.decoder;
 
 /**
  * Implements decoding of MPEG Audio Layer I frames. 
index 7265b1f8faf69ffd030ac597db08cbfabf95ea06..0872aaa09ba9bbcf829e2423a40a9c253807e625 100644 (file)
@@ -27,7 +27,6 @@
  *----------------------------------------------------------------------
  */
 
-package javazoom.jl.decoder;
 
 /**
  * Implements decoding of MPEG Audio Layer II frames. 
index 9e66a93b7405fa1fdc1eee7cb7f14680f28a9375..056d744c5c825fb3e6a60866fae2b5d675f615ef 100644 (file)
@@ -32,7 +32,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * Class Implementing Layer 3 Decoder.\r
@@ -50,14 +49,14 @@ final class LayerIIIDecoder implements FrameDecoder {
   private int[] is_1d;\r
   private float[][][] ro;\r
   private float[][][] lr;\r
-  private float[] out_1d;\r
+  private float[] out_1d; // 576 samples\r
   private float[][] prevblck;\r
   private float[][] k;\r
   private int[] nonzero;\r
   private Bitstream stream;\r
-  @HEADER private Header header;\r
+  private Header header;\r
   private SynthesisFilter filter1, filter2;\r
-  private Obuffer buffer;\r
+  private Obuffer buffer; // output buffer\r
   private int which_channels;\r
   private BitReserve br;\r
   private III_side_info_t si;\r
@@ -288,20 +287,26 @@ final class LayerIIIDecoder implements FrameDecoder {
     for (; bytes_to_discard > 0; bytes_to_discard--) // bytes_to_discard > br\r
       br.hgetbits(8);\r
     \r
+    // doing something from here\r
+    \r
     // here 'gr' and 'max_gr' should be higher than 'ch','channels', and more\r
-    for (gr = 0; gr < max_gr; gr++) { \r
+    for (gr = 0; gr < max_gr; gr++) { // two granules per channel \r
       // in the loop body, access set={part2_start}      \r
       \r
       // 'ch', 'channels' should be higher than all locs in the below body\r
       for (ch = 0; ch < channels; ch++) { \r
         part2_start = br.hsstell(); // part2_start < br\r
 \r
+        // grab scale factors from the main data. \r
+        // following the scale factors is the actual compressed data\r
         if (header.version() == Header.MPEG1)\r
           get_scale_factors(ch, gr); // no need to care from this side\r
+          // here move scale factor data from 'br' buffer to 'scalefac' field\r
         else\r
           // MPEG-2 LSF, SZD: MPEG-2.5 LSF\r
           get_LSF_scale_factors(ch, gr); // no need to care from this side\r
 \r
+        // here, decoding the compressed audio data \r
         huffman_decode(ch, gr); // no need to care from this side\r
         // System.out.println("CheckSum HuffMan = " + CheckSumHuff);\r
         dequantize_sample(ro[ch], ch, gr); // no need to care from this side\r
@@ -1039,6 +1044,12 @@ final class LayerIIIDecoder implements FrameDecoder {
         *\r
         */\r
   private void reorder(float xr[][], int ch, int gr) {\r
+    // the purpose of reordering: move 'short samples' back to their original position\r
+    // after reorder, the samples are no long ordered by frequency\r
+    \r
+    // the format of input data to reorder: \r
+    // three small chunks of 192 samples each are combined to 576 samples ordered by frequency \r
+    \r
     gr_info_s gr_info = (si.ch[ch].gr[gr]);\r
     int freq, freq3;\r
     int index;\r
@@ -2452,3 +2463,4 @@ final class LayerIIIDecoder implements FrameDecoder {
       { { 8, 8, 5, 0 }, { 15, 12, 9, 0 }, { 6, 18, 9, 0 } } };\r
 \r
 }\r
+\r
diff --git a/Robust/src/Tests/ssJava/mp3decoder/METHODDEFAULT.java b/Robust/src/Tests/ssJava/mp3decoder/METHODDEFAULT.java
new file mode 100644 (file)
index 0000000..8cc6ce7
--- /dev/null
@@ -0,0 +1,3 @@
+public @interface METHODDEFAULT{
+    String value();
+}
index 47f531180f34c2047bb1c783d0ee8338f7f38476..fe855401ebc5b97f090cb1655c35c7f873db6d7d 100644 (file)
@@ -17,7 +17,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * Work in progress.\r
index 0481f11c64f6bc5c335cba089ead2fdd741a6713..d05900d06dd811604f9e088eeab5ab07e9255045 100644 (file)
@@ -1,88 +1,88 @@
-/* \r
- * 11/19/04  1.0 moved to LGPL.\r
- * 12/12/99  Added appendSamples() method for efficiency. MDM.\r
- * 15/02/99 ,Java Conversion by E.B ,ebsp@iname.com, JavaLayer\r
- *\r
- *   Declarations for output buffer, includes operating system\r
- *   implementation of the virtual Obuffer. Optional routines\r
- *   enabling seeks and stops added by Jeff Tsay. \r
- *\r
- *  @(#) obuffer.h 1.8, last edit: 6/15/94 16:51:56\r
- *  @(#) Copyright (C) 1993, 1994 Tobias Bading (bading@cs.tu-berlin.de)\r
- *  @(#) Berlin University of Technology\r
- *\r
- *  Idea and first implementation for u-law output with fast downsampling by\r
- *  Jim Boucher (jboucher@flash.bu.edu)\r
- *\r
- *  LinuxObuffer class written by\r
- *  Louis P. Kruger (lpkruger@phoenix.princeton.edu)\r
- *-----------------------------------------------------------------------\r
- *   This program is free software; you can redistribute it and/or modify\r
- *   it under the terms of the GNU Library General Public License as published\r
- *   by the Free Software Foundation; either version 2 of the License, or\r
- *   (at your option) any later version.\r
- *\r
- *   This program is distributed in the hope that it will be useful,\r
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- *   GNU Library General Public License for more details.\r
- *\r
- *   You should have received a copy of the GNU Library General Public\r
- *   License along with this program; if not, write to the Free Software\r
- *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
- *----------------------------------------------------------------------\r
- */\r
-package javazoom.jl.decoder;\r
-\r
-/**\r
- * Base Class for audio output.\r
- */\r
-public abstract class Obuffer\r
-{\r
-  public static final int      OBUFFERSIZE = 2 * 1152; // max. 2 * 1152 samples per frame\r
-  public static final int   MAXCHANNELS = 2;        // max. number of channels\r
-\r
-  /**\r
-   * Takes a 16 Bit PCM sample.\r
-   */\r
-  public abstract void append(int channel, short value);\r
-\r
-  /**\r
-   * Accepts 32 new PCM samples. \r
-   */\r
-       public void appendSamples(int channel, float[] f)\r
-       {\r
-           short s;\r
-           for (int i=0; i<32;)\r
-           {\r
-                       s = clip(f[i++]);\r
-                       append(channel, s); \r
-           }\r
-       }\r
-\r
-  /**\r
-   * Clip Sample to 16 Bits\r
-   */\r
-  private final short clip(float sample)\r
-  {\r
-       return ((sample > 32767.0f) ? 32767 :\r
-           ((sample < -32768.0f) ? -32768 :\r
-                         (short) sample));\r
-  }\r
-  \r
-  /**\r
-   * Write the samples to the file or directly to the audio hardware.\r
-   */\r
-  public abstract void write_buffer(int val);\r
-  public abstract void close();\r
-\r
-  /**\r
-   * Clears all data in the buffer (for seeking).\r
-   */\r
-  public abstract void clear_buffer();\r
-\r
-  /**\r
-   * Notify the buffer that the user has stopped the stream.\r
-   */\r
-  public abstract void set_stop_flag();\r
-}\r
+/* 
+ * 11/19/04  1.0 moved to LGPL.
+ * 12/12/99  Added appendSamples() method for efficiency. MDM.
+ * 15/02/99 ,Java Conversion by E.B ,ebsp@iname.com, JavaLayer
+ *
+ *   Declarations for output buffer, includes operating system
+ *   implementation of the virtual Obuffer. Optional routines
+ *   enabling seeks and stops added by Jeff Tsay. 
+ *
+ *  @(#) obuffer.h 1.8, last edit: 6/15/94 16:51:56
+ *  @(#) Copyright (C) 1993, 1994 Tobias Bading (bading@cs.tu-berlin.de)
+ *  @(#) Berlin University of Technology
+ *
+ *  Idea and first implementation for u-law output with fast downsampling by
+ *  Jim Boucher (jboucher@flash.bu.edu)
+ *
+ *  LinuxObuffer class written by
+ *  Louis P. Kruger (lpkruger@phoenix.princeton.edu)
+ *-----------------------------------------------------------------------
+ *   This program 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 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 Library General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Library General Public
+ *   License along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *----------------------------------------------------------------------
+ */
+
+/**
+ * Base Class for audio output.
+ */
+@METHODDEFAULT("D<IN,D<C")
+public abstract class Obuffer
+{
+  public static final int     OBUFFERSIZE = 2 * 1152;  // max. 2 * 1152 samples per frame
+  public static final int   MAXCHANNELS = 2;        // max. number of channels
+
+  /**
+   * Takes a 16 Bit PCM sample.
+   */
+  public abstract void append(int channel, short value);
+
+  /**
+   * Accepts 32 new PCM samples. 
+   */
+  public void appendSamples(@LOC("IN") int channel, @LOC("IN") float[] f)
+  {
+    @LOC("D") short s;
+    for (@LOC("C") int i=0; i<32;)
+    {
+      s = clip(f[i++]); // flow from "IN" to "D"
+      append(channel, s);  
+    }
+  }
+
+  /**
+   * Clip Sample to 16 Bits
+   */
+  private final short clip(@LOC("IN") float sample)
+  {
+    return ((sample > 32767.0f) ? 32767 :
+      ((sample < -32768.0f) ? -32768 :
+        (short) sample));
+  }
+
+  /**
+   * Write the samples to the file or directly to the audio hardware.
+   */
+  public abstract void write_buffer(int val);
+  public abstract void close();
+
+  /**
+   * Clears all data in the buffer (for seeking).
+   */
+  public abstract void clear_buffer();
+
+  /**
+   * Notify the buffer that the user has stopped the stream.
+   */
+  public abstract void set_stop_flag();
+}
index be2c66d22f64572389e4525bd3aeb281a75dadeb..914588596148597c412436553b766ab5afadcf1e 100644 (file)
@@ -18,7 +18,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 \r
 /**\r
index c3020575f9404f07253329a60d4c12ea9e274f47..406876e29d014782df961ed279abef4304855e25 100644 (file)
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.player;\r
 \r
 import java.io.InputStream;\r
 \r
-import javazoom.jl.decoder.Bitstream;\r
-import javazoom.jl.decoder.BitstreamException;\r
-import javazoom.jl.decoder.Decoder;\r
-import javazoom.jl.decoder.Header;\r
-import javazoom.jl.decoder.JavaLayerException;\r
-import javazoom.jl.decoder.SampleBuffer;\r
        \r
 /**\r
  * The <code>Player</code> class implements a simple player for playback\r
@@ -60,7 +53,7 @@ public class Player
        /**\r
         * The AudioDevice the audio samples are written to. \r
         */\r
-       private AudioDevice     audio;\r
+       //private AudioDevice   audio; \r
        \r
        /**\r
         * Has the player been closed?\r
@@ -79,9 +72,10 @@ public class Player
         */\r
        public Player(InputStream stream) throws JavaLayerException\r
        {\r
-               this(stream, null);     \r
+               //this(stream, null);   \r
        }\r
-       \r
+\r
+       /* temporarily disabled by eom\r
        public Player(InputStream stream, AudioDevice device) throws JavaLayerException\r
        {\r
                bitstream = new Bitstream(stream);              \r
@@ -98,6 +92,7 @@ public class Player
                }\r
                audio.open(decoder);\r
        }\r
+       */\r
        \r
        public void play() throws JavaLayerException\r
        {\r
@@ -114,12 +109,13 @@ public class Player
        public boolean play(int frames) throws JavaLayerException\r
        {\r
                boolean ret = true;\r
-                       \r
+               \r
+               \r
                while (frames-- > 0 && ret)\r
                {\r
                        ret = decodeFrame();                    \r
                }\r
-               \r
+               /*\r
                if (!ret)\r
                {\r
                        // last frame, ensure all data flushed to the audio device. \r
@@ -134,6 +130,7 @@ public class Player
                                }                               \r
                        }\r
                }\r
+               */\r
                return ret;\r
        }\r
                \r
@@ -141,8 +138,10 @@ public class Player
         * Cloases this player. Any audio currently playing is stopped\r
         * immediately. \r
         */\r
+       \r
        public synchronized void close()\r
        {               \r
+/*\r
                AudioDevice out = audio;\r
                if (out!=null)\r
                { \r
@@ -160,8 +159,10 @@ public class Player
                        {\r
                        }\r
                }\r
+*/\r
        }\r
        \r
+       \r
        /**\r
         * Returns the completed status of this player.\r
         * \r
@@ -181,14 +182,15 @@ public class Player
         */\r
        public int getPosition()\r
        {\r
-               int position = lastPosition;\r
+               //int position = lastPosition;\r
                \r
-               AudioDevice out = audio;                \r
-               if (out!=null)\r
-               {\r
-                       position = out.getPosition();   \r
-               }\r
-               return position;\r
+               //AudioDevice out = audio;              \r
+               //if (out!=null)\r
+               //{\r
+               //      position = out.getPosition();   \r
+               //}\r
+               //return position;\r
+               return 0;\r
        }               \r
        \r
        /**\r
@@ -200,9 +202,9 @@ public class Player
        {               \r
                try\r
                {\r
-                       AudioDevice out = audio;\r
-                       if (out==null)\r
-                               return false;\r
+                       //AudioDevice out = audio;\r
+                       //if (out==null)\r
+                       //      return false;\r
 \r
                        Header h = bitstream.readFrame();       \r
                        \r
@@ -212,14 +214,14 @@ public class Player
                        // sample buffer set when decoder constructed\r
                        SampleBuffer output = (SampleBuffer)decoder.decodeFrame(h, bitstream);\r
                                                                                                                                                                                                                                                                                                        \r
-                       synchronized (this)\r
-                       {\r
-                               out = audio;\r
-                               if (out!=null)\r
-                               {                                       \r
-                                       out.write(output.getBuffer(), 0, output.getBufferLength());\r
-                               }                               \r
-                       }\r
+                       //synchronized (this)\r
+                       //{\r
+                       //      out = audio;\r
+                       //      if (out!=null)\r
+                       //      {                                       \r
+                       //              out.write(output.getBuffer(), 0, output.getBufferLength());\r
+                       //      }                               \r
+                       //}\r
                                                                                                                                                        \r
                        bitstream.closeFrame();\r
                }               \r
index 3bc0fe853ac88b28b816616881fca8b2d5a4ed62..a1e20aa1780a27ad27bbb38bc778880edef8c5b5 100644 (file)
-/* \r
- * 11/19/04     1.0 moved to LGPL.\r
- * \r
- * 12/12/99  Initial Version based on FileObuffer.     mdm@techie.com.\r
- * \r
- * FileObuffer:\r
- * 15/02/99  Java Conversion by E.B ,javalayer@javazoom.net\r
- *\r
- *-----------------------------------------------------------------------\r
- *   This program is free software; you can redistribute it and/or modify\r
- *   it under the terms of the GNU Library General Public License as published\r
- *   by the Free Software Foundation; either version 2 of the License, or\r
- *   (at your option) any later version.\r
- *\r
- *   This program is distributed in the hope that it will be useful,\r
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- *   GNU Library General Public License for more details.\r
- *\r
- *   You should have received a copy of the GNU Library General Public\r
- *   License along with this program; if not, write to the Free Software\r
- *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
- *----------------------------------------------------------------------\r
- */\r
-\r
-package javazoom.jl.decoder;\r
-\r
-/**\r
- * The <code>SampleBuffer</code> class implements an output buffer\r
- * that provides storage for a fixed size block of samples. \r
- */\r
-public class SampleBuffer extends Obuffer\r
-{\r
-  private short[]              buffer;\r
-  private int[]                bufferp;\r
-  private int                  channels;\r
-  private int                  frequency;\r
-  \r
-  /**\r
-   * Constructor\r
-   */\r
-  public SampleBuffer(int sample_frequency, int number_of_channels)\r
-  {\r
-       buffer = new short[OBUFFERSIZE];\r
-       bufferp = new int[MAXCHANNELS];\r
-       channels = number_of_channels;\r
-       frequency = sample_frequency;\r
-       \r
-       for (int i = 0; i < number_of_channels; ++i) \r
-               bufferp[i] = (short)i;\r
-       \r
-  }\r
-\r
-  public int getChannelCount()\r
-  {\r
-       return this.channels;  \r
-  }\r
-  \r
-  public int getSampleFrequency()\r
-  {\r
-         return this.frequency;\r
-  }\r
-  \r
-  public short[] getBuffer()\r
-  {\r
-       return this.buffer;  \r
-  }\r
-  \r
-  public int getBufferLength()\r
-  {\r
-         return bufferp[0];\r
-  }\r
-  \r
-  /**\r
-   * Takes a 16 Bit PCM sample.\r
-   */\r
-  public void append(int channel, short value)\r
-  {\r
-       buffer[bufferp[channel]] = value;\r
-       bufferp[channel] += channels;           \r
-  }\r
-  \r
-       public void appendSamples(int channel, float[] f)\r
-       {\r
-           int pos = bufferp[channel];\r
-               \r
-               short s;\r
-               float fs;\r
-           for (int i=0; i<32;)\r
-           {\r
-                       fs = f[i++];\r
-                       fs = (fs>32767.0f ? 32767.0f \r
-                                                  : (fs < -32767.0f ? -32767.0f : fs));\r
-                       \r
-                       s = (short)fs;\r
-                       buffer[pos] = s;\r
-                       pos += channels;\r
-           }\r
-               \r
-               bufferp[channel] = pos;\r
-       }\r
-  \r
-  \r
-  /**\r
-   * Write the samples to the file (Random Acces).\r
-   */\r
-  public void write_buffer(int val)\r
-  {\r
-                                 \r
-       //for (int i = 0; i < channels; ++i) \r
-       //      bufferp[i] = (short)i;\r
-\r
-  }\r
-\r
-  public void close()\r
-  {}\r
-  \r
-  /**\r
-   *\r
-   */\r
-  public void clear_buffer()\r
-  {\r
-       for (int i = 0; i < channels; ++i) \r
-               bufferp[i] = (short)i;\r
-  }\r
-\r
-  /**\r
-   *\r
-   */\r
-  public void set_stop_flag()\r
-  {}\r
-}\r
+/* 
+ * 11/19/04     1.0 moved to LGPL.
+ * 
+ * 12/12/99  Initial Version based on FileObuffer.     mdm@techie.com.
+ * 
+ * FileObuffer:
+ * 15/02/99  Java Conversion by E.B ,javalayer@javazoom.net
+ *
+ *-----------------------------------------------------------------------
+ *   This program 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 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 Library General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Library General Public
+ *   License along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *----------------------------------------------------------------------
+ */
+
+/**
+ * The <code>SampleBuffer</code> class implements an output buffer
+ * that provides storage for a fixed size block of samples. 
+ */
+@LATTICE("BUF<BUFP,BUFP<CONT,BUFP*")
+@METHODDEFAULT("D<IN,D<C,C*,THISLOC=D")
+public class SampleBuffer extends Obuffer
+{
+  @LOC("BUF") private short[]           buffer;
+  @LOC("BUFP") private int[]       bufferp;
+  @LOC("CONT") private int              channels;
+  @LOC("CONT") private int              frequency;
+
+  /**
+   * Constructor
+   */
+  public SampleBuffer(@LOC("IN") int sample_frequency, @LOC("IN") int number_of_channels)
+  {
+    buffer = new short[OBUFFERSIZE];
+    bufferp = new int[MAXCHANNELS];
+    channels = number_of_channels; // [IN] -> [D]
+    frequency = sample_frequency; // [IN] -> [D]
+
+    for (@LOC("C") int i = 0; i < number_of_channels; ++i) {
+      bufferp[i] = (short)i; // LOC(bufferp[i]) has indirect flows from the location C, IN
+      // also, it has a direct flow from C
+      // anyway, LOC(bufferp[i])=[D,SampleBuffer.BUFP] is lower than all locations that have in-flows
+    }
+
+  }
+
+  public int getChannelCount()
+  {
+    return this.channels;  
+  }
+
+  public int getSampleFrequency()
+  {
+    return this.frequency;
+  }
+
+  public short[] getBuffer()
+  {
+    return this.buffer;  
+  }
+
+  public int getBufferLength()
+  {
+    return bufferp[0];
+  }
+
+  /**
+   * Takes a 16 Bit PCM sample.
+   */
+  public void append(@LOC("IN") int channel, @LOC("IN") short value)
+  {
+    buffer[bufferp[channel]] = value; 
+    // LOC(bufferp[channel])= [local.D,SampleBuffer.BUF]
+    // so, for LHS, LOC(buffer) < LOC(bufferp[channle])
+    // also, bet' LHS and RHS, LOC(LHS) < LOC(RHS) since LOC(value)=[IN]
+    
+    bufferp[channel] += channels; 
+    // for lhs, LOC(bufferp[channel]) = [local.D, SampleBuffer.BUFP] 
+    // for rhs, LOC(channels) = [local.D, SampleBuffer.CON] 
+    
+  }
+
+  @LATTICE("D<IN,D<C,THISLOC=D")
+  public void appendSamples(@LOC("IN") int channel, @LOC("IN") float[] f)
+  {
+    @LOC("D, SampleBuffer.BUFP") int pos = bufferp[channel]; 
+    // LOC(bufferp[channel])=[D,SampleBuffer.BUF]
+    // LOC(pos)=[D,SampleBuffer.BUFP]
+
+    @LOC("D,SampleBuffer.BUFP") short s;    
+    @LOC("D,SampleBuffer.BUFP") float fs;
+    
+    for (@LOC("C") int i=0; i<32;)
+    {
+      fs = f[i++]; // [IN] -> [D,BUFP]
+      
+      
+      if(fs>32767.0f){
+        fs=32767.0f; 
+        // it has an indirect flow from LOC(fs)
+        // since LOC(fs) is a shared location, it's okay        
+      }else{
+        if(fs<-32767f){
+          fs=-327.67f;
+        }
+      }
+      
+      /*
+      fs = (fs>32767.0f ? 32767.0f 
+          : (fs < -32767.0f ? -32767.0f : fs));
+      */
+
+      s = (short)fs; // it's okay since BUFP of [D,BUFP] is a shared location  
+      buffer[pos] = s;
+      // for LHS, LOC(buffer[pos])= GLB( [D,BUF] , [D,BUFP] ) = [D,BUF] 
+      // for RHS, LOC(s) = [D,BUFP]
+      // so it's okay: [D,BUFP] -> [D,BUF]
+      
+      pos += channels; // [D,BUFP] -> [D,BUFP]
+    }
+
+    bufferp[channel] = pos; 
+    // for lhs, LOC(bufferp[channel])=[D,BUFP]
+    // for rhs, LOC(pos)=[D,BUFP]
+    // since BUFP is a shared location, the assignment is okay
+  }
+
+
+  /**
+   * Write the samples to the file (Random Acces).
+   */
+  public void write_buffer(int val)
+  {
+
+    //for (int i = 0; i < channels; ++i) 
+    //    bufferp[i] = (short)i;
+
+  }
+
+  public void close()
+  {}
+
+  /**
+   *
+   */
+  public void clear_buffer()
+  {
+    for (int i = 0; i < channels; ++i) 
+      bufferp[i] = (short)i;
+  }
+
+  /**
+   *
+   */
+  public void set_stop_flag()
+  {}
+}
index f4d7316a2f53af72b48bca2224b95aaf792358ad..ad2f0c91856c10882db820ec2d75e98f9452fb89 100644 (file)
@@ -17,7 +17,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 import java.io.IOException;\r
 \r
index b657b51835fa82889b19bd781384ef14082721d8..61d06aeb8e0953e034d2a0846e1c1f8fac97350f 100644 (file)
@@ -28,7 +28,6 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
  *----------------------------------------------------------------------\r
  */\r
-package javazoom.jl.decoder;\r
 \r
 import java.io.IOException;\r
 \r
@@ -318,6 +317,7 @@ final class SynthesisFilter
        p7 = (pp6 - pp7) * cos1_4;\r
        p8 = pp8 + pp9;\r
        p9 = (pp8 - pp9) * cos1_4;\r
+\r
        p10 = pp10 + pp11;\r
        p11 = (pp10 - pp11) * cos1_4;\r
        p12 = pp12 + pp13;\r
index 64c988164a393a960d40c2473f10612fa62453a0..d64d1f25d4aec10e6ab5d5ea88fba90888182fea 100644 (file)
@@ -37,7 +37,6 @@
  *----------------------------------------------------------------------\r
  */\r
 \r
-package javazoom.jl.decoder;\r
 \r
 /**\r
  * Class to implements Huffman decoder.\r
diff --git a/Robust/src/Tests/ssJava/mp3decoder/makefile b/Robust/src/Tests/ssJava/mp3decoder/makefile
new file mode 100644 (file)
index 0000000..4bf22cb
--- /dev/null
@@ -0,0 +1,23 @@
+BUILDSCRIPT=../../../buildscript
+
+PROGRAM=Player
+SOURCE_FILES=Player.java
+
+BSFLAGS= -32bit -ssjava -printlinenum -mainclass $(PROGRAM)  -heapsize-mb 1000 -garbagestats -joptimize -noloop -optimize -debug 
+
+default: $(PROGRAM)s.bin
+
+$(PROGRAM)s.bin: $(SOURCE_FILES) makefile
+       $(BUILDSCRIPT) $(BSFLAGS) -o $(PROGRAM)s -builddir sing $(SOURCE_FILES) 
+
+clean:
+       rm -f  $(PROGRAM).bin
+       rm -fr sing
+       rm -f  *~
+       rm -f  *.dot
+       rm -f  *.png
+       rm -f  *.txt
+       rm -f  aliases.txt
+       rm -f  results*txt
+       rm -f *log
+