diff --git a/README.md b/README.md index e5b95ac..ac9cab4 100644 --- a/README.md +++ b/README.md @@ -7,19 +7,19 @@ A Kotlin Multiplatform library to rapidly add basic features like pictures, logging, and audio to any project in a small and fast way. -| Platforms | Basic-Images | Basic-Logging | Basic-Sound | -|:--------------|:--------------------:|:--------------------:|:--------------------:| -| Android | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| iOS | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| macOS | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| watchOS | | :white_check_mark: | :white_check_mark: | -| tvOS | | :white_check_mark: | :white_check_mark: | -| nodeJS | | :white_check_mark: | :white_check_mark: | -| jsBrowser | | :white_check_mark: | :white_check_mark: | -| wasmJsBrowser | | :white_check_mark: | | -| JVM | | :white_check_mark: | | -| Linux | | :white_check_mark: | | -| Windows | | :white_check_mark: | | +| Platforms | Basic-Images | Basic-Logging | Basic-Sound | +|:--------------|:------------------:|:--------------------:|:------------------:| +| Android | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| iOS | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| macOS | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| watchOS | | :white_check_mark: | :white_check_mark: | +| tvOS | | :white_check_mark: | :white_check_mark: | +| nodeJS | | :white_check_mark: | :white_check_mark: | +| jsBrowser | | :white_check_mark: | :white_check_mark: | +| wasmJsBrowser | | :white_check_mark: | :white_check_mark: | +| JVM | :white_check_mark: | :white_check_mark: | | +| Linux | | :white_check_mark: | | +| Windows | | :white_check_mark: | | ## Documentation * [Basic-Images](basic-images/README.md) [![Maven Central](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-images?color=blue)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-images) diff --git a/basic-images/README.md b/basic-images/README.md index c138716..6e0a490 100644 --- a/basic-images/README.md +++ b/basic-images/README.md @@ -13,7 +13,7 @@ A Kotlin Multiplatform library to rapidly add logging to any project. ![badge-nodejs](https://img.shields.io/badge/jsNode-no_support-red.svg?style=flat) ![badge-jsBrowser](https://img.shields.io/badge/jsBrowser-no_support-red.svg?style=flat) ![badge-wasmJsBrowser](https://img.shields.io/badge/wasmJsBrowser-no_support-red.svg?style=flat) -![badge-jvm](http://img.shields.io/badge/jvm-no_support-red.svg?style=flat) +![badge-jvm](http://img.shields.io/badge/jvm-full_support-65c663.svg?style=flat) ![badge-linux](http://img.shields.io/badge/linux-no_support-red.svg?style=flat) ![badge-windows](http://img.shields.io/badge/windows-no_support-red.svg?style=flat) diff --git a/basic-images/build.gradle.kts b/basic-images/build.gradle.kts index 1615313..833a583 100644 --- a/basic-images/build.gradle.kts +++ b/basic-images/build.gradle.kts @@ -17,8 +17,8 @@ kotlin { // FORCES CHECK OF PUBLIC API DECLARATIONS explicitApi() -// jvm() -// + jvm() + // js { // browser { // webpackTask { @@ -87,8 +87,13 @@ kotlin { implementation(libs.ktor.client.darwin) implementation(libs.ktor.client.ios) } +// tvosMain.dependencies { +// implementation(libs.ktor.client.darwin) +// implementation(libs.ktor.client.ios) +// } // jvmMain.dependencies {} // jsMain.dependencies {} +// wasmJsMain.dependencies {} // linuxMain.dependencies {} // mingwMain.dependencies {} } diff --git a/basic-images/src/androidMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt b/basic-images/src/androidMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt index fc9fdba..3d7fac9 100644 --- a/basic-images/src/androidMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt +++ b/basic-images/src/androidMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt @@ -10,6 +10,7 @@ import java.io.File /** * Contains [load] functions for [BasicImage] that accepts both [BasicUrl] and [BasicPath] objects. */ +@OptIn(ExperimentalBasicImages::class) public actual object ImageLoader { /** @@ -23,9 +24,10 @@ public actual object ImageLoader { */ public actual suspend fun load(url: BasicUrl): ImageBitmap? { var bitmap: ImageBitmap? = null - return withContext(Dispatchers.IO){ + return withContext(Dispatchers.IO) { ImageClient(url.toString())?.let { bitmapByteArray -> - bitmap = BitmapFactory.decodeByteArray(bitmapByteArray, 0, bitmapByteArray.size).asImageBitmap() + bitmap = BitmapFactory.decodeByteArray(bitmapByteArray, 0, bitmapByteArray.size) + .asImageBitmap() } ?: { bitmap = null } @@ -44,9 +46,10 @@ public actual object ImageLoader { */ public actual suspend fun load(path: BasicPath): ImageBitmap? { var bitmap: ImageBitmap? - return withContext(Dispatchers.IO){ + return withContext(Dispatchers.IO) { val bitmapByteArray = File(path.toString()).readBytes() - bitmap = BitmapFactory.decodeByteArray(bitmapByteArray, 0, bitmapByteArray.size).asImageBitmap() + bitmap = BitmapFactory.decodeByteArray(bitmapByteArray, 0, bitmapByteArray.size) + .asImageBitmap() return@withContext bitmap } } diff --git a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicImage.kt b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicImage.kt index d245f08..35b0b35 100644 --- a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicImage.kt +++ b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicImage.kt @@ -51,6 +51,7 @@ import app.lexilabs.basic.images.ImageLoader.load * @param placeholderEnabled Boolean value to determine if the image should be preceded by a * circular progress indicator while loading. */ +@ExperimentalBasicImages @Composable public fun BasicImage( path: BasicPath, @@ -121,6 +122,7 @@ public fun BasicImage( * @param placeholderEnabled Boolean value to determine if the image should be preceded by a * circular progress indicator while loading. */ +@ExperimentalBasicImages @Composable public fun BasicImage( url: BasicUrl, @@ -163,6 +165,7 @@ public fun BasicImage( /** * A composable that displays while waiting on a [BasicImage] to load. */ +@ExperimentalBasicImages @Composable public fun BasicImagePlaceHolder( modifier: Modifier = Modifier, diff --git a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicPath.kt b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicPath.kt index e7274ab..955617d 100644 --- a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicPath.kt +++ b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicPath.kt @@ -10,6 +10,7 @@ package app.lexilabs.basic.images * println(path.toString()) * ``` */ +@ExperimentalBasicImages public class BasicPath(pathString: String) { private val path: String = pathString diff --git a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicUrl.kt b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicUrl.kt index fbabf8e..e314d06 100644 --- a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicUrl.kt +++ b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/BasicUrl.kt @@ -10,6 +10,7 @@ package app.lexilabs.basic.images * println(url.toString()) * ``` */ +@ExperimentalBasicImages public class BasicUrl(urlString: String) { private val url: String = urlString diff --git a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ExperimentalBasicImages.kt b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ExperimentalBasicImages.kt new file mode 100644 index 0000000..4d0a863 --- /dev/null +++ b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ExperimentalBasicImages.kt @@ -0,0 +1,9 @@ +package app.lexilabs.basic.images + +/** + * This API is not considered 'production' until reaching version 1.0.0 or higher + */ +@RequiresOptIn(message = "This API is experimental, unstable, and may change.") +@Retention(AnnotationRetention.BINARY) +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY) +public annotation class ExperimentalBasicImages() diff --git a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageClient.kt b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageClient.kt index 1f8709e..cfd13fa 100644 --- a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageClient.kt +++ b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageClient.kt @@ -17,6 +17,7 @@ import io.ktor.utils.io.core.readBytes * val image = ImageClient(urlString) // instantiate and request response from URL * ``` */ +@ExperimentalBasicImages public object ImageClient { private const val TAG = "ImageClient" diff --git a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt index 7ea405c..b5580ab 100644 --- a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt +++ b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt @@ -5,6 +5,7 @@ import androidx.compose.ui.graphics.ImageBitmap /** * Contains [load] functions for [BasicImage] that accepts both [BasicUrl] and [BasicPath] objects. */ +@ExperimentalBasicImages public expect object ImageLoader { /** * Downloads a PNG, JPEG, or WEBP file from an internet URL using a [BasicUrl] object, then provides the [ImageBitmap] file, if available. diff --git a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageState.kt b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageState.kt index 897d636..039c536 100644 --- a/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageState.kt +++ b/basic-images/src/commonMain/kotlin/app/lexilabs/basic/images/ImageState.kt @@ -9,6 +9,7 @@ package app.lexilabs.basic.images * @property ImageState.SHOWING The [BasicImage] is displaying the bitmap * @property ImageState.ERROR An error has occurred */ +@ExperimentalBasicImages public sealed class ImageState { /** diff --git a/basic-images/src/iosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt b/basic-images/src/iosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt index 8db2864..bd7520c 100644 --- a/basic-images/src/iosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt +++ b/basic-images/src/iosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt @@ -2,6 +2,7 @@ package app.lexilabs.basic.images import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.toComposeImageBitmap +import app.lexilabs.basic.images.ImageLoader.load import kotlinx.cinterop.BetaInteropApi import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.allocArrayOf @@ -35,7 +36,7 @@ import platform.UIKit.UIImage /** * Contains [load] functions for [BasicImage] that accepts both [BasicUrl] and [BasicPath] objects. */ -@OptIn(ExperimentalForeignApi::class, BetaInteropApi::class) +@OptIn(ExperimentalForeignApi::class, ExperimentalBasicImages::class) public actual object ImageLoader { /** @@ -49,7 +50,7 @@ public actual object ImageLoader { */ public actual suspend fun load(url: BasicUrl): ImageBitmap? { var bitmap: ImageBitmap? = null - return withContext(Dispatchers.IO){ + return withContext(Dispatchers.IO) { ImageClient(url.toString())?.let { bitmapByteArray -> bitmap = bitmapByteArray.toImageBitmap() } ?: { @@ -70,7 +71,7 @@ public actual object ImageLoader { */ public actual suspend fun load(path: BasicPath): ImageBitmap? { var bitmap: ImageBitmap? = null - return withContext(Dispatchers.IO){ + return withContext(Dispatchers.IO) { getFileAsImageBitmap(path.toString()) } } @@ -85,10 +86,13 @@ public actual object ImageLoader { return this@toImageBitmap.toNSData().toUIImage().toSkiaImage()?.toComposeImageBitmap() } + @OptIn(BetaInteropApi::class) private fun ByteArray.toNSData(): NSData { memScoped { - return NSData.create(bytes = allocArrayOf(this@toNSData), - length = this@toNSData.size.toULong()) + return NSData.create( + bytes = allocArrayOf(this@toNSData), + length = this@toNSData.size.toULong() + ) } } diff --git a/basic-images/src/jvmMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt b/basic-images/src/jvmMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt new file mode 100644 index 0000000..69adffc --- /dev/null +++ b/basic-images/src/jvmMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt @@ -0,0 +1,62 @@ +package app.lexilabs.basic.images + +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.toComposeImageBitmap +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import java.awt.image.BufferedImage +import java.io.ByteArrayInputStream +import java.io.File +import javax.imageio.ImageIO + +/** + * Contains [load] functions for [BasicImage] that accepts both [BasicUrl] and [BasicPath] objects. + */ +@OptIn(ExperimentalBasicImages::class) +public actual object ImageLoader { + + /** + * Downloads a PNG, JPEG, or WEBP file from an internet URL using a [BasicUrl] object, then provides the [ImageBitmap] file, if available. + * + * Example: + * ```kotlin + * val url = BasicUrl("https://picsum.photos/200") + * val bitmap = ImageLoader.load(url) + * ``` + */ + public actual suspend fun load(url: BasicUrl): ImageBitmap? { + var bitmap: ImageBitmap? = null + return withContext(Dispatchers.IO) { + ImageClient(url.toString())?.let { bitmapByteArray -> + bitmap = bitmapByteArray.toImageBitmap() + } ?: { + bitmap = null + } + return@withContext bitmap + } + } + + /** + * Opens a PNG, JPEG, or WEBP file from a local path using a [BasicPath] object, then provides the [ImageBitmap] file, if available. + * + * Example: + * ```kotlin + * val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg") + * val bitmap = ImageLoader.load(path) + * ``` + */ + public actual suspend fun load(path: BasicPath): ImageBitmap? { + return withContext(Dispatchers.IO) { + val bitmapByteArray = File(path.toString()).readBytes() + return@withContext bitmapByteArray.toImageBitmap() + } + } + + private fun ByteArray.toImageBitmap(): ImageBitmap { + // Convert ByteArray to BufferedImage + val inputStream = ByteArrayInputStream(this) + val bufferedImage: BufferedImage = ImageIO.read(inputStream) + // Convert BufferedImage to ImageBitmap + return bufferedImage.toComposeImageBitmap() + } +} \ No newline at end of file diff --git a/basic-images/src/macosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt b/basic-images/src/macosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt index 3c850e0..70a8668 100644 --- a/basic-images/src/macosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt +++ b/basic-images/src/macosMain/kotlin/app/lexilabs/basic/images/ImageLoader.kt @@ -34,7 +34,7 @@ import platform.Foundation.create /** * Contains [load] functions for [BasicImage] that accepts both [BasicUrl] and [BasicPath] objects. */ -@OptIn(ExperimentalForeignApi::class) +@OptIn(ExperimentalForeignApi::class, ExperimentalBasicImages::class) public actual object ImageLoader { /** @@ -48,7 +48,7 @@ public actual object ImageLoader { */ public actual suspend fun load(url: BasicUrl): ImageBitmap? { var bitmap: ImageBitmap? = null - return withContext(Dispatchers.IO){ + return withContext(Dispatchers.IO) { ImageClient(url.toString())?.let { bitmapByteArray -> bitmap = bitmapByteArray.toImageBitmap() } ?: { @@ -68,7 +68,7 @@ public actual object ImageLoader { * ``` */ public actual suspend fun load(path: BasicPath): ImageBitmap? { - return withContext(Dispatchers.IO){ + return withContext(Dispatchers.IO) { return@withContext getFileAsImageBitmap(filePath = path.toString()) } } @@ -86,8 +86,10 @@ public actual object ImageLoader { @OptIn(BetaInteropApi::class) private fun ByteArray.toNSData(): NSData { memScoped { - return NSData.create(bytes = allocArrayOf(this@toNSData), - length = this@toNSData.size.toULong()) + return NSData.create( + bytes = allocArrayOf(this@toNSData), + length = this@toNSData.size.toULong() + ) } } diff --git a/basic-sound/README.md b/basic-sound/README.md index c696845..831d5c6 100644 --- a/basic-sound/README.md +++ b/basic-sound/README.md @@ -4,7 +4,7 @@ [![Basic-Sound](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-sound?color=blue)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-sound) A Kotlin Multiplatform library to rapidly integrate audio across all your Kotlin Multiplatform apps. -Currently, this library only ingests URLs; objects and files on the local path are not yet supported. +Currently, this library only ingests URLs and local paths. Composable Resources are also possible, but may be finicky. ![badge-android](http://img.shields.io/badge/android-full_support-65c663.svg?style=flat) ![badge-ios](http://img.shields.io/badge/ios-full_support-65c663.svg?style=flat) @@ -13,13 +13,13 @@ Currently, this library only ingests URLs; objects and files on the local path a ![badge-tvos](http://img.shields.io/badge/tvos-full_support-65c663.svg?style=flat) ![badge-nodejs](https://img.shields.io/badge/jsNode-full_support-65c663.svg?style=flat) ![badge-jsBrowser](https://img.shields.io/badge/jsBrowser-full_support-65c663.svg?style=flat) -![badge-wasmJsBrowser](https://img.shields.io/badge/wasmJsBrowser-no_support-red.svg?style=flat) +![badge-wasmJsBrowser](https://img.shields.io/badge/wasmJsBrowser-full_support-65c663.svg?style=flat) ![badge-jvm](http://img.shields.io/badge/jvm-no_support-red.svg?style=flat) ![badge-linux](http://img.shields.io/badge/linux-no_support-red.svg?style=flat) ![badge-windows](http://img.shields.io/badge/windows-no_support-red.svg?style=flat) ## Supported Filetypes -| Format | Android | iOS | javascript | File / Container Types | +| Format | Android | iOS | javascript / wasm | File / Container Types | |:----------|:------------------:|:------------------:|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------| | AAC LC | :white_check_mark: | :white_check_mark: | :x: | 3GPP (.3gp) MPEG-4 (.mp4, .m4a) ADTS raw AAC (.aac, decode in Android 3.1+, encode in Android 4.0+, ADIF not supported) MPEG-TS (.ts, not seekable, Android 3.0+) | | AMR-NB | :white_check_mark: | :x: | :x: | 3GPP (.3gp) AMR (.amr) | diff --git a/basic-sound/build.gradle.kts b/basic-sound/build.gradle.kts index 07e3734..cef6fd1 100644 --- a/basic-sound/build.gradle.kts +++ b/basic-sound/build.gradle.kts @@ -1,4 +1,5 @@ import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget @@ -11,9 +12,6 @@ plugins { signing } -// THIS IS REQUIRED TO PREVENT the ":shared:testClasses" error -//task("testClasses") - kotlin { // FORCES CHECK OF PUBLIC API DECLARATIONS @@ -29,11 +27,12 @@ kotlin { } binaries.executable() } -// -// wasmJs { -// browser() -// binaries.executable() -// } + + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + browser() + binaries.executable() + } listOf( iosX64(), // mobile @@ -73,6 +72,7 @@ kotlin { commonMain.dependencies { implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.coroutines.test) + implementation(project(":basic-logging")) } androidMain.dependencies { @@ -81,10 +81,8 @@ kotlin { appleMain.dependencies { } -// jvmMain.dependencies { -// implementation(libs.kotlinx.coroutines.swing) -// } -// +// jvmMain.dependencies {} + jsMain.dependencies {} // // linuxMain.dependencies { diff --git a/basic-sound/src/wasmJsMain/kotlin/app/lexilabs/basic/sound/Audio.wasmJs.kt b/basic-sound/src/wasmJsMain/kotlin/app/lexilabs/basic/sound/Audio.wasmJs.kt new file mode 100644 index 0000000..bf2412f --- /dev/null +++ b/basic-sound/src/wasmJsMain/kotlin/app/lexilabs/basic/sound/Audio.wasmJs.kt @@ -0,0 +1,97 @@ +package app.lexilabs.basic.sound + +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import org.w3c.dom.Audio + +@OptIn(ExperimentalBasicSound::class) +public actual class Audio public actual constructor() : AudioBuilder { + + public actual var resource: String = "" + public actual var autoPlay: Boolean = false + + private val _audioState = MutableStateFlow(AudioState.NONE) + public actual override val audioState: StateFlow = _audioState.asStateFlow() + + private var player: Audio? = null + + public actual constructor(resource: String, autoPlay: Boolean) : this() { + this.resource = resource + this.autoPlay = autoPlay + load() + } + + actual override fun load() { + _audioState.value = AudioState.LOADING + try { + player = Audio(resource) + player?.oncanplaythrough?.let { _ -> + { + _audioState.value = AudioState.READY + if (autoPlay) { + play() + } + } + } + } catch (e: Exception) { + _audioState.value = AudioState.ERROR("load:failure:$e") + } + } + + actual override fun play() { + player?.let { + if (audioState.value !is AudioState.PLAYING) { + when (audioState.value) { + is AudioState.ERROR -> { + throw Exception("play:AudioState.ERROR: ${(audioState.value as AudioState.ERROR).message}") + } + is AudioState.LOADING -> { /** DO NOTHING **/} + is AudioState.NONE -> { + _audioState.value = + AudioState.ERROR("play:AudioState.NONE: mediaPlayer not initialized") + throw IllegalStateException("play:AudioState.NONE: mediaPlayer not initialized") + } + is AudioState.PAUSED -> { + it.play() + _audioState.value = AudioState.PLAYING + } + is AudioState.PLAYING -> { /** DO NOTHING **/ } + is AudioState.READY -> { + it.play() + _audioState.value = AudioState.PLAYING + } + } + } + } + } + + actual override fun pause() { + player?.let { + if (audioState.value is AudioState.PLAYING) { + it.pause() + _audioState.value = AudioState.PAUSED + } + } + } + + actual override fun stop() { + player?.let { + if (audioState.value is AudioState.PLAYING) { + it.pause() + it.currentTime = 0.0 + _audioState.value = AudioState.READY + } + } + } + + actual override fun release() { + _audioState.value = AudioState.NONE + player?.let { + it.pause() + it.src = "" + it.load() + } + player = null + } +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index c92abbb..b0d236a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ buildscript { allprojects { group = "app.lexilabs.basic" - version = "0.1.8" + version = "0.1.9" apply(plugin = "org.jetbrains.dokka") apply(plugin = "maven-publish") diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image-place-holder.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image-place-holder.html index d18ba27..9e1adda 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image-place-holder.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image-place-holder.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image.html index 07b70e4..6c19aa6 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-image.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/-basic-path.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/-basic-path.html index 53d8ff7..7575b07 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/-basic-path.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/-basic-path.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/index.html index 9e39aea..52f8518 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/to-string.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/to-string.html index 5a5fa63..1eed45f 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/to-string.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-path/to-string.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/-basic-url.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/-basic-url.html index b48b9db..86f9ae9 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/-basic-url.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/-basic-url.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/index.html index a4d6e7b..a40209f 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/to-string.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/to-string.html index 6b7d09f..96bc6e3 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/to-string.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-basic-url/to-string.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-experimental-basic-images/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-experimental-basic-images/index.html new file mode 100644 index 0000000..1f48611 --- /dev/null +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-experimental-basic-images/index.html @@ -0,0 +1,84 @@ + + + + + ExperimentalBasicImages + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

