/* Manipulation_def.h */
/* Paul Boersma, March 30, 2001 */

#define ooSTRUCT Manipulation
oo_DEFINE_CLASS (Manipulation, Function)

	oo_OBJECT (Sound, sound)
	oo_OBJECT (PointProcess, pulses)
	oo_OBJECT (PitchTier, pitch)

	oo_FROM (1)
		oo_OBJECT (IntensityTier, dummyIntensity)
	oo_ENDFROM

	oo_FROM (2)
		oo_OBJECT (DurationTier, duration)
	oo_ENDFROM

	oo_FROM (3)
		/*
		 * Make sure that the spectrogram is not written,
		 * but allow it to be read (a legacy of writing but not reading the version 3 stuff).
		 */
		#if oo_WRITING
			{ Spectrogram8 save = my dummySpectrogram; my dummySpectrogram = NULL;
		#endif
		oo_OBJECT (Spectrogram8, dummySpectrogram)
		#if oo_WRITING
			my dummySpectrogram = save; }
		#endif
		oo_OBJECT (FormantTier, dummyFormantTier)
		oo_OBJECT (Data, dummy1)
		oo_OBJECT (Data, dummy2)
		oo_OBJECT (Data, dummy3)
	oo_ENDFROM

	oo_FROM (4)
		oo_DOUBLE (timeStep)
		oo_OBJECT (Pitch, dummyPitchAnalysis)
		oo_DOUBLE (minimumPitch)
		oo_DOUBLE (maximumPitch)
		oo_OBJECT (Intensity, dummyIntensityAnalysis)
		oo_VERSION (1) oo_OBJECT (Formant, dummyFormantAnalysis)
		oo_INT (dummy4)
		oo_DOUBLE (dummy5)
		oo_DOUBLE (dummy6)
		oo_DOUBLE (dummy7)
		oo_DOUBLE (dummy8)
		oo_DOUBLE (dummy9)
	oo_ENDFROM

	#if !oo_READING && !oo_WRITING
		oo_OBJECT (LPC, lpc)
	#endif

oo_END_CLASS (Manipulation)
#undef ooSTRUCT

/* End of file Manipulation_def.h */
