From c89333a92433bfaaee690ce0a6ef251206994d5e Mon Sep 17 00:00:00 2001 From: GenericHeroGuy Date: Sun, 25 May 2025 22:28:52 +0200 Subject: [PATCH] Get rid of the ancient Android backend Doesn't seem to have been properly maintained since 2009 --- Android.mk | 6 - android/.classpath | 7 - android/.project | 33 --- android/.settings/org.eclipse.jdt.core.prefs | 5 - android/Android.mk | 17 -- android/AndroidManifest.xml | 18 -- android/default.properties | 13 - android/gen/org/srb2/R.java | 26 -- android/res/drawable-hdpi/icon.png | Bin 4147 -> 0 bytes android/res/drawable-ldpi/icon.png | Bin 1723 -> 0 bytes android/res/drawable-mdpi/icon.png | Bin 2574 -> 0 bytes android/res/layout/main.xml | 9 - android/res/values/strings.xml | 5 - android/src/org/srb2/GameThread.java | 25 -- android/src/org/srb2/SRB2Game.java | 39 --- android/src/org/srb2/nativecode/Main.java | 13 - android/src/org/srb2/nativecode/SRB2.java | 35 --- android/src/org/srb2/nativecode/Video.java | 39 --- src/Android.mk | 90 ------ src/android/README | 43 --- src/android/i_cdmus.c | 37 --- src/android/i_main.c | 53 ---- src/android/i_net.c | 6 - src/android/i_sound.c | 214 -------------- src/android/i_system.c | 276 ------------------- src/android/i_video.c | 92 ------- src/android/i_video.h | 20 -- src/android/jni_main.h | 21 -- src/d_main.cpp | 4 - 29 files changed, 1146 deletions(-) delete mode 100644 Android.mk delete mode 100644 android/.classpath delete mode 100644 android/.project delete mode 100644 android/.settings/org.eclipse.jdt.core.prefs delete mode 100644 android/Android.mk delete mode 100644 android/AndroidManifest.xml delete mode 100644 android/default.properties delete mode 100644 android/gen/org/srb2/R.java delete mode 100644 android/res/drawable-hdpi/icon.png delete mode 100644 android/res/drawable-ldpi/icon.png delete mode 100644 android/res/drawable-mdpi/icon.png delete mode 100644 android/res/layout/main.xml delete mode 100644 android/res/values/strings.xml delete mode 100644 android/src/org/srb2/GameThread.java delete mode 100644 android/src/org/srb2/SRB2Game.java delete mode 100644 android/src/org/srb2/nativecode/Main.java delete mode 100644 android/src/org/srb2/nativecode/SRB2.java delete mode 100644 android/src/org/srb2/nativecode/Video.java delete mode 100644 src/Android.mk delete mode 100644 src/android/README delete mode 100644 src/android/i_cdmus.c delete mode 100644 src/android/i_main.c delete mode 100644 src/android/i_net.c delete mode 100644 src/android/i_sound.c delete mode 100644 src/android/i_system.c delete mode 100644 src/android/i_video.c delete mode 100644 src/android/i_video.h delete mode 100644 src/android/jni_main.h diff --git a/Android.mk b/Android.mk deleted file mode 100644 index 240dfa843..000000000 --- a/Android.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Build both the native piece of SRB2 for Android, and the Java frontend. -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/android/.classpath b/android/.classpath deleted file mode 100644 index 609aa00eb..000000000 --- a/android/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/android/.project b/android/.project deleted file mode 100644 index 2654493b0..000000000 --- a/android/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - SRB2 - - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - - diff --git a/android/.settings/org.eclipse.jdt.core.prefs b/android/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index eda3d91ae..000000000 --- a/android/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -#Mon Nov 09 14:38:16 EST 2009 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/android/Android.mk b/android/Android.mk deleted file mode 100644 index 650337e5c..000000000 --- a/android/Android.mk +++ /dev/null @@ -1,17 +0,0 @@ -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := user - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_PACKAGE_NAME := SRB2 -LOCAL_CERTIFICATE := media - -LOCAL_REQUIRED_MODULES := libsrb2 -LOCAL_JNI_SHARED_LIBRARIES := libsrb2 - -include $(BUILD_PACKAGE) - -# Use the following include to make our test apk. -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml deleted file mode 100644 index cc6a1db1c..000000000 --- a/android/AndroidManifest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/android/default.properties b/android/default.properties deleted file mode 100644 index 5dad0b51a..000000000 --- a/android/default.properties +++ /dev/null @@ -1,13 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system use, -# "build.properties", and override values to adapt the script to your -# project structure. - -# Project target. -target=android-4 -# Indicates whether an apk should be generated for each density. -split.density=false diff --git a/android/gen/org/srb2/R.java b/android/gen/org/srb2/R.java deleted file mode 100644 index 8db10bde5..000000000 --- a/android/gen/org/srb2/R.java +++ /dev/null @@ -1,26 +0,0 @@ -/* AUTO-GENERATED FILE. DO NOT MODIFY. - * - * This class was automatically generated by the - * aapt tool from the resource data it found. It - * should not be modified by hand. - */ - -package org.srb2; - -public final class R { - public static final class attr { - } - public static final class drawable { - public static final int icon=0x7f020000; - } - public static final class id { - public static final int SoftwareRendererDisplay=0x7f050000; - } - public static final class layout { - public static final int main=0x7f030000; - } - public static final class string { - public static final int app_name=0x7f040001; - public static final int hello=0x7f040000; - } -} diff --git a/android/res/drawable-hdpi/icon.png b/android/res/drawable-hdpi/icon.png deleted file mode 100644 index 8074c4c571b8cd19e27f4ee5545df367420686d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4147 zcmV-35X|q1P)OwvMs$Q8_8nISM!^>PxsujeDCl4&hPxrxkp%Qc^^|l zp6LqAcf3zf1H4aA1Gv-O6ha)ktct9Y+VA@N^9i;p0H%6v>ZJZYQ`zEa396z-gi{r_ zDz)D=vgRv62GCVeRjK{15j7V@v6|2nafFX6W7z2j1_T0a zLyT3pGTubf1lB5)32>bl0*BflrA!$|_(WD2)iJIfV}37=ZKAC zSe3boYtQ=;o0i>)RtBvsI#iT{0!oF1VFeW`jDjF2Q4aE?{pGCAd>o8Kg#neIh*AMY zLl{;F!vLiem7s*x0<9FKAd6LoPz3~G32P+F+cuGOJ5gcC@pU_?C2fmix7g2)SUaQO$NS07~H)#fn!Q<}KQWtX}wW`g2>cMld+`7Rxgq zChaey66SG560JhO66zA!;sK1cWa2AG$9k~VQY??6bOmJsw9@3uL*z;WWa7(Nm{^TA zilc?y#N9O3LcTo2c)6d}SQl-v-pE4^#wb=s(RxaE28f3FQW(yp$ulG9{KcQ7r>7mQ zE!HYxUYex~*7IinL+l*>HR*UaD;HkQhkL(5I@UwN%Wz504M^d!ylo>ANvKPF_TvA< zkugG5;F6x}$s~J8cnev->_(Ic7%lGQgUi3n#XVo36lUpcS9s z)ympRr7}@|6WF)Ae;D{owN1;aZSR50al9h~?-WhbtKK%bDd zhML131oi1Bu1&Qb$Cp199LJ#;j5d|FhW8_i4KO1OI>}J^p2DfreMSVGY9aFlr&90t zyI2FvxQiKMFviSQeP$Ixh#70qj5O%I+O_I2t2XHWqmh2!1~tHpN3kA4n=1iHj?`@c<~3q^X6_Q$AqTDjBU`|!y<&lkqL|m5tG(b z8a!z&j^m(|;?SW(l*?tZ*{m2H9d&3jqBtXh>O-5e4Qp-W*a5=2NL&Oi62BUM)>zE3 zbSHb>aU3d@3cGggA`C-PsT9^)oy}%dHCaO~nwOrm5E54=aDg(&HR4S23Oa#-a^=}w%g?ZP-1iq8PSjE8jYaGZu z$I)?YN8he?F9>)2d$G6a*zm0XB*Rf&gZAjq(8l@CUDSY1tB#!i> zW$VfG%#SYSiZ};)>pHA`qlfDTEYQEwN6>NNEp+uxuqx({Fgr zjI@!4xRc?vk^9+~eU|mzH__dCDI=xb{Cd}4bELS9xRaS!*FXMwtMR-RR%SLMh0Cjl zencr8#Su<4(%}$yGVBU-HX{18v=yPH*+%^Vtknc>2A;%-~DrYFx^3XfuVgvZ{#1tA== zm3>IzAM2{3Iv_d1XG{P6^tN3|PkJMnjs&CWN7%7_CmjoVakUhsa&dMv==2~^ri?&x zVdv*rnfVyM+I1^Kg*S=23mR@+0T9BWFZUu~@toA8d)fw6be=`Yb6DSX6D?jB%2YT~ z*aHjtIOozfMhA!Jd*?u5_n!SnX>vX`=Ti-1HA4RiE>eI3vTn zz+>Ccf0HX6Ans-ebOB>RJST-Cyr#4XAk+mAlJgdQnoE{^iIN)OcYFSpgJUmXtl@tT z-^ZuUeSj5hSFrQwqX>~EtZ*{>Gi8Bu9_|o06oNtaXP?E936!a@DsvS*tsB@fa6kEA z5GkjwmH?EgpiG&itsB_Tb1NxtFnvxh_s@9KYX1Sttf?AlI~)z zT=6Y7ulx=}<8Scr_UqU-_z)5gPo%050PsbM*ZLno;_-ow&k?FZJtYmb2hPA$LkP)8 z=^d0Q6PImh6Y|QT?{grxj)S=uBKvY2EQUbm@ns9^yKiP~$DcD)c$5Em`zDSScH%iH zVov&m=cMo`1tYwA=!a}vb_ef_{)Q2?FUqn>BR$6phXQRv^1%=YfyE-F$AR4Q?9D!f zCzB^^#td~4u&l~l#rp2QLfe3+_ub9@+|x+m;=2(sQ`s%gO|j$XBb>A7Q(UydipiMw%igcweV#Cr~SP);q>w`bxts_4} znKHg?X==JDkQl3Y>Ckt%`s{n?Nq-1Fw5~%Mq$CAsi-`yu_bKm zxs#QdE7&vgJD%M84f4SNzSDv)S|V?|$!d5a#lhT5>>YWE4NGqa9-fbmV$=)@k&32kdEYetna>=j@0>V8+wRsL;po!3ivVwh<9tn z2S<1u9DAAQ>x1Sn=fk`)At|quvleV($B|#Kap_lB-F^*yV=wZ{9baUu(uXfokr95^ zA*!*W=5a>$2Ps`-F^+qRQT^{*cN>vipT*4!r#p%{(#I7s z0NN94*q?ib$KJjfDI_sjHNdmEVp5wB&j54O#VoFqBwy)gfA$%)4d_X4q${L9Xom2R3xy&ZBSNgt4a1d7K^CDWa9r zVb-_52m}Vp)`9;ZSKd#|U4ZYj5}Gp49{4utST|=c`~(#>KHF6}CCov1iHYw zt{bWo)A@yF2$~c(nR$rSAaFQ$(Wh{vkG1AlutDMw=mM`C`T=X&|Ad9fb5Od}ROt1z zOpczHqrb4Jo^rSCiW#&o(m7jFamnrsTpQb;*h4o8r#$aZ}2RaT-x2u^^ z%u@YyIv$U^u~@9(XGbSwU@fk6SikH>j+D1jQrYTKGJpW%vUT{!d}7THI5&Sa?~MKy zS0-mvMl+BOcroEJ@hN!2H_?coTEJ5Q<;Nd?yx;eIj4{$$E2?YUO|NtNPJ-PdDf;s} zab;}Mz0kbOI}5*w@3gROcnl#5)wQnEhDBfn!Xhy`u>C}*E~vWpO^HS)FC>8^umI=+ z&H;LW6w#;EF`}vQd_9Muru`KnQVPI9U?(sD)&Dg-0j3#(!fNKVZ_GoYH{la~d*1Yh$TI-TL>mI4vpNb@sU2=IZ8vL%AXUx0 zz{K0|nK(yizLHaeW#ZhRfQXoK^}1$=$#1{Yn002ovPDHLkV1n#w+^+xt diff --git a/android/res/drawable-ldpi/icon.png b/android/res/drawable-ldpi/icon.png deleted file mode 100644 index 1095584ec21f71cd0afc9e0993aa2209671b590c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1723 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 - - - - diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml deleted file mode 100644 index 20f67d16f..000000000 --- a/android/res/values/strings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - Hello World, SRB2Game! - SRB2 - diff --git a/android/src/org/srb2/GameThread.java b/android/src/org/srb2/GameThread.java deleted file mode 100644 index 6aecdac74..000000000 --- a/android/src/org/srb2/GameThread.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.srb2; - -import org.srb2.nativecode.SRB2; - -import android.graphics.Canvas; -import android.util.Log; -import android.view.SurfaceHolder; - -public class GameThread extends Thread { - public static String TAG = "SRB2-GameThread"; - private SurfaceHolder sh; - private SRB2 srb2; - - public GameThread(SurfaceHolder h) { - super(); - this.srb2 = new SRB2(h); - this.sh = h; - } - - @Override - public void run() { - Log.d(TAG, "Starting thread!"); - this.srb2.run(); - } -} diff --git a/android/src/org/srb2/SRB2Game.java b/android/src/org/srb2/SRB2Game.java deleted file mode 100644 index ae9f43b2a..000000000 --- a/android/src/org/srb2/SRB2Game.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.srb2; - -import android.util.Log; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.view.SurfaceHolder.Callback; -import android.app.Activity; -import android.os.Bundle; - -public class SRB2Game extends Activity implements Callback { - public static String TAG = "SRB2-Activity"; - private SurfaceView sv; - private GameThread thread; - - /** Called when the activity is first created. */ - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - setContentView(R.layout.main); - - sv = (SurfaceView) findViewById(R.id.SoftwareRendererDisplay); - sv.getHolder().addCallback(this); - } - - public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { - Log.e(TAG, "Output surface changed? OHSHI-"); - } - - public void surfaceCreated(SurfaceHolder arg0) { - Log.d(TAG, "Output surface ready! Instantiating and starting game..."); - thread = new GameThread(sv.getHolder()); - thread.start(); - } - - public void surfaceDestroyed(SurfaceHolder arg0) { - // TODO shutdown SRB2 as cleanly as possible. - } -} diff --git a/android/src/org/srb2/nativecode/Main.java b/android/src/org/srb2/nativecode/Main.java deleted file mode 100644 index 1a2dc200a..000000000 --- a/android/src/org/srb2/nativecode/Main.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.srb2.nativecode; - -import java.nio.ByteBuffer; - -public class Main { - private SRB2 srb2; - - public Main(SRB2 srb2) { - this.srb2 = srb2; - } - - public native int main(Video v); -} diff --git a/android/src/org/srb2/nativecode/SRB2.java b/android/src/org/srb2/nativecode/SRB2.java deleted file mode 100644 index 0f18f1eaf..000000000 --- a/android/src/org/srb2/nativecode/SRB2.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.srb2.nativecode; - -import android.util.Log; -import android.view.SurfaceHolder; - -/// Wraps the entire native game. This object should be wholly owned -/// by the thread it's going to run in. -public class SRB2 { - public static String TAG = "SRB2-Wrapper"; - private Main main; - public Video video; - - public SRB2(SurfaceHolder videoOut) { - try { - Log.i(TAG, "Loading native SRB2 shared object from package..."); - System.load("/data/data/org.srb2/lib/libsrb2.so"); - - } catch (UnsatisfiedLinkError ule) { - Log.i(TAG, "... it doesn't appear to be installed in the package. Looking for native library in the global search path."); - try { - System.load("libsrb2.so"); - - } catch (UnsatisfiedLinkError ule2) { - Log.e("JNI", "... no luck. Could not load libsrb2.so!"); - return; - } - } - this.video = new Video(this, videoOut); - this.main = new Main(this); - } - - public void run() { - this.main.main(this.video); - } -} diff --git a/android/src/org/srb2/nativecode/Video.java b/android/src/org/srb2/nativecode/Video.java deleted file mode 100644 index d7256ee1e..000000000 --- a/android/src/org/srb2/nativecode/Video.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.srb2.nativecode; - -import java.nio.ByteBuffer; - -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.view.SurfaceHolder; - -public class Video { - public static int width = 340; - public static int height = 240; - private SurfaceHolder sh; - public ByteBuffer fb; - public Bitmap bmp; - - public Video(SRB2 srb2, SurfaceHolder sh) { - this.sh = sh; - fb = ByteBuffer.allocateDirect(fbSize()); - bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); - } - - private int fbSize() { - // naively assuming RGBA8888 now, even though that is entirely wrong. - // ... well, at least, that's what the Canvas/Bitmap will expect. - return width * height * 4; - } - - public void gotFrame() { - - Canvas canvas = sh.lockCanvas(); - canvas.drawARGB(0xff, 0, 0, 0); - // ugh, an extra copy. the only way to avoid this, I suppose, - // is to use the surface in native code directly. - bmp.copyPixelsFromBuffer(fb); - canvas.drawBitmap(bmp, 0, 0, null); - sh.unlockCanvasAndPost(canvas); - - } -} diff --git a/src/Android.mk b/src/Android.mk deleted file mode 100644 index 035d48887..000000000 --- a/src/Android.mk +++ /dev/null @@ -1,90 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -srb_module_tags := eng user - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := am_map.c \ - command.c \ - comptime.c \ - console.c \ - d_clisrv.c \ - d_main.c \ - d_net.c \ - d_netcmd.c \ - d_netfil.c \ - dehacked.c \ - f_finale.c \ - f_wipe.c \ - filesrch.c \ - g_game.c \ - g_input.c \ - hu_stuff.c \ - i_tcp.c \ - info.c \ - lzf.c \ - m_argv.c \ - m_bbox.c \ - m_cheat.c \ - m_fixed.c \ - m_menu.c \ - m_misc.c \ - m_queue.c \ - m_random.c \ - md5.c \ - mserv.c \ - p_ceilng.c \ - p_enemy.c \ - p_fab.c \ - p_floor.c \ - p_inter.c \ - p_lights.c \ - p_map.c \ - p_maputl.c \ - p_mobj.c \ - p_polyobj.c \ - p_saveg.c \ - p_setup.c \ - p_sight.c \ - p_spec.c \ - p_telept.c \ - p_tick.c \ - p_user.c \ - r_bsp.c \ - r_data.c \ - r_draw.c \ - r_main.c \ - r_plane.c \ - r_segs.c \ - r_sky.c \ - r_splats.c \ - r_things.c \ - s_sound.c \ - screen.c \ - sounds.c \ - st_stuff.c \ - string.c \ - tables.c \ - v_video.c \ - w_wad.c \ - y_inter.c \ - z_zone.c \ - android/i_cdmus.c \ - android/i_main.c \ - android/i_net.c \ - android/i_sound.c \ - android/i_system.c \ - android/i_video.c - -LOCAL_CFLAGS += -DPLATFORM_ANDROID -DNONX86 -DLINUX -DDEBUGMODE -DNOPIX -DUNIXCOMMON -DNOTERMIOS - -LOCAL_MODULE := libsrb2 - -# we live in an APK, so no prelink for us! -LOCAL_PRELINK_MODULE := false - -LOCAL_SHARED_LIBRARIES += liblog libdl - -LOCAL_CFLAGS += -Idalvik/libnativehelper/include/nativehelper - -include $(BUILD_SHARED_LIBRARY) diff --git a/src/android/README b/src/android/README deleted file mode 100644 index a8d35b598..000000000 --- a/src/android/README +++ /dev/null @@ -1,43 +0,0 @@ -SRB2 for Google Android! - -SYNOPSIS - -Port of SRB2 to Android, tested against version 1.6 (donut). - -I did this with a full Android tree, rather than the NDK thing. - -BUILDING - -Assuming a pretty standard Android tree, at $REPO, and the SRB2 -tree at $REPO/packages/apps/srb2 (that is, the *whole* SRB2 -tree, not just this android/ directory): - - cd $REPO - source build/envsetup.sh # this gives us the mm command, - # which is useful for selectively - # building only one component. - cd packages/apps/srb2 - mm - -An APK is dumped out at (or similar): -out/target/product/generic/system/app/SRB2.apk - -Naturally, an SRB2 APK is architecture specific. Since most -Android devices are currently ARMEL, this is pretty okay. - -NB. It appears that the Java app (the thing that becomes the APK) -is *not* rebuilt if changes are only made to libsrb2. Grr. - -REGENERATION OF JNI HEADERS - -Whenever the Java classes in org.srb2.nativecode change, -the C header files that describe the JNI interface to them -need to be regnererated. Make sure you have the project -built (so that the jar files are up to date), and then: - - cd $REPO/out/target/common/obj/APPS/SRB2_intermediates - - javah -classpath classes.jar -o $REPO/packages/apps/srb2/src/android/jni_main.h org.srb2.nativecode.Main - -# ... and no, I don't know how to mash all that into the -# Android.mk build system... diff --git a/src/android/i_cdmus.c b/src/android/i_cdmus.c deleted file mode 100644 index 12063745b..000000000 --- a/src/android/i_cdmus.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "../command.h" -#include "../s_sound.h" -#include "../i_sound.h" - -// -// CD MUSIC I/O -// - -UINT8 cdaudio_started = 0; - -consvar_t cd_volume = CVAR_INIT ("cd_volume","18",CV_SAVE,soundvolume_cons_t, NULL); -consvar_t cdUpdate = CVAR_INIT ("cd_update","1",CV_SAVE, NULL, NULL); - - -void I_InitCD(void){} - -void I_StopCD(void){} - -void I_PauseCD(void){} - -void I_ResumeCD(void){} - -void I_ShutdownCD(void){} - -void I_UpdateCD(void){} - -void I_PlayCD(UINT8 track, UINT8 looping) -{ - (void)track; - (void)looping; -} - -boolean I_SetVolumeCD(INT32 volume) -{ - (void)volume; - return false; -} diff --git a/src/android/i_main.c b/src/android/i_main.c deleted file mode 100644 index 8696f3fc7..000000000 --- a/src/android/i_main.c +++ /dev/null @@ -1,53 +0,0 @@ -#define LOG_TAG "SRB2-main" -#include "utils/Log.h" - -#include "../doomdef.h" -#include "../d_main.h" -#include "../m_argv.h" - -#include "i_video.h" - -#include "jni_main.h" - -int srb2_main() -{ - // startup SRB2 - CONS_Printf ("Setting up SRB2Kart (fo' real)..."); - D_SRB2Main(); - CONS_Printf ("Entering main game loop..."); - // never return - D_SRB2Loop(); - LOGD("Control left SRB2Kart. Good bye."); - - // return to OS - return 0; -} - -JNIEXPORT jint JNICALL Java_org_srb2_nativecode_Main_main -(JNIEnv * env, jobject self, jobject video) { - jobject fbBuf; - jfieldID fbBufField; - - // a global reference to JNI Env, so my callbacks can use it: - jni_env = env; - androidVideo = video; - - jclass videoClass = (*env)->FindClass(env, "org/srb2/nativecode/Video"); - if(videoClass == NULL) { - LOGE("Could not find Video class from JNI!"); - return -1; - } - fbBufField = (*env)->GetFieldID(env, videoClass, "fb", "Ljava/nio/ByteBuffer;"); - fbBuf = (*env)->GetObjectField(env, video, fbBufField); - if(fbBuf == NULL) { - LOGE("Couldn't get Video object from JNI!"); - return -1; - } - videoFrameCB = (*env)->GetMethodID(env, videoClass, "gotFrame", "()V"); - if(videoFrameCB == NULL) { - LOGE("Couldn't get method ID of Video#gotFrame() callback!"); - return -1; - } - android_surface = (UINT8*) (*env)->GetDirectBufferAddress(env, fbBuf); - return srb2_main(); -} diff --git a/src/android/i_net.c b/src/android/i_net.c deleted file mode 100644 index f6e642022..000000000 --- a/src/android/i_net.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "../i_net.h" - -boolean I_InitNetwork(void) -{ - return false; -} diff --git a/src/android/i_sound.c b/src/android/i_sound.c deleted file mode 100644 index b5a1c3646..000000000 --- a/src/android/i_sound.c +++ /dev/null @@ -1,214 +0,0 @@ -#include "../i_sound.h" - -UINT8 sound_started = 0; - -void *I_GetSfx(sfxinfo_t *sfx) -{ - (void)sfx; - return NULL; -} - -void I_FreeSfx(sfxinfo_t *sfx) -{ - (void)sfx; -} - -void I_StartupSound(void){} - -void I_ShutdownSound(void){} - -// -// SFX I/O -// - -INT32 I_StartSound(sfxenum_t id, INT32 vol, INT32 sep, INT32 pitch, INT32 priority, INT32 channel) -{ - (void)id; - (void)vol; - (void)sep; - (void)pitch; - (void)priority; - (void)channel; - return -1; -} - -void I_StopSound(INT32 handle) -{ - (void)handle; -} - -INT32 I_SoundIsPlaying(INT32 handle) -{ - (void)handle; - return false; -} - -void I_UpdateSoundParams(INT32 handle, INT32 vol, INT32 sep, INT32 pitch) -{ - (void)handle; - (void)vol; - (void)sep; - (void)pitch; -} - -void I_SetSfxVolume(INT32 volume) -{ - (void)volume; -} - -/// ------------------------ -// MUSIC SYSTEM -/// ------------------------ - -UINT8 music_started = 0; -UINT8 digmusic_started = 0; - -void I_InitMusic(void){} - -void I_ShutdownMusic(void){} - -/// ------------------------ -// MUSIC PROPERTIES -/// ------------------------ - -musictype_t I_SongType(void) -{ - return MU_NONE; -} - -boolean I_SongPlaying(void) -{ - return false; -} - -boolean I_SongPaused(void) -{ - return false; -} - -/// ------------------------ -// MUSIC EFFECTS -/// ------------------------ - -boolean I_SetSongSpeed(float speed) -{ - (void)speed; - return false; -} - -/// ------------------------ -// MUSIC SEEKING -/// ------------------------ - -UINT32 I_GetSongLength(void) -{ - return 0; -} - -boolean I_SetSongLoopPoint(UINT32 looppoint) -{ - (void)looppoint; - return false; -} - -UINT32 I_GetSongLoopPoint(void) -{ - return 0; -} - -boolean I_SetSongPosition(UINT32 position) -{ - (void)position; - return false; -} - -UINT32 I_GetSongPosition(void) -{ - return 0; -} - -/// ------------------------ -// MUSIC PLAYBACK -/// ------------------------ - -UINT8 midimusic_started = 0; - -boolean I_LoadSong(char *data, size_t len) -{ - (void)data; - (void)len; - return -1; -} - -void I_UnloadSong() -{ - -} - -boolean I_PlaySong(boolean looping) -{ - (void)handle; - (void)looping; - return false; -} - -void I_StopSong(void) -{ - (void)handle; -} - -void I_PauseSong(void) -{ - (void)handle; -} - -void I_ResumeSong(void) -{ - (void)handle; -} - -void I_SetMusicVolume(INT32 volume) -{ - (void)volume; -} - -/// ------------------------ -// MUSIC FADING -/// ------------------------ - -void I_SetInternalMusicVolume(UINT8 volume) -{ - (void)volume; -} - -void I_StopFadingSong(void) -{ -} - -boolean I_FadeSongFromVolume(UINT8 target_volume, UINT8 source_volume, UINT32 ms, void (*callback)(void)); -{ - (void)target_volume; - (void)source_volume; - (void)ms; - return false; -} - -boolean I_FadeSong(UINT8 target_volume, UINT32 ms, void (*callback)(void)); -{ - (void)target_volume; - (void)ms; - return false; -} - -boolean I_FadeOutStopSong(UINT32 ms) -{ - (void)ms; - return false; -} - -boolean I_FadeInPlaySong(UINT32 ms, boolean looping) -{ - (void)ms; - (void)looping; - return false; -} diff --git a/src/android/i_system.c b/src/android/i_system.c deleted file mode 100644 index fe7fa863d..000000000 --- a/src/android/i_system.c +++ /dev/null @@ -1,276 +0,0 @@ -#define LOG_TAG "SRB2" - -#include "../doomdef.h" -#include "../i_system.h" - -#include -#include -#include -#include -#include -#include - -#include - -#define MEMINFO_FILE "/proc/meminfo" -#define MEMTOTAL "MemTotal:" -#define MEMFREE "MemFree:" - -UINT8 graphics_started = 0; - -UINT8 keyboard_started = 0; - -static INT64 start_time; // as microseconds since the epoch - -// I should probably return how much memory is remaining -// for this process, considering Android's process memory limit. -UINT32 I_GetFreeMem(UINT32 *total) -{ - // what the heck? sysinfo() is partially missing in bionic? - /* struct sysinfo si; */ - /* if(sysinfo(&si) != 0) { */ - /* I_Error("Couldn't invoke sysinfo()...?"); */ - /* } */ - /* return si.freeram; */ - char buf[1024]; - char *memTag; - UINT32 freeKBytes; - UINT32 totalKBytes; - INT32 n; - INT32 meminfo_fd = -1; - - meminfo_fd = open(MEMINFO_FILE, O_RDONLY); - n = read(meminfo_fd, buf, 1023); - close(meminfo_fd); - - if (n < 0) - { - // Error - *total = 0L; - return 0; - } - - buf[n] = '\0'; - if (NULL == (memTag = strstr(buf, MEMTOTAL))) - { - // Error - *total = 0L; - return 0; - } - - memTag += sizeof (MEMTOTAL); - totalKBytes = atoi(memTag); - - if (NULL == (memTag = strstr(buf, MEMFREE))) - { - // Error - *total = 0L; - return 0; - } - - memTag += sizeof (MEMFREE); - freeKBytes = atoi(memTag); - - if (total) - *total = totalKBytes << 10; - return freeKBytes << 10; -} - -INT64 current_time_in_ps() { - struct timeval t; - gettimeofday(&t, NULL); - return (t.tv_sec * (INT64)1000000) + t.tv_usec; -} - -void I_Sleep(UINT32 ms){} - -precise_t I_GetPreciseTime(void) -{ - return 0; -} - -UINT64 I_GetPrecisePrecision(void) -{ - return 1000000; -} - -void I_GetEvent(void){} - -void I_OsPolling(void){} - -ticcmd_t *I_BaseTiccmd(void) -{ - return NULL; -} - -ticcmd_t *I_BaseTiccmd2(void) -{ - return NULL; -} - -void I_Quit(void) -{ - LOGD("SRB2Kart quitting!"); - exit(0); -} - -void I_Error(const char *error, ...) -{ - va_list argptr; - char logbuf[8192]; - - va_start(argptr, error); - vsprintf(logbuf, error, argptr); - va_end(argptr); - - LOGE(logbuf); - exit(-1); -} - -void I_Tactile(FFType Type, const JoyFF_t *Effect) -{ - (void)Type; - (void)Effect; -} - -void I_Tactile2(FFType Type, const JoyFF_t *Effect) -{ - (void)Type; - (void)Effect; -} - -void I_JoyScale(void){} - -void I_JoyScale2(void){} - -void I_InitJoystick(void){} - -void I_InitJoystick2(void){} - -INT32 I_NumJoys(void) -{ - return 0; -} - -const char *I_GetJoyName(INT32 joyindex) -{ - (void)joyindex; - return NULL; -} - -void I_SetupMumble(void) -{ -} - -#ifndef NOMUMBLE -void I_UpdateMumble(const mobj_t *mobj, const listener_t listener) -{ - (void)mobj; - (void)listener; -} -#endif - -void I_OutputMsg(const char *fmt, ...) -{ - va_list argptr; - char logbuf[8192]; - - va_start(argptr, fmt); - vsprintf(logbuf, fmt, argptr); - va_end(argptr); - - LOGD(logbuf); -} - -void I_StartupMouse(void){} - -void I_StartupMouse2(void){} - -void I_StartupKeyboard(void){} - -INT32 I_GetKey(void) -{ - return 0; -} - -void I_StartupTimer(void) { - struct timeval t; - gettimeofday(&t, NULL); - start_time = (t.tv_sec * 1000000) + t.tv_usec; -} - -void I_AddExitFunc(void (*func)()) -{ - (void)func; -} - -void I_RemoveExitFunc(void (*func)()) -{ - (void)func; -} - -INT32 I_StartupSystem(void) -{ - return -1; -} - -void I_ShutdownSystem(void){} - -void I_GetDiskFreeSpace(INT64* freespace) -{ - *freespace = 0; -} - -char *I_GetUserName(void) -{ - return "Android"; -} - -INT32 I_mkdir(const char *dirname, INT32 unixright) -{ - (void)dirname; - (void)unixright; - return -1; -} - -const char *I_LocateWad(void) -{ - return "/sdcard/srb2"; -} - -void I_GetJoystickEvents(void){} - -void I_GetJoystick2Events(void){} - -void I_GetMouseEvents(void){} - -void I_UpdateMouseGrab(void){} - -char *I_GetEnv(const char *name) -{ - LOGW("I_GetEnv() called?!"); - (void)name; - return NULL; -} - -INT32 I_PutEnv(char *variable) -{ - (void)variable; - return -1; -} - -INT32 I_ClipboardCopy(const char *data, size_t size) -{ - (void)data; - (void)size; - return -1; -} - -char *I_ClipboardPaste(void) -{ - return NULL; -} - -void I_RegisterSysCommands(void) {} - -#include "../sdl/dosstr.c" diff --git a/src/android/i_video.c b/src/android/i_video.c deleted file mode 100644 index bf0decb74..000000000 --- a/src/android/i_video.c +++ /dev/null @@ -1,92 +0,0 @@ -#include "../doomdef.h" -#include "../command.h" -#include "../i_video.h" -#include "../v_video.h" -#include "../screen.h" - -#include "i_video.h" - -#include "utils/Log.h" - -rendermode_t rendermode = render_soft; -rendermode_t chosenrendermode = render_none; - -boolean highcolor = false; - -boolean allow_fullscreen = false; - - - -consvar_t cv_vidwait = CVAR_INIT ("vid_wait", "On", CV_SAVE, CV_OnOff, NULL); - -void I_StartupGraphics(void){} -void I_ShutdownGraphics(void){} - -void VID_StartupOpenGL(void){} - -void I_SetPalette(RGBA_t *palette) -{ - (void)palette; -} - -INT32 VID_NumModes(void) -{ - return 1; -} - -INT32 VID_GetModeForSize(INT32 w, INT32 h) -{ - (void)w; - (void)h; - return 0; -} - -void VID_PrepareModeList(void){} - -INT32 VID_SetMode(INT32 modenum) -{ - vid.modenum = 0; - vid.width = 320; - vid.height = 240; - vid.bpp = 1; - vid.buffer = android_surface; - return 0; -} - -boolean VID_CheckRenderer(void) -{ - return false; -} - -void VID_CheckGLLoaded(rendermode_t oldrender) -{ - (void)oldrender; -} - -const char *VID_GetModeName(INT32 modenum) -{ - return "A320x240"; -} - -void I_UpdateNoBlit(void){} - -void I_FinishUpdate(void) { - LOGD("FRAME!"); - (*jni_env)->CallVoidMethod(jni_env, androidVideo, videoFrameCB); -} - -void I_UpdateNoVsync(void) {} - -void I_WaitVBL(INT32 count) -{ - (void)count; -} - -void I_ReadScreen(UINT8 *scr) -{ - (void)scr; -} - -void I_BeginRead(void){} - -void I_EndRead(void){} diff --git a/src/android/i_video.h b/src/android/i_video.h deleted file mode 100644 index aa0e78f3d..000000000 --- a/src/android/i_video.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _SRB2_ANDROID_VIDEO_ -#define _SRB2_ANDROID_VIDEO_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -UINT8 *android_surface; - -JNIEnv* jni_env; -jobject androidVideo; -jmethodID videoFrameCB; - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/src/android/jni_main.h b/src/android/jni_main.h deleted file mode 100644 index da7f70331..000000000 --- a/src/android/jni_main.h +++ /dev/null @@ -1,21 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class org_srb2_nativecode_Main */ - -#ifndef _Included_org_srb2_nativecode_Main -#define _Included_org_srb2_nativecode_Main -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: org_srb2_nativecode_Main - * Method: main - * Signature: (Lorg/srb2/nativecode/Video;)I - */ -JNIEXPORT jint JNICALL Java_org_srb2_nativecode_Main_main - (JNIEnv *, jobject, jobject); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/d_main.cpp b/src/d_main.cpp index b91a0ad80..bfa21733d 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -1920,10 +1920,6 @@ const char *D_Home(void) { const char *userhome = NULL; -#ifdef ANDROID - return "/data/data/org.srb2/"; -#endif - if (M_CheckParm("-home") && M_IsNextParm()) userhome = M_GetNextParm(); else