ExperimentalBasicImages

+

This API is not considered 'production' until reaching version 1.0.0 or higher

+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/index.html index 0e3b918..52d05f1 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/invoke.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/invoke.html index ff90252..31e8f05 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/invoke.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-client/invoke.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/index.html index fb3fa18..3ea6b91 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/index.html @@ -45,12 +45,13 @@
-0.1.8
+0.1.9
+
@@ -64,32 +65,32 @@
-
+

ImageLoader

-
-
actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

expect object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

+
+
actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

expect object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

Functions

-
-
+
+
- +
Link copied to clipboard
-
-
actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

expect suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

expect suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

+
+
actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

expect suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

expect suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/load.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/load.html index 1de0c13..7952eae 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/load.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-loader/load.html @@ -45,12 +45,13 @@
-0.1.8
+0.1.9
+
@@ -64,14 +65,14 @@
-
+

load

-
-
actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
expect suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

expect suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
+
+
actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
expect suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

expect suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
actual suspend fun load(url: BasicUrl): ImageBitmap?

Downloads a PNG, JPEG, or WEBP file from an internet URL using a BasicUrl object, then provides the ImageBitmap file, if available.

Example:

val url = BasicUrl("https://picsum.photos/200")
val bitmap = ImageLoader.load(url)

actual suspend fun load(path: BasicPath): ImageBitmap?

