From ed36c90b33b327a9739495912dc2ccbf8d5ef5e4 Mon Sep 17 00:00:00 2001 From: jdgordon Date: Thu, 17 Jun 2010 08:36:28 +0000 Subject: [PATCH] woops, forgot to add these git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26882 a1c6a512-1295-4272-9138-f99709370657 --- lib/skin_parser/skin_buffer.c | 69 +++++++++++++++++++++++++++++++++++++++++++ lib/skin_parser/skin_buffer.h | 31 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 lib/skin_parser/skin_buffer.c create mode 100644 lib/skin_parser/skin_buffer.h diff --git a/lib/skin_parser/skin_buffer.c b/lib/skin_parser/skin_buffer.c new file mode 100644 index 000000000..8a5a47ddb --- /dev/null +++ b/lib/skin_parser/skin_buffer.c @@ -0,0 +1,69 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: skin_buffer.c 25962 2010-05-12 09:31:40Z jdgordon $ + * + * Copyright (C) 2002 by Linus Nielsen Feltzing + * Copyright (C) 2009 Jonathan Gordon + * + * This program 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. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include + +#ifdef ROCKBOX +#define SKIN_BUFFER_SIZE (400*1024) /* Excessivly large for now */ +static unsigned char buffer[SKIN_BUFFER_SIZE]; +static unsigned char *buffer_front = NULL; /* start of the free space, + increases with allocation*/ +static size_t buf_size = SKIN_BUFFER_SIZE; +#endif + +void skin_buffer_init(size_t size) +{ +#if 0 /* this will go in again later probably */ + if (buffer == NULL) + { + buf_size = SKIN_BUFFER_SIZE;/* global_settings.skin_buf_size */ + + buffer = buffer_alloc(buf_size); + buffer_front = buffer; + buffer_back = bufer + buf_size; + } + else +#elif defined(ROCKBOX) + { + /* reset the buffer.... */ + buffer_front = buffer; + //TODO: buf_size = size; + } +#endif +} + +/* Allocate size bytes from the buffer */ +void* skin_buffer_alloc(size_t size) +{ + void *retval = NULL; +#ifdef ROCKBOX + retval = buffer_front; + buffer_front += size; + /* 32-bit aligned */ + buffer_front = (void *)(((unsigned long)buffer_front + 3) & ~3); +#else + retval = malloc(size); +#endif + return retval; +} diff --git a/lib/skin_parser/skin_buffer.h b/lib/skin_parser/skin_buffer.h new file mode 100644 index 000000000..fa8f149c7 --- /dev/null +++ b/lib/skin_parser/skin_buffer.h @@ -0,0 +1,31 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: skin_buffer.c 25962 2010-05-12 09:31:40Z jdgordon $ + * + * Copyright (C) 2002 by Linus Nielsen Feltzing + * Copyright (C) 2009 Jonathan Gordon + * + * This program 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. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include +#ifndef _SKIN_BUFFFER_H_ +#define _SKIN_BUFFFER_H_ +void skin_buffer_init(size_t size); +/* Allocate size bytes from the buffer */ +void* skin_buffer_alloc(size_t size); +#endif -- 2.11.4.GIT