refactor android ffi

This commit is contained in:
rustdesk 2024-04-15 15:20:27 +08:00
parent 0dba37f4f7
commit cdd92303b8
3 changed files with 25 additions and 22 deletions

View File

@ -1,5 +1,7 @@
package com.carriez.flutter_hbb
import ffi.*
/**
* Capture screen,get video and audio,send to rust.
* Dispatch notifications
@ -64,10 +66,6 @@ const val AUDIO_CHANNEL_MASK = AudioFormat.CHANNEL_IN_STEREO
class MainService : Service() {
init {
System.loadLibrary("rustdesk")
}
@Keep
@RequiresApi(Build.VERSION_CODES.N)
fun rustPointerInput(kind: String, mask: Int, x: Int, y: Int) {
@ -156,20 +154,6 @@ class MainService : Service() {
private val powerManager: PowerManager by lazy { applicationContext.getSystemService(Context.POWER_SERVICE) as PowerManager }
private val wakeLock: PowerManager.WakeLock by lazy { powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP or PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "rustdesk:wakelock")}
// jvm call rust
private external fun init(ctx: Context)
/// When app start on boot, app_dir will not be passed from flutter
/// so pass a app_dir here to rust server
private external fun startServer(app_dir: String)
private external fun startService()
private external fun onVideoFrameUpdate(buf: ByteBuffer)
private external fun onAudioFrameUpdate(buf: ByteBuffer)
private external fun translateLocale(localeName: String, input: String): String
private external fun refreshScreen()
private external fun setFrameRawEnable(name: String, value: Boolean)
// private external fun sendVp9(data: ByteArray)
private fun translate(input: String): String {
Log.d(logTag, "translate:$LOCAL_NAME")
return translateLocale(LOCAL_NAME, input)

View File

@ -0,0 +1,19 @@
// ffi.kt
package ffi
import android.content.Context
import java.nio.ByteBuffer
init {
System.loadLibrary("rustdesk")
}
external fun init(ctx: Context)
external fun startServer(app_dir: String)
external fun startService()
external fun onVideoFrameUpdate(buf: ByteBuffer)
external fun onAudioFrameUpdate(buf: ByteBuffer)
external fun translateLocale(localeName: String, input: String): String
external fun refreshScreen()
external fun setFrameRawEnable(name: String, value: Boolean)

View File

@ -2108,7 +2108,7 @@ pub mod server_side {
use crate::start_server;
#[no_mangle]
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_startServer(
pub unsafe extern "system" fn Java_ffi_startServer(
env: JNIEnv,
_class: JClass,
app_dir: JString,
@ -2122,7 +2122,7 @@ pub mod server_side {
}
#[no_mangle]
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_startService(
pub unsafe extern "system" fn Java_ffi_startService(
_env: JNIEnv,
_class: JClass,
) {
@ -2132,7 +2132,7 @@ pub mod server_side {
}
#[no_mangle]
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_translateLocale(
pub unsafe extern "system" fn Java_ffi_translateLocale(
env: JNIEnv,
_class: JClass,
locale: JString,
@ -2151,7 +2151,7 @@ pub mod server_side {
}
#[no_mangle]
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_refreshScreen(
pub unsafe extern "system" fn Java_ffi_refreshScreen(
_env: JNIEnv,
_class: JClass,
) {