CatStation/Content.Client/Audio
Ataman 0c5b250f03
Instrument UI overhaul (#41604)
* Added base type for UI panels of MIDI input sources.

* Renamed BandMenu into BandMidiSource.

* Implemented the UI overhaul, skipping channels dialog functionality for now.

* Refactored for conventions and reordered type members.
Got rid of SetInstrument/ClearInstrument again.

* Decreased background opacity for UnavailableOverlay to improve readability.

* Localization

* Added text to InputMidiSource so players know what it does.

* Changed window MinSize to SetSize. Allows players to reduce window size if desired.

* Improved button looks by adding style classes.

* cleanup

* leftover cleanup

* Reverted fetching InstrumentSystem via IoCManager (crashes it, woops).

* added filter bar to file list

* refactored almost all system/manager interaction into instrument BUI

* text changed for instruments-component-menu-input-notice-label

* fixed InstrumentBoundUserInterface.Dispose not unsubscribing from everything

* minor cleanup

* finished configuration menu & cleanup

* Comments and fixes for InstrumentMidiSourceBase

* Fixed RA0051

* Removed unncecessary null check

* Added methods for accessing the selected track.

* Limited depth of search for instrument master to prevent deadlock.

* Cached system access

* Storing midis asynchronously

* Actual MIDI data now only loaded before playback.

* async removed from InstrumentBoundUserInterface.LoadStoredUserMidis

* Replaced GetComponent calls with TryGetComponent

* Localized MIDI playback track timer

* Searching for next track using raw index now

* Fixed CS0168

* XML comments, minor fixes and disabled MIDI library management while a track is playing.

* removed timers with simple watchdog and switched to MidiFileCollectionManager

* Missed one (timer)

* Changed access for MidiFileCollectionManager.UserMidiDirectory field to public.

* Added instrument config control for MIDI collection utilities.

* redesigned instrument config menu

* Removed rename function, updated adding implementation

* more redesigns

* fixed _isMidiFileDialogueWindowOpen not resetting correctly in certain cases.

* file scoped namespaces

* replaced EntityUid with Entity<InstrumentComponent>

* if spaces

* returning Tooltip instead of Control

* replaced SetEntity with public field

* readonly system fields

* InstrumentMenu MinSize

* xml comment for InstrumentMidiSourceBase

* small refactor

* more cleanup

* TryGetComponent to GetComponent on Open()

* more formatting issues

* switched to [Dependency] for systems

* playback improvements

* disable playback button if no file selected and playing

* activating shuffle now selects track if none is selected

* rearranged playback buttons

* channels overhauled

* Play/Stop label to Play only

* Removed all channel on/off

* Program now default channel name display selection

* improved RemoveButton.Disable behavior

* channels now toggable by clicking anywhere

* Shuffle no longer selects already selected track.

* Loop & Shuffle no longer both selectable at once

* minor improvements to channel item visuals

* minor channel toggle fixes

* xml docs & code cleanup

* `RefreshBandRequest` now sent automatically when band source becomes visible

* converted 5 items tuple to MidiChannelInfo record

* added markup support to instrument menu configuration header

* added note to midi channels config header explaining update behavior.
2026-07-26 16:50:28 +00:00
..
Jukebox Cleanup: ProtoMan Part 2 - remove Client and Server EntitySystem IPrototypeManager instances (#44416) 2026-06-29 21:33:56 +00:00
Midi Instrument UI overhaul (#41604) 2026-07-26 16:50:28 +00:00
AmbientOverlayCommand.cs IoC source gen compatibility (#43863) 2026-05-09 03:29:58 +00:00
AmbientSoundOverlay.cs Remove 700 usages of Component.Owner (#21100) 2023-10-19 12:34:31 -07:00
AmbientSoundSystem.cs IoC source gen compatibility (#43863) 2026-05-09 03:29:58 +00:00
AmbientSoundTreeComponent.cs Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
AmbientSoundTreeSystem.cs Use dependencies for EntityQueries in Systems (Part 1: Client) (#43478) 2026-04-06 17:30:41 +00:00
AudioUIController.cs IoC source gen compatibility (#43863) 2026-05-09 03:29:58 +00:00
ClientGlobalSoundSystem.cs IoC source gen compatibility (#43863) 2026-05-09 03:29:58 +00:00
ContentAudioSystem.AmbientMusic.cs Yaml audio params are often ignored (#36259) 2026-07-25 16:16:23 +00:00
ContentAudioSystem.cs fix: ambient music fade in (#25874) (#25969) 2024-03-11 04:08:05 +11:00
ContentAudioSystem.LobbyMusic.cs Yaml audio params are often ignored (#36259) 2026-07-25 16:16:23 +00:00