home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / soundkit / NXSoundStream.h < prev    next >
Text File  |  1992-03-25  |  2KB  |  92 lines

  1. /*
  2.  * NXSoundStream.h
  3.  *
  4.  * Abstract superclass for sound streams.
  5.  *
  6.  * Copyright (c) 1991, NeXT Computer, Inc.  All rights reserved. 
  7.  */
  8.  
  9. #import <objc/Object.h>
  10. #import <sys/time.h>
  11. #import <mach/mach.h>
  12. #import "NXSoundDevice.h"
  13.  
  14. typedef struct timeval NXSoundStreamTime;
  15.  
  16. #define NX_SOUNDSTREAM_TIME_NULL ((NXSoundStreamTime *)0)
  17.  
  18. @interface NXSoundStream:Object
  19. {
  20.     id            delegate;
  21.     BOOL        _isActive;
  22.     BOOL        _isPaused;
  23.     id            _device;
  24.     port_t        _streamPort;
  25.     unsigned int    _delegateMessages;
  26.     kern_return_t    _kernelError;
  27.     NXSoundDeviceError    _lastError;
  28.     int            _reserved;
  29. }
  30.  
  31. /*
  32.  * Initialize on a SoundDevice.
  33.  */
  34. - init;
  35. - initOnDevice:anObject;
  36. - device;
  37. - (NXSoundDeviceError)setDevice:anObject;
  38.  
  39. /*
  40.  * Get stream port.
  41.  */
  42. - (port_t)streamPort;
  43.  
  44. /*
  45.  * Activate and deactivate.
  46.  * Activate returns nil if stream cannot be activated.
  47.  */
  48. - (BOOL)isActive;
  49. - (NXSoundDeviceError)activate;
  50. - (NXSoundDeviceError)deactivate;
  51.  
  52. /*
  53.  * Stream control.
  54.  */
  55. - (BOOL)isPaused;
  56. - pause:sender;
  57. - resume:sender;
  58. - abort:sender;
  59. - (NXSoundDeviceError)pauseAtTime:(NXSoundStreamTime *)time;
  60. - (NXSoundDeviceError)resumeAtTime:(NXSoundStreamTime *)time;
  61. - (NXSoundDeviceError)abortAtTime:(NXSoundStreamTime *)time;
  62. - (unsigned int)bytesProcessed;
  63.  
  64. /*
  65.  * Error handling.
  66.  */
  67. - (NXSoundDeviceError)lastError;
  68.  
  69. /*
  70.  * Get and set delegate.
  71.  */
  72. - delegate;
  73. - setDelegate:anObject;
  74.  
  75. /*
  76.  * Release resources and free object.
  77.  */
  78. - free;
  79.  
  80. @end
  81.  
  82. /*
  83.  * Delegate interface.
  84.  */
  85. @interface Object(NXSoundStreamDelegate)
  86. - soundStream:sender didStartBuffer:(int)tag;
  87. - soundStream:sender didCompleteBuffer:(int)tag;
  88. - soundStreamDidPause:sender;
  89. - soundStreamDidResume:sender;
  90. - soundStreamDidAbort:sender deviceReserved:(BOOL)flag;
  91. @end
  92.