home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextLibrary / Frameworks / NEXTIME.framework / Versions / A / Headers / NTMedia.h < prev    next >
Encoding:
Text File  |  1995-08-30  |  3.9 KB  |  138 lines

  1. /*
  2.  *    NTMedia.h
  3.  *     Copyright 1993, NeXT Computer, Inc.
  4.  *    
  5.  *    01Mar93 mpaque Created.
  6.  *    06Jan94    mpaque    Revised and merged with protocol defs.
  7.  */
  8.  
  9. #import <Foundation/NSObject.h>
  10. #import <Foundation/NSString.h>
  11. #import <Foundation/NSDate.h>
  12. #import <Foundation/NSDictionary.h>
  13. #import    "movies.h"
  14. #import    "status.h"
  15. #import "NTValueDictionary.h"
  16. #import "NTDictionaryKeys.h"
  17. #import "NTSampleBuffer.h"
  18. #import "NTFileIO.h"
  19. #import "NTSampleProcessorProtocol.h"
  20. #import "NTClock.h"
  21.  
  22. /*
  23.  * A protocol for messaging a media.  Media hold sample and timing information.
  24.  *
  25.  */
  26. @protocol NTMedia    <NTSampleConsumer>
  27. - (void) setStatus:(NTStatusCode)value;
  28. - (NTStatusCode) status;
  29. - (NSString *)type;
  30. - (void)setType:(NSString *)typeName;
  31. - (void) setPlayHints:(NTPlayHintFlags)hints;
  32. - (NTPlayHintFlags)playHints;
  33. - (void)setShadowSyncSample:(int)shadow forSample:(int)sample;
  34. - (int)shadowSyncSample:(int)sample;
  35. - (double)duration;
  36. - (double) tolerance;
  37. - (void)setTrack:(id)track;
  38. - (id)track;
  39. - (void)setQuality:(int)quality;
  40. - (int)quality;
  41. - (BOOL)setDefaultDataReference:(NSString *)filename;
  42. - (NSString *)defaultDataReference;
  43. - (void)setCreationDate:(NSDate *)date;
  44. - (NSDate *)creationDate;
  45. - (void)setModificationDate:(NSDate *)date;
  46. - (NSDate *)modificationDate;
  47. - (int)dataSizeForTime:(double)time duration:(double)duration;
  48. - (unsigned)sampleCount;
  49. - (BOOL)hasNonSyncSamples;
  50. - (BOOL)hasFixedSampleSize;
  51. - (unsigned) sampleDescriptionCount;
  52. - (void) addSampleDescription:    (bycopy NSDictionary *)desc;
  53. - (bycopy NSDictionary *) sampleDescriptionAtIndex:(int)index;
  54. - (void)setSampleDescription:(bycopy NSDictionary *)desc atIndex:(int)index;
  55. - (void) convertTime        :    (double)time
  56.     toSampleNumber        :    (out int *)samp
  57.     startingTime        :    (out double *)stime
  58.     duration        :    (out double *)duration;
  59.  
  60. - (void) convertSampleNumber    :    (int )sample
  61.         toStartingTime    :    (out double *)stime
  62.         duration    :    (out double *)duration;
  63. - (bycopy NSDictionary *)userData;
  64. - (void)setUserData:(bycopy NSDictionary *)userData;
  65. - (BOOL)getNextInterestingTime: (NTInterestingTimeFlags) flags
  66.         startingFrom        :    (double)startTime
  67.         inDirection        :    (NTTimeDirection)direction
  68.         interestingTime        :    (out double *)itime
  69.         duration        :    (out double *) duration;
  70.  
  71. /*
  72.  * Editing stuff
  73.  */
  74. - (BOOL)beginEdits;
  75. - (void)endEdits;
  76. - (void)writeSample:(NTSampleBuffer *)sample;
  77. - (NTSampleBuffer *)inputBuffer;
  78.  
  79. - (BOOL)addSample        :    (bycopy in NTSampleBuffer *)sample
  80.         startingTime:    (out double *)time;
  81. - (BOOL)addSampleReference    :    (int)offset
  82.         sampleSize        :    (int)len
  83.         sampleDuration    :    (double)duration
  84.         sampleDescription    :    (bycopy in NSDictionary *)description
  85.         sampleCount        :    (int)nsamples
  86.         sampleFlags        :    (NTSampleFlags)flags
  87.         startingTime:    (out double *)time;
  88. - (bycopy NTSampleBuffer *)sampleAtTime:(double)time;
  89. - (bycopy NTSampleBuffer *)sampleAtTime:(double)time
  90.         withMaxDuration    :(double)duration;
  91. - (BOOL)getSampleReference    :    (out int *)offset
  92.         maxLength        :    (inout int *)len
  93.         durationPerSample    :    (out double *)duration
  94.         sampleDescription    :    (bycopy out NSDictionary**)description
  95.         maxSampleCount    :    (int *)nsamples
  96.         sampleFlags        :    (out NTSampleFlags *)flags
  97.         atTime        :    (double)time;
  98.  
  99. // Add a block of sample references from another media
  100. - (BOOL)addSampleReferencesFromMedia:(id <NTMedia>)media
  101.         startingTime    :    (double)time
  102.         duration        :    (double)duration;
  103. @end
  104.  
  105.  
  106.  
  107. /*
  108.  * A class for representing a media.  Media hold sample and timing information.
  109.  *
  110.  */
  111. @interface NTMedia: NSObject <NTMedia>
  112. {
  113. @private
  114.     NTStatusCode    status;
  115.     NSString *    type;        // Type of media
  116.     int        playHints;
  117.     int        quality;
  118.     id <NTFileIO>    dataFile;
  119.     NSDate *    creationDate;
  120.     NSDate *    modificationDate;
  121.     unsigned    sampleCount;
  122.     
  123.     void *        sampleList;
  124.  
  125.     NSMutableArray *dataReferenceList;
  126.     NSMutableArray *sampleDescriptionList;
  127.     NSDictionary *    userData;
  128.     id        track;
  129.     int        trackID;
  130.     NSZone *    hotZone;
  131.     
  132.     double        tolerance;
  133.     BOOL        hasNonSyncSamples;
  134. }
  135.  
  136. @end
  137.  
  138.