/[svn]/jlscp/trunk/examples/Events.java
ViewVC logotype

Contents of /jlscp/trunk/examples/Events.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 596 - (show annotations) (download)
Wed Jun 1 07:11:31 2005 UTC (18 years, 10 months ago) by iliev
File size: 4252 byte(s)
The first alpha-release of jlscp

1 /*
2 * jlscp - a java LinuxSampler control protocol API
3 *
4 * Copyright (C) 2005 Grigor Kirilov Iliev
5 *
6 * This file is part of jlscp.
7 *
8 * jlscp is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2
10 * as published by the Free Software Foundation.
11 *
12 * jlscp is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with jlscp; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 * MA 02111-1307 USA
21 */
22
23 import java.util.logging.Handler;
24 import java.util.logging.Logger;
25 import java.util.logging.SimpleFormatter;
26 import java.util.logging.StreamHandler;
27
28 import org.linuxsampler.lscp.BufferFill;
29 import org.linuxsampler.lscp.Client;
30 import org.linuxsampler.lscp.event.*;
31
32 /**
33 * Listens for events.
34 * @author Grigor Iliev
35 */
36 public class Events {
37 public static void
38 main(String[] args) {
39 initLogger();
40
41 MyListener myListener = new MyListener();
42 Client client = new Client();
43
44
45 try {
46 // Listeners can be added or removed regardless of the connection state.
47 client.addBufferFillListener(myListener);
48 client.addChannelCountListener(myListener);
49 client.addChannelInfoListener(myListener);
50 client.addMiscellaneousListener(myListener);
51
52 client.connect();
53
54 client.addStreamCountListener(myListener);
55 client.addVoiceCountListener(myListener);
56
57 System.out.println("Press 'Enter' to exit");
58 System.in.read();
59
60 client.removeBufferFillListener(myListener);
61 client.removeChannelCountListener(myListener);
62 client.removeChannelInfoListener(myListener);
63
64 client.disconnect();
65
66 client.removeMiscellaneousListener(myListener);
67 client.removeStreamCountListener(myListener);
68 client.removeVoiceCountListener(myListener);
69
70 System.exit(0);
71 } catch(Exception x) {
72 x.printStackTrace();
73 }
74
75 System.exit(-1);
76 }
77
78 private static void
79 initLogger() {
80 final Handler handler = new StreamHandler(System.out, new SimpleFormatter());
81 Logger.getLogger("org.linuxsampler.lscp").addHandler(handler);
82
83 // Flushing logs on every second
84 new java.util.Timer().schedule(new java.util.TimerTask() {
85 public void
86 run() { handler.flush(); }
87 }, 1000, 1000);
88 }
89 }
90
91 class MyListener implements
92 BufferFillListener,
93 ChannelCountListener,
94 ChannelInfoListener,
95 MiscellaneousListener,
96 StreamCountListener,
97 VoiceCountListener {
98
99 /**
100 * Invoked when the fill state of a disk stream buffer has changed.
101 */
102 public void
103 bufferFillChanged(BufferFillEvent e) {
104 System.out.println (
105 "Buffer fill event occured on channel " +
106 e.getSamplerChannel()
107 );
108 for(BufferFill bf : e.getChannelBufferFillPercentage()) {
109 System.out.println (
110 "\tStream ID " + bf.getStreamID() + ": " + bf.getValue() + "%"
111 );
112 }
113 }
114
115 /** Invoked when the number of channels is changed. */
116 public void
117 channelCountChanged(ChannelCountEvent e) {
118 System.out.println("The number of channels has changed to " + e.getChannelCount());
119 }
120
121 /** Invoked when changes to the sampler channel has occured. */
122 public void
123 channelInfoChanged(ChannelInfoEvent e) {
124 System.out.println("Channel " + e.getSamplerChannel() + " has changed");
125 }
126
127 /** Invoked when miscellaneous and debugging events occurs. */
128 public void
129 miscEventOccured(MiscellaneousEvent e) {
130 System.out.println("Miscellaneous event: " + e.getEventMessage());
131 }
132
133 /**
134 * Invoked when the number of active disk streams for a specific sampler channel is changed.
135 */
136 public void
137 streamCountChanged(StreamCountEvent e) {
138 System.out.println (
139 "The number of disk streams on channel " + e.getSamplerChannel() +
140 " has changed to " + e.getStreamCount()
141 );
142 }
143
144 /** Invoked when the number of active voices has changed. */
145 public void
146 voiceCountChanged(VoiceCountEvent e) {
147 System.out.println (
148 "The number of voices on channel " + e.getSamplerChannel() +
149 " has changed to " + e.getVoiceCount()
150 );
151 }
152 }

  ViewVC Help
Powered by ViewVC