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

  1. /*
  2.  *    NTMovie.h
  3.  *     Copyright 1993, NeXT Computer, Inc.
  4.  *    
  5.  *    01Mar93 mpaque Created.
  6.  *    06Jan94    mpaque    Revised and merged with protocol defs.
  7.  */
  8. #import <Foundation/NSObject.h>
  9. #import <Foundation/NSString.h>
  10. #import <Foundation/NSData.h>
  11. #import <Foundation/NSDate.h>
  12. #import <Foundation/NSArray.h>
  13. #import "NTSampleBuffer.h"
  14. #import "NTClock.h"
  15. #import "movies.h"
  16. #import "status.h"
  17.  
  18. /*
  19.  * A protocol for messaging a movie.  The movie is composed of a number
  20.  * of tracks and supplementary information. 
  21.  *
  22.  */
  23. @protocol NTMovie <NSObject>
  24. - (NSString *)movieFile;
  25. - (void)setMovieFile:(NSString *)filename;
  26. - (void)setModified:(BOOL)value;
  27. - (BOOL)modified;
  28. - (void)setPosterTime:(double)time;
  29. - (double)posterTime;
  30. - (void)setPreviewMode:(BOOL)preview;
  31. - (BOOL)previewMode;
  32. - (void)setPreviewTime:(double)time duration:(double)duration;
  33. - (void)getPreviewTime:(out double*)time duration:(out double*)duration;
  34. - (void) setStatus:(NTStatusCode)value;
  35. - (NTStatusCode) status;
  36. - (void) setPreferredRate:(double) rate;
  37. - (double) preferredRate;
  38. - (void) setPreferredVolume:(double) volume;
  39. - (double) preferredVolume;
  40. - (void)setActiveSegment:(double)time duration:(double)duration;
  41. - (void)getActiveSegment:(out double *)time duration:(out double *)duration;
  42. - (void) setPlayHints:(NTPlayHintFlags)hints;
  43. - (NTPlayHintFlags)playHints;
  44. - (void)setActive:(BOOL)value;
  45. - (BOOL) active;
  46. - (id) newTrack;
  47. - (NSArray *)trackList;
  48. - (void)setProgressDelegate:(id)delegate;
  49. - (id)progressDelegate;
  50. - (void)setCreationDate:(NSDate *)date;
  51. - (NSDate *)creationDate;
  52. - (void)setModificationDate:(NSDate *)date;
  53. - (NSDate *)modificationDate;
  54. - (BOOL) hasNonSyncSamples;
  55. - (bycopy NSDictionary *)userData;
  56. - (void)setUserData:(bycopy NSDictionary *)userData;
  57. - (BOOL)getNextInterestingTime: (NTInterestingTimeFlags) flags
  58.         startingFrom        :    (double)startTime
  59.         inDirection        :    (NTTimeDirection)direction
  60.         interestingTime        :    (out double *)itime
  61.         duration        :    (out double *)duration;
  62. - (int)nextTrackID;
  63. - (void)setNextTrackID:(int)id;
  64.  
  65. /* Editing API */
  66. - (id <NTMovie>) copyFromTime    :    (double)time
  67.         duration    :    (double)duration
  68.         activeTracksOnly:    (BOOL)activeOnly;
  69.  
  70. // Insert srcMovie tracks into existing tracks
  71. - (BOOL) insertSegmentFrom:    (id <NTMovie>)srcMovie
  72.             fromTime    :    (double)srcTime
  73.             duration    :    (double)duration
  74.             toTime        :    (double)dstTime;
  75. // Add srcMovie tracks to movie, creating new tracks
  76. - (BOOL) addSegmentFrom:    (id <NTMovie>)srcMovie
  77.             fromTime    :    (double)srcTime
  78.             duration    :    (double)duration
  79.             toTime        :    (double)dstTime;
  80. - (BOOL) insertEmptySegmentAtTime:(double)time andDuration:(double)duration;
  81. - (BOOL) deleteSegmentFromTime:    (double)time
  82.             duration    :    (double)dur;
  83. - newEditState;
  84. - (BOOL)setEditState: (id)state;
  85.  
  86. /* Pasteboard level editing API */
  87. - (NSData *) cutFromTime:(double)time duration:(double)dur;
  88. - (void) deleteFromTime:(double)time duration:(double)dur;
  89. - (NSData *) copyFromTime:(double)time duration:(double)dur;
  90. - (void) pasteMovie:(NSData *)movieData atTime:(double)time;
  91. - (void) addMovie:(NSData *)movieData atTime:(double)time;
  92. - (void) undo;    /* undo/redo toggle */
  93. @end
  94.  
  95.  
  96. /*
  97.  * A class for representing a movie.  The movie is composed of a number
  98.  * of tracks and supplementary information. 
  99.  *
  100.  */
  101. @interface NTMovie: NSObject <NTMovie>
  102. {
  103. @private
  104.     BOOL        modified;
  105.     BOOL        active;
  106.     BOOL        previewMode;
  107.     int        playHints;
  108.     int        status;
  109.     int        nextTrackID;
  110.     NSDate *    creationDate;
  111.     NSDate *    modificationDate;
  112.     NSMutableArray        *trackList;
  113.     id        progressDelegate;
  114.     id        lastEditState;
  115.     NSMutableDictionary    *userData;
  116.     NSString *    movieFile;
  117.     double        posterTime;
  118.     double        previewTime;
  119.     double        previewDuration;
  120.     double        preferredRate;
  121.     double        preferredVolume;
  122.     double        activeSegmentTime;
  123.     double        activeSegmentDuration;
  124. }
  125.  
  126. @end
  127.  
  128.