Opens a PNG, JPEG, or WEBP file from a local path using a BasicPath object, then provides the ImageBitmap file, if available.

Example:

val path = BasicPath("appLocalDirectory/cacheDirectory/images/exampleImage.jpeg")
val bitmap = ImageLoader.load(path)
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/index.html index cf7ea13..0fcc3f0 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/message.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/message.html index 595fd82..d48ced7 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/message.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/message.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-l-o-a-d-i-n-g/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-l-o-a-d-i-n-g/index.html index 59d2278..559c147 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-l-o-a-d-i-n-g/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-l-o-a-d-i-n-g/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-n-o-n-e/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-n-o-n-e/index.html index 4ec9a18..9b3acb6 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-n-o-n-e/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-n-o-n-e/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-s-h-o-w-i-n-g/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-s-h-o-w-i-n-g/index.html index f362953..7ed893e 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-s-h-o-w-i-n-g/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/-s-h-o-w-i-n-g/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/index.html index d2858a1..e4945bf 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/-image-state/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-images/basic-images/app.lexilabs.basic.images/index.html b/docs/basic-images/basic-images/app.lexilabs.basic.images/index.html index 32fd067..3a3d4fc 100644 --- a/docs/basic-images/basic-images/app.lexilabs.basic.images/index.html +++ b/docs/basic-images/basic-images/app.lexilabs.basic.images/index.html @@ -45,12 +45,13 @@
-0.1.8
+0.1.9
+
@@ -64,7 +65,7 @@
-
+

