@startuml !include theme.ipuml skinparam Linetype ortho package crepe { class Asset <<irrelevant>> class Sound { +Sound(asset) -- +pause() +play() +rewind() -volume : float <<+set>> <<+get>> -looping : bool <<+set>> <<+get>> -- -sample : SoLoud::Wav -handle : SoLoud::handle -- -load(asset) } class SoundContext <<Singleton>> { -instance() : SoundContext& <<static>> -- -SoundContext() -~SoundContext() -- -engine : SoLoud::Soloud } Sound .> SoundContext SoundContext .> Sound Sound .left> Asset } package SoLoud { class Soloud <<irrelevant>> class Wav <<irrelevant>> } crepe.Sound --> SoLoud.Wav crepe.SoundContext --> SoLoud.Soloud ' LAYOUT crepe -[hidden]down- SoLoud @enduml