FXAudioItem

@Serializable(with = ObservableAudioItemSerializer::class)
class FXAudioItem : ObservableAudioItem, Comparable<ObservableAudioItem> , ReactiveEntityBase<Int, ObservableAudioItem>

JavaFX implementation of ObservableAudioItem with lirp-fx scalar properties.

Each mutable metadata field is exposed as a lirp-fx property (fxString, fxObject, fxInteger, fxFloat) that serves as the single source of truth for its JavaFX value. Reactive mutation events are published via mutateAndPublish so lastDateModified is updated and subscribers are notified on every state change, both when properties are set directly and when they are mutated through the lirp-fx JavaFX property.

Side-effect logic (updating artistsInvolvedProperty) is registered as change listeners on titleProperty, artistProperty, and albumProperty via syncArtistsInvolved.

lastDateModifiedProperty is updated automatically by ReactiveEntityBase after each successful mutation.

Properties

Link copied to clipboard
open override var album: Album
Link copied to clipboard
@Transient
open override val albumProperty: ObjectProperty<Album>
Link copied to clipboard
open override var artist: Artist
Link copied to clipboard
@Transient
open override val artistProperty: ObjectProperty<Artist>
Link copied to clipboard
open override val artistsInvolved: Set<Artist>
Link copied to clipboard
@Transient
open override val artistsInvolvedProperty: ReadOnlySetProperty<Artist>
Link copied to clipboard
@Serializable
open override val bitRate: Int
Link copied to clipboard
open override var bpm: Float?
Link copied to clipboard
@Transient
open override val bpmProperty: FloatProperty
Link copied to clipboard
open val changes: SharedFlow<MutationEvent<Int, ObservableAudioItem>>
Link copied to clipboard
open override var comments: String?
Link copied to clipboard
@Transient
open override val commentsProperty: StringProperty
Link copied to clipboard
open override var coverImageBytes: ByteArray?
Link copied to clipboard
@Transient
open override val coverImageProperty: ReadOnlyObjectProperty<Optional<Image>>
Link copied to clipboard
@Serializable
open override val dateOfCreation: LocalDateTime
Link copied to clipboard
@Transient
open override val dateOfCreationProperty: ReadOnlyObjectProperty<LocalDateTime>
Link copied to clipboard
open override var discNumber: Short?
Link copied to clipboard
@Transient
open override val discNumberProperty: IntegerProperty
Link copied to clipboard
open override val duration: Duration
Link copied to clipboard
@Serializable
open override val encoder: String?
Link copied to clipboard
@Serializable
open override val encoding: String?
Link copied to clipboard
open override val extension: String
Link copied to clipboard
open override val fileName: String
Link copied to clipboard
open override var genres: Set<Genre>
Link copied to clipboard
@Transient
open override val genresProperty: ObjectProperty<Set<Genre>>
Link copied to clipboard
open override val id: Int
Link copied to clipboard
open val isClosed: Boolean
Link copied to clipboard
@Serializable
open override var lastDateModified: LocalDateTime
Link copied to clipboard
@Transient
open override val lastDateModifiedProperty: ReadOnlyObjectProperty<LocalDateTime>
Link copied to clipboard
open override val length: Long
Link copied to clipboard
open override val path: Path
Link copied to clipboard
@Serializable
open override val playCount: Short
Link copied to clipboard
@Transient
open override val playCountProperty: ReadOnlyIntegerProperty
Link copied to clipboard
open override var title: String
Link copied to clipboard
@Transient
open override val titleProperty: StringProperty
Link copied to clipboard
open override var trackNumber: Short?
Link copied to clipboard
@Transient
open override val trackNumberProperty: IntegerProperty
Link copied to clipboard
open override val uniqueId: String

Functions

Link copied to clipboard
Link copied to clipboard
open fun asJsonValue(): String
Link copied to clipboard
open override fun clone(): FXAudioItem
Link copied to clipboard
open override fun close()
Link copied to clipboard
open operator override fun compareTo(other: ObservableAudioItem): Int
Link copied to clipboard
open fun emitAsync(event: MutationEvent<Int, ObservableAudioItem>)
Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun setPlayCount(count: Short)
Link copied to clipboard
open fun subscribe(p0: Flow.Subscriber<in MutationEvent<Int, ObservableAudioItem>?>?)
open fun subscribe(action: Consumer<in MutationEvent<Int, ObservableAudioItem>>): LirpEventSubscription<in ObservableAudioItem, MutationEvent.Type, MutationEvent<Int, ObservableAudioItem>>
open fun subscribe(action: suspend (MutationEvent<Int, ObservableAudioItem>) -> Unit): LirpEventSubscription<in LirpEntity, MutationEvent.Type, MutationEvent<Int, ObservableAudioItem>>
open fun subscribe(vararg eventTypes: MutationEvent.Type, action: Consumer<in MutationEvent<Int, ObservableAudioItem>>): LirpEventSubscription<in ObservableAudioItem, MutationEvent.Type, MutationEvent<Int, ObservableAudioItem>>
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open fun <T> withEventsDisabled(action: () -> T): T
Link copied to clipboard
fun <T> withEventsDisabledForClone(action: () -> T): T
Link copied to clipboard
open override fun writeMetadata(): Job