diff -r 45b9f25ff611 -r 2fb781bbdd51 project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/FrontlibTypeMapper.java --- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/FrontlibTypeMapper.java Mon Aug 06 22:33:07 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -package org.hedgewars.hedgeroid.netplay; - -import java.io.UnsupportedEncodingException; - -import com.sun.jna.DefaultTypeMapper; -import com.sun.jna.FromNativeContext; -import com.sun.jna.FromNativeConverter; -import com.sun.jna.Native; -import com.sun.jna.Pointer; -import com.sun.jna.ToNativeContext; -import com.sun.jna.ToNativeConverter; -import com.sun.jna.TypeConverter; -import com.sun.jna.TypeMapper; - -public class FrontlibTypeMapper extends DefaultTypeMapper { - public static final TypeMapper INSTANCE = new FrontlibTypeMapper(); - - protected FrontlibTypeMapper() { - addTypeConverter(Boolean.class, new BooleanConverter()); - addToNativeConverter(String.class, new StringToNativeConverter()); - addFromNativeConverter(String.class, new StringFromNativeConverter()); - } -} - -class BooleanConverter implements TypeConverter { - public Class nativeType() { - return Byte.class; - } - public Object fromNative(Object value, FromNativeContext context) { - return ((Byte)value).intValue() != 0 ? Boolean.TRUE : Boolean.FALSE; - } - public Object toNative(Object value, ToNativeContext context) { - return Byte.valueOf((byte)(Boolean.TRUE.equals(value) ? 1 : 0)); - } -} - -class StringToNativeConverter implements ToNativeConverter { - public byte[] toNative(Object value, ToNativeContext context) { - try { - return value==null ? null : Native.toByteArray((String)value, "UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new AssertionError(e); // Never happens - } - } - - public Class nativeType() { - return byte[].class; - } -} - -class StringFromNativeConverter implements FromNativeConverter { - public String fromNative(Object value, FromNativeContext context) { - Pointer p = (Pointer)value; - if(p==null) { - return null; - } - int i=0; - while(p.getByte(i) != 0) { - i++; - } - try { - return new String(p.getByteArray(0, i), "UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new AssertionError(e); // Never happens - } - } - - public Class nativeType() { - return Pointer.class; - } -}