Package-level declarations

@@ -104,6 +105,21 @@

Types

+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

This API is not considered 'production' until reaching version 1.0.0 or higher

+
+
+
+
@@ -119,19 +135,19 @@

Types

- -
+ +
- +
Link copied to clipboard
-
-
actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

expect object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

+
+
actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

expect object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

actual object ImageLoader

Contains load functions for BasicImage that accepts both BasicUrl and BasicPath objects.

diff --git a/docs/basic-images/basic-images/package-list b/docs/basic-images/basic-images/package-list index 5dc5bee..8ec7c90 100644 --- a/docs/basic-images/basic-images/package-list +++ b/docs/basic-images/basic-images/package-list @@ -10,6 +10,7 @@ $dokka.location:app.lexilabs.basic.images/BasicPath/toString/#/PointingToDeclara $dokka.location:app.lexilabs.basic.images/BasicUrl///PointingToDeclaration/basic-images/app.lexilabs.basic.images/-basic-url/index.html $dokka.location:app.lexilabs.basic.images/BasicUrl/BasicUrl/#kotlin.String/PointingToDeclaration/basic-images/app.lexilabs.basic.images/-basic-url/-basic-url.html $dokka.location:app.lexilabs.basic.images/BasicUrl/toString/#/PointingToDeclaration/basic-images/app.lexilabs.basic.images/-basic-url/to-string.html +$dokka.location:app.lexilabs.basic.images/ExperimentalBasicImages///PointingToDeclaration/basic-images/app.lexilabs.basic.images/-experimental-basic-images/index.html $dokka.location:app.lexilabs.basic.images/ImageClient///PointingToDeclaration/basic-images/app.lexilabs.basic.images/-image-client/index.html $dokka.location:app.lexilabs.basic.images/ImageClient/invoke/#kotlin.String/PointingToDeclaration/basic-images/app.lexilabs.basic.images/-image-client/invoke.html $dokka.location:app.lexilabs.basic.images/ImageLoader///PointingToDeclaration/basic-images/app.lexilabs.basic.images/-image-loader/index.html diff --git a/docs/basic-images/index.html b/docs/basic-images/index.html index 7ab9825..c48e86a 100644 --- a/docs/basic-images/index.html +++ b/docs/basic-images/index.html @@ -45,12 +45,13 @@
-0.1.8
+0.1.9
+
@@ -64,19 +65,19 @@
-
+

basic-images

Packages

-
-
+
+
- +
Link copied to clipboard
@@ -84,6 +85,7 @@

Packages

