refactor android ffi
This commit is contained in:
parent
0dba37f4f7
commit
cdd92303b8
@ -1,5 +1,7 @@
|
|||||||
package com.carriez.flutter_hbb
|
package com.carriez.flutter_hbb
|
||||||
|
|
||||||
|
import ffi.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Capture screen,get video and audio,send to rust.
|
* Capture screen,get video and audio,send to rust.
|
||||||
* Dispatch notifications
|
* Dispatch notifications
|
||||||
@ -64,10 +66,6 @@ const val AUDIO_CHANNEL_MASK = AudioFormat.CHANNEL_IN_STEREO
|
|||||||
|
|
||||||
class MainService : Service() {
|
class MainService : Service() {
|
||||||
|
|
||||||
init {
|
|
||||||
System.loadLibrary("rustdesk")
|
|
||||||
}
|
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
@RequiresApi(Build.VERSION_CODES.N)
|
@RequiresApi(Build.VERSION_CODES.N)
|
||||||
fun rustPointerInput(kind: String, mask: Int, x: Int, y: Int) {
|
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 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")}
|
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 {
|
private fun translate(input: String): String {
|
||||||
Log.d(logTag, "translate:$LOCAL_NAME")
|
Log.d(logTag, "translate:$LOCAL_NAME")
|
||||||
return translateLocale(LOCAL_NAME, input)
|
return translateLocale(LOCAL_NAME, input)
|
||||||
|
19
flutter/android/app/src/main/kotlin/ffi.kt
Normal file
19
flutter/android/app/src/main/kotlin/ffi.kt
Normal 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)
|
@ -2108,7 +2108,7 @@ pub mod server_side {
|
|||||||
use crate::start_server;
|
use crate::start_server;
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_startServer(
|
pub unsafe extern "system" fn Java_ffi_startServer(
|
||||||
env: JNIEnv,
|
env: JNIEnv,
|
||||||
_class: JClass,
|
_class: JClass,
|
||||||
app_dir: JString,
|
app_dir: JString,
|
||||||
@ -2122,7 +2122,7 @@ pub mod server_side {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_startService(
|
pub unsafe extern "system" fn Java_ffi_startService(
|
||||||
_env: JNIEnv,
|
_env: JNIEnv,
|
||||||
_class: JClass,
|
_class: JClass,
|
||||||
) {
|
) {
|
||||||
@ -2132,7 +2132,7 @@ pub mod server_side {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_translateLocale(
|
pub unsafe extern "system" fn Java_ffi_translateLocale(
|
||||||
env: JNIEnv,
|
env: JNIEnv,
|
||||||
_class: JClass,
|
_class: JClass,
|
||||||
locale: JString,
|
locale: JString,
|
||||||
@ -2151,7 +2151,7 @@ pub mod server_side {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "system" fn Java_com_carriez_flutter_1hbb_MainService_refreshScreen(
|
pub unsafe extern "system" fn Java_ffi_refreshScreen(
|
||||||
_env: JNIEnv,
|
_env: JNIEnv,
|
||||||
_class: JClass,
|
_class: JClass,
|
||||||
) {
|
) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user