01: /*
02: * Lucane - a collaborative platform
03: * Copyright (C) 2004 Vincent Fiack <vfiack@mail15.com>
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: */
19: package org.lucane.applications.audioconf;
20:
21: import java.io.*;
22:
23: import org.lucane.applications.audioconf.audio.*;
24: import org.lucane.common.*;
25: import org.lucane.common.net.ObjectConnection;
26:
27: public class Streamer implements AudioRecorderListener {
28: private ObjectConnection connection;
29: private AudioConf plugin;
30:
31: public Streamer(AudioConf plugin, ObjectConnection oc) {
32: this .plugin = plugin;
33: this .connection = oc;
34: }
35:
36: /**
37: * Recording started, init output stream
38: */
39: public void audioRecordingStarted(AudioConfig config) {
40: Logging.getLogger().fine("Ready to record");
41: }
42:
43: /**
44: * Audio recorded, write to file
45: */
46: public void audioRecorded(byte[] data, int length) {
47: try {
48: byte[] buffer = new byte[length];
49: System.arraycopy(data, 0, buffer, 0, length);
50:
51: this .connection.write(buffer);
52: } catch (IOException e) {
53: this .plugin.reportRecorderError(e);
54: }
55: }
56:
57: /**
58: * Recording ended, close everything
59: */
60: public void audioRecordingEnded() {
61: this.connection.close();
62: }
63: }
|