com.frinika.global
Class FrinikaConfig

java.lang.Object
  extended by com.frinika.global.FrinikaConfig

public class FrinikaConfig
extends java.lang.Object

Global settings to be stored and restored when starting the program. In order to provide compile-time safe access to options, a field of type "Meta" with the prefix "_" is declared for each config option. Example: public static Font TEXT_LANE_FONT = new Font("Arial",Font.PLAIN, 8); public static Meta _TEXT_LANE_FONT; // field of type "Meta", value will automatically be set when class FrinikaConfig is loaded Attach a listener, e.g.: FrinikaConfig.addConfigListener(new ConfigListener() { public void configurationChanged(ChangeEvent event) { if (event.getSource() == FrinikaConfig._TEXT_LANE_FONT) { // test if it's the option we're interested in // ...etc... } } });

Author:
Peter Johan Salomonsen, Jens Gulden

Nested Class Summary
static class FrinikaConfig.Meta
          Meta-Info on option fields.
 
Field Summary
static FrinikaConfig.Meta _AUDIO_BUFFER_LENGTH
           
static FrinikaConfig.Meta _AUDIO_DIRECTORY
           
static FrinikaConfig.Meta _AUTOMATIC_CHECK_FOR_NEW_VERSION
           
static FrinikaConfig.Meta _BIG_ENDIAN
           
static FrinikaConfig.Meta _DEFAULT_SOUNDFONT
           
static FrinikaConfig.Meta _DIRECT_MONITORING
           
static FrinikaConfig.Meta _GROOVE_PATTERN_DIRECTORY
           
static FrinikaConfig.Meta _JACK_AUTO_CONNECT
           
static FrinikaConfig.Meta _LAST_PROJECT_FILENAME
           
static FrinikaConfig.Meta _MAXIMIZE_WINDOW
           
static FrinikaConfig.Meta _MIDIIN_DEVICES_LIST
           
static FrinikaConfig.Meta _MOUSE_NUMBER_DRAG_INTENSITY
           
static FrinikaConfig.Meta _MULTIPLEXED_AUDIO
           
static FrinikaConfig.Meta _PATCHNAME_DIRECTORY
           
static FrinikaConfig.Meta _sampleRate
           
static FrinikaConfig.Meta _SCRIPTS_DIRECTORY
           
static FrinikaConfig.Meta _SEQUENCER_PRIORITY
           
static FrinikaConfig.Meta _SETUP_DONE
           
static FrinikaConfig.Meta _SOUNDFONT_DIRECTORY
           
static FrinikaConfig.Meta _TEXT_LANE_FONT
           
static FrinikaConfig.Meta _TICKS_PER_QUARTER
           
static int AUDIO_BUFFER_LENGTH
           
static java.io.File AUDIO_DIRECTORY
           
static boolean AUTOMATIC_CHECK_FOR_NEW_VERSION
           
static boolean BIG_ENDIAN
           
static java.io.File DEFAULT_SOUNDFONT
           
static boolean DIRECT_MONITORING
           
static java.io.File GROOVE_PATTERN_DIRECTORY
           
static boolean JACK_AUTO_CONNECT
           
static java.lang.String LAST_PROJECT_FILENAME
           
static boolean MAXIMIZE_WINDOW
           
static java.lang.String MIDIIN_DEVICES_LIST
           
static float MOUSE_NUMBER_DRAG_INTENSITY
           
static boolean MULTIPLEXED_AUDIO
           
static java.io.File PATCHNAME_DIRECTORY
           
static int sampleRate
           
static java.io.File SCRIPTS_DIRECTORY
           
static int SEQUENCER_PRIORITY
           
static boolean SETUP_DONE
           
static java.io.File SOUNDFONT_DIRECTORY
           
static java.awt.Font TEXT_LANE_FONT
           
static int TICKS_PER_QUARTER
           
 
Constructor Summary
FrinikaConfig()
           
 
Method Summary
static void addConfigListener(ConfigListener l)
           
protected static javax.swing.JDialog createDialog(ProjectFrame frame)
           
static java.lang.String fileToString(java.io.File file)
           
static void fireConfigurationChangedEvent(FrinikaConfig.Meta meta)
          Fire event if a public static field option has been altered.
static java.lang.String fontToString(java.awt.Font font)
           
static int getAudioBufferLength()
           
static boolean getAutomaticCheckForNewVersion()
           
static java.util.Collection<java.lang.String> getAvailableAudioDevices()
           
static java.util.Collection<java.lang.String> getAvailableMidiInDevices()
           
static boolean getDirectMonitoring()
           
static java.lang.Object getFieldValue(java.lang.reflect.Field field)
           
static java.util.Vector<java.lang.String> getMidiInDeviceList()
           
static java.util.Properties getProperties()
           
static java.lang.String getProperty(java.lang.String key)
           
static boolean isTrue(java.lang.Object o)
           
