home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1995 August / NEBULA.mdf / SourceCode / MiscKit1.2.6 / Palettes / MiscSoundPalette / MiscSoundUtil.subproj / MiscSoundTracker.h < prev    next >
Encoding:
Text File  |  1994-05-27  |  2.6 KB  |  92 lines

  1. #import <appkit/appkit.h>
  2. #import <soundkit/soundkit.h>
  3.  
  4.  
  5. // defines
  6.  
  7. #define SOUNDTRACKER_SEND_TYPE_SAMPLES    1        // number of samples (int)
  8. #define SOUNDTRACKER_SEND_TYPE_SECONDS    2        // number of seconds (float)
  9. #define SOUNDTRACKER_SEND_TYPE_RATIO    3        // how far played (float 0-1)
  10. #define SOUNDTRACKER_SEND_TYPE_PERCENT    12        // how far played (float 0-100)
  11. #define SOUNDTRACKER_SEND_TYPE_LEFT        4        // left volume
  12. #define SOUNDTRACKER_SEND_TYPE_RIGHT    5        // right volume
  13. #define SOUNDTRACKER_SEND_TYPE_MONO        6        // mono volume
  14. #define SOUNDTRACKER_SEND_TYPE_MUTE        7        // mute tracking
  15. #define SOUNDTRACKER_SEND_TYPE_DEEMPHASIS    8    // deemphasis tracking
  16. #define SOUNDTRACKER_SEND_TYPE_LEFT_PEAK    9    // left peak volume for device
  17. #define SOUNDTRACKER_SEND_TYPE_RIGHT_PEAK    10    // right peak volume for device
  18. #define SOUNDTRACKER_SEND_TYPE_MONO_PEAK    11    // average peak volume 
  19.  
  20. #define SOUNDTRACKER_TIMED_ENTRY_SPEED    2        // seconds between refreshes
  21. #define SOUNDTRACKER_DEFAULT_SAMPLING_RATE 44100
  22.  
  23.  
  24. @interface MiscSoundTracker:Object
  25. {
  26.     id                 sound;                    // can be a Sound or a SoundView
  27.     id                 target;                    // item to send messages
  28.     BOOL            running;                // is running
  29.     int                send_type;                // what to send (see defines above)
  30.     float            refresh;                // total seconds between updates
  31.     DPSTimedEntry    teNum;                    // timed entry
  32.     NXSoundOut*        output_device;            // used to track deemphasis, peaks
  33.     float            default_sampling_rate;    // default rate for processing
  34. }
  35.  
  36. - init;
  37. - awake;
  38. - update;                                    // message from timed entry
  39. - setRefresh:(float) number_seconds;
  40. - free;
  41.  
  42. - setSound:this_sound_or_soundview;
  43. - sound;
  44. - setDefaultSamplingRate:(float) this_rate;    
  45.         // because when recording, sound returns rate improperly
  46.         // needed only to return seconds information.
  47.         // cannot be 0.
  48. - setTarget:this_target;
  49. - target;
  50. - clearTarget;                                // make target display 0 or ""
  51.  
  52. - read:(NXTypedStream*) stream;
  53. - write:(NXTypedStream*) stream;
  54.  
  55. - run;
  56. - stop;
  57. - sendSamples;
  58. - sendSeconds;
  59. - sendRatio;
  60. - sendPercent;
  61. - sendLeft;
  62. - sendRight;
  63. - sendMono;
  64. - sendMute;
  65. - sendDeemphasis;
  66. - sendLeftPeak;
  67. - sendRightPeak;
  68. - sendMonoPeak;
  69.  
  70. - (float) floatValue;
  71. - (int) intValue;
  72.  
  73. - setVolumeTo:sender;                        // only used if tracking volume
  74. - setMuteTo:sender;                            // only used if tracking mute
  75. - setDeemphasisTo:sender;                    // only used if tracking deemphasis
  76.  
  77. - run:sender;
  78. - stop:sender;
  79. - sendSamples:sender;
  80. - sendSeconds:sender;
  81. - sendRatio:sender;
  82. - sendPercent:sender;
  83. - sendLeft:sender;
  84. - sendRight:sender;
  85. - sendMono:sender;
  86. - sendMute:sender;
  87. - sendDeemphasis:sender;
  88. - sendLeftPeak:sender;
  89. - sendRightPeak:sender;
  90. - sendMonoPeak:sender;
  91.  
  92. @end