home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************
- * 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 <stdio.h> /* This is needed below for FILE* */
- #include <limits.h> /* ULONG_MAX and LONG_MAX */
- #include <float.h> /* 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)
-