common
ios
+
macos
diff --git a/docs/basic-images/navigation.html b/docs/basic-images/navigation.html index cdcf2ea..3a77b2d 100644 --- a/docs/basic-images/navigation.html +++ b/docs/basic-images/navigation.html @@ -1,6 +1,6 @@ -
+
-
+
@@ -14,24 +14,27 @@ -
+ + -
+ -
- -
+
+ + -
+ -
+ - diff --git a/docs/basic-images/scripts/pages.json b/docs/basic-images/scripts/pages.json index b874317..65d7b27 100644 --- a/docs/basic-images/scripts/pages.json +++ b/docs/basic-images/scripts/pages.json @@ -1 +1 @@ -[{"name":"class BasicPath(pathString: String)","description":"app.lexilabs.basic.images.BasicPath","location":"basic-images/app.lexilabs.basic.images/-basic-path/index.html","searchKeys":["BasicPath","class BasicPath(pathString: String)","app.lexilabs.basic.images.BasicPath"]},{"name":"class BasicUrl(urlString: String)","description":"app.lexilabs.basic.images.BasicUrl","location":"basic-images/app.lexilabs.basic.images/-basic-url/index.html","searchKeys":["BasicUrl","class BasicUrl(urlString: String)","app.lexilabs.basic.images.BasicUrl"]},{"name":"constructor(message: String)","description":"app.lexilabs.basic.images.ImageState.ERROR.ERROR","location":"basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/-e-r-r-o-r.html","searchKeys":["ERROR","constructor(message: String)","app.lexilabs.basic.images.ImageState.ERROR.ERROR"]},{"name":"constructor(pathString: String)","description":"app.lexilabs.basic.images.BasicPath.BasicPath","location":"basic-images/app.lexilabs.basic.images/-basic-path/-basic-path.html","searchKeys":["BasicPath","constructor(pathString: String)","app.lexilabs.basic.images.BasicPath.BasicPath"]},{"name":"constructor(urlString: String)","description":"app.lexilabs.basic.images.BasicUrl.BasicUrl","location":"basic-images/app.lexilabs.basic.images/-basic-url/-basic-url.html","searchKeys":["BasicUrl","constructor(urlString: String)","app.lexilabs.basic.images.BasicUrl.BasicUrl"]},{"name":"data class ERROR(val message: String) : ImageState","description":"app.lexilabs.basic.images.ImageState.ERROR","location":"basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/index.html","searchKeys":["ERROR","data class ERROR(val message: String) : ImageState","app.lexilabs.basic.images.ImageState.ERROR"]},{"name":"data object LOADING : ImageState","description":"app.lexilabs.basic.images.ImageState.LOADING","location":"basic-images/app.lexilabs.basic.images/-image-state/-l-o-a-d-i-n-g/index.html","searchKeys":["LOADING","data object LOADING : ImageState","app.lexilabs.basic.images.ImageState.LOADING"]},{"name":"data object NONE : ImageState","description":"app.lexilabs.basic.images.ImageState.NONE","location":"basic-images/app.lexilabs.basic.images/-image-state/-n-o-n-e/index.html","searchKeys":["NONE","data object NONE : ImageState","app.lexilabs.basic.images.ImageState.NONE"]},{"name":"data object SHOWING : ImageState","description":"app.lexilabs.basic.images.ImageState.SHOWING","location":"basic-images/app.lexilabs.basic.images/-image-state/-s-h-o-w-i-n-g/index.html","searchKeys":["SHOWING","data object SHOWING : ImageState","app.lexilabs.basic.images.ImageState.SHOWING"]},{"name":"expect object ImageLoader","description":"app.lexilabs.basic.images.ImageLoader","location":"basic-images/app.lexilabs.basic.images/-image-loader/index.html","searchKeys":["ImageLoader","expect object ImageLoader","app.lexilabs.basic.images.ImageLoader"]},{"name":"expect suspend fun load(path: BasicPath): ImageBitmap?","description":"app.lexilabs.basic.images.ImageLoader.load","location":"basic-images/app.lexilabs.basic.images/-image-loader/load.html","searchKeys":["load","expect suspend fun load(path: BasicPath): ImageBitmap?","app.lexilabs.basic.images.ImageLoader.load"]},{"name":"expect suspend fun load(url: BasicUrl): ImageBitmap?","description":"app.lexilabs.basic.images.ImageLoader.load","location":"basic-images/app.lexilabs.basic.images/-image-loader/load.html","searchKeys":["load","expect suspend fun load(url: BasicUrl): ImageBitmap?","app.lexilabs.basic.images.ImageLoader.load"]},{"name":"fun BasicImage(path: BasicPath, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","description":"app.lexilabs.basic.images.BasicImage","location":"basic-images/app.lexilabs.basic.images/-basic-image.html","searchKeys":["BasicImage","fun BasicImage(path: BasicPath, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","app.lexilabs.basic.images.BasicImage"]},{"name":"fun BasicImage(url: BasicUrl, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","description":"app.lexilabs.basic.images.BasicImage","location":"basic-images/app.lexilabs.basic.images/-basic-image.html","searchKeys":["BasicImage","fun BasicImage(url: BasicUrl, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","app.lexilabs.basic.images.BasicImage"]},{"name":"fun BasicImagePlaceHolder(modifier: Modifier = Modifier)","description":"app.lexilabs.basic.images.BasicImagePlaceHolder","location":"basic-images/app.lexilabs.basic.images/-basic-image-place-holder.html","searchKeys":["BasicImagePlaceHolder","fun BasicImagePlaceHolder(modifier: Modifier = Modifier)","app.lexilabs.basic.images.BasicImagePlaceHolder"]},{"name":"object ImageClient","description":"app.lexilabs.basic.images.ImageClient","location":"basic-images/app.lexilabs.basic.images/-image-client/index.html","searchKeys":["ImageClient","object ImageClient","app.lexilabs.basic.images.ImageClient"]},{"name":"open override fun toString(): String","description":"app.lexilabs.basic.images.BasicPath.toString","location":"basic-images/app.lexilabs.basic.images/-basic-path/to-string.html","searchKeys":["toString","open override fun toString(): String","app.lexilabs.basic.images.BasicPath.toString"]},{"name":"open override fun toString(): String","description":"app.lexilabs.basic.images.BasicUrl.toString","location":"basic-images/app.lexilabs.basic.images/-basic-url/to-string.html","searchKeys":["toString","open override fun toString(): String","app.lexilabs.basic.images.BasicUrl.toString"]},{"name":"sealed class ImageState","description":"app.lexilabs.basic.images.ImageState","location":"basic-images/app.lexilabs.basic.images/-image-state/index.html","searchKeys":["ImageState","sealed class ImageState","app.lexilabs.basic.images.ImageState"]},{"name":"suspend operator fun invoke(urlString: String): ByteArray?","description":"app.lexilabs.basic.images.ImageClient.invoke","location":"basic-images/app.lexilabs.basic.images/-image-client/invoke.html","searchKeys":["invoke","suspend operator fun invoke(urlString: String): ByteArray?","app.lexilabs.basic.images.ImageClient.invoke"]},{"name":"val message: String","description":"app.lexilabs.basic.images.ImageState.ERROR.message","location":"basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/message.html","searchKeys":["message","val message: String","app.lexilabs.basic.images.ImageState.ERROR.message"]}] +[{"name":"annotation class ExperimentalBasicImages","description":"app.lexilabs.basic.images.ExperimentalBasicImages","location":"basic-images/app.lexilabs.basic.images/-experimental-basic-images/index.html","searchKeys":["ExperimentalBasicImages","annotation class ExperimentalBasicImages","app.lexilabs.basic.images.ExperimentalBasicImages"]},{"name":"class BasicPath(pathString: String)","description":"app.lexilabs.basic.images.BasicPath","location":"basic-images/app.lexilabs.basic.images/-basic-path/index.html","searchKeys":["BasicPath","class BasicPath(pathString: String)","app.lexilabs.basic.images.BasicPath"]},{"name":"class BasicUrl(urlString: String)","description":"app.lexilabs.basic.images.BasicUrl","location":"basic-images/app.lexilabs.basic.images/-basic-url/index.html","searchKeys":["BasicUrl","class BasicUrl(urlString: String)","app.lexilabs.basic.images.BasicUrl"]},{"name":"constructor(message: String)","description":"app.lexilabs.basic.images.ImageState.ERROR.ERROR","location":"basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/-e-r-r-o-r.html","searchKeys":["ERROR","constructor(message: String)","app.lexilabs.basic.images.ImageState.ERROR.ERROR"]},{"name":"constructor(pathString: String)","description":"app.lexilabs.basic.images.BasicPath.BasicPath","location":"basic-images/app.lexilabs.basic.images/-basic-path/-basic-path.html","searchKeys":["BasicPath","constructor(pathString: String)","app.lexilabs.basic.images.BasicPath.BasicPath"]},{"name":"constructor(urlString: String)","description":"app.lexilabs.basic.images.BasicUrl.BasicUrl","location":"basic-images/app.lexilabs.basic.images/-basic-url/-basic-url.html","searchKeys":["BasicUrl","constructor(urlString: String)","app.lexilabs.basic.images.BasicUrl.BasicUrl"]},{"name":"data class ERROR(val message: String) : ImageState","description":"app.lexilabs.basic.images.ImageState.ERROR","location":"basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/index.html","searchKeys":["ERROR","data class ERROR(val message: String) : ImageState","app.lexilabs.basic.images.ImageState.ERROR"]},{"name":"data object LOADING : ImageState","description":"app.lexilabs.basic.images.ImageState.LOADING","location":"basic-images/app.lexilabs.basic.images/-image-state/-l-o-a-d-i-n-g/index.html","searchKeys":["LOADING","data object LOADING : ImageState","app.lexilabs.basic.images.ImageState.LOADING"]},{"name":"data object NONE : ImageState","description":"app.lexilabs.basic.images.ImageState.NONE","location":"basic-images/app.lexilabs.basic.images/-image-state/-n-o-n-e/index.html","searchKeys":["NONE","data object NONE : ImageState","app.lexilabs.basic.images.ImageState.NONE"]},{"name":"data object SHOWING : ImageState","description":"app.lexilabs.basic.images.ImageState.SHOWING","location":"basic-images/app.lexilabs.basic.images/-image-state/-s-h-o-w-i-n-g/index.html","searchKeys":["SHOWING","data object SHOWING : ImageState","app.lexilabs.basic.images.ImageState.SHOWING"]},{"name":"expect object ImageLoader","description":"app.lexilabs.basic.images.ImageLoader","location":"basic-images/app.lexilabs.basic.images/-image-loader/index.html","searchKeys":["ImageLoader","expect object ImageLoader","app.lexilabs.basic.images.ImageLoader"]},{"name":"expect suspend fun load(path: BasicPath): ImageBitmap?","description":"app.lexilabs.basic.images.ImageLoader.load","location":"basic-images/app.lexilabs.basic.images/-image-loader/load.html","searchKeys":["load","expect suspend fun load(path: BasicPath): ImageBitmap?","app.lexilabs.basic.images.ImageLoader.load"]},{"name":"expect suspend fun load(url: BasicUrl): ImageBitmap?","description":"app.lexilabs.basic.images.ImageLoader.load","location":"basic-images/app.lexilabs.basic.images/-image-loader/load.html","searchKeys":["load","expect suspend fun load(url: BasicUrl): ImageBitmap?","app.lexilabs.basic.images.ImageLoader.load"]},{"name":"fun BasicImage(path: BasicPath, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","description":"app.lexilabs.basic.images.BasicImage","location":"basic-images/app.lexilabs.basic.images/-basic-image.html","searchKeys":["BasicImage","fun BasicImage(path: BasicPath, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","app.lexilabs.basic.images.BasicImage"]},{"name":"fun BasicImage(url: BasicUrl, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","description":"app.lexilabs.basic.images.BasicImage","location":"basic-images/app.lexilabs.basic.images/-basic-image.html","searchKeys":["BasicImage","fun BasicImage(url: BasicUrl, contentDescription: String? = null, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DefaultFilterQuality, placeholderEnabled: Boolean = true)","app.lexilabs.basic.images.BasicImage"]},{"name":"fun BasicImagePlaceHolder(modifier: Modifier = Modifier)","description":"app.lexilabs.basic.images.BasicImagePlaceHolder","location":"basic-images/app.lexilabs.basic.images/-basic-image-place-holder.html","searchKeys":["BasicImagePlaceHolder","fun BasicImagePlaceHolder(modifier: Modifier = Modifier)","app.lexilabs.basic.images.BasicImagePlaceHolder"]},{"name":"object ImageClient","description":"app.lexilabs.basic.images.ImageClient","location":"basic-images/app.lexilabs.basic.images/-image-client/index.html","searchKeys":["ImageClient","object ImageClient","app.lexilabs.basic.images.ImageClient"]},{"name":"open override fun toString(): String","description":"app.lexilabs.basic.images.BasicPath.toString","location":"basic-images/app.lexilabs.basic.images/-basic-path/to-string.html","searchKeys":["toString","open override fun toString(): String","app.lexilabs.basic.images.BasicPath.toString"]},{"name":"open override fun toString(): String","description":"app.lexilabs.basic.images.BasicUrl.toString","location":"basic-images/app.lexilabs.basic.images/-basic-url/to-string.html","searchKeys":["toString","open override fun toString(): String","app.lexilabs.basic.images.BasicUrl.toString"]},{"name":"sealed class ImageState","description":"app.lexilabs.basic.images.ImageState","location":"basic-images/app.lexilabs.basic.images/-image-state/index.html","searchKeys":["ImageState","sealed class ImageState","app.lexilabs.basic.images.ImageState"]},{"name":"suspend operator fun invoke(urlString: String): ByteArray?","description":"app.lexilabs.basic.images.ImageClient.invoke","location":"basic-images/app.lexilabs.basic.images/-image-client/invoke.html","searchKeys":["invoke","suspend operator fun invoke(urlString: String): ByteArray?","app.lexilabs.basic.images.ImageClient.invoke"]},{"name":"val message: String","description":"app.lexilabs.basic.images.ImageState.ERROR.message","location":"basic-images/app.lexilabs.basic.images/-image-state/-e-r-r-o-r/message.html","searchKeys":["message","val message: String","app.lexilabs.basic.images.ImageState.ERROR.message"]}] diff --git a/docs/basic-images/scripts/sourceset_dependencies.js b/docs/basic-images/scripts/sourceset_dependencies.js index dadf7c1..44e03d6 100644 --- a/docs/basic-images/scripts/sourceset_dependencies.js +++ b/docs/basic-images/scripts/sourceset_dependencies.js @@ -1 +1 @@ -sourceset_dependencies='{":basic-images:dokkaHtml/androidDebug":[":basic-images:dokkaHtml/commonMain"],":basic-images:dokkaHtml/androidMain":[":basic-images:dokkaHtml/commonMain"],":basic-images:dokkaHtml/androidRelease":[":basic-images:dokkaHtml/commonMain"],":basic-images:dokkaHtml/appleMain":[":basic-images:dokkaHtml/nativeMain"],":basic-images:dokkaHtml/commonMain":[],":basic-images:dokkaHtml/iosArm64Main":[":basic-images:dokkaHtml/iosMain"],":basic-images:dokkaHtml/iosMain":[":basic-images:dokkaHtml/appleMain"],":basic-images:dokkaHtml/iosSimulatorArm64Main":[":basic-images:dokkaHtml/iosMain"],":basic-images:dokkaHtml/iosX64Main":[":basic-images:dokkaHtml/iosMain"],":basic-images:dokkaHtml/macosArm64Main":[":basic-images:dokkaHtml/macosMain"],":basic-images:dokkaHtml/macosMain":[":basic-images:dokkaHtml/appleMain"],":basic-images:dokkaHtml/macosX64Main":[":basic-images:dokkaHtml/macosMain"],":basic-images:dokkaHtml/nativeMain":[":basic-images:dokkaHtml/commonMain"]}' +sourceset_dependencies='{":basic-images:dokkaHtml/androidDebug":[":basic-images:dokkaHtml/commonMain"],":basic-images:dokkaHtml/androidMain":[":basic-images:dokkaHtml/commonMain"],":basic-images:dokkaHtml/androidRelease":[":basic-images:dokkaHtml/commonMain"],":basic-images:dokkaHtml/appleMain":[":basic-images:dokkaHtml/nativeMain"],":basic-images:dokkaHtml/commonMain":[],":basic-images:dokkaHtml/iosArm64Main":[":basic-images:dokkaHtml/iosMain"],":basic-images:dokkaHtml/iosMain":[":basic-images:dokkaHtml/appleMain"],":basic-images:dokkaHtml/iosSimulatorArm64Main":[":basic-images:dokkaHtml/iosMain"],":basic-images:dokkaHtml/iosX64Main":[":basic-images:dokkaHtml/iosMain"],":basic-images:dokkaHtml/jvmMain":[":basic-images:dokkaHtml/commonMain"],":basic-images:dokkaHtml/macosArm64Main":[":basic-images:dokkaHtml/macosMain"],":basic-images:dokkaHtml/macosMain":[":basic-images:dokkaHtml/appleMain"],":basic-images:dokkaHtml/macosX64Main":[":basic-images:dokkaHtml/macosMain"],":basic-images:dokkaHtml/nativeMain":[":basic-images:dokkaHtml/commonMain"]}' diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/d.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/d.html index d56a6de..75ee4de 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/d.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/d.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/e.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/e.html index bd3a823..fbbff70 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/e.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/e.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/i.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/i.html index 765f2e4..7c7e58c 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/i.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/i.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/index.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/index.html index 6288722..768708e 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/index.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/v.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/v.html index 9dfbb87..d7afab5 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/v.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/v.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/w.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/w.html index 852cfbf..93fb9b9 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/w.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/w.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/wtf.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/wtf.html index dccdaca..3c5b2c0 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/wtf.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-log/wtf.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/d.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/d.html index 2ead485..b91c85f 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/d.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/d.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/e.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/e.html index 51d6360..cec5e22 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/e.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/e.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/i.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/i.html index 95d65fe..47a4fd4 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/i.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/i.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/index.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/index.html index ad7c257..a395d62 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/index.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/v.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/v.html index 05ce55b..0087f66 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/v.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/v.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/w.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/w.html index 5210418..c64017d 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/w.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/w.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/wtf.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/wtf.html index b38579b..22191fa 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/wtf.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/-logger/wtf.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/index.html b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/index.html index 7c93483..f65c6c0 100644 --- a/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/index.html +++ b/docs/basic-logging/basic-logging/app.lexilabs.basic.logging/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-logging/index.html b/docs/basic-logging/index.html index fcc4994..79b3f9e 100644 --- a/docs/basic-logging/index.html +++ b/docs/basic-logging/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/audio-state.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/audio-state.html index 6855987..270ec7b 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/audio-state.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/audio-state.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/index.html index d0376d0..6c827d0 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/load.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/load.html index 3dd467a..af1a43b 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/load.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/load.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/pause.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/pause.html index a6a7e13..5e9b2c0 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/pause.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/pause.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/play.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/play.html index 8839ddc..824a4f3 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/play.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/play.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/release.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/release.html index 2068b78..a5c56e7 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/release.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/release.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/stop.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/stop.html index ad5e749..649f7e9 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/stop.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-builder/stop.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/-e-r-r-o-r.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/-e-r-r-o-r.html index 3cc51ac..303d4df 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/-e-r-r-o-r.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/-e-r-r-o-r.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/index.html index 97de4e1..98dd41c 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/message.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/message.html index a39780a..e1555a8 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/message.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-e-r-r-o-r/message.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-l-o-a-d-i-n-g/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-l-o-a-d-i-n-g/index.html index f2cf745..79fb718 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-l-o-a-d-i-n-g/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-l-o-a-d-i-n-g/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-n-o-n-e/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-n-o-n-e/index.html index 9726d07..8424c2c 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-n-o-n-e/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-n-o-n-e/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-a-u-s-e-d/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-a-u-s-e-d/index.html index b6b361f..4105971 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-a-u-s-e-d/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-a-u-s-e-d/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-l-a-y-i-n-g/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-l-a-y-i-n-g/index.html index a4f4705..d61f0b3 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-l-a-y-i-n-g/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-p-l-a-y-i-n-g/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-r-e-a-d-y/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-r-e-a-d-y/index.html index dd0fe58..654f524 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-r-e-a-d-y/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/-r-e-a-d-y/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/index.html index 64d59f3..43fab5b 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio-state/index.html @@ -45,7 +45,7 @@
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/-audio.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/-audio.html index 020f37e..ec59cc2 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/-audio.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/-audio.html @@ -45,11 +45,12 @@
-0.1.8
+0.1.9
+
-
+

