Metropoli BBS
VIEWER: settings.h MODE: TEXT (ASCII)
/***************************************************************************
 *		  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)
[ RETURN TO DIRECTORY ]