diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2010-02-04 17:31:10 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2010-02-04 17:31:10 +0000 |
commit | 35472fe7f1c7133fa4291dad36ae457a460f021c (patch) | |
tree | c84a0118c7c992a30d0cb42d1778ec9918184b1f /apps/codecs/libasap/anylang.h | |
parent | b1a6c9096dfde44249d0f4d8a929c63a89987623 (diff) |
sync asap codec to ASAP 2.1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24511 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libasap/anylang.h')
-rw-r--r-- | apps/codecs/libasap/anylang.h | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/apps/codecs/libasap/anylang.h b/apps/codecs/libasap/anylang.h new file mode 100644 index 0000000000..4d955d6026 --- /dev/null +++ b/apps/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 <string.h> + +#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.ASCII.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_ */ |