home *** CD-ROM | disk | FTP | other *** search
- #import <appkit/appkit.h>
- #import <soundkit/soundkit.h>
-
-
- // defines
-
- #define SOUNDTRACKER_SEND_TYPE_SAMPLES 1 // number of samples (int)
- #define SOUNDTRACKER_SEND_TYPE_SECONDS 2 // number of seconds (float)
- #define SOUNDTRACKER_SEND_TYPE_RATIO 3 // how far played (float 0-1)
- #define SOUNDTRACKER_SEND_TYPE_PERCENT 12 // how far played (float 0-100)
- #define SOUNDTRACKER_SEND_TYPE_LEFT 4 // left volume
- #define SOUNDTRACKER_SEND_TYPE_RIGHT 5 // right volume
- #define SOUNDTRACKER_SEND_TYPE_MONO 6 // mono volume
- #define SOUNDTRACKER_SEND_TYPE_MUTE 7 // mute tracking
- #define SOUNDTRACKER_SEND_TYPE_DEEMPHASIS 8 // deemphasis tracking
- #define SOUNDTRACKER_SEND_TYPE_LEFT_PEAK 9 // left peak volume for device
- #define SOUNDTRACKER_SEND_TYPE_RIGHT_PEAK 10 // right peak volume for device
- #define SOUNDTRACKER_SEND_TYPE_MONO_PEAK 11 // average peak volume
-
- #define SOUNDTRACKER_TIMED_ENTRY_SPEED 2 // seconds between refreshes
- #define SOUNDTRACKER_DEFAULT_SAMPLING_RATE 44100
-
-
- @interface MiscSoundTracker:Object
- {
- id sound; // can be a Sound or a SoundView
- id target; // item to send messages
- BOOL running; // is running
- int send_type; // what to send (see defines above)
- float refresh; // total seconds between updates
- DPSTimedEntry teNum; // timed entry
- NXSoundOut* output_device; // used to track deemphasis, peaks
- float default_sampling_rate; // default rate for processing
- }
-
- - init;
- - awake;
- - update; // message from timed entry
- - setRefresh:(float) number_seconds;
- - free;
-
- - setSound:this_sound_or_soundview;
- - sound;
- - setDefaultSamplingRate:(float) this_rate;
- // because when recording, sound returns rate improperly
- // needed only to return seconds information.
- // cannot be 0.
- - setTarget:this_target;
- - target;
- - clearTarget; // make target display 0 or ""
-
- - read:(NXTypedStream*) stream;
- - write:(NXTypedStream*) stream;
-
- - run;
- - stop;
- - sendSamples;
- - sendSeconds;
- - sendRatio;
- - sendPercent;
- - sendLeft;
- - sendRight;
- - sendMono;
- - sendMute;
- - sendDeemphasis;
- - sendLeftPeak;
- - sendRightPeak;
- - sendMonoPeak;
-
- - (float) floatValue;
- - (int) intValue;
-
- - setVolumeTo:sender; // only used if tracking volume
- - setMuteTo:sender; // only used if tracking mute
- - setDeemphasisTo:sender; // only used if tracking deemphasis
-
- - run:sender;
- - stop:sender;
- - sendSamples:sender;
- - sendSeconds:sender;
- - sendRatio:sender;
- - sendPercent:sender;
- - sendLeft:sender;
- - sendRight:sender;
- - sendMono:sender;
- - sendMute:sender;
- - sendDeemphasis:sender;
- - sendLeftPeak:sender;
- - sendRightPeak:sender;
- - sendMonoPeak:sender;
-
- @end