Compile real Telecom integration against explicit host boundaries
This commit is contained in:
1 parent
06058fad8e
commit
3babc636b4
3 files changed
+21
-5
No files matched your search
@@ -5,7 +5,7 @@ kotlin {
|
||||
sourceSets.named("main") {
|
||||
// Настоящий RX/протокольный формат; Android codecs, probe и JNI управляются на аппаратных границах.
|
||||
kotlin.srcDir("../app/src/main/java")
|
||||
kotlin.include("android/**", "com/utun/chat/data/VideoHost.kt", "com/utun/chat/data/CallVideoPlayer.kt",
|
||||
kotlin.include("android/**", "androidx/**", "com/utun/chat/data/VideoHost.kt", "com/utun/chat/data/CallVideoPlayer.kt",
|
||||
"com/utun/chat/data/CallVideoFormat.kt", "com/utun/chat/data/StreamVideoCodec.kt", "com/utun/chat/data/H264AnnexB.kt",
|
||||
"com/utun/chat/data/StreamPreview.kt", "com/utun/chat/data/VideoCodecResources.kt",
|
||||
"com/utun/chat/data/StreamVideoPlayback.kt", "com/utun/chat/data/StreamDecodePump.kt")
|
||||
@@ -15,7 +15,8 @@ kotlin {
|
||||
kotlin.include("com/utun/chat/data/StreamHost.kt", "com/utun/chat/data/StreamPlayerEngine.kt",
|
||||
"com/utun/chat/data/StreamAudioMixer.kt", "com/utun/chat/data/StreamAudioOutput.kt",
|
||||
"com/utun/chat/data/StreamAudioMix.kt", "com/utun/chat/data/StreamReadQueue.kt", "com/utun/chat/data/StreamPlaybackTelemetry.kt",
|
||||
"com/utun/chat/data/StreamCaptureEngine.kt", "com/utun/chat/data/StreamCaptureConfig.kt")
|
||||
"com/utun/chat/data/StreamCaptureEngine.kt", "com/utun/chat/data/StreamCaptureConfig.kt",
|
||||
"com/utun/chat/data/TelecomCallManager.kt", "com/utun/chat/data/UtunConnection.kt", "com/utun/chat/data/UtunConnectionService.kt")
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
|
||||
@@ -62,6 +62,18 @@ object SystemClock {
|
||||
fun elapsedRealtime(): Long = System.nanoTime() / 1_000_000
|
||||
fun elapsedRealtimeNanos(): Long = System.nanoTime()
|
||||
}
|
||||
object Build { object VERSION { const val SDK_INT = 36 } }
|
||||
object Build { object VERSION { var SDK_INT = 36 }; object VERSION_CODES { const val UPSIDE_DOWN_CAKE = 34 } }
|
||||
object Process { const val THREAD_PRIORITY_AUDIO = -16; fun setThreadPriority(value: Int) {} }
|
||||
class Bundle { val values = mutableMapOf<String, Int>(); fun putInt(key: String, value: Int) { values[key] = value } }
|
||||
class Bundle {
|
||||
val values = mutableMapOf<String, Any>()
|
||||
fun putInt(key: String, value: Int) { values[key] = value }
|
||||
fun putLong(key: String, value: Long) { values[key] = value }
|
||||
fun putString(key: String, value: String) { values[key] = value }
|
||||
fun putBundle(key: String, value: Bundle) { values[key] = value }
|
||||
fun putParcelable(key: String, value: Any) { values[key] = value }
|
||||
fun getLong(key: String, fallback: Long): Long = values[key] as? Long ?: fallback
|
||||
fun getString(key: String): String? = values[key] as? String
|
||||
fun keySet() = values.keys
|
||||
}
|
||||
data class ParcelUuid(val uuid: java.util.UUID)
|
||||
interface OutcomeReceiver<R, E : Throwable> { fun onResult(result: R?); fun onError(error: E) }
|
||||
@@ -27,7 +27,10 @@ object MicrophoneCapture {
|
||||
}
|
||||
}
|
||||
|
||||
object CallController { var blocked = false; fun blocksMedia() = blocked }
|
||||
enum class AudioRoute { EARPIECE, SPEAKER, HEADSET }
|
||||
enum class CallPhase { NONE, OUTGOING, RINGING, INCOMING, ACTIVE, ENDED, WAIT_DECISION, PENDING_INCOMING }
|
||||
data class HostCallState(val callId: Long, val phase: CallPhase) { val ongoing get() = phase != CallPhase.NONE && phase != CallPhase.ENDED }
|
||||
object CallController { var blocked = false; val state = MutableStateFlow<HostCallState?>(null); fun blocksMedia() = blocked }
|
||||
object StreamController { private val ids = AtomicLong(100); fun nextId() = ids.incrementAndGet() }
|
||||
object MediaAudioController {
|
||||
data class State(val switching: Boolean = false)
|
||||
|
||||
Reference in new issue
Block a user