diff --git a/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala b/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala index 879f8f9..2622fc1 100644 --- a/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala +++ b/src/main/scala/ocelot/desktop/audio/SoundBuffer.scala @@ -17,6 +17,8 @@ class SoundBuffer(val file: String) extends Resource with Logging { } else { initFallback() } + } else { + logger.debug(s"Skipping loading sound buffer from '$file' because audio is not available") } } } diff --git a/src/main/scala/ocelot/desktop/ui/widget/slot/FloppySlotWidget.scala b/src/main/scala/ocelot/desktop/ui/widget/slot/FloppySlotWidget.scala index 37e1d05..076fcdc 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/slot/FloppySlotWidget.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/slot/FloppySlotWidget.scala @@ -1,28 +1,34 @@ package ocelot.desktop.ui.widget.slot -import ocelot.desktop.audio.{SoundBuffers, SoundCategory, SoundSource} +import ocelot.desktop.audio.{Audio, SoundBuffers, SoundCategory, SoundSource} import ocelot.desktop.graphics.{IconDef, Icons} import ocelot.desktop.inventory.Inventory import ocelot.desktop.inventory.item.FloppyItem class FloppySlotWidget(slot: Inventory#Slot) extends SlotWidget[FloppyItem](slot) { - private val soundFloppyInsert = SoundSource.fromBuffer(SoundBuffers.MachineFloppyInsert, SoundCategory.Environment) - private val soundFloppyEject = SoundSource.fromBuffer(SoundBuffers.MachineFloppyEject, SoundCategory.Environment) + private lazy val soundFloppyInsert = + SoundSource.fromBuffer(SoundBuffers.MachineFloppyInsert, SoundCategory.Environment) + private lazy val soundFloppyEject = SoundSource.fromBuffer(SoundBuffers.MachineFloppyEject, SoundCategory.Environment) override def ghostIcon: Option[IconDef] = Some(Icons.FloppyIcon) override def onItemAdded(): Unit = { super.onItemAdded() // TODO: don't play the sound when loading a workspace - soundFloppyInsert.play() + if (!Audio.isDisabled) { + soundFloppyInsert.play() + } } override def onItemRemoved( removedItem: FloppyItem, - replacedBy: Option[FloppyItem] + replacedBy: Option[FloppyItem], ): Unit = { super.onItemRemoved(removedItem, replacedBy) + // TODO: don't play the sound when loading a workspace - soundFloppyEject.play() + if (!Audio.isDisabled) { + soundFloppyEject.play() + } } }