Audio

-
-
expect constructor(resource: String, autoPlay: Boolean)

Play audio from a url or path (String).

Parameters

resource

provides the link to the audio file online

autoPlay

play after AudioState.READY is reached

Example:

val audioUrl = "https://dare.wisc.edu/wp-content/uploads/sites/1051/2008/11/MS072.mp3"
val audio = Audio(audioUrl, true) // AutoPlay is marked "true"

expect constructor()
actual constructor(resource: String, autoPlay: Boolean)
actual constructor()
+
+
expect constructor(resource: String, autoPlay: Boolean)

Play audio from a url or path (String).

Parameters

resource

provides the link to the audio file online

autoPlay

play after AudioState.READY is reached

Example:

val audioUrl = "https://dare.wisc.edu/wp-content/uploads/sites/1051/2008/11/MS072.mp3"
val audio = Audio(audioUrl, true) // AutoPlay is marked "true"

expect constructor()
actual constructor(resource: String, autoPlay: Boolean)
actual constructor()
actual constructor(resource: String, autoPlay: Boolean)
actual constructor()
-0.1.8
+0.1.9
+
-
+

audioState

-
-
expect val audioState: StateFlow<AudioState>

Provides the state of Audio after initialization

actual open override val audioState: StateFlow<AudioState>

