diff --git a/src/protocols/vnc/Makefile.am b/src/protocols/vnc/Makefile.am index 9b7fa9d1..42441e80 100644 --- a/src/protocols/vnc/Makefile.am +++ b/src/protocols/vnc/Makefile.am @@ -42,19 +42,15 @@ AM_CFLAGS = -Werror -Wall -pedantic -Iinclude @LIBGUAC_INCLUDE@ lib_LTLIBRARIES = libguac-client-vnc.la libguac_client_vnc_la_SOURCES = \ - buffer.c \ client.c \ convert.c \ guac_handlers.c \ - queue.c \ vnc_handlers.c noinst_HEADERS = \ - buffer.h \ client.h \ convert.h \ guac_handlers.h \ - queue.h \ vnc_handlers.h # Optional PulseAudio support diff --git a/src/protocols/vnc/buffer.c b/src/protocols/vnc/buffer.c deleted file mode 100644 index fea51ab3..00000000 --- a/src/protocols/vnc/buffer.c +++ /dev/null @@ -1,86 +0,0 @@ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is buffer. - * - * The Initial Developers of the Original Code are - * Craig Hokanson - * Sion Chaudhuri - * Gio Perez - * - * Portions created by the Initial Developer are Copyright (C) 2013 - * the Initial Developers. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include -#include -#include "buffer.h" -#include "queue.h" - -void buffer_init(buffer* buf, int size_of_buffer, int size_of_data) { - - queue_init(&(buf->data_queue), size_of_buffer, size_of_data); - -} - -void buffer_free(buffer* buf) { - - queue_free(&(buf->data_queue)); - -} - -void buffer_close(buffer* buf) { - - pthread_cond_signal(&(buf->cond)); - -} - -void buffer_insert(buffer* buf, void* data) { - - pthread_mutex_lock(&(buf->update_lock)); - queue_enqueue(&(buf->data_queue), data); - pthread_mutex_unlock(&(buf->update_lock)); - pthread_cond_signal(&(buf->cond)); - -} - -void buffer_remove(buffer* buf, void* data) { - - pthread_mutex_lock(&(buf->update_lock)); - if((buf->data_queue).num_elements <= 0) - pthread_cond_wait(&(buf->cond), &(buf->update_lock)); - - /* If the thread was signaled during a close, - the queue might still be empty */ - if((buf->data_queue).num_elements > 0) - queue_dequeue(&(buf->data_queue), data); - - pthread_mutex_unlock(&(buf->update_lock)); - -} diff --git a/src/protocols/vnc/buffer.h b/src/protocols/vnc/buffer.h deleted file mode 100644 index 9e00206f..00000000 --- a/src/protocols/vnc/buffer.h +++ /dev/null @@ -1,64 +0,0 @@ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is buffer. - * - * The Initial Developers of the Original Code are - * Craig Hokanson - * Sion Chaudhuri - * Gio Perez - * - * Portions created by the Initial Developer are Copyright (C) 2013 - * the Initial Developers. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef __GUAC_VNC_BUFFER_H -#define __GUAC_VNC_BUFFER_H - -#include -#include -#include "queue.h" - -typedef struct { - queue data_queue; - pthread_mutex_t update_lock; - pthread_cond_t cond; -} buffer; - -void buffer_init(buffer* buf, int size_of_buffer, int size_of_data); - -void buffer_free(buffer* buf); - -void buffer_close(buffer* buf); - -void buffer_insert(buffer* buf, void* data); - -void buffer_remove(buffer* buf, void* data); - -#endif diff --git a/src/protocols/vnc/queue.c b/src/protocols/vnc/queue.c deleted file mode 100644 index 17b04f28..00000000 --- a/src/protocols/vnc/queue.c +++ /dev/null @@ -1,99 +0,0 @@ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is buffer. - * - * The Initial Developers of the Original Code are - * Sion Chaudhuri - * Craig Hokanson - * - * Portions created by the Initial Developer are Copyright (C) 2013 - * the Initial Developers. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include -#include -#include "queue.h" - -void queue_init(queue* q, int queue_size, int element_size) { - - int i; - - q->queue_size = queue_size; - q->element_size = element_size; - q->head = 0; - q->tail = 0; - q->num_elements = 0; - - q->elements = malloc(sizeof(void *) * queue_size); - - for(i = 0; i < queue_size; i++) { - q->elements[i] = malloc(element_size); - } - -} - -void queue_free(queue* q) { - - int i; - - for(i = 0; i < q->queue_size; i++) { - free(q->elements[i]); - } - - free(q->elements); - -} - -int queue_enqueue(queue* q, void* data) { - - int capacity = q->queue_size - q->num_elements; - if (capacity <= 0) - return -1; - - q->tail = (q->tail + 1) % q->queue_size; - memcpy(q->elements[q->tail], data, q->element_size); - q->num_elements = q->num_elements + 1; - - return 0; - -} - -int queue_dequeue(queue* q, void* data) { - - if (q->num_elements <= 0) - return -1; - - memcpy(data, q->elements[q->head], q->element_size); - q->head = (q->head + 1) % q->queue_size; - q->num_elements = q->num_elements - 1; - - return 0; - -} diff --git a/src/protocols/vnc/queue.h b/src/protocols/vnc/queue.h deleted file mode 100644 index 72bc98ff..00000000 --- a/src/protocols/vnc/queue.h +++ /dev/null @@ -1,60 +0,0 @@ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is queue. - * - * The Initial Developers of the Original Code are - * Sion Chaudhuri - * Craig Hokanson - * - * Portions created by the Initial Developer are Copyright (C) 2013 - * the Initial Developers. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef __GUAC_VNC_QUEUE_H -#define __GUAC_VNC_QUEUE_H - -typedef struct { - void** elements; - int queue_size; - int element_size; - int num_elements; - int head; - int tail; -} queue; - -void queue_init(queue* q, int queue_size, int element_size); - -void queue_free(queue* q); - -int queue_enqueue(queue* q, void* data); - -int queue_dequeue(queue* q, void* data); - -#endif