Poodletooth-iLand/dependencies/panda/pandac/input/libp3movies.in

1940 lines
100 KiB
Text
Raw Normal View History

2015-03-03 16:10:12 -06:00
1412103400
2 2
11 libp3movies 4 Aas2 12 panda3d.core
83
88 37 upcast_to_TypedWritableReferenceCount 0 12 171 49 MovieVideo::upcast_to_TypedWritableReferenceCount 0 1 8 53
upcast from MovieVideo to TypedWritableReferenceCount
85
TypedWritableReferenceCount *MovieVideo::upcast_to_TypedWritableReferenceCount(void);
89 22 downcast_to_MovieVideo 0 12 172 51 TypedWritableReferenceCount::downcast_to_MovieVideo 0 1 9 55
downcast from TypedWritableReferenceCount to MovieVideo
70
MovieVideo *TypedWritableReferenceCount::downcast_to_MovieVideo(void);
90 17 upcast_to_Namable 0 12 171 29 MovieVideo::upcast_to_Namable 0 1 10 33
upcast from MovieVideo to Namable
45
Namable *MovieVideo::upcast_to_Namable(void);
91 22 downcast_to_MovieVideo 0 12 173 31 Namable::downcast_to_MovieVideo 0 1 11 35
downcast from Namable to MovieVideo
50
MovieVideo *Namable::downcast_to_MovieVideo(void);
92 10 MovieVideo 0 4 171 22 MovieVideo::MovieVideo 0 2 1 2 465
////////////////////////////////////////////////////////////////////
// Function: MovieVideo::Constructor
// Access: Public
// Description: This constructor returns a null video stream --- a
// stream of plain blue and white frames that last one
// second each. To get more interesting video, you need
// to construct a subclass of this class.
////////////////////////////////////////////////////////////////////
75
MovieVideo::MovieVideo(basic_string< char > const &name = ("Blank Video"));
93 11 ~MovieVideo 0 6 171 23 MovieVideo::~MovieVideo 0 0 228
////////////////////////////////////////////////////////////////////
// Function: MovieVideo::Destructor
// Access: Public, Virtual
// Description:
////////////////////////////////////////////////////////////////////
38
virtual MovieVideo::~MovieVideo(void);
94 4 open 0 6 171 16 MovieVideo::open 0 1 3 336
////////////////////////////////////////////////////////////////////
// Function: MovieVideo::open
// Access: Published, Virtual
// Description: Open this video, returning a MovieVideoCursor of the
// appropriate type. Returns NULL on error.
////////////////////////////////////////////////////////////////////
61
virtual PointerTo< MovieVideoCursor > MovieVideo::open(void);
95 3 get 0 4 171 15 MovieVideo::get 0 1 4 328
////////////////////////////////////////////////////////////////////
// Function: MovieVideo::get
// Access: Published, Static
// Description: Obtains a MovieVideo that references a file.
// Just calls MovieTypeRegistry::make_video().
////////////////////////////////////////////////////////////////////
69
static PointerTo< MovieVideo > MovieVideo::get(Filename const &name);
96 12 get_filename 0 4 171 24 MovieVideo::get_filename 0 1 5 874
// Filename: movieVideo.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieVideo::get_filename
// Access: Published
// Description: Returns the movie's filename. A movie is not
// guaranteed to have a filename, if not, then this
// function returns an empty filename.
////////////////////////////////////////////////////////////////////
60
inline Filename const &MovieVideo::get_filename(void) const;
97 16 get_subfile_info 0 4 171 28 MovieVideo::get_subfile_info 0 1 6 398
////////////////////////////////////////////////////////////////////
// Function: MovieVideo::get_subfile_info
// Access: Published
// Description: If the movie is to be loaded from a subfile on disk,
// this returns the subfile info. Check info.is_empty()
// to see if this is valid data.
////////////////////////////////////////////////////////////////////
67
inline SubfileInfo const &MovieVideo::get_subfile_info(void) const;
98 14 get_class_type 0 4 171 26 MovieVideo::get_class_type 0 1 7 0
51
static TypeHandle MovieVideo::get_class_type(void);
99 12 InkblotVideo 0 4 174 26 InkblotVideo::InkblotVideo 0 1 12 225
////////////////////////////////////////////////////////////////////
// Function: InkblotVideo::Constructor
// Access: Public
// Description: xxx
////////////////////////////////////////////////////////////////////
50
InkblotVideo::InkblotVideo(int x, int y, int fps);
100 14 get_class_type 0 4 174 28 InkblotVideo::get_class_type 0 1 13 0
53
static TypeHandle InkblotVideo::get_class_type(void);
101 10 get_source 0 4 175 28 MovieVideoCursor::get_source 0 1 14 768
// Filename: movieVideoCursor.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::get_source
// Access: Published
// Description: Get the MovieVideo which this cursor references.
////////////////////////////////////////////////////////////////////
65
PointerTo< MovieVideo > MovieVideoCursor::get_source(void) const;
102 6 size_x 0 4 175 24 MovieVideoCursor::size_x 0 1 15 261
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::size_x
// Access: Published
// Description: Get the horizontal size of the movie.
////////////////////////////////////////////////////////////////////
48
inline int MovieVideoCursor::size_x(void) const;
103 6 size_y 0 4 175 24 MovieVideoCursor::size_y 0 1 16 259
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::size_y
// Access: Published
// Description: Get the vertical size of the movie.
////////////////////////////////////////////////////////////////////
48
inline int MovieVideoCursor::size_y(void) const;
104 18 get_num_components 0 4 175 36 MovieVideoCursor::get_num_components 0 1 17 310
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::get_num_components
// Access: Published
// Description: Returns 4 if the movie has an alpha
// channel, 3 otherwise.
////////////////////////////////////////////////////////////////////
60
inline int MovieVideoCursor::get_num_components(void) const;
105 6 length 0 4 175 24 MovieVideoCursor::length 0 1 18 1709
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::length
// Access: Published
// Description: Returns the length of the movie.
//
// Some kinds of Movie, such as internet TV station,
// might not have a predictable length. In that case,
// the length will be set to a very large number: 1.0E10.
// If the internet TV station goes offline, the video
// or audio stream will set its abort flag. Reaching the
// end of the movie (ie, the specified length) normally
// does not cause the abort flag to be set.
//
// The video and audio streams produced by get_video and
// get_audio are always of unlimited duration - you can
// always read another video frame or another audio
// sample. This is true even if the specified length
// is reached, or an abort is flagged. If either stream
// runs out of data, it will synthesize blank video
// frames and silent audio samples as necessary to
// satisfy read requests.
//
// Some AVI files have incorrect length values encoded
// into them - usually, they're a second or two long or
// short. When playing such an AVI using the Movie class,
// you may see a slightly truncated video, or a slightly
// elongated video (padded with black frames). There are
// utilities out there to fix the length values in AVI
// files.
//
////////////////////////////////////////////////////////////////////
51
inline double MovieVideoCursor::length(void) const;
106 8 can_seek 0 4 175 26 MovieVideoCursor::can_seek 0 1 19 748
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::can_seek
// Access: Published
// Description: Returns true if the movie can seek. If this is
// true, seeking is still not guaranteed to be fast:
// for some movies, seeking is implemented by rewinding
// to the beginning and then fast-forwarding to the
// desired location. Even if the movie cannot seek,
// the fetch methods can still advance to an arbitrary
// location by reading frames and discarding them.
// However, to move backward, can_seek must return true.
////////////////////////////////////////////////////////////////////
51
inline bool MovieVideoCursor::can_seek(void) const;
107 13 can_seek_fast 0 4 175 31 MovieVideoCursor::can_seek_fast 0 1 20 281
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::can_seek_fast
// Access: Published
// Description: Returns true if seek operations are constant time.
////////////////////////////////////////////////////////////////////
56
inline bool MovieVideoCursor::can_seek_fast(void) const;
108 7 aborted 0 4 175 25 MovieVideoCursor::aborted 0 1 21 531
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::aborted
// Access: Published
// Description: Returns true if the video has aborted prematurely.
// For example, this could occur if the Movie was actually
// an internet TV station, and the connection was lost.
// Reaching the normal end of the video does not
// constitute an 'abort' condition.
////////////////////////////////////////////////////////////////////
50
inline bool MovieVideoCursor::aborted(void) const;
109 5 ready 0 4 175 23 MovieVideoCursor::ready 0 1 22 399
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::ready
// Access: Published
// Description: Returns true if the cursor is a streaming source, and
// if a video frame is ready to be read. For non-
// streaming sources, this is always false.
////////////////////////////////////////////////////////////////////
48
inline bool MovieVideoCursor::ready(void) const;
110 9 streaming 0 4 175 27 MovieVideoCursor::streaming 0 1 23 894
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::streaming
// Access: Published
// Description: Returns true if the video frames are being "pushed"
// at us by something that operates at its own speed -
// for example, a webcam. In this case, the frames come
// when they're ready to come. Attempting to read too
// soon will produce nothing, reading too late will cause
// frames to be dropped. In this case, the ready flag
// can be used to determine whether or not a frame is
// ready for reading.
//
// When streaming, you should still pay attention to
// last_start, but the value of next_start is only a
// guess.
////////////////////////////////////////////////////////////////////
52
inline bool MovieVideoCursor::streaming(void) const;
111 13 setup_texture 0 4 175 31 MovieVideoCursor::setup_texture 0 1 24 382
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::setup_texture
// Access: Published
// Description: Set up the specified Texture object to contain
// content from this movie. This should be called
// once, not every frame.
////////////////////////////////////////////////////////////////////
57
void MovieVideoCursor::setup_texture(Texture *tex) const;
112 8 set_time 0 6 175 26 MovieVideoCursor::set_time 0 1 25 1330
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::set_time
// Access: Published, Virtual
// Description: Updates the cursor to the indicated time. If
// loop_count >= 1, the time is clamped to the movie's
// length * loop_count. If loop_count <= 0, the time is
// understood to be modulo the movie's length.
//
// Returns true if a new frame is now available, false
// otherwise. If this returns true, you should
// immediately follow this with exactly *one* call to
// fetch_buffer().
//
// If the movie reports that it can_seek, you may also
// specify a time value less than the previous value you
// passed to set_time(). Otherwise, you may only
// specify a time value greater than or equal to
// the previous value.
//
// If the movie reports that it can_seek, it doesn't
// mean that it can do so quickly. It may have to
// rewind the movie and then fast forward to the
// desired location. Only if can_seek_fast returns
// true can it seek rapidly.
////////////////////////////////////////////////////////////////////
74
virtual bool MovieVideoCursor::set_time(double timestamp, int loop_count);
113 17 compare_timestamp 0 6 176 43 MovieVideoCursor::Buffer::compare_timestamp 0 1 31 666
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::Buffer::compare_timestamp
// Access: Published, Virtual
// Description: Used to sort different buffers to ensure they
// correspond to the same source frame, particularly
// important when synchronizing the different pages of a
// multi-page texture.
//
// Returns 0 if the two buffers are of the same frame,
// <0 if this one comes earlier than the other one, and
// >0 if the other one comes earlier.
////////////////////////////////////////////////////////////////////
101
virtual int MovieVideoCursor::Buffer::compare_timestamp(MovieVideoCursor::Buffer const *other) const;
114 13 get_timestamp 0 6 176 39 MovieVideoCursor::Buffer::get_timestamp 0 1 32 535
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::Buffer::get_timestamp
// Access: Published, Virtual
// Description: Returns the nearest timestamp value of this
// particular buffer. Ideally,
// MovieVideoCursor::set_time() for this timestamp would
// return this buffer again. This need be defined only
// if compare_timestamp() is also defined.
////////////////////////////////////////////////////////////////////
67
virtual double MovieVideoCursor::Buffer::get_timestamp(void) const;
115 14 get_class_type 0 4 176 40 MovieVideoCursor::Buffer::get_class_type 0 1 33 0
65
static TypeHandle MovieVideoCursor::Buffer::get_class_type(void);
116 12 fetch_buffer 0 6 175 30 MovieVideoCursor::fetch_buffer 0 1 26 649
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::fetch_buffer
// Access: Published, Virtual
// Description: Gets the current video frame (as specified by
// set_time()) from the movie and returns it in a
// pre-allocated buffer. You may simply let the buffer
// dereference and delete itself when you are done with
// it.
//
// This may return NULL (even if set_time() returned
// true) if the frame is not available for some reason.
////////////////////////////////////////////////////////////////////
83
virtual PointerTo< MovieVideoCursor::Buffer > MovieVideoCursor::fetch_buffer(void);
117 16 apply_to_texture 0 6 175 34 MovieVideoCursor::apply_to_texture 0 1 27 298
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::apply_to_texture
// Access: Published, Virtual
// Description: Stores this buffer's contents in the indicated texture.
////////////////////////////////////////////////////////////////////
110
virtual void MovieVideoCursor::apply_to_texture(MovieVideoCursor::Buffer const *buffer, Texture *t, int page);
118 20 apply_to_texture_rgb 0 6 175 38 MovieVideoCursor::apply_to_texture_rgb 0 1 28 407
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::apply_to_texture_rgb
// Access: Published, Virtual
// Description: Copies this buffer's contents into the RGB channels
// of the supplied texture. The alpha channel of the
// texture is not touched.
////////////////////////////////////////////////////////////////////
114
virtual void MovieVideoCursor::apply_to_texture_rgb(MovieVideoCursor::Buffer const *buffer, Texture *t, int page);
119 22 apply_to_texture_alpha 0 6 175 40 MovieVideoCursor::apply_to_texture_alpha 0 1 29 410
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::apply_to_texture_alpha
// Access: Published, Virtual
// Description: Copies this buffer's contents into the alpha channel
// of the supplied texture. The RGB channels of the
// texture are not touched.
////////////////////////////////////////////////////////////////////
131
virtual void MovieVideoCursor::apply_to_texture_alpha(MovieVideoCursor::Buffer const *buffer, Texture *t, int page, int alpha_src);
120 14 get_class_type 0 4 175 32 MovieVideoCursor::get_class_type 0 1 30 0
57
static TypeHandle MovieVideoCursor::get_class_type(void);
121 18 InkblotVideoCursor 0 4 178 38 InkblotVideoCursor::InkblotVideoCursor 0 1 34 231
////////////////////////////////////////////////////////////////////
// Function: InkblotVideoCursor::Constructor
// Access: Public
// Description: xxx
////////////////////////////////////////////////////////////////////
58
InkblotVideoCursor::InkblotVideoCursor(InkblotVideo *src);
122 14 get_class_type 0 4 178 34 InkblotVideoCursor::get_class_type 0 1 35 0
59
static TypeHandle InkblotVideoCursor::get_class_type(void);
123 37 upcast_to_TypedWritableReferenceCount 0 12 179 49 MovieAudio::upcast_to_TypedWritableReferenceCount 0 1 42 53
upcast from MovieAudio to TypedWritableReferenceCount
85
TypedWritableReferenceCount *MovieAudio::upcast_to_TypedWritableReferenceCount(void);
124 22 downcast_to_MovieAudio 0 12 172 51 TypedWritableReferenceCount::downcast_to_MovieAudio 0 1 43 55
downcast from TypedWritableReferenceCount to MovieAudio
70
MovieAudio *TypedWritableReferenceCount::downcast_to_MovieAudio(void);
125 17 upcast_to_Namable 0 12 179 29 MovieAudio::upcast_to_Namable 0 1 44 33
upcast from MovieAudio to Namable
45
Namable *MovieAudio::upcast_to_Namable(void);
126 22 downcast_to_MovieAudio 0 12 173 31 Namable::downcast_to_MovieAudio 0 1 45 35
downcast from Namable to MovieAudio
50
MovieAudio *Namable::downcast_to_MovieAudio(void);
127 10 MovieAudio 0 4 179 22 MovieAudio::MovieAudio 0 2 36 37 453
////////////////////////////////////////////////////////////////////
// Function: MovieAudio::Constructor
// Access: Public
// Description: This constructor returns a null audio stream --- a
// stream of total silence, at 8000 samples per second.
// To get more interesting audio, you need to construct
// a subclass of this class.
////////////////////////////////////////////////////////////////////
75
MovieAudio::MovieAudio(basic_string< char > const &name = ("Blank Audio"));
128 11 ~MovieAudio 0 6 179 23 MovieAudio::~MovieAudio 0 0 228
////////////////////////////////////////////////////////////////////
// Function: MovieAudio::Destructor
// Access: Public, Virtual
// Description:
////////////////////////////////////////////////////////////////////
38
virtual MovieAudio::~MovieAudio(void);
129 4 open 0 6 179 16 MovieAudio::open 0 1 38 270
////////////////////////////////////////////////////////////////////
// Function: MovieAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a MovieAudioCursor
////////////////////////////////////////////////////////////////////
61
virtual PointerTo< MovieAudioCursor > MovieAudio::open(void);
130 3 get 0 4 179 15 MovieAudio::get 0 1 39 328
////////////////////////////////////////////////////////////////////
// Function: MovieAudio::get
// Access: Published, Static
// Description: Obtains a MovieAudio that references a file.
// Just calls MovieTypeRegistry::make_audio().
////////////////////////////////////////////////////////////////////
69
static PointerTo< MovieAudio > MovieAudio::get(Filename const &name);
131 12 get_filename 0 4 179 24 MovieAudio::get_filename 0 1 40 872
// Filename: movieAudio.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieAudio::get_filename
// Access: Published
// Description: Returns the movie's filename. A movie is not
// guaranteed to have a filename, if not, then this
// function returns a null filename.
////////////////////////////////////////////////////////////////////
60
inline Filename const &MovieAudio::get_filename(void) const;
132 14 get_class_type 0 4 179 26 MovieAudio::get_class_type 0 1 41 0
51
static TypeHandle MovieAudio::get_class_type(void);
133 15 get_num_options 0 4 180 32 MicrophoneAudio::get_num_options 0 1 46 481
////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_num_options
// Access: Public
// Description: Returns the number of microphone options. An "option"
// consists of a device plus a set of configuration
// parameters. For example, "Soundblaster Audigy Line in
// at 44,100 samples/sec" would be an option.
////////////////////////////////////////////////////////////////////
50
static int MicrophoneAudio::get_num_options(void);
134 10 get_option 0 4 180 27 MicrophoneAudio::get_option 0 1 47 258
////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_option
// Access: Public
// Description: Returns the nth microphone option.
////////////////////////////////////////////////////////////////////
71
static PointerTo< MicrophoneAudio > MicrophoneAudio::get_option(int n);
135 12 get_channels 0 4 180 29 MicrophoneAudio::get_channels 0 1 48 751
// Filename: microphoneAudio.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_channels
// Access: Published
// Description: Returns the number of channels.
////////////////////////////////////////////////////////////////////
53
inline int MicrophoneAudio::get_channels(void) const;
136 8 get_rate 0 4 180 25 MicrophoneAudio::get_rate 0 1 49 249
////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_rate
// Access: Published
// Description: Returns the sample rate.
////////////////////////////////////////////////////////////////////
49
inline int MicrophoneAudio::get_rate(void) const;
137 14 get_class_type 0 4 180 31 MicrophoneAudio::get_class_type 0 1 50 0
56
static TypeHandle MicrophoneAudio::get_class_type(void);
138 16 MovieAudioCursor 0 4 181 34 MovieAudioCursor::MovieAudioCursor 0 1 51 459
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::Constructor
// Access: Public
// Description: This constructor returns a null audio stream --- a
// stream of total silence, at 8000 samples per second.
// To get more interesting audio, you need to construct
// a subclass of this class.
////////////////////////////////////////////////////////////////////
52
MovieAudioCursor::MovieAudioCursor(MovieAudio *src);
139 10 get_source 0 4 181 28 MovieAudioCursor::get_source 0 1 52 769
// Filename: movieAudioCursor.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::get_source
// Access: Public
// Description: Returns the MovieAudio which this cursor references.
////////////////////////////////////////////////////////////////////
72
inline PointerTo< MovieAudio > MovieAudioCursor::get_source(void) const;
140 10 audio_rate 0 4 181 28 MovieAudioCursor::audio_rate 0 1 53 255
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::audio_rate
// Access: Public
// Description: Returns the audio sample rate.
////////////////////////////////////////////////////////////////////
52
inline int MovieAudioCursor::audio_rate(void) const;
141 14 audio_channels 0 4 181 32 MovieAudioCursor::audio_channels 0 1 54 318
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::audio_channels
// Access: Public
// Description: Returns the number of audio channels (ie, two for
// stereo, one for mono).
////////////////////////////////////////////////////////////////////
56
inline int MovieAudioCursor::audio_channels(void) const;
142 6 length 0 4 181 24 MovieAudioCursor::length 0 1 55 1159
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::length
// Access: Public
// Description: Returns the length of the movie. Attempting to read
// audio samples beyond the specified length will produce
// silent samples.
//
// Some kinds of Movie, such as internet TV station,
// might not have a predictable length. In that case,
// the length will be set to a very large number: 1.0E10.
//
// Some AVI files have incorrect length values encoded
// into them - they may be a second or two long or
// short. When playing such an AVI using the Movie class,
// you may see a slightly truncated video, or a slightly
// elongated video (padded with black frames). There are
// utilities out there to fix the length values in AVI
// files.
//
// An audio consumer needs to check the length, the
// ready status, and the aborted flag.
////////////////////////////////////////////////////////////////////
51
inline double MovieAudioCursor::length(void) const;
143 8 can_seek 0 4 181 26 MovieAudioCursor::can_seek 0 1 56 744
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::can_seek
// Access: Public
// Description: Returns true if the movie can seek. If this is
// true, seeking is still not guaranteed to be fast:
// for some movies, seeking is implemented by rewinding
// to the beginning and then fast-forwarding to the
// desired location. Even if the movie cannot seek,
// the seek method can still advance to an arbitrary
// location by reading samples and discarding them.
// However, to move backward, can_seek must return true.
////////////////////////////////////////////////////////////////////
51
inline bool MovieAudioCursor::can_seek(void) const;
144 13 can_seek_fast 0 4 181 31 MovieAudioCursor::can_seek_fast 0 1 57 278
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::can_seek_fast
// Access: Public
// Description: Returns true if seek operations are constant time.
////////////////////////////////////////////////////////////////////
56
inline bool MovieAudioCursor::can_seek_fast(void) const;
145 4 tell 0 4 181 22 MovieAudioCursor::tell 0 1 58 262
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::tell
// Access: Public
// Description: Returns the current offset within the file.
////////////////////////////////////////////////////////////////////
49
inline double MovieAudioCursor::tell(void) const;
146 12 skip_samples 0 4 181 30 MovieAudioCursor::skip_samples 0 1 59 322
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::skip_samples
// Access: Published
// Description: Skip audio samples from the stream. This is mostly
// for debugging purposes.
////////////////////////////////////////////////////////////////////
50
inline void MovieAudioCursor::skip_samples(int n);
147 7 aborted 0 4 181 25 MovieAudioCursor::aborted 0 1 60 380
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::aborted
// Access: Public
// Description: If aborted is true, it means that the "ready" samples
// are not being replenished. See the method "ready"
// for an explanation.
////////////////////////////////////////////////////////////////////
50
inline bool MovieAudioCursor::aborted(void) const;
148 5 ready 0 6 181 23 MovieAudioCursor::ready 0 1 61 1643
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::ready
// Access: Public
// Description: Returns the number of audio samples that are ready
// to read. This is primarily relevant for sources like
// microphones which produce samples at a fixed rate.
// If you try to read more samples than are ready, the
// result will be silent samples.
//
// Some audio streams do not have a limit on how fast
// they can produce samples. Such streams will always
// return 0x40000000 as the ready-count. This may well
// exceed the length of the audio stream. You therefore
// need to check length separately.
//
// If the aborted flag is set, that means the ready count
// is no longer being replenished. For example, a
// MovieAudioCursor might be reading from an internet
// radio station, and it might buffer data to avoid
// underruns. If it loses connection to the radio
// station, it will set the aborted flag to indicate that
// the buffer is no longer being replenished. But it is
// still ok to read the samples that are in the buffer,
// at least until they run out. Once those are gone,
// there will be no more.
//
// An audio consumer needs to check the length, the
// ready status, and the aborted flag.
////////////////////////////////////////////////////////////////////
48
virtual int MovieAudioCursor::ready(void) const;
149 4 seek 0 6 181 22 MovieAudioCursor::seek 0 1 62 1171
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::seek
// Access: Published, Virtual
// Description: Skips to the specified offset within the file.
//
// If the movie reports that it cannot seek, then
// this method can still advance by reading samples
// and discarding them. However, to move backward,
// can_seek must be true.
//
// If the movie reports that it can_seek, it doesn't
// mean that it can do so quickly. It may have to
// rewind the movie and then fast forward to the
// desired location. Only if can_seek_fast returns
// true can seek operations be done in constant time.
//
// Seeking may not be precise, because AVI files
// often have inaccurate indices. After
// seeking, tell will indicate that the cursor is
// at the target location. However, in truth, the data
// you read may come from a slightly offset location.
////////////////////////////////////////////////////////////////////
51
virtual void MovieAudioCursor::seek(double offset);
150 12 read_samples 0 4 181 30 MovieAudioCursor::read_samples 0 2 63 64 1642
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::read_samples
// Access: Public, Virtual
// Description: Read audio samples from the stream. N is the
// number of samples you wish to read. Your buffer
// must be equal in size to N * channels.
// Multiple-channel audio will be interleaved.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::read_samples
// Access: Published
// Description: Read audio samples from the stream into a
// Datagram. N is the number of samples you wish
// to read. Multiple-channel audio will be interleaved.
//
// This is not particularly efficient, but it may be
// a convenient way to manipulate samples in python.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::read_samples
// Access: Published
// Description: Read audio samples from the stream and returns
// them as a string. The samples are stored little-endian
// in the string. N is the number of samples you wish
// to read. Multiple-channel audio will be interleaved.
//
// This is not particularly efficient, but it may be
// a convenient way to manipulate samples in python.
////////////////////////////////////////////////////////////////////
117
void MovieAudioCursor::read_samples(int n, Datagram *dg);
basic_string< char > MovieAudioCursor::read_samples(int n);
151 14 get_class_type 0 4 181 32 MovieAudioCursor::get_class_type 0 1 65 0
57
static TypeHandle MovieAudioCursor::get_class_type(void);
152 13 UserDataAudio 0 4 182 28 UserDataAudio::UserDataAudio 0 2 66 67 331
////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::Constructor
// Access: Public
// Description: This constructor returns a UserDataAudio ---
// a means to supply raw audio samples manually.
////////////////////////////////////////////////////////////////////
83
UserDataAudio::UserDataAudio(int rate, int channels, bool remove_after_read = (1));
153 4 open 0 6 182 19 UserDataAudio::open 0 1 68 374
////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a UserDataAudioCursor. A
// UserDataAudio can only be opened by one consumer
// at a time.
////////////////////////////////////////////////////////////////////
64
virtual PointerTo< MovieAudioCursor > UserDataAudio::open(void);
154 6 append 0 4 182 21 UserDataAudio::append 0 3 69 70 71 1136
////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::append
// Access: Public
// Description: Appends audio samples to the buffer.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::append
// Access: Published
// Description: Appends audio samples to the buffer from a
// datagram. This is intended to make it easy to
// send streaming raw audio over a network.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::append
// Access: Published
// Description: Appends audio samples to the buffer from a
// string. The samples must be stored little-endian
// in the string. This is not particularly efficient,
// but it may be convenient to deal with samples in
// python.
////////////////////////////////////////////////////////////////////
187
void UserDataAudio::append(short int *data, int n);
void UserDataAudio::append(DatagramIterator *src, int len = (1073741824));
void UserDataAudio::append(basic_string< char > const &str);
155 4 done 0 4 182 19 UserDataAudio::done 0 1 72 320
////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::done
// Access: Published
// Description: Promises not to append any more samples, ie, this
// marks the end of the audio stream.
////////////////////////////////////////////////////////////////////
31
void UserDataAudio::done(void);
156 14 get_class_type 0 4 182 29 UserDataAudio::get_class_type 0 1 73 0
54
static TypeHandle UserDataAudio::get_class_type(void);
157 19 UserDataAudioCursor 0 4 183 40 UserDataAudioCursor::UserDataAudioCursor 0 1 74 223
////////////////////////////////////////////////////////////////////
// Function: UserDataAudioCursor::Constructor
// Access:
// Description:
////////////////////////////////////////////////////////////////////
61
UserDataAudioCursor::UserDataAudioCursor(UserDataAudio *src);
158 14 get_class_type 0 4 183 35 UserDataAudioCursor::get_class_type 0 1 75 0
60
static TypeHandle UserDataAudioCursor::get_class_type(void);
159 11 VorbisAudio 0 4 184 24 VorbisAudio::VorbisAudio 0 1 76 227
////////////////////////////////////////////////////////////////////
// Function: VorbisAudio::Constructor
// Access: Protected
// Description: xxx
////////////////////////////////////////////////////////////////////
47
VorbisAudio::VorbisAudio(Filename const &name);
160 4 open 0 6 184 17 VorbisAudio::open 0 1 77 271
////////////////////////////////////////////////////////////////////
// Function: VorbisAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a MovieAudioCursor
////////////////////////////////////////////////////////////////////
62
virtual PointerTo< MovieAudioCursor > VorbisAudio::open(void);
161 4 make 0 4 184 17 VorbisAudio::make 0 1 78 269
////////////////////////////////////////////////////////////////////
// Function: VorbisAudio::make
// Access: Published, Static
// Description: Obtains a MovieAudio that references a file.
////////////////////////////////////////////////////////////////////
71
static PointerTo< MovieAudio > VorbisAudio::make(Filename const &name);
162 14 get_class_type 0 4 184 27 VorbisAudio::get_class_type 0 1 79 0
52
static TypeHandle VorbisAudio::get_class_type(void);
163 17 VorbisAudioCursor 0 4 185 36 VorbisAudioCursor::VorbisAudioCursor 0 1 80 378
////////////////////////////////////////////////////////////////////
// Function: VorbisAudioCursor::Constructor
// Access: Protected
// Description: Reads the .wav header from the indicated stream.
// This leaves the read pointer positioned at the
// start of the data.
////////////////////////////////////////////////////////////////////
72
VorbisAudioCursor::VorbisAudioCursor(VorbisAudio *src, istream *stream);
164 14 get_class_type 0 4 185 33 VorbisAudioCursor::get_class_type 0 1 81 0
58
static TypeHandle VorbisAudioCursor::get_class_type(void);
165 8 WavAudio 0 4 186 18 WavAudio::WavAudio 0 1 82 224
////////////////////////////////////////////////////////////////////
// Function: WavAudio::Constructor
// Access: Protected
// Description: xxx
////////////////////////////////////////////////////////////////////
41
WavAudio::WavAudio(Filename const &name);
166 4 open 0 6 186 14 WavAudio::open 0 1 83 268
////////////////////////////////////////////////////////////////////
// Function: WavAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a MovieAudioCursor
////////////////////////////////////////////////////////////////////
59
virtual PointerTo< MovieAudioCursor > WavAudio::open(void);
167 4 make 0 4 186 14 WavAudio::make 0 1 84 266
////////////////////////////////////////////////////////////////////
// Function: WavAudio::make
// Access: Published, Static
// Description: Obtains a MovieAudio that references a file.
////////////////////////////////////////////////////////////////////
68
static PointerTo< MovieAudio > WavAudio::make(Filename const &name);
168 14 get_class_type 0 4 186 24 WavAudio::get_class_type 0 1 85 0
49
static TypeHandle WavAudio::get_class_type(void);
169 14 WavAudioCursor 0 4 187 30 WavAudioCursor::WavAudioCursor 0 1 86 375
////////////////////////////////////////////////////////////////////
// Function: WavAudioCursor::Constructor
// Access: Protected
// Description: Reads the .wav header from the indicated stream.
// This leaves the read pointer positioned at the
// start of the data.
////////////////////////////////////////////////////////////////////
63
WavAudioCursor::WavAudioCursor(WavAudio *src, istream *stream);
170 14 get_class_type 0 4 187 30 WavAudioCursor::get_class_type 0 1 87 0
55
static TypeHandle WavAudioCursor::get_class_type(void);
87
1 14 Dtool_Aas27cnR 0 7 8 189 93 14 Dtool_Aas27cnR 465 ////////////////////////////////////////////////////////////////////
// Function: MovieVideo::Constructor
// Access: Public
// Description: This constructor returns a null video stream --- a
// stream of plain blue and white frames that last one
// second each. To get more interesting video, you need
// to construct a subclass of this class.
//////////////////////////////////////////////////////////////////// 1 4 name 1 188
2 14 Dtool_Aas2Eqwy 0 7 8 189 93 14 Dtool_Aas2Eqwy 465 ////////////////////////////////////////////////////////////////////
// Function: MovieVideo::Constructor
// Access: Public
// Description: This constructor returns a null video stream --- a
// stream of plain blue and white frames that last one
// second each. To get more interesting video, you need
// to construct a subclass of this class.
//////////////////////////////////////////////////////////////////// 0
3 14 Dtool_Aas2vz98 0 7 10 190 0 14 Dtool_Aas2vz98 336 ////////////////////////////////////////////////////////////////////
// Function: MovieVideo::open
// Access: Published, Virtual
// Description: Open this video, returning a MovieVideoCursor of the
// appropriate type. Returns NULL on error.
//////////////////////////////////////////////////////////////////// 1 4 this 3 189
4 14 Dtool_Aas2tekD 0 7 11 189 93 14 Dtool_Aas2tekD 328 ////////////////////////////////////////////////////////////////////
// Function: MovieVideo::get
// Access: Published, Static
// Description: Obtains a MovieVideo that references a file.
// Just calls MovieTypeRegistry::make_video().
//////////////////////////////////////////////////////////////////// 1 4 name 1 191
5 14 Dtool_Aas2_nr_ 0 6 12 191 0 14 Dtool_Aas2_nr_ 874 // Filename: movieVideo.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieVideo::get_filename
// Access: Published
// Description: Returns the movie's filename. A movie is not
// guaranteed to have a filename, if not, then this
// function returns an empty filename.
//////////////////////////////////////////////////////////////////// 1 4 this 3 194
6 14 Dtool_Aas2W6Yd 0 6 13 196 0 14 Dtool_Aas2W6Yd 398 ////////////////////////////////////////////////////////////////////
// Function: MovieVideo::get_subfile_info
// Access: Published
// Description: If the movie is to be loaded from a subfile on disk,
// this returns the subfile info. Check info.is_empty()
// to see if this is valid data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 194
7 14 Dtool_Aas2VeVS 0 7 14 200 0 14 Dtool_Aas2VeVS 0 0
8 14 Dtool_Aas2QQdE 0 7 3 201 0 14 Dtool_Aas2QQdE 0 1 4 this 3 189
9 14 Dtool_Aas2xguY 0 7 4 189 93 14 Dtool_Aas2xguY 0 1 4 this 3 201
10 14 Dtool_Aas23iAT 0 6 6 202 0 14 Dtool_Aas23iAT 0 1 4 this 3 189
11 14 Dtool_Aas2RWtN 0 7 7 189 93 14 Dtool_Aas2RWtN 0 1 4 this 3 202
12 14 Dtool_Aas2Cokz 0 7 16 204 93 14 Dtool_Aas2Cokz 225 ////////////////////////////////////////////////////////////////////
// Function: InkblotVideo::Constructor
// Access: Public
// Description: xxx
//////////////////////////////////////////////////////////////////// 3 1 x 1 203 1 y 1 203 3 fps 1 203
13 14 Dtool_Aas2MLJD 0 7 17 200 0 14 Dtool_Aas2MLJD 0 0
14 14 Dtool_Aas2F_3S 0 7 19 189 93 14 Dtool_Aas2F_3S 768 // Filename: movieVideoCursor.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::get_source
// Access: Published
// Description: Get the MovieVideo which this cursor references.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
15 14 Dtool_Aas2xQ_5 0 6 20 203 0 14 Dtool_Aas2xQ_5 261 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::size_x
// Access: Published
// Description: Get the horizontal size of the movie.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
16 14 Dtool_Aas2Mv_H 0 6 21 203 0 14 Dtool_Aas2Mv_H 259 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::size_y
// Access: Published
// Description: Get the vertical size of the movie.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
17 14 Dtool_Aas2lF0p 0 6 22 203 0 14 Dtool_Aas2lF0p 310 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::get_num_components
// Access: Published
// Description: Returns 4 if the movie has an alpha
// channel, 3 otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
18 14 Dtool_Aas2G8Aa 0 6 23 207 0 14 Dtool_Aas2G8Aa 1709 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::length
// Access: Published
// Description: Returns the length of the movie.
//
// Some kinds of Movie, such as internet TV station,
// might not have a predictable length. In that case,
// the length will be set to a very large number: 1.0E10.
// If the internet TV station goes offline, the video
// or audio stream will set its abort flag. Reaching the
// end of the movie (ie, the specified length) normally
// does not cause the abort flag to be set.
//
// The video and audio streams produced by get_video and
// get_audio are always of unlimited duration - you can
// always read another video frame or another audio
// sample. This is true even if the specified length
// is reached, or an abort is flagged. If either stream
// runs out of data, it will synthesize blank video
// frames and silent audio samples as necessary to
// satisfy read requests.
//
// Some AVI files have incorrect length values encoded
// into them - usually, they're a second or two long or
// short. When playing such an AVI using the Movie class,
// you may see a slightly truncated video, or a slightly
// elongated video (padded with black frames). There are
// utilities out there to fix the length values in AVI
// files.
//
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
19 14 Dtool_Aas2aKIT 0 6 24 208 0 14 Dtool_Aas2aKIT 748 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::can_seek
// Access: Published
// Description: Returns true if the movie can seek. If this is
// true, seeking is still not guaranteed to be fast:
// for some movies, seeking is implemented by rewinding
// to the beginning and then fast-forwarding to the
// desired location. Even if the movie cannot seek,
// the fetch methods can still advance to an arbitrary
// location by reading frames and discarding them.
// However, to move backward, can_seek must return true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
20 14 Dtool_Aas2vhX3 0 6 25 208 0 14 Dtool_Aas2vhX3 281 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::can_seek_fast
// Access: Published
// Description: Returns true if seek operations are constant time.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
21 14 Dtool_Aas2A9Oi 0 6 26 208 0 14 Dtool_Aas2A9Oi 531 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::aborted
// Access: Published
// Description: Returns true if the video has aborted prematurely.
// For example, this could occur if the Movie was actually
// an internet TV station, and the connection was lost.
// Reaching the normal end of the video does not
// constitute an 'abort' condition.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
22 14 Dtool_Aas2OQVR 0 6 27 208 0 14 Dtool_Aas2OQVR 399 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::ready
// Access: Published
// Description: Returns true if the cursor is a streaming source, and
// if a video frame is ready to be read. For non-
// streaming sources, this is always false.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
23 14 Dtool_Aas2_Xew 0 6 28 208 0 14 Dtool_Aas2_Xew 894 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::streaming
// Access: Published
// Description: Returns true if the video frames are being "pushed"
// at us by something that operates at its own speed -
// for example, a webcam. In this case, the frames come
// when they're ready to come. Attempting to read too
// soon will produce nothing, reading too late will cause
// frames to be dropped. In this case, the ready flag
// can be used to determine whether or not a frame is
// ready for reading.
//
// When streaming, you should still pay attention to
// last_start, but the value of next_start is only a
// guess.
//////////////////////////////////////////////////////////////////// 1 4 this 3 205
24 14 Dtool_Aas2rq5v 0 4 29 211 0 14 Dtool_Aas2rq5v 382 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::setup_texture
// Access: Published
// Description: Set up the specified Texture object to contain
// content from this movie. This should be called
// once, not every frame.
//////////////////////////////////////////////////////////////////// 2 4 this 3 205 3 tex 1 209
25 14 Dtool_Aas2Dnp8 0 6 30 208 0 14 Dtool_Aas2Dnp8 1330 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::set_time
// Access: Published, Virtual
// Description: Updates the cursor to the indicated time. If
// loop_count >= 1, the time is clamped to the movie's
// length * loop_count. If loop_count <= 0, the time is
// understood to be modulo the movie's length.
//
// Returns true if a new frame is now available, false
// otherwise. If this returns true, you should
// immediately follow this with exactly *one* call to
// fetch_buffer().
//
// If the movie reports that it can_seek, you may also
// specify a time value less than the previous value you
// passed to set_time(). Otherwise, you may only
// specify a time value greater than or equal to
// the previous value.
//
// If the movie reports that it can_seek, it doesn't
// mean that it can do so quickly. It may have to
// rewind the movie and then fast forward to the
// desired location. Only if can_seek_fast returns
// true can it seek rapidly.
//////////////////////////////////////////////////////////////////// 3 4 this 3 190 9 timestamp 1 207 10 loop_count 1 203
26 14 Dtool_Aas2gmDc 0 7 36 212 0 14 Dtool_Aas2gmDc 649 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::fetch_buffer
// Access: Published, Virtual
// Description: Gets the current video frame (as specified by
// set_time()) from the movie and returns it in a
// pre-allocated buffer. You may simply let the buffer
// dereference and delete itself when you are done with
// it.
//
// This may return NULL (even if set_time() returned
// true) if the frame is not available for some reason.
//////////////////////////////////////////////////////////////////// 1 4 this 3 190
27 14 Dtool_Aas2_KHi 0 4 37 211 0 14 Dtool_Aas2_KHi 298 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::apply_to_texture
// Access: Published, Virtual
// Description: Stores this buffer's contents in the indicated texture.
//////////////////////////////////////////////////////////////////// 4 4 this 3 190 6 buffer 1 213 1 t 1 209 4 page 1 203
28 14 Dtool_Aas2Qo4B 0 4 38 211 0 14 Dtool_Aas2Qo4B 407 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::apply_to_texture_rgb
// Access: Published, Virtual
// Description: Copies this buffer's contents into the RGB channels
// of the supplied texture. The alpha channel of the
// texture is not touched.
//////////////////////////////////////////////////////////////////// 4 4 this 3 190 6 buffer 1 213 1 t 1 209 4 page 1 203
29 14 Dtool_Aas2LdQM 0 4 39 211 0 14 Dtool_Aas2LdQM 410 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::apply_to_texture_alpha
// Access: Published, Virtual
// Description: Copies this buffer's contents into the alpha channel
// of the supplied texture. The RGB channels of the
// texture are not touched.
//////////////////////////////////////////////////////////////////// 5 4 this 3 190 6 buffer 1 213 1 t 1 209 4 page 1 203 9 alpha_src 1 203
30 14 Dtool_Aas2jF2f 0 7 40 200 0 14 Dtool_Aas2jF2f 0 0
31 14 Dtool_Aas2Bm8F 0 6 33 203 0 14 Dtool_Aas2Bm8F 666 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::Buffer::compare_timestamp
// Access: Published, Virtual
// Description: Used to sort different buffers to ensure they
// correspond to the same source frame, particularly
// important when synchronizing the different pages of a
// multi-page texture.
//
// Returns 0 if the two buffers are of the same frame,
// <0 if this one comes earlier than the other one, and
// >0 if the other one comes earlier.
//////////////////////////////////////////////////////////////////// 2 4 this 3 213 5 other 1 213
32 14 Dtool_Aas2TlXP 0 6 34 207 0 14 Dtool_Aas2TlXP 535 ////////////////////////////////////////////////////////////////////
// Function: MovieVideoCursor::Buffer::get_timestamp
// Access: Published, Virtual
// Description: Returns the nearest timestamp value of this
// particular buffer. Ideally,
// MovieVideoCursor::set_time() for this timestamp would
// return this buffer again. This need be defined only
// if compare_timestamp() is also defined.
//////////////////////////////////////////////////////////////////// 1 4 this 3 213
33 14 Dtool_Aas2AV0C 0 7 35 200 0 14 Dtool_Aas2AV0C 0 0
34 14 Dtool_Aas2zSgu 0 7 42 215 0 14 Dtool_Aas2zSgu 231 ////////////////////////////////////////////////////////////////////
// Function: InkblotVideoCursor::Constructor
// Access: Public
// Description: xxx
//////////////////////////////////////////////////////////////////// 1 3 src 1 204
35 14 Dtool_Aas2_Vdw 0 7 43 200 0 14 Dtool_Aas2_Vdw 0 0
36 14 Dtool_Aas2h6Gr 0 7 49 216 128 14 Dtool_Aas2h6Gr 453 ////////////////////////////////////////////////////////////////////
// Function: MovieAudio::Constructor
// Access: Public
// Description: This constructor returns a null audio stream --- a
// stream of total silence, at 8000 samples per second.
// To get more interesting audio, you need to construct
// a subclass of this class.
//////////////////////////////////////////////////////////////////// 1 4 name 1 188
37 14 Dtool_Aas2xuOM 0 7 49 216 128 14 Dtool_Aas2xuOM 453 ////////////////////////////////////////////////////////////////////
// Function: MovieAudio::Constructor
// Access: Public
// Description: This constructor returns a null audio stream --- a
// stream of total silence, at 8000 samples per second.
// To get more interesting audio, you need to construct
// a subclass of this class.
//////////////////////////////////////////////////////////////////// 0
38 14 Dtool_Aas2WPyR 0 7 51 217 0 14 Dtool_Aas2WPyR 270 ////////////////////////////////////////////////////////////////////
// Function: MovieAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a MovieAudioCursor
//////////////////////////////////////////////////////////////////// 1 4 this 3 216
39 14 Dtool_Aas2hRaY 0 7 52 216 128 14 Dtool_Aas2hRaY 328 ////////////////////////////////////////////////////////////////////
// Function: MovieAudio::get
// Access: Published, Static
// Description: Obtains a MovieAudio that references a file.
// Just calls MovieTypeRegistry::make_audio().
//////////////////////////////////////////////////////////////////// 1 4 name 1 191
40 14 Dtool_Aas2WjhU 0 6 53 191 0 14 Dtool_Aas2WjhU 872 // Filename: movieAudio.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieAudio::get_filename
// Access: Published
// Description: Returns the movie's filename. A movie is not
// guaranteed to have a filename, if not, then this
// function returns a null filename.
//////////////////////////////////////////////////////////////////// 1 4 this 3 218
41 14 Dtool_Aas2JYLn 0 7 54 200 0 14 Dtool_Aas2JYLn 0 0
42 14 Dtool_Aas2EOTZ 0 7 45 201 0 14 Dtool_Aas2EOTZ 0 1 4 this 3 216
43 14 Dtool_Aas2ly_h 0 7 46 216 128 14 Dtool_Aas2ly_h 0 1 4 this 3 201
44 14 Dtool_Aas2fg2n 0 6 47 202 0 14 Dtool_Aas2fg2n 0 1 4 this 3 216
45 14 Dtool_Aas2nTQ_ 0 7 48 216 128 14 Dtool_Aas2nTQ_ 0 1 4 this 3 202
46 14 Dtool_Aas2HsFA 0 6 56 203 0 14 Dtool_Aas2HsFA 481 ////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_num_options
// Access: Public
// Description: Returns the number of microphone options. An "option"
// consists of a device plus a set of configuration
// parameters. For example, "Soundblaster Audigy Line in
// at 44,100 samples/sec" would be an option.
//////////////////////////////////////////////////////////////////// 0
47 14 Dtool_Aas2MUdn 0 7 57 220 128 14 Dtool_Aas2MUdn 258 ////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_option
// Access: Public
// Description: Returns the nth microphone option.
//////////////////////////////////////////////////////////////////// 1 1 n 1 203
48 14 Dtool_Aas2sjnl 0 6 58 203 0 14 Dtool_Aas2sjnl 751 // Filename: microphoneAudio.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_channels
// Access: Published
// Description: Returns the number of channels.
//////////////////////////////////////////////////////////////////// 1 4 this 3 221
49 14 Dtool_Aas2HJIm 0 6 59 203 0 14 Dtool_Aas2HJIm 249 ////////////////////////////////////////////////////////////////////
// Function: MicrophoneAudio::get_rate
// Access: Published
// Description: Returns the sample rate.
//////////////////////////////////////////////////////////////////// 1 4 this 3 221
50 14 Dtool_Aas2LVOV 0 7 60 200 0 14 Dtool_Aas2LVOV 0 0
51 14 Dtool_Aas2ar8r 0 7 62 217 0 14 Dtool_Aas2ar8r 459 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::Constructor
// Access: Public
// Description: This constructor returns a null audio stream --- a
// stream of total silence, at 8000 samples per second.
// To get more interesting audio, you need to construct
// a subclass of this class.
//////////////////////////////////////////////////////////////////// 1 3 src 1 216
52 14 Dtool_Aas2Rwtn 0 7 63 216 128 14 Dtool_Aas2Rwtn 769 // Filename: movieAudioCursor.I
// Created by: jyelon (02Jul07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::get_source
// Access: Public
// Description: Returns the MovieAudio which this cursor references.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
53 14 Dtool_Aas27TYa 0 6 64 203 0 14 Dtool_Aas27TYa 255 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::audio_rate
// Access: Public
// Description: Returns the audio sample rate.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
54 14 Dtool_Aas2gtX4 0 6 65 203 0 14 Dtool_Aas2gtX4 318 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::audio_channels
// Access: Public
// Description: Returns the number of audio channels (ie, two for
// stereo, one for mono).
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
55 14 Dtool_Aas2Oi2u 0 6 66 207 0 14 Dtool_Aas2Oi2u 1159 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::length
// Access: Public
// Description: Returns the length of the movie. Attempting to read
// audio samples beyond the specified length will produce
// silent samples.
//
// Some kinds of Movie, such as internet TV station,
// might not have a predictable length. In that case,
// the length will be set to a very large number: 1.0E10.
//
// Some AVI files have incorrect length values encoded
// into them - they may be a second or two long or
// short. When playing such an AVI using the Movie class,
// you may see a slightly truncated video, or a slightly
// elongated video (padded with black frames). There are
// utilities out there to fix the length values in AVI
// files.
//
// An audio consumer needs to check the length, the
// ready status, and the aborted flag.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
56 14 Dtool_Aas2qX_n 0 6 67 208 0 14 Dtool_Aas2qX_n 744 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::can_seek
// Access: Public
// Description: Returns true if the movie can seek. If this is
// true, seeking is still not guaranteed to be fast:
// for some movies, seeking is implemented by rewinding
// to the beginning and then fast-forwarding to the
// desired location. Even if the movie cannot seek,
// the seek method can still advance to an arbitrary
// location by reading samples and discarding them.
// However, to move backward, can_seek must return true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
57 14 Dtool_Aas2miNM 0 6 68 208 0 14 Dtool_Aas2miNM 278 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::can_seek_fast
// Access: Public
// Description: Returns true if seek operations are constant time.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
58 14 Dtool_Aas29J2Y 0 6 69 207 0 14 Dtool_Aas29J2Y 262 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::tell
// Access: Public
// Description: Returns the current offset within the file.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
59 14 Dtool_Aas22mru 0 4 70 211 0 14 Dtool_Aas22mru 322 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::skip_samples
// Access: Published
// Description: Skip audio samples from the stream. This is mostly
// for debugging purposes.
//////////////////////////////////////////////////////////////////// 2 4 this 3 217 1 n 1 203
60 14 Dtool_Aas20CF3 0 6 71 208 0 14 Dtool_Aas20CF3 380 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::aborted
// Access: Public
// Description: If aborted is true, it means that the "ready" samples
// are not being replenished. See the method "ready"
// for an explanation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
61 14 Dtool_Aas2GSLm 0 6 72 203 0 14 Dtool_Aas2GSLm 1643 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::ready
// Access: Public
// Description: Returns the number of audio samples that are ready
// to read. This is primarily relevant for sources like
// microphones which produce samples at a fixed rate.
// If you try to read more samples than are ready, the
// result will be silent samples.
//
// Some audio streams do not have a limit on how fast
// they can produce samples. Such streams will always
// return 0x40000000 as the ready-count. This may well
// exceed the length of the audio stream. You therefore
// need to check length separately.
//
// If the aborted flag is set, that means the ready count
// is no longer being replenished. For example, a
// MovieAudioCursor might be reading from an internet
// radio station, and it might buffer data to avoid
// underruns. If it loses connection to the radio
// station, it will set the aborted flag to indicate that
// the buffer is no longer being replenished. But it is
// still ok to read the samples that are in the buffer,
// at least until they run out. Once those are gone,
// there will be no more.
//
// An audio consumer needs to check the length, the
// ready status, and the aborted flag.
//////////////////////////////////////////////////////////////////// 1 4 this 3 223
62 14 Dtool_Aas29c_h 0 4 73 211 0 14 Dtool_Aas29c_h 1171 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::seek
// Access: Published, Virtual
// Description: Skips to the specified offset within the file.
//
// If the movie reports that it cannot seek, then
// this method can still advance by reading samples
// and discarding them. However, to move backward,
// can_seek must be true.
//
// If the movie reports that it can_seek, it doesn't
// mean that it can do so quickly. It may have to
// rewind the movie and then fast forward to the
// desired location. Only if can_seek_fast returns
// true can seek operations be done in constant time.
//
// Seeking may not be precise, because AVI files
// often have inaccurate indices. After
// seeking, tell will indicate that the cursor is
// at the target location. However, in truth, the data
// you read may come from a slightly offset location.
//////////////////////////////////////////////////////////////////// 2 4 this 3 217 6 offset 1 207
63 14 Dtool_Aas2TfBw 0 6 74 188 0 14 Dtool_Aas2TfBw 627 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::read_samples
// Access: Published
// Description: Read audio samples from the stream and returns
// them as a string. The samples are stored little-endian
// in the string. N is the number of samples you wish
// to read. Multiple-channel audio will be interleaved.
//
// This is not particularly efficient, but it may be
// a convenient way to manipulate samples in python.
//////////////////////////////////////////////////////////////////// 2 4 this 3 217 1 n 1 203
64 14 Dtool_Aas28NPe 0 4 74 211 0 14 Dtool_Aas28NPe 544 ////////////////////////////////////////////////////////////////////
// Function: MovieAudioCursor::read_samples
// Access: Published
// Description: Read audio samples from the stream into a
// Datagram. N is the number of samples you wish
// to read. Multiple-channel audio will be interleaved.
//
// This is not particularly efficient, but it may be
// a convenient way to manipulate samples in python.
//////////////////////////////////////////////////////////////////// 3 4 this 3 217 1 n 1 203 2 dg 1 225
65 14 Dtool_Aas2bKs0 0 7 75 200 0 14 Dtool_Aas2bKs0 0 0
66 14 Dtool_Aas2KE9v 0 7 77 227 128 14 Dtool_Aas2KE9v 331 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::Constructor
// Access: Public
// Description: This constructor returns a UserDataAudio ---
// a means to supply raw audio samples manually.
//////////////////////////////////////////////////////////////////// 3 4 rate 1 203 8 channels 1 203 17 remove_after_read 1 208
67 14 Dtool_Aas2d_xn 0 7 77 227 128 14 Dtool_Aas2d_xn 331 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::Constructor
// Access: Public
// Description: This constructor returns a UserDataAudio ---
// a means to supply raw audio samples manually.
//////////////////////////////////////////////////////////////////// 2 4 rate 1 203 8 channels 1 203
68 14 Dtool_Aas2B0gt 0 7 78 217 0 14 Dtool_Aas2B0gt 374 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a UserDataAudioCursor. A
// UserDataAudio can only be opened by one consumer
// at a time.
//////////////////////////////////////////////////////////////////// 1 4 this 3 227
69 14 Dtool_Aas21A0Y 0 4 79 211 0 14 Dtool_Aas21A0Y 387 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::append
// Access: Published
// Description: Appends audio samples to the buffer from a
// datagram. This is intended to make it easy to
// send streaming raw audio over a network.
//////////////////////////////////////////////////////////////////// 3 4 this 3 227 3 src 1 228 3 len 1 203
70 14 Dtool_Aas2cLbv 0 4 79 211 0 14 Dtool_Aas2cLbv 387 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::append
// Access: Published
// Description: Appends audio samples to the buffer from a
// datagram. This is intended to make it easy to
// send streaming raw audio over a network.
//////////////////////////////////////////////////////////////////// 2 4 this 3 227 3 src 1 228
71 14 Dtool_Aas2QG1O 0 4 79 211 0 14 Dtool_Aas2QG1O 491 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::append
// Access: Published
// Description: Appends audio samples to the buffer from a
// string. The samples must be stored little-endian
// in the string. This is not particularly efficient,
// but it may be convenient to deal with samples in
// python.
//////////////////////////////////////////////////////////////////// 2 4 this 3 227 3 str 1 188
72 14 Dtool_Aas2PL6l 0 4 80 211 0 14 Dtool_Aas2PL6l 320 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudio::done
// Access: Published
// Description: Promises not to append any more samples, ie, this
// marks the end of the audio stream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 227
73 14 Dtool_Aas22DZm 0 7 81 200 0 14 Dtool_Aas22DZm 0 0
74 14 Dtool_Aas2T7Mu 0 7 83 230 0 14 Dtool_Aas2T7Mu 223 ////////////////////////////////////////////////////////////////////
// Function: UserDataAudioCursor::Constructor
// Access:
// Description:
//////////////////////////////////////////////////////////////////// 1 3 src 1 227
75 14 Dtool_Aas2fQjQ 0 7 84 200 0 14 Dtool_Aas2fQjQ 0 0
76 14 Dtool_Aas2Z080 0 7 86 231 128 14 Dtool_Aas2Z080 227 ////////////////////////////////////////////////////////////////////
// Function: VorbisAudio::Constructor
// Access: Protected
// Description: xxx
//////////////////////////////////////////////////////////////////// 1 4 name 1 191
77 14 Dtool_Aas2EDS7 0 7 87 217 0 14 Dtool_Aas2EDS7 271 ////////////////////////////////////////////////////////////////////
// Function: VorbisAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a MovieAudioCursor
//////////////////////////////////////////////////////////////////// 1 4 this 3 231
78 14 Dtool_Aas2i8zO 0 7 88 216 128 14 Dtool_Aas2i8zO 269 ////////////////////////////////////////////////////////////////////
// Function: VorbisAudio::make
// Access: Published, Static
// Description: Obtains a MovieAudio that references a file.
//////////////////////////////////////////////////////////////////// 1 4 name 1 191
79 14 Dtool_Aas2L0mo 0 7 89 200 0 14 Dtool_Aas2L0mo 0 0
80 14 Dtool_Aas2Nska 0 7 91 234 0 14 Dtool_Aas2Nska 378 ////////////////////////////////////////////////////////////////////
// Function: VorbisAudioCursor::Constructor
// Access: Protected
// Description: Reads the .wav header from the indicated stream.
// This leaves the read pointer positioned at the
// start of the data.
//////////////////////////////////////////////////////////////////// 2 3 src 1 231 6 stream 1 232
81 14 Dtool_Aas2qGBa 0 7 92 200 0 14 Dtool_Aas2qGBa 0 0
82 14 Dtool_Aas2WKL7 0 7 94 235 128 14 Dtool_Aas2WKL7 224 ////////////////////////////////////////////////////////////////////
// Function: WavAudio::Constructor
// Access: Protected
// Description: xxx
//////////////////////////////////////////////////////////////////// 1 4 name 1 191
83 14 Dtool_Aas2zCHt 0 7 95 217 0 14 Dtool_Aas2zCHt 268 ////////////////////////////////////////////////////////////////////
// Function: WavAudio::open
// Access: Published, Virtual
// Description: Open this audio, returning a MovieAudioCursor
//////////////////////////////////////////////////////////////////// 1 4 this 3 235
84 14 Dtool_Aas2Y3P2 0 7 96 216 128 14 Dtool_Aas2Y3P2 266 ////////////////////////////////////////////////////////////////////
// Function: WavAudio::make
// Access: Published, Static
// Description: Obtains a MovieAudio that references a file.
//////////////////////////////////////////////////////////////////// 1 4 name 1 191
85 14 Dtool_Aas2Zugp 0 7 97 200 0 14 Dtool_Aas2Zugp 0 0
86 14 Dtool_Aas22UDT 0 7 99 236 0 14 Dtool_Aas22UDT 375 ////////////////////////////////////////////////////////////////////
// Function: WavAudioCursor::Constructor
// Access: Protected
// Description: Reads the .wav header from the indicated stream.
// This leaves the read pointer positioned at the
// start of the data.
//////////////////////////////////////////////////////////////////// 2 3 src 1 235 6 stream 1 232
87 14 Dtool_Aas2ZUk_ 0 7 100 200 0 14 Dtool_Aas2ZUk_ 0 0
67
171 10 MovieVideo 0 26625 10 MovieVideo 10 MovieVideo 0 0 0 1 92 93 0 5 94 95 96 97 98 0 0 2 3 172 88 89 3 173 90 91 0 0 676
////////////////////////////////////////////////////////////////////
// Class : MovieVideo
// Description : A MovieVideo is actually any source that provides
// a sequence of video frames. That could include an
// AVI file, a digital camera, or an internet TV station.
//
// The difference between a MovieVideo and a
// MovieVideoCursor is like the difference between a
// filename and a file handle. The MovieVideo just
// indicates a particular movie. The MovieVideoCursor
// is what allows access.
////////////////////////////////////////////////////////////////////
172 27 TypedWritableReferenceCount 0 2049 27 TypedWritableReferenceCount 27 TypedWritableReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 722
////////////////////////////////////////////////////////////////////
// Class : TypedWritableReferenceCount
// Description : A base class for things which need to inherit from
// both TypedWritable and from ReferenceCount. It's
// convenient to define this intermediate base class
// instead of multiply inheriting from the two classes
// each time they are needed, so that we can sensibly
// pass around pointers to things which are both
// TypedWritables and ReferenceCounters.
//
// See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////
173 7 Namable 0 2049 7 Namable 7 Namable 0 0 0 0 0 0 0 0 0 0 0 0 324
////////////////////////////////////////////////////////////////////
// Class : Namable
// Description : A base class for all things which can have a name.
// The name is either empty or nonempty, but it is never
// NULL.
////////////////////////////////////////////////////////////////////
174 12 InkblotVideo 0 75777 12 InkblotVideo 12 InkblotVideo 0 0 0 1 99 93 0 1 100 0 0 1 0 171 0 0 0 0 276
////////////////////////////////////////////////////////////////////
// Class : InkblotVideo
// Description : A cellular automaton that generates an amusing
// pattern of swirling colors.
////////////////////////////////////////////////////////////////////
175 16 MovieVideoCursor 0 75777 16 MovieVideoCursor 16 MovieVideoCursor 0 0 0 0 0 0 17 101 102 103 104 105 106 107 108 109 110 111 112 116 117 118 119 120 0 0 1 0 172 0 0 0 1 176 812
////////////////////////////////////////////////////////////////////
// Class : MovieVideoCursor
// Description : A MovieVideo is actually any source that provides
// a sequence of video frames. That could include an
// AVI file, a digital camera, or an internet TV station.
// A MovieVideoCursor is a handle that lets you read
// data sequentially from a MovieVideo.
//
// Thread safety: each individual MovieVideoCursor
// must be owned and accessed by a single thread.
// It is OK for two different threads to open
// the same file at the same time, as long as they
// use separate MovieVideoCursor objects.
////////////////////////////////////////////////////////////////////
176 6 Buffer 0 337921 24 MovieVideoCursor::Buffer 24 MovieVideoCursor::Buffer 175 0 0 0 0 0 3 113 114 115 0 0 1 0 177 0 0 0 0 0
177 19 TypedReferenceCount 0 2049 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 710
////////////////////////////////////////////////////////////////////
// Class : TypedReferenceCount
// Description : A base class for things which need to inherit from
// both TypedObject and from ReferenceCount. It's
// convenient to define this intermediate base class
// instead of multiply inheriting from the two classes
// each time they are needed, so that we can sensibly
// pass around pointers to things which are both
// TypedObjects and ReferenceCounters.
//
// See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////
178 18 InkblotVideoCursor 0 75777 18 InkblotVideoCursor 18 InkblotVideoCursor 0 0 0 1 121 0 0 1 122 0 0 1 0 175 0 0 0 0 282
////////////////////////////////////////////////////////////////////
// Class : InkblotVideoCursor
// Description : A cellular automaton that generates an amusing
// pattern of swirling colors.
////////////////////////////////////////////////////////////////////
179 10 MovieAudio 0 26625 10 MovieAudio 10 MovieAudio 0 0 0 1 127 128 0 4 129 130 131 132 0 0 2 3 172 123 124 3 173 125 126 0 0 673
////////////////////////////////////////////////////////////////////
// Class : MovieAudio
// Description : A MovieAudio is actually any source that provides
// a sequence of audio samples. That could include an
// AVI file, a microphone, or an internet TV station.
//
// The difference between a MovieAudio and a
// MovieAudioCursor is like the difference between a
// filename and a file handle. The MovieAudio just
// indicates a particular movie. The MovieAudioCursor
// is what allows access.
////////////////////////////////////////////////////////////////////
180 15 MicrophoneAudio 0 75777 15 MicrophoneAudio 15 MicrophoneAudio 0 0 0 0 128 0 5 133 134 135 136 137 1 238 0 1 0 179 0 0 0 0 290
////////////////////////////////////////////////////////////////////
// Class : MicrophoneAudio
// Description : Class MicrophoneAudio provides the means to read
// raw audio samples from a microphone.
////////////////////////////////////////////////////////////////////
181 16 MovieAudioCursor 0 75777 16 MovieAudioCursor 16 MovieAudioCursor 0 0 0 1 138 0 0 13 139 140 141 142 143 144 145 146 147 148 149 150 151 0 0 1 0 172 0 0 0 0 809
////////////////////////////////////////////////////////////////////
// Class : MovieAudioCursor
// Description : A MovieAudio is actually any source that provides
// a sequence of audio samples. That could include an
// AVI file, a microphone, or an internet TV station.
// A MovieAudioCursor is a handle that lets you read
// data sequentially from a MovieAudio.
//
// Thread safety: each individual MovieAudioCursor
// must be owned and accessed by a single thread.
// It is OK for two different threads to open
// the same file at the same time, as long as they
// use separate MovieAudioCursor objects.
////////////////////////////////////////////////////////////////////
182 13 UserDataAudio 0 75777 13 UserDataAudio 13 UserDataAudio 0 0 0 1 152 128 0 4 153 154 155 156 0 0 1 0 179 0 0 0 0 622
////////////////////////////////////////////////////////////////////
// Class : UserDataAudio
// Description : A UserDataAudio is a way for the user to manually
// supply raw audio samples. remove_after_read means the
// data will be removed if read once. Else data will
// be stored (enable looping and seeking).
// Expects data as 16 bit signed (word); Example for stereo:
// 1.word = 1.channel,2.word = 2.channel,
// 3.word = 1.channel,4.word = 2.channel, etc.
////////////////////////////////////////////////////////////////////
183 19 UserDataAudioCursor 0 75777 19 UserDataAudioCursor 19 UserDataAudioCursor 0 0 0 1 157 0 0 1 158 0 0 1 0 181 0 0 0 0 293
////////////////////////////////////////////////////////////////////
// Class : UserDataAudioCursor
// Description : A UserDataAudioCursor is a means to manually
// supply a sequence of raw audio samples.
////////////////////////////////////////////////////////////////////
184 11 VorbisAudio 0 75777 11 VorbisAudio 11 VorbisAudio 0 0 0 1 159 128 0 3 160 161 162 0 0 1 0 179 0 0 0 0 291
////////////////////////////////////////////////////////////////////
// Class : VorbisAudio
// Description : Interfaces with the libvorbisfile library to
// implement decoding of Ogg Vorbis audio files.
////////////////////////////////////////////////////////////////////
185 17 VorbisAudioCursor 0 75777 17 VorbisAudioCursor 17 VorbisAudioCursor 0 0 0 1 163 0 0 1 164 0 0 1 0 181 0 0 0 0 297
////////////////////////////////////////////////////////////////////
// Class : VorbisAudioCursor
// Description : Interfaces with the libvorbisfile library to
// implement decoding of Ogg Vorbis audio files.
////////////////////////////////////////////////////////////////////
186 8 WavAudio 0 75777 8 WavAudio 8 WavAudio 0 0 0 1 165 128 0 3 166 167 168 0 0 1 0 179 0 0 0 0 288
////////////////////////////////////////////////////////////////////
// Class : WavAudio
// Description : A native PCM .wav loader. Supported formats
// are linear PCM, IEEE float, A-law and mu-law.
////////////////////////////////////////////////////////////////////
187 14 WavAudioCursor 0 75777 14 WavAudioCursor 14 WavAudioCursor 0 0 0 1 169 0 0 1 170 0 0 1 0 181 0 0 0 0 301
////////////////////////////////////////////////////////////////////
// Class : WavAudioCursor
// Description : Used for reading PCM .wav files. Supported formats
// are linear PCM, IEEE float, A-law and mu-law.
////////////////////////////////////////////////////////////////////
188 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0
189 12 MovieVideo * 0 8576 12 MovieVideo * 12 MovieVideo * 0 0 171 0 0 0 0 0 0 0 0 0 0
190 18 MovieVideoCursor * 0 8576 18 MovieVideoCursor * 18 MovieVideoCursor * 0 0 175 0 0 0 0 0 0 0 0 0 0
191 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 192 0 0 0 0 0 0 0 0 0 0
192 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 193 0 0 0 0 0 0 0 0 0 0
193 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 869
////////////////////////////////////////////////////////////////////
// Class : Filename
// Description : The name of a file, such as a texture file or an Egg
// file. Stores the full pathname, and includes
// functions for extracting out the directory prefix
// part and the file extension and stuff.
//
// A Filename is also aware of the mapping between the
// Unix-like filename convention we use internally, and
// the local OS's specific filename convention, and it
// knows how to perform basic OS-specific I/O, like
// testing for file existence and searching a
// searchpath, as well as the best way to open an
// fstream for reading or writing.
////////////////////////////////////////////////////////////////////
194 18 MovieVideo const * 0 8576 18 MovieVideo const * 18 MovieVideo const * 0 0 195 0 0 0 0 0 0 0 0 0 0
195 16 MovieVideo const 0 8832 16 MovieVideo const 16 MovieVideo const 0 0 171 0 0 0 0 0 0 0 0 0 0
196 19 SubfileInfo const * 0 8576 19 SubfileInfo const * 19 SubfileInfo const * 0 0 197 0 0 0 0 0 0 0 0 0 0
197 17 SubfileInfo const 0 8832 17 SubfileInfo const 17 SubfileInfo const 0 0 198 0 0 0 0 0 0 0 0 0 0
198 11 SubfileInfo 0 2048 11 SubfileInfo 11 SubfileInfo 0 0 0 0 0 0 0 0 0 0 0 0 418
////////////////////////////////////////////////////////////////////
// Class : SubfileInfo
// Description : This class records a particular byte sub-range within
// an existing file on disk. Generally, the filename is
// understood as a physical file on disk, and not to be
// looked up via the vfs.
////////////////////////////////////////////////////////////////////
199 10 TypeHandle 0 2048 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 1098
////////////////////////////////////////////////////////////////////
// Class : TypeHandle
// Description : TypeHandle is the identifier used to differentiate
// C++ class types. Any C++ classes that inherit from
// some base class, and must be differentiated at run
// time, should store a static TypeHandle object that
// can be queried through a static member function
// named get_class_type(). Most of the time, it is also
// desirable to inherit from TypedObject, which provides
// some virtual functions to return the TypeHandle for a
// particular instance.
//
// At its essence, a TypeHandle is simply a unique
// identifier that is assigned by the TypeRegistry. The
// TypeRegistry stores a tree of TypeHandles, so that
// ancestry of a particular type may be queried, and the
// type name may be retrieved for run-time display.
////////////////////////////////////////////////////////////////////
200 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 199 0 0 0 0 0 0 0 0 0 0
201 29 TypedWritableReferenceCount * 0 8576 29 TypedWritableReferenceCount * 29 TypedWritableReferenceCount * 0 0 172 0 0 0 0 0 0 0 0 0 0
202 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 173 0 0 0 0 0 0 0 0 0 0
203 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0
204 14 InkblotVideo * 0 8576 14 InkblotVideo * 14 InkblotVideo * 0 0 174 0 0 0 0 0 0 0 0 0 0
205 24 MovieVideoCursor const * 0 8576 24 MovieVideoCursor const * 24 MovieVideoCursor const * 0 0 206 0 0 0 0 0 0 0 0 0 0
206 22 MovieVideoCursor const 0 8832 22 MovieVideoCursor const 22 MovieVideoCursor const 0 0 175 0 0 0 0 0 0 0 0 0 0
207 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0
208 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0
209 9 Texture * 0 8576 9 Texture * 9 Texture * 0 0 210 0 0 0 0 0 0 0 0 0 0
210 7 Texture 0 2048 7 Texture 7 Texture 0 0 0 0 0 0 0 0 0 0 0 0 1051
////////////////////////////////////////////////////////////////////
// Class : Texture
// Description : Represents a texture object, which is typically a
// single 2-d image but may also represent a 1-d or 3-d
// texture image, or the six 2-d faces of a cube map
// texture.
//
// A texture's image data might be stored in system RAM
// (see get_ram_image()) or its image may be represented
// in texture memory on one or more
// GraphicsStateGuardians (see prepare()), or both. The
// typical usage pattern is that a texture is loaded
// from an image file on disk, which copies its image
// data into system RAM; then the first time the texture
// is rendered its image data is copied to texture
// memory (actually, to the graphics API), and the
// system RAM image is automatically freed.
////////////////////////////////////////////////////////////////////
211 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0
212 8 Buffer * 0 8576 26 MovieVideoCursor::Buffer * 26 MovieVideoCursor::Buffer * 0 0 176 0 0 0 0 0 0 0 0 0 0
213 14 Buffer const * 0 8576 32 MovieVideoCursor::Buffer const * 32 MovieVideoCursor::Buffer const * 0 0 214 0 0 0 0 0 0 0 0 0 0
214 12 Buffer const 0 8832 30 MovieVideoCursor::Buffer const 30 MovieVideoCursor::Buffer const 0 0 176 0 0 0 0 0 0 0 0 0 0
215 20 InkblotVideoCursor * 0 8576 20 InkblotVideoCursor * 20 InkblotVideoCursor * 0 0 178 0 0 0 0 0 0 0 0 0 0
216 12 MovieAudio * 0 8576 12 MovieAudio * 12 MovieAudio * 0 0 179 0 0 0 0 0 0 0 0 0 0
217 18 MovieAudioCursor * 0 8576 18 MovieAudioCursor * 18 MovieAudioCursor * 0 0 181 0 0 0 0 0 0 0 0 0 0
218 18 MovieAudio const * 0 8576 18 MovieAudio const * 18 MovieAudio const * 0 0 219 0 0 0 0 0 0 0 0 0 0
219 16 MovieAudio const 0 8832 16 MovieAudio const 16 MovieAudio const 0 0 179 0 0 0 0 0 0 0 0 0 0
220 17 MicrophoneAudio * 0 8576 17 MicrophoneAudio * 17 MicrophoneAudio * 0 0 180 0 0 0 0 0 0 0 0 0 0
221 23 MicrophoneAudio const * 0 8576 23 MicrophoneAudio const * 23 MicrophoneAudio const * 0 0 222 0 0 0 0 0 0 0 0 0 0
222 21 MicrophoneAudio const 0 8832 21 MicrophoneAudio const 21 MicrophoneAudio const 0 0 180 0 0 0 0 0 0 0 0 0 0
223 24 MovieAudioCursor const * 0 8576 24 MovieAudioCursor const * 24 MovieAudioCursor const * 0 0 224 0 0 0 0 0 0 0 0 0 0
224 22 MovieAudioCursor const 0 8832 22 MovieAudioCursor const 22 MovieAudioCursor const 0 0 181 0 0 0 0 0 0 0 0 0 0
225 10 Datagram * 0 8576 10 Datagram * 10 Datagram * 0 0 226 0 0 0 0 0 0 0 0 0 0
226 8 Datagram 0 2048 8 Datagram 8 Datagram 0 0 0 0 0 0 0 0 0 0 0 0 900
////////////////////////////////////////////////////////////////////
// Class : Datagram
// Description : An ordered list of data elements, formatted in memory
// for transmission over a socket or writing to a data
// file.
//
// Data elements should be added one at a time, in
// order, to the Datagram. The nature and contents of
// the data elements are totally up to the user. When a
// Datagram has been transmitted and received, its data
// elements may be extracted using a DatagramIterator;
// it is up to the caller to know the correct type of
// each data element in order.
//
// A Datagram is itself headerless; it is simply a
// collection of data elements.
////////////////////////////////////////////////////////////////////
227 15 UserDataAudio * 0 8576 15 UserDataAudio * 15 UserDataAudio * 0 0 182 0 0 0 0 0 0 0 0 0 0
228 18 DatagramIterator * 0 8576 18 DatagramIterator * 18 DatagramIterator * 0 0 229 0 0 0 0 0 0 0 0 0 0
229 16 DatagramIterator 0 2048 16 DatagramIterator 16 DatagramIterator 0 0 0 0 0 0 0 0 0 0 0 0 438
////////////////////////////////////////////////////////////////////
// Class : DatagramIterator
// Description : A class to retrieve the individual data elements
// previously stored in a Datagram. Elements may be
// retrieved one at a time; it is up to the caller to
// know the correct type and order of each element.
////////////////////////////////////////////////////////////////////
230 21 UserDataAudioCursor * 0 8576 21 UserDataAudioCursor * 21 UserDataAudioCursor * 0 0 183 0 0 0 0 0 0 0 0 0 0
231 13 VorbisAudio * 0 8576 13 VorbisAudio * 13 VorbisAudio * 0 0 184 0 0 0 0 0 0 0 0 0 0
232 9 istream * 0 8576 9 istream * 9 istream * 0 0 233 0 0 0 0 0 0 0 0 0 0
233 7 istream 0 2048 7 istream 7 istream 0 0 0 0 0 0 0 0 0 0 0 0 0
234 19 VorbisAudioCursor * 0 8576 19 VorbisAudioCursor * 19 VorbisAudioCursor * 0 0 185 0 0 0 0 0 0 0 0 0 0
235 10 WavAudio * 0 8576 10 WavAudio * 10 WavAudio * 0 0 186 0 0 0 0 0 0 0 0 0 0
236 16 WavAudioCursor * 0 8576 16 WavAudioCursor * 16 WavAudioCursor * 0 0 187 0 0 0 0 0 0 0 0 0 0
237 6 string 0 2048 20 basic_string< char > 20 basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0
0
0
1
238 0 0 55 11 get_options 15 get_num_options 10 get_option