alpha
Login
or
Join now
nateholland.bsky.social
/
PoseDetection
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
This repository has no description
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
feat: ios use wide angle camera
author
nate
committer
tangled.org
date
5 months ago
(Jan 15, 2026, 8:43 PM UTC)
commit
149dbc99
149dbc9906cb9958e7eca3c92a1a752b045a0ca5
parent
f5a7d093
f5a7d093ac2c52429d5ebbc336c741909e62263b
+16
-4
1 changed file
Expand all
Collapse all
Unified
Split
posedetection
src
iosMain
kotlin
com
performancecoachlab
posedetection
camera
CameraEngine.kt
+16
-4
posedetection/src/iosMain/kotlin/com/performancecoachlab/posedetection/camera/CameraEngine.kt
Reviewed
···
36
36
import platform.AVFoundation.AVCaptureDevicePositionBack
37
37
import platform.AVFoundation.AVCaptureDevicePositionFront
38
38
import platform.AVFoundation.AVCaptureDevicePositionUnspecified
39
39
+
import platform.AVFoundation.AVCaptureDeviceType
40
40
+
import platform.AVFoundation.AVCaptureDeviceTypeBuiltInUltraWideCamera
39
41
import platform.AVFoundation.AVCaptureDeviceTypeBuiltInWideAngleCamera
40
42
import platform.AVFoundation.AVCaptureFileOutput
41
43
import platform.AVFoundation.AVCaptureInput
···
55
57
import platform.AVFoundation.AVMediaTypeVideo
56
58
import platform.AVFoundation.AVVideoCodecJPEG
57
59
import platform.AVFoundation.AVVideoCodecKey
60
60
+
import platform.AVFoundation.displayVideoZoomFactorMultiplier
58
61
import platform.AVFoundation.position
59
62
import platform.CoreFoundation.CFDataGetBytePtr
60
63
import platform.CoreFoundation.CFDataGetLength
···
446
449
@OptIn(ExperimentalForeignApi::class)
447
450
private fun setupInputs(): Boolean {
448
451
val availableDevices = AVCaptureDeviceDiscoverySession.discoverySessionWithDeviceTypes(
449
449
-
listOf(AVCaptureDeviceTypeBuiltInWideAngleCamera),
452
452
+
listOf(
453
453
+
AVCaptureDeviceTypeBuiltInUltraWideCamera,AVCaptureDeviceTypeBuiltInWideAngleCamera
454
454
+
),
450
455
AVMediaTypeVideo,
451
456
AVCaptureDevicePositionUnspecified
452
457
).devices
···
454
459
if (availableDevices.isEmpty()) return false
455
460
456
461
for (device in availableDevices) {
457
457
-
when ((device as AVCaptureDevice).position) {
458
458
-
AVCaptureDevicePositionBack -> backCamera = device
459
459
-
AVCaptureDevicePositionFront -> frontCamera = device
462
462
+
if((device as AVCaptureDevice).displayVideoZoomFactorMultiplier<1.0){
463
463
+
when (device.position) {
464
464
+
AVCaptureDevicePositionBack -> backCamera = device
465
465
+
}
466
466
+
}else{
467
467
+
when (device.position) {
468
468
+
AVCaptureDevicePositionFront -> frontCamera = device
469
469
+
}
460
470
}
471
471
+
472
472
+
Logger.d{"device: ${device.localizedName}, zoom: ${device.displayVideoZoomFactorMultiplier}, position: ${device.position}"}
461
473
}
462
474
currentCamera = if (isUsingFrontCamera) frontCamera ?: backCamera ?: return false
463
475
else backCamera ?: frontCamera ?: return false