From f40bfc9267b13b54e6379dfe7539447662879d24 Mon Sep 17 00:00:00 2001 From: Sean Bartell Date: Sat, 25 Jun 2011 21:32:25 -0400 Subject: Add codecs to librbcodec. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Id7f4717d51ed02d67cb9f9cb3c0ada4a81843f97 Reviewed-on: http://gerrit.rockbox.org/137 Reviewed-by: Nils Wallménius Tested-by: Nils Wallménius --- lib/rbcodec/codecs/libasap/anylang.h | 218 +++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 lib/rbcodec/codecs/libasap/anylang.h (limited to 'lib/rbcodec/codecs/libasap/anylang.h') diff --git a/lib/rbcodec/codecs/libasap/anylang.h b/lib/rbcodec/codecs/libasap/anylang.h new file mode 100644 index 0000000000..e56dfbae0e --- /dev/null +++ b/lib/rbcodec/codecs/libasap/anylang.h @@ -0,0 +1,218 @@ +/* + * anylang.h - C/Java/C#/JavaScript/ActionScript abstraction layer + * + * Copyright (C) 2007-2010 Piotr Fusik + * + * This file is part of ASAP (Another Slight Atari Player), + * see http://asap.sourceforge.net + * + * ASAP 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. + * + * ASAP 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 ASAP; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _ANYLANG_H_ +#define _ANYLANG_H_ + +#if defined(JAVA) || defined(CSHARP) || defined(JAVASCRIPT) || defined(ACTIONSCRIPT) + +#define FALSE false +#define TRUE true +#define NULL null +#define _ . +#define PRIVATE +#define CONST +#define OUT_STRING STRING + +#else + +#define C +#include + +#define PRIVATE static +#define FUNC(type, name, pars) type name pars +#define P(type, name) type name +#define V(type, name) type name +#define CONST const +#define _ -> +#define PTR * +#define ADDRESSOF & +#define CAST(type) (type) +#define TO_INT(x) (int) (x) +#define TO_BYTE(x) (byte) (x) +#define BYTEARRAY byte * +#define BOOLARRAY abool * +#define VOIDPTR void * +#define UBYTE(data) (data) +#define SBYTE(data) (signed char) (data) +#define CONST_ARRAY(type, name) static const type name[] = { +#define END_CONST_ARRAY } +#define ZERO_ARRAY(array) memset(array, 0, sizeof(array)) +#define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \ + memcpy(dest + dest_offset, src + src_offset, len) +#define NEW_ARRAY(type, name, size) \ + type name[size] +#define INIT_ARRAY(array) memset(array, 0, sizeof(array)) +#define STRING const char * +#define OUT_STRING char * +#define CHARAT(s, i) (s)[i] +#define CHARCODEAT(s, i) (s)[i] +#define CHARCODE(c) (c) +#define EQUAL_STRINGS(s1, s2) (strcmp(s1, s2) == 0) +#define EMPTY_STRING(s) (s)[0] = '\0' +#define SUBSTR(s, i) (s + i) +#define BYTES_TO_STRING(dest, src, src_offset, len) \ + do { memcpy(dest, src + src_offset, len); (dest)[len] = '\0'; } while (FALSE) +#define SUBSTRING(dest, src, src_offset, len) \ + do { memcpy(dest, src + src_offset, len); (dest)[len] = '\0'; } while (FALSE) + +#define RESOURCE const byte * +#define GET_RESOURCE(name, ext) name##_##ext + +#endif /* defined(JAVA) || defined(CSHARP) || defined(JAVASCRIPT) || defined(ACTIONSCRIPT) */ + +#ifdef JAVA + +#define abool boolean +#define FUNC(type, name, pars) private static type name pars +#define P(type, name) type name +#define V(type, name) type name +#define PTR +#define ADDRESSOF +#define CAST(type) (type) +#define TO_INT(x) (int) (x) +#define TO_BYTE(x) (byte) (x) +#define BYTEARRAY byte[] +#define BOOLARRAY boolean[] +#define VOIDPTR byte[] +#define UBYTE(data) ((data) & 0xff) +#define SBYTE(data) (byte) (data) +#define CONST_ARRAY(type, name) private static final type[] name = { +#define END_CONST_ARRAY } +#define sizeof(array) array.length +#define ZERO_ARRAY(array) for (int ii = 0; ii < array.length; ii++) array[ii] = 0 +#define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \ + System.arraycopy(src, src_offset, dest, dest_offset, len) +#define NEW_ARRAY(type, name, size) \ + type[] name = new type[size] +#define INIT_ARRAY(array) +#define STRING String +#define CHARAT(s, i) (s).charAt(i) +#define CHARCODEAT(s, i) (s).charAt(i) +#define CHARCODE(c) (c) +#define strlen(s) (s).length() +#define EQUAL_STRINGS(s1, s2) (s1).equals(s2) +#define EMPTY_STRING(s) (s) = "" +#define SUBSTR(s, i) (s).substring(i) +#define BYTES_TO_STRING(dest, src, src_offset, len) \ + (dest) = new String(src, src_offset, len) +#define SUBSTRING(dest, src, src_offset, len) \ + (dest) = (src).substring(src_offset, src_offset + len) + +#define RESOURCE byte[] +#define GET_RESOURCE(name, ext) getResourceBytes(#name + "." + #ext) + +#elif defined(CSHARP) + +#define abool bool +#define FUNC(type, name, pars) private static type name pars +#define P(type, name) type name +#define V(type, name) type name +#define PTR +#define ADDRESSOF +#define CAST(type) (type) +#define TO_INT(x) (int) (x) +#define TO_BYTE(x) (byte) (x) +#define BYTEARRAY byte[] +#define BOOLARRAY bool[] +#define VOIDPTR byte[] +#define UBYTE(data) (data) +#define SBYTE(data) (sbyte) (data) +#define CONST_ARRAY(type, name) private static readonly type[] name = { +#define END_CONST_ARRAY } +#define sizeof(array) array.Length +#define ZERO_ARRAY(array) Array.Clear(array, 0, array.Length) +#define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \ + Array.Copy(src, src_offset, dest, dest_offset, len) +#define NEW_ARRAY(type, name, size) \ + type[] name = new type[size] +#define INIT_ARRAY(array) +#define STRING string +#define CHARAT(s, i) (s)[i] +#define CHARCODEAT(s, i) (s)[i] +#define CHARCODE(c) (c) +#define strlen(s) (s).Length +#define EQUAL_STRINGS(s1, s2) ((s1) == (s2)) +#define EMPTY_STRING(s) (s) = string.Empty +#define SUBSTR(s, i) (s).Substring(i) +#define BYTES_TO_STRING(dest, src, src_offset, len) \ + (dest) = System.Text.Encoding.UTF8.GetString(src, src_offset, len) +#define SUBSTRING(dest, src, src_offset, len) \ + (dest) = (src).Substring(src_offset, len) + +#define RESOURCE byte[] +#define GET_RESOURCE(name, ext) name##_##ext + +#elif defined(JAVASCRIPT) || defined(ACTIONSCRIPT) + +#ifdef ACTIONSCRIPT +#define abool Boolean +#define char String +#define STRING String +#define BYTEARRAY ByteArray +#define BOOLARRAY Array +#define VOIDPTR ByteArray +#define RESOURCE Array +#define FUNC(type, name, pars) private static function name pars : type +#define P(type, name) name : type +#define V(type, name) var name : type +#define TO_INT(x) int(x) +#define CONST_ARRAY(type, name) private static const name : Array = [ +#else +#define FUNC(type, name, pars) function name pars +#define P(type, name) name +#define V(type, name) var name +#define TO_INT(x) Math.floor(x) +#define CONST_ARRAY(type, name) var name = [ +#endif +#define PTR +#define ADDRESSOF +#define CAST(type) +#define TO_BYTE(x) ((x) & 0xff) +#define UBYTE(data) (data) +#define SBYTE(data) ((data) < 0x80 ? (data) : (data) - 256) +#define END_CONST_ARRAY ] +#define sizeof(array) array.length +#define ZERO_ARRAY(array) for (V(int, ii) = 0; ii < array.length; ii++) array[ii] = 0 +#define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \ + for (V(int, ii) = 0; ii < len; ii++) dest[dest_offset + ii] = src[src_offset + ii] +#define NEW_ARRAY(type, name, size) \ + V(Array, name) = new Array(size) +#define INIT_ARRAY(array) for (V(int, ii) = 0; ii < array.length; ii++) array[ii] = 0 +#define CHARAT(s, i) (s).charAt(i) +#define CHARCODEAT(s, i) (s).charCodeAt(i) +#define CHARCODE(c) (c).charCodeAt(0) +#define strlen(s) (s).length +#define EQUAL_STRINGS(s1, s2) ((s1) == (s2)) +#define EMPTY_STRING(s) s = "" +#define SUBSTR(s, i) (s).substr(i) +#define BYTES_TO_STRING(dest, src, src_offset, len) \ + { dest = ""; for (V(int, ii) = 0; ii < len; ii++) dest += String.fromCharCode(src[src_offset + ii]); } +#define SUBSTRING(dest, src, src_offset, len) \ + dest = (src).substring(src_offset, src_offset + len) + +#define GET_RESOURCE(name, ext) name##_##ext + +#endif + +#endif /* _ANYLANG_H_ */ -- cgit v1.2.3