common sealed class that provides the state of Audio after initialization

+
+
expect val audioState: StateFlow<AudioState>

Provides the state of Audio after initialization

actual open override val audioState: StateFlow<AudioState>

common sealed class that provides the state of Audio after initialization

actual open override val audioState: StateFlow<AudioState>

common sealed class that provides the state of Audio after initialization

-0.1.8
+0.1.9
+
-
+

autoPlay

-
-
expect var autoPlay: Boolean

If true, Audio runs play immediately after reaching AudioState.READY

Example:

autoPlay = true // AutoPlay defaults to "false"
actual var autoPlay: Boolean
+
+
expect var autoPlay: Boolean

If true, Audio runs play immediately after reaching AudioState.READY

Example:

autoPlay = true // AutoPlay defaults to "false"
actual var autoPlay: Boolean
actual var autoPlay: Boolean
-0.1.8
+0.1.9
+
-
+

Audio

-
-
expect class Audio

Play audio from a url (String).

Example:

val audioUrl = "https://dare.wisc.edu/wp-content/uploads/sites/1051/2008/11/MS072.mp3"
val audio = Audio(audioUrl, true) // AutoPlay is marked "true"
actual class Audio : AudioBuilder
+
+
expect class Audio

Play audio from a url (String).

Example:

val audioUrl = "https://dare.wisc.edu/wp-content/uploads/sites/1051/2008/11/MS072.mp3"
val audio = Audio(audioUrl, true) // AutoPlay is marked "true"
actual class Audio : AudioBuilder
actual class Audio : AudioBuilder

Constructors

-
-
+
+
- +
Link copied to clipboard
-
-
expect constructor(resource: String, autoPlay: Boolean)

Play audio from a url or path (String).

expect constructor()
actual constructor(resource: String, autoPlay: Boolean)
actual constructor()
+
+
expect constructor(resource: String, autoPlay: Boolean)

Play audio from a url or path (String).

expect constructor()
actual constructor(resource: String, autoPlay: Boolean)
actual constructor()
actual constructor(resource: String, autoPlay: Boolean)
actual constructor()
@@ -96,53 +97,53 @@

Constructors

Properties

-
-
+
+
- +
Link copied to clipboard
-
-
expect val audioState: StateFlow<AudioState>

Provides the state of Audio after initialization

actual open override val audioState: StateFlow<AudioState>

common sealed class that provides the state of Audio after initialization

+
+
expect val audioState: StateFlow<AudioState>

Provides the state of Audio after initialization

actual open override val audioState: StateFlow<AudioState>

common sealed class that provides the state of Audio after initialization

actual open override val audioState: StateFlow<AudioState>

common sealed class that provides the state of Audio after initialization

- -
+ +
- +
Link copied to clipboard
-
-
expect var autoPlay: Boolean

If true, Audio runs play immediately after reaching AudioState.READY

actual var autoPlay: Boolean
+
+
expect var autoPlay: Boolean

If true, Audio runs play immediately after reaching AudioState.READY

actual var autoPlay: Boolean
actual var autoPlay: Boolean
- -
+ +
- +
Link copied to clipboard
-
-
expect var resource: String

A url link as a string:

actual var resource: String
+
+
expect var resource: String

A url link as a string:

actual var resource: String
actual var resource: String
@@ -151,87 +152,87 @@

Properties

Functions

-
-
+
+
- +
Link copied to clipboard
-
-
expect fun load()

Used to load an Audio file when AudioState.NONE.

actual open override fun load()

When overridden, used to load an Audio file when AudioState.NONE.

+
+
expect fun load()

Used to load an Audio file when AudioState.NONE.

actual open override fun load()

When overridden, used to load an Audio file when AudioState.NONE.

actual open override fun load()

When overridden, used to load an Audio file when AudioState.NONE.

- -
+ +
- +
Link copied to clipboard
-
-
expect fun pause()

Used when Audio is AudioState.PLAYING to pause the sound to be continued later.

actual open override fun pause()

When overridden, used when Audio is AudioState.PLAYING to pause the sound to be continued later.

+
+
expect fun pause()

Used when Audio is AudioState.PLAYING to pause the sound to be continued later.

actual open override fun pause()

When overridden, used when Audio is AudioState.PLAYING to pause the sound to be continued later.

actual open override fun pause()

When overridden, used when Audio is AudioState.PLAYING to pause the sound to be continued later.

- -
+ +
- +
Link copied to clipboard
-
-
expect fun play()

Used after Audio is initialized with AudioState.READY to play the sound immediately.

actual open override fun play()

When overridden, used after Audio is initialized with AudioState.READY to play the sound immediately.

+
+
expect fun play()

Used after Audio is initialized with AudioState.READY to play the sound immediately.

actual open override fun play()

When overridden, used after Audio is initialized with AudioState.READY to play the sound immediately.

actual open override fun play()

When overridden, used after Audio is initialized with AudioState.READY to play the sound immediately.

- -
+ +
- +
Link copied to clipboard
-
-
expect fun release()

Used when done to clear the Audio object from memory.

actual open override fun release()

When overridden, used when done to clear the Audio object from memory.

+
+
expect fun release()

Used when done to clear the Audio object from memory.

actual open override fun release()

When overridden, used when done to clear the Audio object from memory.

actual open override fun release()

When overridden, used when done to clear the Audio object from memory.

- -
+ +
- +
Link copied to clipboard
-
-
expect fun stop()

Used to reset the Audio without reloading from the sound file.

actual open override fun stop()

When overridden, used to reset the Audio without reloading from the sound file.

+
+
expect fun stop()

Used to reset the Audio without reloading from the sound file.

actual open override fun stop()

When overridden, used to reset the Audio without reloading from the sound file.

actual open override fun stop()

When overridden, used to reset the Audio without reloading from the sound file.

diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/load.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/load.html index 4b3fa55..eb35d74 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/load.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/-audio/load.html @@ -45,11 +45,12 @@
-0.1.8
+0.1.9
+
-
+

load

-
-
expect fun load()

Used to load an Audio file when AudioState.NONE.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
actual open override fun load()

When overridden, used to load an Audio file when AudioState.NONE.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
+
+
expect fun load()

Used to load an Audio file when AudioState.NONE.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
actual open override fun load()

When overridden, used to load an Audio file when AudioState.NONE.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
actual open override fun load()

When overridden, used to load an Audio file when AudioState.NONE.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
-0.1.8
+0.1.9
+
-
+

pause

-
-
expect fun pause()

Used when Audio is AudioState.PLAYING to pause the sound to be continued later.

Sets the audioState to AudioState.PAUSED

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.pause() // paused until play is called again
// more code
audio.play() // sound resumes
actual open override fun pause()

When overridden, used when Audio is AudioState.PLAYING to pause the sound to be continued later.

Sets the audioState to AudioState.PAUSED

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.pause() // paused until play is called again
// more code
audio.play() // sound resumes
+
+
expect fun pause()

Used when Audio is AudioState.PLAYING to pause the sound to be continued later.

Sets the audioState to AudioState.PAUSED

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.pause() // paused until play is called again
// more code
audio.play() // sound resumes
actual open override fun pause()

When overridden, used when Audio is AudioState.PLAYING to pause the sound to be continued later.

Sets the audioState to AudioState.PAUSED

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.pause() // paused until play is called again
// more code
audio.play() // sound resumes
actual open override fun pause()

When overridden, used when Audio is AudioState.PLAYING to pause the sound to be continued later.

