/* Spectroscopic Toolkit version 1.96, november 7, 2011. Copyright (c) 2000-2011 - Pieter Suurmond Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Collection of functions prototypes from several cXX_xxxx.c files. Functions that are called from main() must have the prototype: short cXX_xxxx(ENGINE E, FILE* msg); // No starttime, duration, etc. Notice ST_wavelets.h must be included prior to this file because struct pointer ENGINE must be (forwardly) declared. Just prototypes here, see the corresponding .c files for details. */ /*----------------------------------------------------------------------------*/ short c00_gaussTest (ENGINEp E, FILE* msg); short c00_clipTest (ENGINEp E, FILE* msg); short c00_overtoneTest(ENGINEp E, FILE* msg); short c00_phaseTest (ENGINEp E, FILE* msg); short c00_expTest (ENGINEp E, FILE* msg); /*----------------------------------------------------------------------------*/ short c01_twoWeeks(ENGINEp E, FILE* msg); /*--------------------------------------------------------------------------------------------*/ short c01_massiveCloud(unsigned short selected, /* 100 * Atomic number + ionisation level. */ double strength, /* Linear overall amplitude (0.18=OK for Fe).*/ short phase, /* -1=oscill.sync; 0=sine at top; 1=cos at top. */ long double starttime, /* Starttime in seconds. */ long double duration, /* 'effective duration' in seconds. */ ENGINEp E, FILE* msg); short c01_shapedCloud(unsigned short selected, /* 100 * Atomic number + ionisation level. */ double strength, /* Linear overall amplitude (0.18=OK for Fe).*/ long double starttime, /* Starttime in seconds. */ long double duration, /* 'effective duration' in seconds. */ const double* shapeFreqs, /* Array with frequencies (-earlier, +later)*/ ENGINEp E, FILE* msg); /* User interface functions, fixed durations. */ short c01_os_cloud_H (ENGINEp E, FILE* msg); /* Oscillators all sync at 0.0. */ short c01_os_cloud_He (ENGINEp E, FILE* msg); short c01_os_cloud_HeP(ENGINEp E, FILE* msg); short c01_os_cloud_Li (ENGINEp E, FILE* msg); short c01_os_cloud_Be (ENGINEp E, FILE* msg); short c01_os_cloud_B (ENGINEp E, FILE* msg); short c01_os_cloud_C (ENGINEp E, FILE* msg); short c01_os_cloud_N (ENGINEp E, FILE* msg); short c01_os_cloud_O (ENGINEp E, FILE* msg); short c01_os_cloud_F (ENGINEp E, FILE* msg); short c01_os_cloud_Ne (ENGINEp E, FILE* msg); short c01_os_cloud_Na (ENGINEp E, FILE* msg); short c01_os_cloud_Mg (ENGINEp E, FILE* msg); short c01_os_cloud_Al (ENGINEp E, FILE* msg); short c01_os_cloud_Si (ENGINEp E, FILE* msg); short c01_os_cloud_P (ENGINEp E, FILE* msg); short c01_os_cloud_S (ENGINEp E, FILE* msg); short c01_os_cloud_Cl (ENGINEp E, FILE* msg); short c01_os_cloud_Ar (ENGINEp E, FILE* msg); short c01_os_cloud_Fe (ENGINEp E, FILE* msg); short c01_os_cloud_Co (ENGINEp E, FILE* msg); short c01_os_cloud_Ni (ENGINEp E, FILE* msg); short c01_os_cloud_Cu (ENGINEp E, FILE* msg); short c01_os_cloud_Zn (ENGINEp E, FILE* msg); short c01_os_cloud_Ag (ENGINEp E, FILE* msg); short c01_os_cloud_Sn (ENGINEp E, FILE* msg); short c01_os_cloud_Cs (ENGINEp E, FILE* msg); short c01_os_cloud_Au (ENGINEp E, FILE* msg); short c01_os_cloud_Hg (ENGINEp E, FILE* msg); short c01_os_cloud_Pb (ENGINEp E, FILE* msg); short c01_os_cloud_Th (ENGINEp E, FILE* msg); short c01_os_cloud_U (ENGINEp E, FILE* msg); short c01_cloud_H (ENGINEp E, FILE* msg); /* Oscillators all sync at TOP. */ short c01_cloud_He (ENGINEp E, FILE* msg); short c01_cloud_HeP (ENGINEp E, FILE* msg); short c01_cloud_Li (ENGINEp E, FILE* msg); short c01_cloud_C (ENGINEp E, FILE* msg); short c01_cloud_N (ENGINEp E, FILE* msg); short c01_cloud_O (ENGINEp E, FILE* msg); short c01_cloud_F (ENGINEp E, FILE* msg); short c01_cloud_Si (ENGINEp E, FILE* msg); short c01_cloud_S (ENGINEp E, FILE* msg); short c01_cloud_Au (ENGINEp E, FILE* msg); /*--------------------------------------------------------------------------------------*/ short c02_smear(unsigned short selected, /* 100 * Atomic number + ionisation level. */ double strength, /* Linear overall amplitude 3.20 is ok for Au. */ long double start, /* Starttime in seconds. */ long double duration, /* 'effective duration' in seconds. */ short up, /* 0 for descending, 1 for ascending scale. */ short jj, /* Scrambles TOP times if nonzero (with J*J). */ ENGINEp E, FILE* msg); /*----------------------------------------------------------------------------*/ short c03_H(ENGINEp E, FILE* msg); /*--------------------------------------------------------------------------------------*/ /* Plays the first 16 elements (Hydrogen to Sulpher). */ short c04_Mendelejev(ENGINEp E, FILE* msg); short c04_Xenofobia(ENGINEp E, /* Pass pointer to earlier created dsp engine object. */ FILE* msg, /* Any textfile, stdout, or NULL to disable messaging. */ double startTime, /* Starttime in seconds (at least not negative). */ double timeStretch); /* This parameter determines tempo, value > 1 slows it */ /* down, value < 1 speeds it up. */ short c04_Regress(ENGINEp E, FILE* msg); /* 2004 experiment: J timing. */ /*---------------------------------------------------------------------------------------------*/ short c05_niceHydrogenBirds(long double start, ENGINEp E, FILE* msg); short c05_HydrogenBirds(ENGINEp E, FILE* msg); /* Calls the one above with start=6.00. */ short c05_HydrogenBirds2(long double start, ENGINEp E, FILE* msg); /*----------------------------------------------------------------------------*/ short c06_Hbells(ENGINEp E, FILE* msg); short c06_HHeP_bells(ENGINEp E, FILE* msg, long double start); short c06_HHe_bells(ENGINEp E, FILE* msg); /* Calls the one above with start=1.00 (seconds). */ /*----------------------------------------------------------------------------*/ short c06_Hmelody(ENGINEp E, FILE* msg); /* Starttime st, duration d, both in seconds. */ short c06_HcolorAu2003(double st, double d, ENGINEp E, FILE* msg); short c06_HcolorAg2003(double st, double d, ENGINEp E, FILE* msg); /*----------------------------------------------------------------------------*/ short c06_Hsplit(ENGINEp E, FILE* msg); short c06_H_LymanBalmerPaschen(ENGINEp E, FILE* msg); /*----------------------------------------------------------------------------*/ short c07_comp2003_1(ENGINEp E, FILE* msg); short c07_comp2003_2(ENGINEp E, FILE* msg); /*----------------------------------------------------------------------------*/ short c08_rossi2011(ENGINEp E, FILE* msg);