summaryrefslogtreecommitdiff
path: root/songdbj/javazoom/jl/decoder/Obuffer.java
diff options
context:
space:
mode:
Diffstat (limited to 'songdbj/javazoom/jl/decoder/Obuffer.java')
-rw-r--r--songdbj/javazoom/jl/decoder/Obuffer.java88
1 files changed, 0 insertions, 88 deletions
diff --git a/songdbj/javazoom/jl/decoder/Obuffer.java b/songdbj/javazoom/jl/decoder/Obuffer.java
deleted file mode 100644
index 45a71a9baf..0000000000
--- a/songdbj/javazoom/jl/decoder/Obuffer.java
+++ /dev/null
@@ -1,88 +0,0 @@
1/*
2 * 11/19/04 1.0 moved to LGPL.
3 * 12/12/99 Added appendSamples() method for efficiency. MDM.
4 * 15/02/99 ,Java Conversion by E.B ,ebsp@iname.com, JavaLayer
5 *
6 * Declarations for output buffer, includes operating system
7 * implementation of the virtual Obuffer. Optional routines
8 * enabling seeks and stops added by Jeff Tsay.
9 *
10 * @(#) obuffer.h 1.8, last edit: 6/15/94 16:51:56
11 * @(#) Copyright (C) 1993, 1994 Tobias Bading (bading@cs.tu-berlin.de)
12 * @(#) Berlin University of Technology
13 *
14 * Idea and first implementation for u-law output with fast downsampling by
15 * Jim Boucher (jboucher@flash.bu.edu)
16 *
17 * LinuxObuffer class written by
18 * Louis P. Kruger (lpkruger@phoenix.princeton.edu)
19 *-----------------------------------------------------------------------
20 * This program is free software; you can redistribute it and/or modify
21 * it under the terms of the GNU Library General Public License as published
22 * by the Free Software Foundation; either version 2 of the License, or
23 * (at your option) any later version.
24 *
25 * This program is distributed in the hope that it will be useful,
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 * GNU Library General Public License for more details.
29 *
30 * You should have received a copy of the GNU Library General Public
31 * License along with this program; if not, write to the Free Software
32 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
33 *----------------------------------------------------------------------
34 */
35package javazoom.jl.decoder;
36
37/**
38 * Base Class for audio output.
39 */
40public abstract class Obuffer
41{
42 public static final int OBUFFERSIZE = 2 * 1152; // max. 2 * 1152 samples per frame
43 public static final int MAXCHANNELS = 2; // max. number of channels
44
45 /**
46 * Takes a 16 Bit PCM sample.
47 */
48 public abstract void append(int channel, short value);
49
50 /**
51 * Accepts 32 new PCM samples.
52 */
53 public void appendSamples(int channel, float[] f)
54 {
55 short s;
56 for (int i=0; i<32;)
57 {
58 s = clip(f[i++]);
59 append(channel, s);
60 }
61 }
62
63 /**
64 * Clip Sample to 16 Bits
65 */
66 private final short clip(float sample)
67 {
68 return ((sample > 32767.0f) ? 32767 :
69 ((sample < -32768.0f) ? -32768 :
70 (short) sample));
71 }
72
73 /**
74 * Write the samples to the file or directly to the audio hardware.
75 */
76 public abstract void write_buffer(int val);
77 public abstract void close();
78
79 /**
80 * Clears all data in the buffer (for seeking).
81 */
82 public abstract void clear_buffer();
83
84 /**
85 * Notify the buffer that the user has stopped the stream.
86 */
87 public abstract void set_stop_flag();
88}