Sets the audioState to AudioState.PAUSED

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.pause() // paused until play is called again
// more code
audio.play() // sound resumes
-0.1.8
+0.1.9
+
-
+

play

-
-
expect fun play()

Used after Audio is initialized with AudioState.READY to play the sound immediately.

Sets the audioState to AudioState.PLAYING

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
actual open override fun play()

When overridden, used after Audio is initialized with AudioState.READY to play the sound immediately.

Sets the audioState to AudioState.PLAYING

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
+
+
expect fun play()

Used after Audio is initialized with AudioState.READY to play the sound immediately.

Sets the audioState to AudioState.PLAYING

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
actual open override fun play()

When overridden, used after Audio is initialized with AudioState.READY to play the sound immediately.

Sets the audioState to AudioState.PLAYING

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
actual open override fun play()

When overridden, used after Audio is initialized with AudioState.READY to play the sound immediately.

Sets the audioState to AudioState.PLAYING

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
-0.1.8
+0.1.9
+
-
+

release

-
-
expect fun release()

Used when done to clear the Audio object from memory.

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.release() // audio can no longer be called
actual open override fun release()

When overridden, used when done to clear the Audio object from memory.

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.release() // audio can no longer be called
+
+
expect fun release()

Used when done to clear the Audio object from memory.

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.release() // audio can no longer be called
actual open override fun release()

When overridden, used when done to clear the Audio object from memory.

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.release() // audio can no longer be called
actual open override fun release()

When overridden, used when done to clear the Audio object from memory.

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.release() // audio can no longer be called
-0.1.8
+0.1.9
+
-
+

resource

-
-
expect var resource: String

A url link as a string:

Example:

url = "https://dare.wisc.edu/wp-content/uploads/sites/1051/2008/11/MS072.mp3"
actual var resource: String
+
+
expect var resource: String

A url link as a string:

Example:

url = "https://dare.wisc.edu/wp-content/uploads/sites/1051/2008/11/MS072.mp3"
actual var resource: String
actual var resource: String
-0.1.8
+0.1.9
+
-
+

stop

-
-
expect fun stop()

Used to reset the Audio without reloading from the sound file.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.stop() // now ready to play from the beginning again
actual open override fun stop()

When overridden, used to reset the Audio without reloading from the sound file.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.stop() // now ready to play from the beginning again
+
+
expect fun stop()

Used to reset the Audio without reloading from the sound file.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.stop() // now ready to play from the beginning again
actual open override fun stop()

When overridden, used to reset the Audio without reloading from the sound file.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.stop() // now ready to play from the beginning again
actual open override fun stop()

When overridden, used to reset the Audio without reloading from the sound file.

Sets the audioState to AudioState.READY

Example:

val audio = Audio(audioUrl) // AutoPlay defaults to "false"
audio.play() // plays the sound immediately
// more code
audio.stop() // now ready to play from the beginning again
-0.1.8
+0.1.9
diff --git a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/index.html b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/index.html index b8bcfae..7181485 100644 --- a/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/index.html +++ b/docs/basic-sound/basic-sound/app.lexilabs.basic.sound/index.html @@ -45,13 +45,14 @@
-0.1.8
+0.1.9
+
-
+

Package-level declarations

@@ -74,19 +75,19 @@

Package-level declaratio

Types

-
-
+
+
- +
Link copied to clipboard
-
-
expect class Audio

Play audio from a url (String).

actual class Audio : AudioBuilder
+
+
expect class Audio

Play audio from a url (String).

actual class Audio : AudioBuilder
actual class Audio : AudioBuilder
diff --git a/docs/basic-sound/index.html b/docs/basic-sound/index.html index f645520..23146ee 100644 --- a/docs/basic-sound/index.html +++ b/docs/basic-sound/index.html @@ -45,13 +45,14 @@
-0.1.8
+0.1.9
+
-
+

basic-sound

Packages

-
-
+
+
- +
Link copied to clipboard
@@ -85,6 +86,7 @@

Packages

apple
common
js
+
diff --git a/docs/basic-sound/navigation.html b/docs/basic-sound/navigation.html index 214107c..0b002e8 100644 --- a/docs/basic-sound/navigation.html +++ b/docs/basic-sound/navigation.html @@ -1,8 +1,8 @@ -
+
-
+
-
+
diff --git a/docs/basic-sound/scripts/sourceset_dependencies.js b/docs/basic-sound/scripts/sourceset_dependencies.js index 909ef09..013f029 100644 --- a/docs/basic-sound/scripts/sourceset_dependencies.js +++ b/docs/basic-sound/scripts/sourceset_dependencies.js @@ -1 +1 @@ -sourceset_dependencies='{":basic-sound:dokkaHtml/androidDebug":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/androidMain":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/androidRelease":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/appleMain":[":basic-sound:dokkaHtml/nativeMain"],":basic-sound:dokkaHtml/commonMain":[],":basic-sound:dokkaHtml/iosArm64Main":[":basic-sound:dokkaHtml/iosMain"],":basic-sound:dokkaHtml/iosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/iosSimulatorArm64Main":[":basic-sound:dokkaHtml/iosMain"],":basic-sound:dokkaHtml/iosX64Main":[":basic-sound:dokkaHtml/iosMain"],":basic-sound:dokkaHtml/jsMain":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/macosArm64Main":[":basic-sound:dokkaHtml/macosMain"],":basic-sound:dokkaHtml/macosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/macosX64Main":[":basic-sound:dokkaHtml/macosMain"],":basic-sound:dokkaHtml/nativeMain":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/tvosArm64Main":[":basic-sound:dokkaHtml/tvosMain"],":basic-sound:dokkaHtml/tvosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/tvosSimulatorArm64Main":[":basic-sound:dokkaHtml/tvosMain"],":basic-sound:dokkaHtml/tvosX64Main":[":basic-sound:dokkaHtml/tvosMain"],":basic-sound:dokkaHtml/watchosArm32Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosArm64Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosDeviceArm64Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/watchosSimulatorArm64Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosX64Main":[":basic-sound:dokkaHtml/watchosMain"]}' +sourceset_dependencies='{":basic-sound:dokkaHtml/androidDebug":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/androidMain":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/androidRelease":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/appleMain":[":basic-sound:dokkaHtml/nativeMain"],":basic-sound:dokkaHtml/commonMain":[],":basic-sound:dokkaHtml/iosArm64Main":[":basic-sound:dokkaHtml/iosMain"],":basic-sound:dokkaHtml/iosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/iosSimulatorArm64Main":[":basic-sound:dokkaHtml/iosMain"],":basic-sound:dokkaHtml/iosX64Main":[":basic-sound:dokkaHtml/iosMain"],":basic-sound:dokkaHtml/jsMain":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/macosArm64Main":[":basic-sound:dokkaHtml/macosMain"],":basic-sound:dokkaHtml/macosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/macosX64Main":[":basic-sound:dokkaHtml/macosMain"],":basic-sound:dokkaHtml/nativeMain":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/tvosArm64Main":[":basic-sound:dokkaHtml/tvosMain"],":basic-sound:dokkaHtml/tvosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/tvosSimulatorArm64Main":[":basic-sound:dokkaHtml/tvosMain"],":basic-sound:dokkaHtml/tvosX64Main":[":basic-sound:dokkaHtml/tvosMain"],":basic-sound:dokkaHtml/wasmJsMain":[":basic-sound:dokkaHtml/commonMain"],":basic-sound:dokkaHtml/watchosArm32Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosArm64Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosDeviceArm64Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosMain":[":basic-sound:dokkaHtml/appleMain"],":basic-sound:dokkaHtml/watchosSimulatorArm64Main":[":basic-sound:dokkaHtml/watchosMain"],":basic-sound:dokkaHtml/watchosX64Main":[":basic-sound:dokkaHtml/watchosMain"]}' diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6fca9ba..39b4ed0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] kotlin = "2.0.20" -agp = "8.6.0" +agp = "8.6.1" kotlinx-coroutines = "1.9.0" bcv = "0.16.3" -serialization = "1.7.2" +serialization = "1.7.3" dokka = "1.9.20" compose = "1.6.11" ktor = "2.3.12"