Skip to content

Commit 7c5de8f

Browse files
authored
Add Scheduled Capture to SDKs (#728)
* Regenerate new settings to include scheduled capture * Add scheduled capture model * Refactor setting containers to allow for complex data type models
1 parent c97e071 commit 7c5de8f

File tree

71 files changed

+2409
-1950
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+2409
-1950
lines changed

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/domain/queries/Settings.kt

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,47 +11,27 @@ import com.gopro.open_gopro.domain.communicator.bleCommunicator.ResponseId
1111
import com.gopro.open_gopro.entity.communicator.GpStatus
1212
import com.gopro.open_gopro.entity.communicator.QueryId
1313
import com.gopro.open_gopro.operations.IUByteArrayCompanion
14-
import com.gopro.open_gopro.operations.IValuedEnum
1514
import com.gopro.open_gopro.operations.SettingId
16-
import com.gopro.open_gopro.util.extensions.toUByteArray
1715
import kotlinx.coroutines.flow.Flow
1816
import kotlinx.coroutines.flow.map
1917
import kotlinx.coroutines.flow.onStart
2018

21-
@OptIn(ExperimentalUnsignedTypes::class)
22-
internal class UByteArrayEnumTransformer<T>(private val companion: IUByteArrayCompanion<T>) where
23-
T : Enum<T>,
24-
T : IValuedEnum<*> {
25-
fun toUByteArray(value: T): UByteArray =
26-
if (value.value is UByte) {
27-
ubyteArrayOf(value.value as UByte)
28-
} else if (value.value is ULong) {
29-
(value.value as ULong).toUByteArray()
30-
} else {
31-
throw Exception("Only Enums of value type UByte and ULong can be converted to UByteArray")
32-
}
33-
34-
fun fromUByteArray(data: UByteArray): T = companion.fromUByteArray(data)
35-
}
36-
3719
/**
3820
* A per-setting ID wrapper to perform all setting queries
3921
*
4022
* @param T Setting data type
4123
* @property settingId Setting ID
4224
* @property marshaller operation marshaller to marshal the queries
43-
* @param enum Enum data type
25+
* @param byteTransformer Enum data type
4426
* @see [Open GoPro Spec](https://gopro.github.io/OpenGoPro/ble/features/settings.html)
4527
*/
4628
@OptIn(ExperimentalUnsignedTypes::class)
47-
class Setting<T>
29+
class Setting<T : Any>
4830
internal constructor(
4931
private val settingId: SettingId,
50-
enum: IUByteArrayCompanion<T>,
32+
private val byteTransformer: IUByteArrayCompanion<T>,
5133
private val marshaller: IOperationMarshaller,
52-
) where T : Enum<T>, T : IValuedEnum<*> {
53-
private val byteTransformer = UByteArrayEnumTransformer(enum)
54-
34+
) {
5535
private inner class SetSettingValue(private val value: T) :
5636
BaseOperation<Unit>("Set Setting Value::${settingId.name}") {
5737
override suspend fun execute(communicator: BleCommunicator): Result<Unit> =

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/cohn.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* cohn.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/live_streaming.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* live_streaming.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/media.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* media.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/network_management.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* network_management.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/preset_status.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* preset_status.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/request_get_preset_status.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* request_get_preset_status.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/response_generic.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* response_generic.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/set_camera_control_status.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* set_camera_control_status.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

demos/kotlin/kmp_sdk/wsdk/src/commonMain/kotlin/com/gopro/open_gopro/entity/operation/proto/turbo_transfer.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* turbo_transfer.kt/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
2-
/* This copyright was auto-generated on Tue Mar 25 16:44:30 UTC 2025 */
3-
41
@file:OptIn(pbandk.PublicForGeneratedCode::class)
52

63
package com.gopro.open_gopro.operations

0 commit comments

Comments
 (0)