ObservableAudioLibrary

JavaFX-compatible audio library interface exposing collections as observable properties for UI binding.

Extends ReactiveAudioLibrary with concrete JavaFX-observable type parameters and adds JavaFX properties for direct binding to UI components, enabling reactive table views, list views, and other JavaFX controls without manual synchronization.

Properties

Link copied to clipboard
abstract val albumCountProperty: ReadOnlyIntegerProperty

Observable count of distinct albums in the library.

Link copied to clipboard
abstract val albumsProperty: ReadOnlySetProperty<Album>

Observable set of all albums across all artists in the library.

Link copied to clipboard
abstract val artistCatalogPublisher: LirpEventPublisher<CrudEvent.Type, CrudEvent<Artist, ObservableArtistCatalog>>
Link copied to clipboard
abstract val artistCatalogsProperty: ReadOnlySetProperty<ObservableArtistCatalog>

Observable set of all artist catalogs, each grouping albums and items by artist.

Link copied to clipboard
abstract val artistsProperty: ReadOnlySetProperty<Artist>

Observable set of all distinct artists in the library.

Link copied to clipboard
abstract val audioItemsProperty: ReadOnlyListProperty<ObservableAudioItem>

Observable list of all audio items in the library, suitable for direct JavaFX binding.

Link copied to clipboard
abstract val changes: SharedFlow<CrudEvent<Int, ObservableAudioItem>>
Link copied to clipboard
abstract val emptyLibraryProperty: ReadOnlyBooleanProperty

Boolean property that is true when the library contains no audio items.

Link copied to clipboard
abstract val isClosed: Boolean
Link copied to clipboard
abstract val isEmpty: Boolean
Link copied to clipboard
abstract val playerSubscriber: Flow.Subscriber<AudioItemPlayerEvent>
Link copied to clipboard
abstract val subscriberCount: Int

Functions

Link copied to clipboard
abstract fun activateEvents(vararg types: CrudEvent.Type)
Link copied to clipboard
abstract fun add(entity: ObservableAudioItem): Boolean
Link copied to clipboard
abstract fun clear()
Link copied to clipboard
abstract override fun close()
Link copied to clipboard
abstract fun contains(id: Int): Boolean
abstract fun contains(predicate: Predicate<in ObservableAudioItem>): Boolean
Link copied to clipboard
abstract fun containsAudioItemWithArtist(artistName: String): Boolean
Link copied to clipboard
Link copied to clipboard
abstract fun createFromFile(audioItemPath: Path): ObservableAudioItem
Link copied to clipboard
open fun createFromFileBatchAsync(audioItemPaths: Collection<Path>, executor: Executor, batchSize: Int): CompletableFuture<List<ObservableAudioItem>>
open fun createFromFileBatchAsync(audioItemPaths: Collection<Path>, dispatcher: CoroutineDispatcher, batchSize: Int): CompletableFuture<List<ObservableAudioItem>>
Link copied to clipboard
abstract fun disableEvents(vararg types: CrudEvent.Type)
Link copied to clipboard
abstract fun emitAsync(event: CrudEvent<Int, ObservableAudioItem>)
Link copied to clipboard
abstract fun findAlbumAudioItems(artist: Artist, albumName: String): Set<ObservableAudioItem>
Link copied to clipboard
abstract fun findById(id: Int): Optional<out ObservableAudioItem>
Link copied to clipboard
abstract fun findByIndex(indexName: String, value: Any): Set<ObservableAudioItem>
Link copied to clipboard
abstract fun findByUniqueId(uniqueId: String): Optional<out ObservableAudioItem>
Link copied to clipboard
Link copied to clipboard
abstract fun findFirstByIndex(indexName: String, value: Any): Optional<out ObservableAudioItem>
Link copied to clipboard
abstract fun getArtistCatalog(artist: Artist): Optional<out ObservableArtistCatalog>
Link copied to clipboard
abstract fun getRandomAudioItemsFromArtist(artist: Artist, size: Short): List<ObservableAudioItem>
Link copied to clipboard
abstract operator fun iterator(): Iterator<ObservableAudioItem>
Link copied to clipboard
Link copied to clipboard
open operator fun minus(entity: ObservableAudioItem): Boolean
open operator fun minus(entities: Collection<ObservableAudioItem>): Boolean
Link copied to clipboard
abstract fun remove(entity: ObservableAudioItem): Boolean
Link copied to clipboard
Link copied to clipboard
abstract fun search(size: Int, predicate: Predicate<in ObservableAudioItem>): Set<ObservableAudioItem>
Link copied to clipboard
Link copied to clipboard
abstract fun size(): Int
Link copied to clipboard
abstract fun subscribe(p0: Flow.Subscriber<in CrudEvent<Int, ObservableAudioItem>?>?)
open fun subscribe(action: Consumer<in CrudEvent<Int, ObservableAudioItem>>): LirpEventSubscription<in LirpEntity, CrudEvent.Type, CrudEvent<Int, ObservableAudioItem>>
abstract fun subscribe(action: suspend (CrudEvent<Int, ObservableAudioItem>) -> Unit): LirpEventSubscription<in LirpEntity, CrudEvent.Type, CrudEvent<Int, ObservableAudioItem>>
abstract fun subscribe(vararg eventTypes: CrudEvent.Type, action: suspend (CrudEvent<Int, ObservableAudioItem>) -> Unit): LirpEventSubscription<in LirpEntity, CrudEvent.Type, CrudEvent<Int, ObservableAudioItem>>