home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiscKit1.7.1 / MiscKit / Palettes / MiscSoundPalette / MiscSoundUtil.subproj / MiscSoundTracker.h < prev    next >
Encoding:
Text File  |  1995-03-25  |  3.4 KB  |  117 lines

  1. /*
  2.  
  3. MiscSoundTracker
  4. Version 1.2
  5. Copyright (c) 1995 by Sean Luke
  6. Donated to the MiscKit
  7.  
  8. Permission to use, copy, modify, and distribute this material 
  9. for any purpose and without fee, under the restrictions as noted 
  10. in the MiscKit copyright notice, is hereby granted, provided that
  11. the MiscKit copyright notice and this permission notice 
  12. appear in all source copies, and that the author's name shall not
  13. be used in advertising or publicity pertaining to this 
  14. material without the specific, prior written permission 
  15. of the author.  SEAN O. LUKE  MAKES NO REPRESENTATIONS ABOUT THE
  16. ACCURACY OR SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE.  
  17. IT IS PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
  18.  
  19. */
  20.  
  21. #import <appkit/appkit.h>
  22. #import <soundkit/soundkit.h>
  23.  
  24.  
  25. // defines
  26.  
  27. #define SOUNDTRACKER_SEND_TYPE_SAMPLES    1        // number of samples (int)
  28. #define SOUNDTRACKER_SEND_TYPE_SECONDS    2        // number of seconds (float)
  29. #define SOUNDTRACKER_SEND_TYPE_RATIO    3        // how far played (float 0-1)
  30. #define SOUNDTRACKER_SEND_TYPE_PERCENT    4        // how far played (float 0-100)
  31. #define SOUNDTRACKER_SEND_TYPE_LEFT        5        // left volume
  32. #define SOUNDTRACKER_SEND_TYPE_RIGHT    6        // right volume
  33. #define SOUNDTRACKER_SEND_TYPE_MONO        7        // mono volume
  34. #define SOUNDTRACKER_SEND_TYPE_MUTE        8        // mute tracking
  35. #define SOUNDTRACKER_SEND_TYPE_DEEMPHASIS    9    // deemphasis tracking
  36. #define SOUNDTRACKER_SEND_TYPE_LEFT_PEAK    10    // left peak volume for device
  37. #define SOUNDTRACKER_SEND_TYPE_RIGHT_PEAK    11    // right peak volume for device
  38. #define SOUNDTRACKER_SEND_TYPE_MONO_PEAK    12    // average peak volume 
  39.  
  40. #define SOUNDTRACKER_TIMED_ENTRY_SPEED    2        // seconds between refreshes
  41. #define SOUNDTRACKER_DEFAULT_SAMPLING_RATE 44100
  42.  
  43.  
  44. @interface MiscSoundTracker:Object
  45. {
  46.     id                 sound;                    // can be a Sound or a SoundView
  47.     id                 target;                    // item to send messages
  48.     BOOL            running;                // is running
  49.     int                send_type;                // what to send (see defines above)
  50.     float            refresh;                // total seconds between updates
  51.     DPSTimedEntry    teNum;                    // timed entry
  52.     NXSoundOut*        output_device;            // used to track deemphasis, peaks
  53.     float            default_sampling_rate;    // default rate for processing
  54. }
  55.  
  56. - init;
  57. - awake;
  58. //- _update;                                    // message from timed entry
  59. - setRefresh:(float) number_seconds;
  60. - setRefreshToMe:sender;            // sender must respond to floatValue
  61. - (float)refresh;
  62. - free;
  63.  
  64. - setSound:this_sound_or_soundview;
  65. - sound;
  66. - setDefaultSamplingRate:(float) this_rate;    
  67.         // because when recording, sound returns rate improperly
  68.         // needed only to return seconds information.
  69.         // cannot be 0.
  70. - (float)defaultSamplingRate;
  71. - setTarget:this_target;
  72. - target;
  73. - clearTarget;                                // make target display 0 or ""
  74.  
  75. - read:(NXTypedStream*) stream;
  76. - write:(NXTypedStream*) stream;
  77.  
  78. - run;
  79. - stop;
  80. - sendSamples;
  81. - sendSeconds;
  82. - sendRatio;
  83. - sendPercent;
  84. - sendLeft;
  85. - sendRight;
  86. - sendMono;
  87. - sendMute;
  88. - sendDeemphasis;
  89. - sendLeftPeak;
  90. - sendRightPeak;
  91. - sendMonoPeak;
  92. - setSendType:(int)this_format;
  93. - (int)sendType;
  94.  
  95. - (float) floatValue;
  96. - (int) intValue;
  97.  
  98. - setVolumeTo:sender;                        // only used if tracking volume
  99. - setMuteTo:sender;                            // only used if tracking mute
  100. - setDeemphasisTo:sender;                    // only used if tracking deemphasis
  101.  
  102. - run:sender;
  103. - stop:sender;
  104. - sendSamples:sender;
  105. - sendSeconds:sender;
  106. - sendRatio:sender;
  107. - sendPercent:sender;
  108. - sendLeft:sender;
  109. - sendRight:sender;
  110. - sendMono:sender;
  111. - sendMute:sender;
  112. - sendDeemphasis:sender;
  113. - sendLeftPeak:sender;
  114. - sendRightPeak:sender;
  115. - sendMonoPeak:sender;
  116.  
  117. @end