/*************************************************************************** * Copyright (C) 1994 Charles P. Peterson * * 4007 Enchanted Sun, San Antonio, Texas 78244-1254 * * Email: Charles_P_Peterson@fcircus.sat.tx.us * * * * This is free software with NO WARRANTY. * * See gfft.c, or run program itself, for details. * * Support is available for a fee. * *************************************************************************** * * Program: gfft--General FFT analysis * File: settings.h * Purpose: define or declare settings * Author: Charles Peterson (CPP) * History: 31-May-1993 CPP; Created. * 9-Aug-94 CPP (1.10); Hidden3D setting * 28-Aug-94 CPP (1.12); fix LowFrequency for FFP * 7-Jan-95 CPP (1.19); Moved types to gfft.h for port * 19-Jan-95 CPP (1.21); Topaz command * Comment: Options are defined here if DEFINEHERE is defined. * *.c should undefine DEFINEHERE afterwards */ #include /* This is needed below for FILE* */ #include /* ULONG_MAX and LONG_MAX */ #include /* DBL_MAX */ #include "defxtern.h" /* DEFXTERN */ /* * Definitions */ #define RECTANGLE_WINDOW 0 #define TRIANGLE_WINDOW 1 #define PARZEN_WINDOW 2 #define WELCH_WINDOW 3 #define HANN_WINDOW 4 #define HAMMING_WINDOW 5 #define BLACKMAN_HARRIS_74DB_WINDOW 6 #define BLACKMAN_HARRIS_92DB_WINDOW 7 #define FORWARD_FFT 1 #define INVERSE_FFT 2 #define POWER_SPECTRUM 4 #define AMPLITUDE_SPECTRUM 8 #define MEAN_NORMALIZATION 16 #define TWO_SIDED 32 #define INPUT_FORMAT_DEFAULTS {DEFAULT_INPUT_ZERO,DEFAULT_INPUT_BITS,\ DEFAULT_INPUT_BINARY} #define OUTPUT_FORMAT_DEFAULTS {DEFAULT_OUTPUT_ZERO,DEFAULT_OUTPUT_BITS,\ DEFAULT_OUTPUT_BINARY} #define NO_PLOT 0 #define GNUPLOT_PLOT 1 #define ANY_PLOT 1 #define AUTO_RATE 0.0L /* This never-valid rate means 'automatic' */ #define INVALID_RATE DBL_MAX /* This unuseable rate means 'invalid' */ #define MAX_BINS -1L /* This unuseable value means 'maximum' for file */ #define INVALID_BINS -2L /* This unuseable value means 'invalid' */ #define INVALID_INTERLEAVE ULONG_MAX /* This means 'invalid' */ #define NO_SMOOTHING -1L /* Do not perform smoothing */ #define INVALID_SMOOTHING -2L /* User last set invalid value */ #define NOT_SET -1 #define INVALID_SET -2 #define DEFAULT_TIME_OVERLAP 0.50 #define HIGHEST_FREQUENCY DBL_MAX /* #define LOWEST_FREQUENCY DBL_MIN * problem with FFP; 0 == DBL_MIN */ #define LOWEST_FREQUENCY -1.0 #define HIGHEST_Y DBL_MAX #define LOWEST_Y DBL_MIN #define MIN_QUANTIZATION DBL_MIN #define BAD_QUANTIZATION DBL_MAX #define DEF_ROT_X 60.0 #define DEF_ROT_Z 30.0 #define INVALID_ROTATION -361.0 /* * FileFormat info needed in this scope */ #define UNFORMATTED 0 /* * These options are set directly by interactive/batch commands */ DEFXTERN (BOOLEAN, Amplitude, TRUE) DEFXTERN (BOOLEAN, Appending, FALSE) DEFXTERN (struct cal_st, *CalibrationList, NULL) DEFXTERN (ULONG, Channel, 1L) DEFXTERN (BOOLEAN, CombinePlots, FALSE) DEFXTERN (BOOLEAN, Db, FALSE) DEFXTERN (ULONG, Frames, ULONG_MAX) DEFXTERN (BOOLEAN, Header, TRUE) DEFXTERN (BOOLEAN, Hidden3D, TRUE) DEFXTERN (double, HighFrequency, HIGHEST_FREQUENCY) DEFXTERN (double, HighY, HIGHEST_Y) DEFXTERN (BOOLEAN, IgnoreFormat, FALSE) DEFXTERN (IOFormatS, InputFormat, INPUT_FORMAT_DEFAULTS) DEFXTERN (ULONG, Interleave, 1) DEFXTERN (BOOLEAN, LogX, FALSE) DEFXTERN (BOOLEAN, LogY, FALSE) DEFXTERN (double, LowFrequency, LOWEST_FREQUENCY) DEFXTERN (double, LowY, LOWEST_Y) DEFXTERN (ULONG, Key, 0) DEFXTERN (BOOLEAN, Mean, TRUE) DEFXTERN (double, Multiply, 1.0L) DEFXTERN (long, NumberBins, MAX_BINS) DEFXTERN (BOOLEAN, Numerical, FALSE) DEFXTERN (ULONG, Octave, 1L) DEFXTERN (BOOLEAN, OneShotOnly, FALSE) DEFXTERN (IOFormatS, OutputFormat, OUTPUT_FORMAT_DEFAULTS) DEFXTERN (BOOLEAN, Overlap, TRUE) DEFXTERN (BOOLEAN, Pad, FALSE) DEFXTERN (BOOLEAN, Parseval, TRUE) DEFXTERN (BOOLEAN, Pink, FALSE) DEFXTERN (int, Plot, NO_PLOT) DEFXTERN (struct list_st *, PlotCommands, NULL) DEFXTERN (char, *PlotOutput, NULL) DEFXTERN (BOOLEAN, Power, FALSE) DEFXTERN (BOOLEAN, PSDensity, FALSE) DEFXTERN (double, Quantization, MIN_QUANTIZATION) DEFXTERN (BOOLEAN, Quiet, FALSE) DEFXTERN (double, Rate, AUTO_RATE) DEFXTERN (double, RotX, DEF_ROT_X) DEFXTERN (double, RotZ, DEF_ROT_Z) DEFXTERN (char, *ReadName, NULL) DEFXTERN (FILE, *ReadPtr, NULL) DEFXTERN (BOOLEAN, RepeatOnly, FALSE) DEFXTERN (BOOLEAN, SaveMemory, FALSE) DEFXTERN (long, SmoothingSegments, NO_SMOOTHING) DEFXTERN (long, SquaredSmoothing, FALSE) DEFXTERN (ULONG, StartByte, 0) DEFXTERN (ULONG, StartFrame, 0) DEFXTERN (ULONG, StopByte, ULONG_MAX) DEFXTERN (char, *Terminal, NULL) DEFXTERN (BOOLEAN, Time3D, FALSE) DEFXTERN (long, TimeOffset, NOT_SET) DEFXTERN (double, TimeOverlap, DEFAULT_TIME_OVERLAP) DEFXTERN (long, TimeSegments, NOT_SET) DEFXTERN (long, TimeSegSize, NOT_SET) DEFXTERN (BOOLEAN, Topaz, FALSE) DEFXTERN (int, WindowType, RECTANGLE_WINDOW) DEFXTERN (char, *WriteName, NULL) DEFXTERN (FILE, *WritePtr, NULL) /* * These options are set by formatted files */ DEFXTERN (int, FileFormat, UNFORMATTED) DEFXTERN (int, FileFormatOK, FALSE) DEFXTERN (double, FileRate, AUTO_RATE) DEFXTERN (ULONG, FileDataOffset, 0) DEFXTERN (ULONG, FileFrames, 0) DEFXTERN (double, FileVolume, 1.0L) DEFXTERN (int, FileChannels, 1) DEFXTERN (ULONG, FileOneShotHiFrames, 0) DEFXTERN (ULONG, FileRepeatHiFrames, 0) DEFXTERN (int, FileOctaves, 1) /* * When the OK module gains control, it decides to use the following */ DEFXTERN (double, OkRate, AUTO_RATE) DEFXTERN (ULONG, OkFrames, ULONG_MAX) DEFXTERN (ULONG, OkOffset, 0) DEFXTERN (int, OkChannels, 1) DEFXTERN (ULONG, OkStartFrame, 0) DEFXTERN (int, OkOctaveOffset, 0) DEFXTERN (double, OkSegmentTime, 0.0) DEFXTERN (char, *OkWriteName, NULL)