diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/encoder.cc | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/encoder.cc b/src/encoder.cc index cbafb99..2c03b9d 100644 --- a/src/encoder.cc +++ b/src/encoder.cc @@ -25,6 +25,9 @@ */ /* * $Log$ + * Revision 1.22 2005/05/02 10:01:58 deva + * Create and destroy netowrk connections in main function and not in start/stop/freeze... etc + * * Revision 1.21 2005/05/02 09:50:22 deva * Rewrote freeze, shoot and record flags, from encoder to frame. * @@ -112,6 +115,14 @@ void Encoder::encode() if(frame->record || frame->freeze || frame->shoot) { + + // If no connection is present, make a new one + if(!s) { + s = new Socket(port, errobj); + s->sconnect(ip); + n = new Network(s, errobj); + } + n_header h; h.header_type = DATA_HEADER; @@ -125,6 +136,14 @@ void Encoder::encode() // if(shoot_request != shoot_value) shoot_value = shoot_request; n->sendPackage(&h, frame->data, frame->size); + } else { + // No data is to be sent, if we have a connection, destroy it. + if(s) { + if(n) delete n; + delete s; + s = NULL; + n = NULL; + } } if(frame) delete frame; } @@ -139,12 +158,14 @@ void Encoder::setCpr(char *newcpr) void Encoder::freeze() -{ +{ + /* if(!s) { s = new Socket(port, errobj); s->sconnect(ip); n = new Network(s, errobj); } + */ // if(!errobj->hasError()) freeze_request = 1 - freeze_request; } @@ -156,11 +177,13 @@ void Encoder::freeze() */ void Encoder::shoot(unsigned char *rgb) { + /* if(!s) { s = new Socket(port, errobj); s->sconnect(ip); n = new Network(s, errobj); } + */ // if(!errobj->hasError()) shoot_request = 1 - shoot_request; getScreenshot(rgb); } @@ -173,11 +196,13 @@ void Encoder::run() { void Encoder::start() { + /* if(!s) { s = new Socket(port, errobj); s->sconnect(ip); n = new Network(s, errobj); } + */ // if(!errobj->hasError()) record = 1; } @@ -204,12 +229,14 @@ void Encoder::stop(n_savestate save) { queue->unlock(); */ +/* if(s) { if(n) delete n; delete s; s = NULL; n = NULL; } +*/ } |