Open Source Toolkit Documentation:

The Audio Server GUI

License / Documentation home / Help and feedback


MITRE provides a Java GUI which can be used to control an audio server. Note that the target audio server must be started before this server is started.



Status

History and plans

This implementation originated as part of the JDAS Java desktop audio server, which never worked completely due to shortcomings with JavaSound.

Version history


Usage

Unix

% <OSTK_ROOT>/bin/audio_gui ...

Windows

This server requires JDK 1.4 on Windows.

GC_HOME must be set in your environment.

To compile, make sure that JDK_HOME (a directory above bin\javac and bin\jar) is also set in your environment and run build.bat in audio_io\audio_gui\src.

To run, this command line assumes that OSTK is also set, and that Java is in your path.

C:\> java.exe -classpath %GC_HOME%\contrib\MITRE\bindings\java\lib\galaxy.jar;%OSTK%\audio_io\audio_gui\src\audio_gui.jar org.mitre.audiogui.AudioGUIMainServer ...

Default port

1201

Command line arguments

-no_gui      Starts server without enabling the controller GUI.
-no_keypad   Starts the server without enabling the keypad GUI
-timeout_sec When waiting for a reply from the audio server in response to a  configuration change, wait this many seconds before giving up and reporting an error to the user. If less than or equal to zero (the default), never time out.
-debug       Turns on server-specific debug messages.

This server also accepts the standard server arguments. See the Galaxy Communicator Java binding documentation for details on the standard command-line arguments.

Runtime notes

When the Hub connects to this server, it will create two windows by default, the controller GUI (which controls things like VAD vs. push-to-talk, etc.) and a keypad (which also contains buttons for on/off hook). This behavior can be customized using the -no_gui and -no_keypad arguments. The settings on the controller GUI can be toggled using the mouse. You can interact with the server when it's off hook (press the appropriate button on the keypad).

Note that this server has been tested with JDK 1.3 and JDK 1.4. It seems to work more reliably with 1.4. If you are using JDK 1.3 and one or both of the windows do not display completely, try 1.4. On Windows, this server requires JDK 1.4.


Message set


update updates the GUI based on the current configuration of the audio server.
 

parameter type optional depends on description/constraints
IN: :server_response integer
  If 1, indicates that this message is a reponse to a state change request made by the GUI (see Messages issued). If 0, indicates that this message contains state change information that the audio server is pushing to the GUI.
  :query_status integer yes   If 1, indicates that this message is a reponse to an initialization request made by the GUI (see Messages issued). 
  :barge_in_enabled integer yes   If 1, the audio server has barge in enabled. If 0, it does not.
  :half_duplex_enabled integer yes   If 1, the audio server is in half duplex mode. If 0, it is in full duplex mode.
  :ptt_enabled integer yes   If 1, the audio server is in "push-to-talk" (PTT) mode. If 0, it is in voice activity detection (VAD) mode.
  :streaming_enabled integer yes   If 1, the audio server is streaming audio. If 0, it is sending audio in batch mode.
  :playbox_enabled integer yes   If 1, the audio server is using the MIT playbox control protocol on input and output. If 0, it is not.
  :mute_active integer yes   If 1, the audio server is muted. If 0, it is not.
  :on_hook integer yes   If 1, the audio server is "on the hook" (i.e., call disconnected). If 0, it is "off the hook" (i.e., call answered).
  :record_started integer yes   If 1, the audio server has started recording. If 0, it has not.
  :record_startable integer yes   If 1, indicates the audio server can start recording. If 0, indicates the audio server can not start recording.
  :voice_active integer yes   If 1, indicates the audio server is detecting a voice. If 0, indicates the audio server is not detecting a voice.

:audio_resendable integer yes
If 1, indicates the audio server has audio data that it can resend. If 0, indicates the audio server does not have audio data that it can resend.

:resend integer yes
If 1, indicates that the last audio data was resent for playback. If 0, it was not.

This message returns a frame.


Messages issued

When the server is reinitialized, it sends out this message, destined for an audio server. When the audio server receives this message, it should send an update message (with :server_response set to 1 and :query_status set to 1) to the GUI, allowing the GUI to configure itself based on the audio server's configuration.
{c initialize_audio_gui}
When the server requests a change in the audio server configuration, it sends one of these messages. The server then blocks until it receives a response (via an update message with :server_response set to 1).

When the "Barge-in Enabled/Barge-in Disabled" button is toggled:

{c audio_gui
    :barge_in_enabled <enable (1) or disable (0) barge-in>
}
When the "Full-duplex Mode/Half-duplex Mode" button is toggled:
{c audio_gui
    :half_duplex_enabled <enable half duplex (1) or full duplex (0) operation>
}
When the "VAD Mode/PTT Mode" button is toggled:
{c audio_gui
    :ptt_enabled <enable push-to-talk (1) or voice activity detection (0) operation>
}
When the "Streaming Mode/Batch Mode" button is toggled:
{c audio_gui
    :streaming_enabled <enable audio streaming (1) or batch (0) mode>
}
When "Enable Playbox Brokering/Disable Playbox Brokering" is selected from the Controls menu on the controller GUI:
{c audio_gui
    :playbox_enabled <enable the MIT playbox control protocol (1) or use the default protocol (0)>
}
When "Click to Mute/Click to Un-Mute" is toggled in VAD mode:
{c audio_gui
    :mute_active <mute (1) or unmute (0) the audio server>
}
When "On Hook/Off Hook" is toggled
{c audio_gui
    :on_hook <put the audio server "on the hook" (1) or "off the hook" (0)>
}
When any of the keypad buttons are pressed:
{c audio_gui
    :touchtone <the keypad character pressed: 0-9, *, or #>
}
When "Click to Start Recording/Click to Stop Recording" is toggled:
{c audio_gui
    :record_started <start(1) or stop (0) recording>
}
When "Resend" is pressed:
{c audio_gui
    :resend 1
}



Known bugs

None.

License / Documentation home / Help and feedback

Last updated October 4, 2002