Mute Speakers Application

Introduction

This application allows you to mute all of the loudspeakers in your vicinity at once, without having to walk up to each one individually. The main advantage of this application over simply turning down the volume control is that at the present (There V2.06) even turning down the in-client music volume slider to its lowest setting does not disconnect you from the Shoutcast station. Therefore, using this application is currently the only way to reduce the bandwith consumed by nearby loudspeakers to zero short of having the music pack removed from your account.

This application probably has a limited life, as V2.10 of There is expected to disconnect from all Shoutcast stations if the music slider is reduced to zero. As the application makes use of interfaces to your There client that are undocumented by There, Inc., I cannot guarantee that it will even function with a future version of There.

Running this application requires you to install a recent Java Runtime Environment (JRE) and operate your There client in debug mode. If you're not happy with either of those, please don't download or install this application.

Preparation

First thing to do is make sure you have a recent enough version of the Java runtime. I am using 1.4.2_02 for development, so that would be ideal, but any 1.4.x should be sufficient. 1.3.x JREs and the Microsoft JRE are not sufficient to run this application.

To find out which version of the JRE you have, open a command prompt window. If you can find this in the Windows menus, that's great; otherwise, type Windows+R then type "command" in the field provided. In the command prompt window, type "java -version". The result on my machine looks like this:

java version "1.4.2_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03)
Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)

If you don't have a decent runtime, go to http://www.java.com/ and press the "get it now" button. Re-check the version once that has downloaded (you may need to close the command window and open a new one).

Download this zip file and unpack it into a directory somewhere on your machine, say C:\mutespeakers. You will find that it contains a single file called mutespeakers.jar.

Running

Start your There client and then start debug mode using Ctrl+Shift+L.

Flip back to the command prompt window and use the CD command to get into the same directory with the .jar file. Then type this:

java -jar mutespeakers.jar

You should see that all is well when you see the following text appear:

Logged in to client.
Pilot: 196772622 = iay

Of course, you will see your own avatar name and doid there, not mine. The "Logged in to client" implies that the application was able to talk to the client. If you get a connection error instead, you probably didn't start debug mode properly. In this case just flick back to the client and type Ctrl+Shift+L and try again.

By default, the application will mute all speakers in the area. It will tell you that it is doing this, and how many loudspeakers it can see. Then it will mute them and exit.

You can add optional command parameters to the end of the invocation. The parameter "mute" is assumed if you don't enter any of these (as in the example above). Alternatively, you can say this to un-mute all loudspeakers in the vicinity:

java -jar mutespeakers.jar unmute

Finally, you can add the word "loop" to the end of this to have the same action repeated every ten seconds. This is useful if you are travelling around and keep coming across loudspeakers that your client hasn't seen, or ones which you muted earlier but your client has forgotten about.