diff options
Diffstat (limited to 'src/server.cc')
-rw-r--r-- | src/server.cc | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/src/server.cc b/src/server.cc deleted file mode 100644 index 34aac7b..0000000 --- a/src/server.cc +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * server.cc - * - * Mon Nov 8 11:35:01 CET 2004 - * Copyright 2004 Bent Bisballe - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of MIaV. - * - * MIaV is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MIaV is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with MIaV; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#include "server.h" -#include "miav.h" - -#include <stdio.h> -#include <stdlib.h> - -// For mkdir -#include <sys/stat.h> -#include <sys/types.h> - -// For unlink -#include <unistd.h> - -// For errno -#include <errno.h> - -// For inet_ntoa -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - -#include "miav_config.h" - -#include "mov_encoder_thread.h" -#include "img_encoder.h" - -#include "server_status.h" - -#include "dv.h" - -void newConnection(Socket *socket, Info *info) -{ - char cpr[256]; - char clientip[64]; - bool hasCpr = false; - ServerStatus status(info); - - n_savestate savestate = LATER; - n_header h; - Frame *frame; - Frame *freeze_frame = NULL; - MovEncoderThread *enc = NULL; - - frame = new Frame(NULL, DVPACKAGE_SIZE); - - info->info("CONNECTION OPENED"); - info->info("New connection (%s)", inet_ntoa(socket->socketaddr.sin_addr)); - - sprintf(clientip, "%s", inet_ntoa(socket->socketaddr.sin_addr)); - - Network network = Network(socket, info); - while(int ret = network.recvPackage(&h, frame->data, frame->size)) { - status.checkPoint(); - - if(ret == -1) { - info->error("A network error ocurred, terminating session"); - break; - } - - frame->mute = h.header.h_data.mute; - - if(!hasCpr) { - sprintf(cpr, h.header.h_data.cpr); - hasCpr = true; - } - - if(h.header.h_data.snapshot) { - if(freeze_frame) { - ImgEncoder(cpr, info).encode(freeze_frame, 100); - delete freeze_frame; - freeze_frame = NULL; - } else { - ImgEncoder(cpr, info).encode(frame, 100); - } - } - - if(h.header.h_data.savestate != NO_CHANGE) { - savestate = h.header.h_data.savestate; - info->info("GOT SAVESTATE FROM NETWORK: %d", savestate ); - } - - if(h.header.h_data.freeze) { - if(freeze_frame) delete freeze_frame; - // copy the frame into another temporary one. - freeze_frame = new Frame(frame->data, frame->size); - } - - // This one must be last! - if(h.header.h_data.record) { - // if(!enc) enc = newMovEncoder(cpr); - if(!enc) enc = new MovEncoderThread(clientip, cpr, info); - enc->encode(frame); - } - - frame = new Frame(NULL, DVPACKAGE_SIZE); - } - - info->info("Closing connection..."); - - // No encoder exists, if this is a pure snapshot (image) connection. - if(enc) { - enc->setSaveState(savestate); - // Send end of stream frame. - frame->endOfFrameStream = true; - enc->encode(frame); - delete enc; - } - - info->info("CONNECTION CLOSED"); -} |