static java.lang.String lastProjectFile()
           
static void load()
           
static void load(java.io.InputStream r)
           
static void loadFields(java.util.Properties p)
           
static void pickDirectory(ProjectFrame frame, javax.swing.JTextField boundTextField)
           
static void pickFile(ProjectFrame frame, javax.swing.JTextField boundTextField)
           
static void pickFile(ProjectFrame frame, javax.swing.JTextField boundTextField, boolean directory)
           
static void pickFont(ProjectFrame frame, javax.swing.JTextField boundTextField)
           
static void removeConfigListener(ConfigListener l)
           
static void save(java.io.OutputStream w)
           
static void saveFields(java.util.Properties p)
           
static void setAudioBufferLength(int len)
           
static void setAutomatickCheckForNewVersion(boolean automaticCheckForNewVersion)
           
static void setDirectMonitoring(boolean dm)
           
static void setFieldValue(java.lang.reflect.Field field, java.lang.Object o)
           
static void setJackAutoconnect(boolean auto)
           
static void setLastProjectFilename(java.lang.String filename)
           
static void setMidiInDeviceList(java.util.Vector<java.lang.String> list)
           
static void setMultiplexedAudio(boolean multiplex)
           
static void setProperty(java.lang.String key, java.lang.String value)
           
static void showDialog(ProjectFrame frame)
           
static boolean store()
           
static void storeAndQuit()
           
static java.awt.Font stringToFont(java.lang.String s)
           
static java.lang.Object stringToValue(java.lang.String prop, java.lang.String name, java.lang.Class type)
           
static java.lang.String valueToString(java.lang.Object o, java.lang.String name, java.lang.Class type)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SETUP_DONE

public static boolean SETUP_DONE

_SETUP_DONE

public static FrinikaConfig.Meta _SETUP_DONE

TICKS_PER_QUARTER

public static int TICKS_PER_QUARTER

_TICKS_PER_QUARTER

public static FrinikaConfig.Meta _TICKS_PER_QUARTER

SEQUENCER_PRIORITY

public static int SEQUENCER_PRIORITY

_SEQUENCER_PRIORITY

public static FrinikaConfig.Meta _SEQUENCER_PRIORITY

AUDIO_BUFFER_LENGTH

public static int AUDIO_BUFFER_LENGTH

_AUDIO_BUFFER_LENGTH

public static FrinikaConfig.Meta _AUDIO_BUFFER_LENGTH

MIDIIN_DEVICES_LIST

public static java.lang.String MIDIIN_DEVICES_LIST

_MIDIIN_DEVICES_LIST

public static FrinikaConfig.Meta _MIDIIN_DEVICES_LIST

DIRECT_MONITORING

public static boolean DIRECT_MONITORING

_DIRECT_MONITORING

public static FrinikaConfig.Meta _DIRECT_MONITORING

MULTIPLEXED_AUDIO

public static boolean MULTIPLEXED_AUDIO

_MULTIPLEXED_AUDIO

public static FrinikaConfig.Meta _MULTIPLEXED_AUDIO

BIG_ENDIAN

public static boolean BIG_ENDIAN

_BIG_ENDIAN

public static FrinikaConfig.Meta _BIG_ENDIAN

sampleRate

public static int sampleRate

_sampleRate

public static FrinikaConfig.Meta _sampleRate

JACK_AUTO_CONNECT

public static boolean JACK_AUTO_CONNECT

_JACK_AUTO_CONNECT

public static FrinikaConfig.Meta _JACK_AUTO_CONNECT

AUTOMATIC_CHECK_FOR_NEW_VERSION

public static boolean AUTOMATIC_CHECK_FOR_NEW_VERSION

_AUTOMATIC_CHECK_FOR_NEW_VERSION

public static FrinikaConfig.Meta _AUTOMATIC_CHECK_FOR_NEW_VERSION

MAXIMIZE_WINDOW

public static boolean MAXIMIZE_WINDOW

_MAXIMIZE_WINDOW

public static FrinikaConfig.Meta _MAXIMIZE_WINDOW

MOUSE_NUMBER_DRAG_INTENSITY

public static float MOUSE_NUMBER_DRAG_INTENSITY

_MOUSE_NUMBER_DRAG_INTENSITY

public static FrinikaConfig.Meta _MOUSE_NUMBER_DRAG_INTENSITY

TEXT_LANE_FONT

public static java.awt.Font TEXT_LANE_FONT

_TEXT_LANE_FONT

public static FrinikaConfig.Meta _TEXT_LANE_FONT

GROOVE_PATTERN_DIRECTORY

public static java.io.File GROOVE_PATTERN_DIRECTORY

_GROOVE_PATTERN_DIRECTORY

public static FrinikaConfig.Meta _GROOVE_PATTERN_DIRECTORY

SCRIPTS_DIRECTORY

public static java.io.File SCRIPTS_DIRECTORY

_SCRIPTS_DIRECTORY

