1412104298 2 2 13 libp3recorder 4 ayCl 12 panda3d.core 47 47 24 upcast_to_ReferenceCount 0 12 94 38 RecorderBase::upcast_to_ReferenceCount 0 1 4 42 upcast from RecorderBase to ReferenceCount 61 ReferenceCount *RecorderBase::upcast_to_ReferenceCount(void); 48 13 ~RecorderBase 0 6 94 27 RecorderBase::~RecorderBase 0 0 232 //////////////////////////////////////////////////////////////////// // Function: RecorderBase::Destructor // Access: Published, Virtual // Description: //////////////////////////////////////////////////////////////////// 42 virtual RecorderBase::~RecorderBase(void); 49 12 is_recording 0 4 94 26 RecorderBase::is_recording 0 1 1 934 // Filename: recorderBase.I // Created by: drose (24Jan04) // //////////////////////////////////////////////////////////////////// // // 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: RecorderBase::is_recording // Access: Published // Description: Returns true if this recorder is presently recording // data for saving to a session file, false otherwise. // If this is true, record_data() will be called from // time to time. //////////////////////////////////////////////////////////////////// 51 inline bool RecorderBase::is_recording(void) const; 50 10 is_playing 0 4 94 24 RecorderBase::is_playing 0 1 2 418 //////////////////////////////////////////////////////////////////// // Function: RecorderBase::is_playing // Access: Published // Description: Returns true if this recorder is presently playing back // data from session file, false otherwise. If this is // true, play_data() will be called from time to time. //////////////////////////////////////////////////////////////////// 49 inline bool RecorderBase::is_playing(void) const; 51 14 get_class_type 0 4 94 28 RecorderBase::get_class_type 0 1 3 0 53 static TypeHandle RecorderBase::get_class_type(void); 52 18 upcast_to_DataNode 0 12 96 33 MouseRecorder::upcast_to_DataNode 0 1 7 37 upcast from MouseRecorder to DataNode 50 DataNode *MouseRecorder::upcast_to_DataNode(void); 53 25 downcast_to_MouseRecorder 0 12 97 35 DataNode::downcast_to_MouseRecorder 0 1 8 39 downcast from DataNode to MouseRecorder 57 MouseRecorder *DataNode::downcast_to_MouseRecorder(void); 54 22 upcast_to_RecorderBase 0 12 96 37 MouseRecorder::upcast_to_RecorderBase 0 1 9 41 upcast from MouseRecorder to RecorderBase 58 RecorderBase *MouseRecorder::upcast_to_RecorderBase(void); 55 25 downcast_to_MouseRecorder 0 12 94 39 RecorderBase::downcast_to_MouseRecorder 0 1 10 43 downcast from RecorderBase to MouseRecorder 61 MouseRecorder *RecorderBase::downcast_to_MouseRecorder(void); 56 13 MouseRecorder 0 4 96 28 MouseRecorder::MouseRecorder 0 1 5 225 //////////////////////////////////////////////////////////////////// // Function: MouseRecorder::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// 63 MouseRecorder::MouseRecorder(basic_string< char > const &name); 57 14 ~MouseRecorder 0 6 96 29 MouseRecorder::~MouseRecorder 0 0 233 //////////////////////////////////////////////////////////////////// // Function: MouseRecorder::Destructor // Access: Published, Virtual // Description: //////////////////////////////////////////////////////////////////// 44 virtual MouseRecorder::~MouseRecorder(void); 58 14 get_class_type 0 4 96 29 MouseRecorder::get_class_type 0 1 6 0 54 static TypeHandle MouseRecorder::get_class_type(void); 59 18 RecorderController 0 4 98 38 RecorderController::RecorderController 0 1 11 230 //////////////////////////////////////////////////////////////////// // Function: RecorderController::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// 45 RecorderController::RecorderController(void); 60 12 begin_record 0 4 98 32 RecorderController::begin_record 0 1 12 375 //////////////////////////////////////////////////////////////////// // Function: RecorderController::begin_record // Access: Published // Description: Begins recording data to the indicated filename. All // of the recorders in use should already have been // added. //////////////////////////////////////////////////////////////////// 64 bool RecorderController::begin_record(Filename const &filename); 61 14 begin_playback 0 4 98 34 RecorderController::begin_playback 0 1 13 661 //////////////////////////////////////////////////////////////////// // Function: RecorderController::begin_playback // Access: Published // Description: Begins playing back data from the indicated filename. // All of the recorders in use should already have been // added, although this may define additional recorders // if they are present in the file (these new recorders // will not be used). This may also undefine recorders // that were previously added but are not present in the // file. //////////////////////////////////////////////////////////////////// 66 bool RecorderController::begin_playback(Filename const &filename); 62 5 close 0 4 98 25 RecorderController::close 0 1 14 275 //////////////////////////////////////////////////////////////////// // Function: RecorderController::close // Access: Published // Description: Finishes recording data to the indicated filename. //////////////////////////////////////////////////////////////////// 37 void RecorderController::close(void); 63 14 get_start_time 0 4 98 34 RecorderController::get_start_time 0 1 15 912 // Filename: recorderController.I // Created by: drose (24Jan04) // //////////////////////////////////////////////////////////////////// // // 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: RecorderController::get_start_time // Access: Published // Description: Returns the time (and date) at which the current // session was originally recorded (or, in recording // mode, the time at which the current session began). //////////////////////////////////////////////////////////////////// 67 inline unsigned int RecorderController::get_start_time(void) const; 64 15 set_random_seed 0 4 98 35 RecorderController::set_random_seed 0 1 16 472 //////////////////////////////////////////////////////////////////// // Function: RecorderController::set_random_seed // Access: Published // Description: Indicates an arbitrary number to be recorded in the // session file as a random seed, should the application // wish to take advantage of it. This must be set // before begin_record() is called. //////////////////////////////////////////////////////////////////// 65 inline void RecorderController::set_random_seed(int random_seed); 65 15 get_random_seed 0 4 98 35 RecorderController::get_random_seed 0 1 17 444 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_random_seed // Access: Published // Description: Returns the random seed that was set by a previous // call to set_random_seed(), or the number read from // the session file after begin_playback() has been // called. //////////////////////////////////////////////////////////////////// 59 inline int RecorderController::get_random_seed(void) const; 66 12 is_recording 0 4 98 32 RecorderController::is_recording 0 1 18 324 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_recording // Access: Published // Description: Returns true if the controller has been opened for // output, false otherwise. //////////////////////////////////////////////////////////////////// 57 inline bool RecorderController::is_recording(void) const; 67 10 is_playing 0 4 98 30 RecorderController::is_playing 0 1 19 321 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_playing // Access: Published // Description: Returns true if the controller has been opened for // input, false otherwise. //////////////////////////////////////////////////////////////////// 55 inline bool RecorderController::is_playing(void) const; 68 7 is_open 0 4 98 27 RecorderController::is_open 0 1 20 335 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_open // Access: Published // Description: Returns true if the controller has been opened for // either input or output, false otherwise. //////////////////////////////////////////////////////////////////// 52 inline bool RecorderController::is_open(void) const; 69 12 get_filename 0 4 98 32 RecorderController::get_filename 0 1 21 348 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_filename // Access: Published // Description: Returns the filename that was passed to the most // recent call to begin_record() or begin_playback(). //////////////////////////////////////////////////////////////////// 68 inline Filename const &RecorderController::get_filename(void) const; 70 8 is_error 0 4 98 28 RecorderController::is_error 0 1 22 453 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_error // Access: Published // Description: Returns true if the controller has been opened for // input or output output and there is an error on the // stream, or false if the controller is closed or if // there is no problem. //////////////////////////////////////////////////////////////////// 47 inline bool RecorderController::is_error(void); 71 16 get_clock_offset 0 4 98 36 RecorderController::get_clock_offset 0 1 23 456 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_clock_offset // Access: Published // Description: Returns the delta offset between the actual frame // time and the frame time written to the log. This is // essentially the time at which the recording (or // playback) started. //////////////////////////////////////////////////////////////////// 63 inline double RecorderController::get_clock_offset(void) const; 72 16 get_frame_offset 0 4 98 36 RecorderController::get_frame_offset 0 1 24 466 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_frame_offset // Access: Published // Description: Returns the delta offset between the actual frame // count and the frame count written to the log. This is // essentially the frame number at which the recording // (or playback) started. //////////////////////////////////////////////////////////////////// 60 inline int RecorderController::get_frame_offset(void) const; 73 12 add_recorder 0 4 98 32 RecorderController::add_recorder 0 1 25 654 //////////////////////////////////////////////////////////////////// // Function: RecorderController::add_recorder // Access: Published // Description: Adds the named recorder to the set of recorders that // are in use. // // If the controller is in recording mode, the named // recorder will begin recording its status to the // session file. If the controller is in playback mode // and the name and type matches a recorder in the // session file, the recorder will begin receiving data. //////////////////////////////////////////////////////////////////// 103 inline void RecorderController::add_recorder(basic_string< char > const &name, RecorderBase *recorder); 74 12 has_recorder 0 4 98 32 RecorderController::has_recorder 0 1 26 643 //////////////////////////////////////////////////////////////////// // Function: RecorderController::has_recorder // Access: Published // Description: Returns true if the named recorder has been added to // the table by a previous call to add_recorder(), false // otherwise. // // If the controller is in playback mode, this will also // return false for a recorder that was found in the // session file but was never explicitly added via // add_recorder(); see get_recorder(). //////////////////////////////////////////////////////////////////// 85 inline bool RecorderController::has_recorder(basic_string< char > const &name) const; 75 12 get_recorder 0 4 98 32 RecorderController::get_recorder 0 1 27 714 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_recorder // Access: Published // Description: Returns the recorder with the indicated name, or NULL // if there is no such recorder. // // If the controller is in playback mode, this may // return the recorder matching the indicated name as // read from the session file, even if it was never // added to the table by the user. In this case, // has_recorder() may return false, but get_recorder() // will return a non-NULL value. //////////////////////////////////////////////////////////////////// 94 inline RecorderBase *RecorderController::get_recorder(basic_string< char > const &name) const; 76 15 remove_recorder 0 4 98 35 RecorderController::remove_recorder 0 1 28 822 //////////////////////////////////////////////////////////////////// // Function: RecorderController::remove_recorder // Access: Published // Description: Removes the named recorder from the table. Returns // true if successful, false if there was no such // recorder. // // If the controller is in recording mode, the named // recorder will stop recording. If the controller is // in playback mode, the named recorder will // disassociate itself from the session file (but if the // session file still has data for this name, a default // recorder will take its place to decode the data from // the session file). //////////////////////////////////////////////////////////////////// 82 inline bool RecorderController::remove_recorder(basic_string< char > const &name); 77 13 set_frame_tie 0 4 98 33 RecorderController::set_frame_tie 0 1 29 895 //////////////////////////////////////////////////////////////////// // Function: RecorderController::set_frame_tie // Access: Published // Description: Sets the frame_tie flag. // // When this is true, sessions are played back // frame-for-frame, based on the frame count of the // recorded session. This gives the most accurate // playback, but the playback rate will vary according // to the frame rate of the playback machine. // // When this is false, sessions are played back at real // time, based on the clock of the recorded session. // This may introduce playback discrepencies if the // frames do not fall at exactly the same times as they // did in the original. //////////////////////////////////////////////////////////////////// 62 inline void RecorderController::set_frame_tie(bool frame_tie); 78 13 get_frame_tie 0 4 98 33 RecorderController::get_frame_tie 0 1 30 253 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_frame_tie // Access: Published // Description: See set_frame_tie(). //////////////////////////////////////////////////////////////////// 58 inline bool RecorderController::get_frame_tie(void) const; 79 12 record_frame 0 4 98 32 RecorderController::record_frame 0 1 31 341 //////////////////////////////////////////////////////////////////// // Function: RecorderController::record_frame // Access: Published // Description: Gets the next frame of data from all of the active // recorders and adds it to the output file. //////////////////////////////////////////////////////////////////// 44 void RecorderController::record_frame(void); 80 10 play_frame 0 4 98 30 RecorderController::play_frame 0 1 32 339 //////////////////////////////////////////////////////////////////// // Function: RecorderController::play_frame // Access: Published // Description: Gets the next frame of data from all of the active // recorders and adds it to the output file. //////////////////////////////////////////////////////////////////// 42 void RecorderController::play_frame(void); 81 14 get_class_type 0 4 98 34 RecorderController::get_class_type 0 1 33 0 59 static TypeHandle RecorderController::get_class_type(void); 82 20 SocketStreamRecorder 0 4 100 42 SocketStreamRecorder::SocketStreamRecorder 0 2 34 35 962 // Filename: socketStreamRecorder.I // Created by: drose (28Jan04) // //////////////////////////////////////////////////////////////////// // // 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: SocketStreamRecorder::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// 147 inline SocketStreamRecorder::SocketStreamRecorder(void); inline SocketStreamRecorder::SocketStreamRecorder(SocketStream *stream, bool owns_stream); 83 16 receive_datagram 0 4 100 38 SocketStreamRecorder::receive_datagram 0 1 36 536 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::receive_datagram // Access: Public // Description: Receives a datagram over the socket by expecting a // little-endian 16-bit byte count as a prefix. If the // socket stream is non-blocking, may return false if // the data is not available; otherwise, returns false // only if the socket closes. //////////////////////////////////////////////////////////////////// 58 bool SocketStreamRecorder::receive_datagram(Datagram &dg); 84 13 send_datagram 0 4 100 35 SocketStreamRecorder::send_datagram 0 1 37 266 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::send_datagram // Access: Public // Description: See SocketStream::send_datagram(). //////////////////////////////////////////////////////////////////// 68 inline bool SocketStreamRecorder::send_datagram(Datagram const &dg); 85 9 is_closed 0 4 100 31 SocketStreamRecorder::is_closed 0 1 38 261 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::is_closed // Access: Published // Description: See SocketStream::is_closed(). //////////////////////////////////////////////////////////////////// 50 inline bool SocketStreamRecorder::is_closed(void); 86 5 close 0 4 100 27 SocketStreamRecorder::close 0 1 39 253 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::close // Access: Published // Description: See SocketStream::close(). //////////////////////////////////////////////////////////////////// 46 inline void SocketStreamRecorder::close(void); 87 15 set_collect_tcp 0 4 100 37 SocketStreamRecorder::set_collect_tcp 0 1 40 273 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::set_collect_tcp // Access: Published // Description: See SocketStream::set_collect_tcp(). //////////////////////////////////////////////////////////////////// 68 inline void SocketStreamRecorder::set_collect_tcp(bool collect_tcp); 88 15 get_collect_tcp 0 4 100 37 SocketStreamRecorder::get_collect_tcp 0 1 41 273 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::get_collect_tcp // Access: Published // Description: See SocketStream::get_collect_tcp(). //////////////////////////////////////////////////////////////////// 62 inline bool SocketStreamRecorder::get_collect_tcp(void) const; 89 24 set_collect_tcp_interval 0 4 100 46 SocketStreamRecorder::set_collect_tcp_interval 0 1 42 291 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::set_collect_tcp_interval // Access: Published // Description: See SocketStream::set_collect_tcp_interval(). //////////////////////////////////////////////////////////////////// 76 inline void SocketStreamRecorder::set_collect_tcp_interval(double interval); 90 24 get_collect_tcp_interval 0 4 100 46 SocketStreamRecorder::get_collect_tcp_interval 0 1 43 291 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::get_collect_tcp_interval // Access: Published // Description: See SocketStream::get_collect_tcp_interval(). //////////////////////////////////////////////////////////////////// 73 inline double SocketStreamRecorder::get_collect_tcp_interval(void) const; 91 14 consider_flush 0 4 100 36 SocketStreamRecorder::consider_flush 0 1 44 270 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::consider_flush // Access: Published // Description: See SocketStream::consider_flush() //////////////////////////////////////////////////////////////////// 55 inline bool SocketStreamRecorder::consider_flush(void); 92 5 flush 0 4 100 27 SocketStreamRecorder::flush 0 1 45 252 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::flush // Access: Published // Description: See SocketStream::flush() //////////////////////////////////////////////////////////////////// 46 inline bool SocketStreamRecorder::flush(void); 93 14 get_class_type 0 4 100 36 SocketStreamRecorder::get_class_type 0 1 46 0 61 static TypeHandle SocketStreamRecorder::get_class_type(void); 46 1 14 Dtool_ayClK8hL 0 6 5 103 0 14 Dtool_ayClK8hL 934 // Filename: recorderBase.I // Created by: drose (24Jan04) // //////////////////////////////////////////////////////////////////// // // 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: RecorderBase::is_recording // Access: Published // Description: Returns true if this recorder is presently recording // data for saving to a session file, false otherwise. // If this is true, record_data() will be called from // time to time. //////////////////////////////////////////////////////////////////// 1 4 this 3 101 2 14 Dtool_ayClYULh 0 6 6 103 0 14 Dtool_ayClYULh 418 //////////////////////////////////////////////////////////////////// // Function: RecorderBase::is_playing // Access: Published // Description: Returns true if this recorder is presently playing back // data from session file, false otherwise. If this is // true, play_data() will be called from time to time. //////////////////////////////////////////////////////////////////// 1 4 this 3 101 3 14 Dtool_ayClFTOU 0 7 7 105 0 14 Dtool_ayClFTOU 0 0 4 14 Dtool_ayClY6Qp 0 7 3 107 0 14 Dtool_ayClY6Qp 0 1 4 this 3 106 5 14 Dtool_ayClqf6S 0 7 14 109 57 14 Dtool_ayClqf6S 225 //////////////////////////////////////////////////////////////////// // Function: MouseRecorder::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// 1 4 name 1 108 6 14 Dtool_ayClHvdt 0 7 16 105 0 14 Dtool_ayClHvdt 0 0 7 14 Dtool_ayClCU8Q 0 7 10 110 0 14 Dtool_ayClCU8Q 0 1 4 this 3 109 8 14 Dtool_ayClujBb 0 7 11 109 57 14 Dtool_ayClujBb 0 1 4 this 3 110 9 14 Dtool_ayClKZwc 0 7 12 106 48 14 Dtool_ayClKZwc 0 1 4 this 3 109 10 14 Dtool_ayClAqBt 0 7 13 109 57 14 Dtool_ayClAqBt 0 1 4 this 3 106 11 14 Dtool_ayClgOQz 0 7 19 111 0 14 Dtool_ayClgOQz 230 //////////////////////////////////////////////////////////////////// // Function: RecorderController::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// 0 12 14 Dtool_ayClEoI_ 0 6 20 103 0 14 Dtool_ayClEoI_ 375 //////////////////////////////////////////////////////////////////// // Function: RecorderController::begin_record // Access: Published // Description: Begins recording data to the indicated filename. All // of the recorders in use should already have been // added. //////////////////////////////////////////////////////////////////// 2 4 this 3 111 8 filename 1 112 13 14 Dtool_ayClD04q 0 6 21 103 0 14 Dtool_ayClD04q 661 //////////////////////////////////////////////////////////////////// // Function: RecorderController::begin_playback // Access: Published // Description: Begins playing back data from the indicated filename. // All of the recorders in use should already have been // added, although this may define additional recorders // if they are present in the file (these new recorders // will not be used). This may also undefine recorders // that were previously added but are not present in the // file. //////////////////////////////////////////////////////////////////// 2 4 this 3 111 8 filename 1 112 14 14 Dtool_ayCl3TyG 0 4 22 115 0 14 Dtool_ayCl3TyG 275 //////////////////////////////////////////////////////////////////// // Function: RecorderController::close // Access: Published // Description: Finishes recording data to the indicated filename. //////////////////////////////////////////////////////////////////// 1 4 this 3 111 15 14 Dtool_ayCl7lBc 0 6 23 118 0 14 Dtool_ayCl7lBc 912 // Filename: recorderController.I // Created by: drose (24Jan04) // //////////////////////////////////////////////////////////////////// // // 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: RecorderController::get_start_time // Access: Published // Description: Returns the time (and date) at which the current // session was originally recorded (or, in recording // mode, the time at which the current session began). //////////////////////////////////////////////////////////////////// 1 4 this 3 116 16 14 Dtool_ayClEIcS 0 4 24 115 0 14 Dtool_ayClEIcS 472 //////////////////////////////////////////////////////////////////// // Function: RecorderController::set_random_seed // Access: Published // Description: Indicates an arbitrary number to be recorded in the // session file as a random seed, should the application // wish to take advantage of it. This must be set // before begin_record() is called. //////////////////////////////////////////////////////////////////// 2 4 this 3 111 11 random_seed 1 119 17 14 Dtool_ayClzhjD 0 6 25 119 0 14 Dtool_ayClzhjD 444 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_random_seed // Access: Published // Description: Returns the random seed that was set by a previous // call to set_random_seed(), or the number read from // the session file after begin_playback() has been // called. //////////////////////////////////////////////////////////////////// 1 4 this 3 116 18 14 Dtool_ayCl3xMb 0 6 26 103 0 14 Dtool_ayCl3xMb 324 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_recording // Access: Published // Description: Returns true if the controller has been opened for // output, false otherwise. //////////////////////////////////////////////////////////////////// 1 4 this 3 116 19 14 Dtool_ayClBF0E 0 6 27 103 0 14 Dtool_ayClBF0E 321 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_playing // Access: Published // Description: Returns true if the controller has been opened for // input, false otherwise. //////////////////////////////////////////////////////////////////// 1 4 this 3 116 20 14 Dtool_ayCl7Ejw 0 6 28 103 0 14 Dtool_ayCl7Ejw 335 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_open // Access: Published // Description: Returns true if the controller has been opened for // either input or output, false otherwise. //////////////////////////////////////////////////////////////////// 1 4 this 3 116 21 14 Dtool_ayClE6J_ 0 6 29 112 0 14 Dtool_ayClE6J_ 348 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_filename // Access: Published // Description: Returns the filename that was passed to the most // recent call to begin_record() or begin_playback(). //////////////////////////////////////////////////////////////////// 1 4 this 3 116 22 14 Dtool_ayClm_or 0 6 30 103 0 14 Dtool_ayClm_or 453 //////////////////////////////////////////////////////////////////// // Function: RecorderController::is_error // Access: Published // Description: Returns true if the controller has been opened for // input or output output and there is an error on the // stream, or false if the controller is closed or if // there is no problem. //////////////////////////////////////////////////////////////////// 1 4 this 3 111 23 14 Dtool_ayClN6bw 0 6 31 120 0 14 Dtool_ayClN6bw 456 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_clock_offset // Access: Published // Description: Returns the delta offset between the actual frame // time and the frame time written to the log. This is // essentially the time at which the recording (or // playback) started. //////////////////////////////////////////////////////////////////// 1 4 this 3 116 24 14 Dtool_ayClyEgj 0 6 32 119 0 14 Dtool_ayClyEgj 466 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_frame_offset // Access: Published // Description: Returns the delta offset between the actual frame // count and the frame count written to the log. This is // essentially the frame number at which the recording // (or playback) started. //////////////////////////////////////////////////////////////////// 1 4 this 3 116 25 14 Dtool_ayClAnOD 0 4 33 115 0 14 Dtool_ayClAnOD 654 //////////////////////////////////////////////////////////////////// // Function: RecorderController::add_recorder // Access: Published // Description: Adds the named recorder to the set of recorders that // are in use. // // If the controller is in recording mode, the named // recorder will begin recording its status to the // session file. If the controller is in playback mode // and the name and type matches a recorder in the // session file, the recorder will begin receiving data. //////////////////////////////////////////////////////////////////// 3 4 this 3 111 4 name 1 108 8 recorder 1 106 26 14 Dtool_ayClSl_W 0 6 34 103 0 14 Dtool_ayClSl_W 643 //////////////////////////////////////////////////////////////////// // Function: RecorderController::has_recorder // Access: Published // Description: Returns true if the named recorder has been added to // the table by a previous call to add_recorder(), false // otherwise. // // If the controller is in playback mode, this will also // return false for a recorder that was found in the // session file but was never explicitly added via // add_recorder(); see get_recorder(). //////////////////////////////////////////////////////////////////// 2 4 this 3 116 4 name 1 108 27 14 Dtool_ayClNjK2 0 7 35 106 48 14 Dtool_ayClNjK2 714 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_recorder // Access: Published // Description: Returns the recorder with the indicated name, or NULL // if there is no such recorder. // // If the controller is in playback mode, this may // return the recorder matching the indicated name as // read from the session file, even if it was never // added to the table by the user. In this case, // has_recorder() may return false, but get_recorder() // will return a non-NULL value. //////////////////////////////////////////////////////////////////// 2 4 this 3 116 4 name 1 108 28 14 Dtool_ayClcpvX 0 6 36 103 0 14 Dtool_ayClcpvX 822 //////////////////////////////////////////////////////////////////// // Function: RecorderController::remove_recorder // Access: Published // Description: Removes the named recorder from the table. Returns // true if successful, false if there was no such // recorder. // // If the controller is in recording mode, the named // recorder will stop recording. If the controller is // in playback mode, the named recorder will // disassociate itself from the session file (but if the // session file still has data for this name, a default // recorder will take its place to decode the data from // the session file). //////////////////////////////////////////////////////////////////// 2 4 this 3 111 4 name 1 108 29 14 Dtool_ayClsgOd 0 4 37 115 0 14 Dtool_ayClsgOd 895 //////////////////////////////////////////////////////////////////// // Function: RecorderController::set_frame_tie // Access: Published // Description: Sets the frame_tie flag. // // When this is true, sessions are played back // frame-for-frame, based on the frame count of the // recorded session. This gives the most accurate // playback, but the playback rate will vary according // to the frame rate of the playback machine. // // When this is false, sessions are played back at real // time, based on the clock of the recorded session. // This may introduce playback discrepencies if the // frames do not fall at exactly the same times as they // did in the original. //////////////////////////////////////////////////////////////////// 2 4 this 3 111 9 frame_tie 1 103 30 14 Dtool_ayClzYut 0 6 38 103 0 14 Dtool_ayClzYut 253 //////////////////////////////////////////////////////////////////// // Function: RecorderController::get_frame_tie // Access: Published // Description: See set_frame_tie(). //////////////////////////////////////////////////////////////////// 1 4 this 3 116 31 14 Dtool_ayClDD1N 0 4 39 115 0 14 Dtool_ayClDD1N 341 //////////////////////////////////////////////////////////////////// // Function: RecorderController::record_frame // Access: Published // Description: Gets the next frame of data from all of the active // recorders and adds it to the output file. //////////////////////////////////////////////////////////////////// 1 4 this 3 111 32 14 Dtool_ayClcjvm 0 4 40 115 0 14 Dtool_ayClcjvm 339 //////////////////////////////////////////////////////////////////// // Function: RecorderController::play_frame // Access: Published // Description: Gets the next frame of data from all of the active // recorders and adds it to the output file. //////////////////////////////////////////////////////////////////// 1 4 this 3 111 33 14 Dtool_ayClnwuH 0 7 41 105 0 14 Dtool_ayClnwuH 0 0 34 14 Dtool_ayCl4hpl 0 7 43 121 48 14 Dtool_ayCl4hpl 728 // Filename: socketStreamRecorder.I // Created by: drose (28Jan04) // //////////////////////////////////////////////////////////////////// // // 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: SocketStreamRecorder::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// 0 35 14 Dtool_ayClsab4 0 7 43 121 48 14 Dtool_ayClsab4 232 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::Constructor // Access: Published // Description: //////////////////////////////////////////////////////////////////// 2 6 stream 1 122 11 owns_stream 1 103 36 14 Dtool_ayCl4uRL 0 6 44 103 0 14 Dtool_ayCl4uRL 536 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::receive_datagram // Access: Public // Description: Receives a datagram over the socket by expecting a // little-endian 16-bit byte count as a prefix. If the // socket stream is non-blocking, may return false if // the data is not available; otherwise, returns false // only if the socket closes. //////////////////////////////////////////////////////////////////// 2 4 this 3 121 2 dg 1 124 37 14 Dtool_ayCl9r0L 0 6 45 103 0 14 Dtool_ayCl9r0L 266 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::send_datagram // Access: Public // Description: See SocketStream::send_datagram(). //////////////////////////////////////////////////////////////////// 2 4 this 3 121 2 dg 1 126 38 14 Dtool_ayCl5XJQ 0 6 46 103 0 14 Dtool_ayCl5XJQ 261 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::is_closed // Access: Published // Description: See SocketStream::is_closed(). //////////////////////////////////////////////////////////////////// 1 4 this 3 121 39 14 Dtool_ayCl2w02 0 4 47 115 0 14 Dtool_ayCl2w02 253 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::close // Access: Published // Description: See SocketStream::close(). //////////////////////////////////////////////////////////////////// 1 4 this 3 121 40 14 Dtool_ayClhdjA 0 4 48 115 0 14 Dtool_ayClhdjA 273 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::set_collect_tcp // Access: Published // Description: See SocketStream::set_collect_tcp(). //////////////////////////////////////////////////////////////////// 2 4 this 3 121 11 collect_tcp 1 103 41 14 Dtool_ayClg_ig 0 6 49 103 0 14 Dtool_ayClg_ig 273 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::get_collect_tcp // Access: Published // Description: See SocketStream::get_collect_tcp(). //////////////////////////////////////////////////////////////////// 1 4 this 3 128 42 14 Dtool_ayClvs9Y 0 4 50 115 0 14 Dtool_ayClvs9Y 291 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::set_collect_tcp_interval // Access: Published // Description: See SocketStream::set_collect_tcp_interval(). //////////////////////////////////////////////////////////////////// 2 4 this 3 121 8 interval 1 120 43 14 Dtool_ayCls4oX 0 6 51 120 0 14 Dtool_ayCls4oX 291 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::get_collect_tcp_interval // Access: Published // Description: See SocketStream::get_collect_tcp_interval(). //////////////////////////////////////////////////////////////////// 1 4 this 3 128 44 14 Dtool_ayClHOJb 0 6 52 103 0 14 Dtool_ayClHOJb 270 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::consider_flush // Access: Published // Description: See SocketStream::consider_flush() //////////////////////////////////////////////////////////////////// 1 4 this 3 121 45 14 Dtool_ayCl8T3a 0 6 53 103 0 14 Dtool_ayCl8T3a 252 //////////////////////////////////////////////////////////////////// // Function: SocketStreamRecorder::flush // Access: Published // Description: See SocketStream::flush() //////////////////////////////////////////////////////////////////// 1 4 this 3 121 46 14 Dtool_ayCltYL0 0 7 54 105 0 14 Dtool_ayCltYL0 0 0 36 94 12 RecorderBase 0 26625 12 RecorderBase 12 RecorderBase 0 0 0 0 48 0 3 49 50 51 0 0 1 5 95 47 0 0 0 1274 //////////////////////////////////////////////////////////////////// // Class : RecorderBase // Description : This is the base class to a number of objects that // record particular kinds of user input (like a // MouseRecorder) to use in conjunction with a // RecorderController to record the user's inputs // for a session. // // Note that RecorderBase does not actually inherit from // TypedObject, even though it defines get_type(). The // assumption is that the classes that derive from // RecorderBase might also inherit independently from // TypedObject. // // It also does not inherit from TypedWritable, but it // defines a method called write_recorder() which is // very similar to a TypedWritable's write_datagram(). // Classes that derive from RecorderBase and also // inherit from TypedWritable may choose to remap // write_recorder() to do exactly the same thing as // write_datagram(), or they may choose to write // something slightly different. //////////////////////////////////////////////////////////////////// 95 14 ReferenceCount 0 2049 14 ReferenceCount 14 ReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 425 //////////////////////////////////////////////////////////////////// // Class : ReferenceCount // Description : A base class for all things that want to be // reference-counted. ReferenceCount works in // conjunction with PointerTo to automatically delete // objects when the last pointer to them goes away. //////////////////////////////////////////////////////////////////// 96 13 MouseRecorder 0 26625 13 MouseRecorder 13 MouseRecorder 0 0 0 1 56 57 0 1 58 0 0 2 3 97 52 53 3 94 54 55 0 0 626 //////////////////////////////////////////////////////////////////// // Class : MouseRecorder // Description : This object records any data generated by a // particular MouseAndKeyboard node on the datagraph for // a session for eventual playback via a // DataGraphPlayback (and a PlaybackController). To use // it, make it a child of the node you wish to record. // It also serves as a pass-through, so that additional // child nodes may be parented directly to it. //////////////////////////////////////////////////////////////////// 97 8 DataNode 0 2049 8 DataNode 8 DataNode 0 0 0 0 0 0 0 0 0 0 0 0 695 //////////////////////////////////////////////////////////////////// // Class : DataNode // Description : The fundamental type of node for the data graph. The // DataNode class is itself primarily intended as an // abstract class; it defines no inputs and no outputs. // Most kinds of data nodes will derive from this to // specify the inputs and outputs in the constructor. // // DataNode does not attempt to cycle its data with a // PipelineCycler. The data graph is intended to be // used only within a single thread. //////////////////////////////////////////////////////////////////// 98 18 RecorderController 0 75777 18 RecorderController 18 RecorderController 0 0 0 1 59 0 0 22 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 0 0 1 0 99 0 0 0 0 353 //////////////////////////////////////////////////////////////////// // Class : RecorderController // Description : This object manages the process of recording the // user's runtime inputs to a bam file so that the // session can be recreated later. //////////////////////////////////////////////////////////////////// 99 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. //////////////////////////////////////////////////////////////////// 100 20 SocketStreamRecorder 0 75777 20 SocketStreamRecorder 20 SocketStreamRecorder 0 0 0 1 82 48 0 11 83 84 85 86 87 88 89 90 91 92 93 0 0 1 0 94 0 0 0 0 622 //////////////////////////////////////////////////////////////////// // Class : SocketStreamRecorder // Description : Records any data received from the indicated socket // stream. On playback, it will act as if the incoming // data is coming over the wire again even if an actual // connection is not available. // // Outbound data will not be recorded, but will be sent // straight through to the socket if it is connected, or // silently ignored if it is not. //////////////////////////////////////////////////////////////////// 101 20 RecorderBase const * 0 8576 20 RecorderBase const * 20 RecorderBase const * 0 0 102 0 0 0 0 0 0 0 0 0 0 102 18 RecorderBase const 0 8832 18 RecorderBase const 18 RecorderBase const 0 0 94 0 0 0 0 0 0 0 0 0 0 103 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0 104 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. //////////////////////////////////////////////////////////////////// 105 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 104 0 0 0 0 0 0 0 0 0 0 106 14 RecorderBase * 0 8576 14 RecorderBase * 14 RecorderBase * 0 0 94 0 0 0 0 0 0 0 0 0 0 107 16 ReferenceCount * 0 8576 16 ReferenceCount * 16 ReferenceCount * 0 0 95 0 0 0 0 0 0 0 0 0 0 108 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0 109 15 MouseRecorder * 0 8576 15 MouseRecorder * 15 MouseRecorder * 0 0 96 0 0 0 0 0 0 0 0 0 0 110 10 DataNode * 0 8576 10 DataNode * 10 DataNode * 0 0 97 0 0 0 0 0 0 0 0 0 0 111 20 RecorderController * 0 8576 20 RecorderController * 20 RecorderController * 0 0 98 0 0 0 0 0 0 0 0 0 0 112 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 113 0 0 0 0 0 0 0 0 0 0 113 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 114 0 0 0 0 0 0 0 0 0 0 114 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. //////////////////////////////////////////////////////////////////// 115 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0 116 26 RecorderController const * 0 8576 26 RecorderController const * 26 RecorderController const * 0 0 117 0 0 0 0 0 0 0 0 0 0 117 24 RecorderController const 0 8832 24 RecorderController const 24 RecorderController const 0 0 98 0 0 0 0 0 0 0 0 0 0 118 12 unsigned int 0 8198 12 unsigned int 12 unsigned int 0 1 0 0 0 0 0 0 0 0 0 0 0 119 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0 120 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0 121 22 SocketStreamRecorder * 0 8576 22 SocketStreamRecorder * 22 SocketStreamRecorder * 0 0 100 0 0 0 0 0 0 0 0 0 0 122 14 SocketStream * 0 8576 14 SocketStream * 14 SocketStream * 0 0 123 0 0 0 0 0 0 0 0 0 0 123 12 SocketStream 0 2048 12 SocketStream 12 SocketStream 0 0 0 0 0 0 0 0 0 0 0 0 285 //////////////////////////////////////////////////////////////////// // Class : SocketStream // Description : A base class for iostreams that read and write to a // (possibly non-blocking) socket. //////////////////////////////////////////////////////////////////// 124 10 Datagram * 0 8576 10 Datagram * 10 Datagram * 0 0 125 0 0 0 0 0 0 0 0 0 0 125 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. //////////////////////////////////////////////////////////////////// 126 16 Datagram const * 0 8576 16 Datagram const * 16 Datagram const * 0 0 127 0 0 0 0 0 0 0 0 0 0 127 14 Datagram const 0 8832 14 Datagram const 14 Datagram const 0 0 125 0 0 0 0 0 0 0 0 0 0 128 28 SocketStreamRecorder const * 0 8576 28 SocketStreamRecorder const * 28 SocketStreamRecorder const * 0 0 129 0 0 0 0 0 0 0 0 0 0 129 26 SocketStreamRecorder const 0 8832 26 SocketStreamRecorder const 26 SocketStreamRecorder const 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0 0