/*
* Constants.java
* JCollider
*
* Copyright (c) 2004-2010 Hanns Holger Rutz. All rights reserved.
*
* This software is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either
* version 2, june 1991 of the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License (gpl.txt) along with this software; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*
* For further information, please contact Hanns Holger Rutz at
* contact@sciss.de , or visit http://www.sciss.de/jcollider
*
*
* JCollider is closely modelled after SuperCollider Language,
* often exhibiting a direct translation from Smalltalk to Java.
* SCLang is a software originally developed by James McCartney,
* which has become an Open Source project.
* See http://supercollider.sourceforge.net/ for details.
*
*
* Changelog:
* 04-Aug-05 created
*/
package de.sciss.jcollider;
/**
* A utility interface that
* different classes can implements to
* gain access to commonly used constants.
*
* @author Hanns Holger Rutz
* @version 0.28, 31-Jul-06
*/
public interface Constants
{
// add actions
public static final int kAddToHead = 0;
public static final int kAddToTail = 1;
public static final int kAddBefore = 2;
public static final int kAddAfter = 3;
public static final int kAddReplace = 4;
// rate symbols
public static final Object kScalarRate = "scalar";
public static final Object kControlRate = "control";
public static final Object kAudioRate = "audio";
public static final Object kDemandRate = "demand";
// dumpOSC
public static final int kDumpOff = 0;
public static final int kDumpText = 1;
public static final int kDumpHex = 2;
public static final int kDumpBoth = 3;
// -------------- sound file write formats --------------
/**
* header format used for <code>/b_write</code>: AIFF
*/
public static final String kHeaderAIFF = "aiff";
/**
* header format used for <code>/b_write</code>: NeXT / AU
*/
public static final String kHeaderNeXT = "next";
/**
* header format used for <code>/b_write</code>: WAVE
*/
public static final String kHeaderWAVE = "wav";
/**
* header format used for <code>/b_write</code>: IRCAM
*/
public static final String kHeaderIRCAM = "ircam";
/**
* header format used for <code>/b_write</code>: Raw (headerless)
*/
public static final String kHeaderRaw = "raw";
// -------------- sound file write sample encodings --------------
/**
* sample encoding used for <code>/b_write</code>: 8-bit integer
*/
public static final String kSampleInt8 = "int8";
/**
* sample encoding used for <code>/b_write</code>: 16-bit integer
*/
public static final String kSampleInt16 = "int16";
/**
* sample encoding used for <code>/b_write</code>: 24-bit integer
*/
public static final String kSampleInt24 = "int24";
/**
* sample encoding used for <code>/b_write</code>: 32-bit integer
*/
public static final String kSampleInt32 = "int32";
/**
* sample encoding used for <code>/b_write</code>: single precision floating point
*/
public static final String kSampleFloat = "float";
/**
* sample encoding used for <code>/b_write</code>: double precision floating point
*/
public static final String kSampleDouble = "double";
/**
* sample encoding used for <code>/b_write</code>: 8-bit mu-law noise
*/
public static final String kSampleMuLaw = "mulaw";
/**
* sample encoding used for <code>/b_write</code>: 8-bit a-law noise
*/
public static final String kSampleALaw = "alaw";
// -------------- done actions --------------
/**
* done action: do nothing when the UGen is finished
*/
public static final int kDoneNothing = 0;
/**
* done action: pause the enclosing synth, but do not free it
*/
public static final int kDonePause = 1;
/**
* done action: free the enclosing synth
*/
public static final int kDoneFree = 2;
/**
* done action: free both this synth and the preceding node
*/
public static final int kDoneFreePred = 3;
/**
* done action: free both this synth and the following node
*/
public static final int kDoneFreeSucc = 4;
/**
* done action: free this synth; if the preceding node is a group then do g_freeAll on it, else free it
*/
public static final int kDoneFreePredGroup = 5;
/**
* done action: free this synth; if the following node is a group then do g_freeAll on it, else free it
*/
public static final int kDoneFreeSuccGroup = 6;
/**
* done action: free this synth and all preceding nodes in this group
*/
public static final int kDoneFreeAllPred = 7;
/**
* done action: free this synth and all following nodes in this group
*/
public static final int kDoneFreeAllSucc = 8;
/**
* done action: free this synth and pause the preceding node
*/
public static final int kDoneFreePausePred = 9;
/**
* done action: free this synth and pause the following node
*/
public static final int kDoneFreePauseSucc = 10;
/**
* done action: free this synth and if the preceding node is a group then do g_deepFree on it, else free it
*/
public static final int kDoneFreePredGroupDeep = 11;
/**
* done action: free this synth and if the following node is a group then do g_deepFree on it, else free it
*/
public static final int kDoneFreeSuccGroupDeep = 12;
/**
* done action: free this synth and all other nodes in this group (before and after)
*/
public static final int kDoneFreeAll = 13;
/**
* done action: free the enclosing group and all nodes within it (including this synth)
*/
public static final int kDoneFreeGroup = 14;
}