public static FrinikaConfig.Meta _SCRIPTS_DIRECTORY

PATCHNAME_DIRECTORY

public static java.io.File PATCHNAME_DIRECTORY

_PATCHNAME_DIRECTORY

public static FrinikaConfig.Meta _PATCHNAME_DIRECTORY

AUDIO_DIRECTORY

public static java.io.File AUDIO_DIRECTORY

_AUDIO_DIRECTORY

public static FrinikaConfig.Meta _AUDIO_DIRECTORY

SOUNDFONT_DIRECTORY

public static java.io.File SOUNDFONT_DIRECTORY

_SOUNDFONT_DIRECTORY

public static FrinikaConfig.Meta _SOUNDFONT_DIRECTORY

DEFAULT_SOUNDFONT

public static java.io.File DEFAULT_SOUNDFONT

_DEFAULT_SOUNDFONT

public static FrinikaConfig.Meta _DEFAULT_SOUNDFONT

LAST_PROJECT_FILENAME

public static java.lang.String LAST_PROJECT_FILENAME

_LAST_PROJECT_FILENAME

public static FrinikaConfig.Meta _LAST_PROJECT_FILENAME
Constructor Detail

FrinikaConfig

public FrinikaConfig()
Method Detail

showDialog

public static void showDialog(ProjectFrame frame)

createDialog

protected static javax.swing.JDialog createDialog(ProjectFrame frame)

getProperties

public static java.util.Properties getProperties()

getProperty

public static java.lang.String getProperty(java.lang.String key)

setProperty

public static void setProperty(java.lang.String key,
                               java.lang.String value)

load

public static void load()
                 throws java.io.IOException
Throws:
java.io.IOException

store

public static boolean store()

storeAndQuit

public static void storeAndQuit()

load

public static void load(java.io.InputStream r)
                 throws java.io.IOException
Throws:
java.io.IOException

save

public static void save(java.io.OutputStream w)
                 throws java.io.IOException
Throws:
java.io.IOException

loadFields

public static void loadFields(java.util.Properties p)

saveFields

public static void saveFields(java.util.Properties p)

addConfigListener

public static void addConfigListener(ConfigListener l)

removeConfigListener

public static void removeConfigListener(ConfigListener l)

fireConfigurationChangedEvent

public static void fireConfigurationChangedEvent(FrinikaConfig.Meta meta)
Fire event if a public static field option has been altered. No even is fired on changes of dynamic properties-options.

Parameters:
field -

getFieldValue

public static java.lang.Object getFieldValue(java.lang.reflect.Field field)

setFieldValue

public static void setFieldValue(java.lang.reflect.Field field,
                                 java.lang.Object o)

stringToValue

public static java.lang.Object stringToValue(java.lang.String prop,
                                             java.lang.String name,
                                             java.lang.Class type)

valueToString

public static java.lang.String valueToString(java.lang.Object o,
                                             java.lang.String name,
                                             java.lang.Class type)

isTrue

public static boolean isTrue(java.lang.Object o)

stringToFont

public static java.awt.Font stringToFont(java.lang.String s)

fontToString

public static java.lang.String fontToString(java.awt.Font font)

fileToString

public static java.lang.String fileToString(java.io.File file)

pickDirectory

public static void pickDirectory(ProjectFrame frame,
                                 javax.swing.JTextField boundTextField)

pickFile

public static void pickFile(ProjectFrame frame,
                            javax.swing.JTextField boundTextField)

pickFile

public static void pickFile(ProjectFrame frame,
                            javax.swing.JTextField boundTextField,
                            boolean directory)

pickFont

public static void pickFont(ProjectFrame frame,
                            javax.swing.JTextField boundTextField)

getAudioBufferLength

public static int getAudioBufferLength()

setAudioBufferLength

public static void setAudioBufferLength(int len)

getDirectMonitoring

public static boolean getDirectMonitoring()

setDirectMonitoring

public static void setDirectMonitoring(boolean dm)

setMultiplexedAudio

public static void setMultiplexedAudio(boolean multiplex)

setJackAutoconnect

public static void setJackAutoconnect(boolean auto)

lastProjectFile

public static java.lang.String lastProjectFile()

setLastProjectFilename

public static void setLastProjectFilename(java.lang.String filename)

setMidiInDeviceList

public static void setMidiInDeviceList(java.util.Vector<java.lang.String> list)

getMidiInDeviceList

public static java.util.Vector<java.lang.String> getMidiInDeviceList()

getAvailableMidiInDevices

public static java.util.Collection<java.lang.String> getAvailableMidiInDevices()

getAvailableAudioDevices

public static java.util.Collection<java.lang.String> getAvailableAudioDevices()

getAutomaticCheckForNewVersion

public static boolean getAutomaticCheckForNewVersion()

setAutomatickCheckForNewVersion

public static void setAutomatickCheckForNewVersion(boolean automaticCheckForNewVersion)