diff options
Diffstat (limited to 'src/camera.cc')
-rw-r--r-- | src/camera.cc | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/src/camera.cc b/src/camera.cc deleted file mode 100644 index 5dbec13..0000000 --- a/src/camera.cc +++ /dev/null @@ -1,182 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * camera.cc - * - * Fri Oct 29 12:46:38 CEST 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 <config.h> -#ifdef USE_GUI - -#include "camera.h" - -Camera::Camera(Info *ginfo) -{ - info = ginfo; -} - -void Camera::connect(const char *ip, const int port, int width, int height) -{ - initialized = false; - - pthread_mutex_init (&mutex, NULL); - //mutex = PTHREAD_MUTEX_INITIALIZER; - - running = 1; - - encode_queue = new Queue<Frame>(); // infinite size - player_queue = new Queue<Frame>(1); // fixed size of 1 - - sem_init(&encode_sem, 0, 0); - sem_init(&player_sem, 0, 0); - - decoder = new Decoder(info, - &encode_sem, - &player_sem, - encode_queue, - player_queue, - &mutex, - &running); - - encoder = new Encoder(info, - ip, port, - &encode_sem, - encode_queue, - &mutex, - &running); - - player = new Player(info, - width, height, - &running, - &player_sem, - player_queue, - &mutex); - - decoder->run(); - encoder->run(); - player->run(); - - initialized = true; -} - -Camera::~Camera() -{ - // Signal to the threads to stop - running = 0; - - // Wait for the threads to stop - decoder->wait_stop(); - encoder->wait_stop(); - player->wait_stop(); - - delete decoder; - delete encoder; - delete player; - - sem_destroy(&encode_sem); - sem_destroy(&player_sem); - - delete player_queue; - delete encode_queue; -} - -void Camera::setCpr(char *newcpr, char* name) -{ - - if(initialized) { - encoder->setCpr(newcpr); - player->setCpr(newcpr, name); // For the text overlay - } else { - info->error("Camera not initialized."); - } -} - - -void Camera::start() -{ - if(initialized) { - player->startrecord(); // For the text overlay - encoder->start(); - decoder->start(); - } else { - info->error("Camera not initialized."); - } -} - -void Camera::stop(n_savestate save) -{ - if(initialized) { - player->stoprecord(); // For the textoverlay - encoder->stop(save); - decoder->stop(save); - } else { - info->error("Camera not initialized."); - } -} - -void Camera::freeze() -{ - if(initialized) { - player->stop(); - decoder->freeze(); - } else { - info->error("Camera not initialized."); - } -} - -void Camera::unfreeze() -{ - if(initialized) { - player->start(); - decoder->unfreeze(); - } else { - info->error("Camera not initialized."); - } -} - -void Camera::snapshot(unsigned char *rgb) -{ - if(initialized) { - decoder->shoot(rgb); - encoder->shoot(); - } else { - info->error("Camera not initialized."); - } -} - -int Camera::getQueueLength() -{ - return encode_queue->length(); -} - -void Camera::resize(int w, int h, bool s) -{ - player->resize(w,h,s); -} - -void Camera::setMute(bool mute) -{ - decoder->setMute(mute); - player->setMute(mute); -} - -#endif/* USE_GUI */ |