[PR #51] [MERGED] Multi-Disc and Multi-Backend Improvements #70

Closed
opened 2026-01-30 21:23:16 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/aaru-dps/RedBookPlayer/pull/51
Author: @mnadareski
Created: 10/6/2021
Status: Merged
Merged: 11/29/2021
Merged by: @claunia

Base: develHead: backend-separation


📝 Commits (10+)

  • 93a38ec Add multiple audio backend framework
  • 6a78fc8 Start building out multi-disc framework
  • 34b7fbd Set one SoundOutput per disc
  • 765d2f2 Add unused disc changing methods to Player
  • 0a5c3f4 Add new logic to settings; fix Player
  • 76415ae Add Player passthru for new items
  • 7b01715 Safer way of detecing platform
  • 211ee8c Wire up disc changing to UI
  • 6cd039a Add note in enum
  • 2bbfd2b Add disc switching note

📊 Changes

26 files changed (+2007 additions, -1051 deletions)

View changed files

📝 README.md (+10 -0)
📝 RedBookPlayer.GUI/RedBookPlayer.GUI.csproj (+1 -0)
📝 RedBookPlayer.GUI/ViewModels/MainViewModel.cs (+43 -8)
📝 RedBookPlayer.GUI/ViewModels/PlayerViewModel.cs (+218 -96)
📝 RedBookPlayer.GUI/ViewModels/SettingsViewModel.cs (+36 -0)
📝 RedBookPlayer.GUI/Views/PlayerView.xaml (+16 -15)
📝 RedBookPlayer.GUI/Views/SettingsWindow.xaml (+132 -90)
📝 RedBookPlayer.GUI/themes/Default/view.xaml (+16 -15)
📝 RedBookPlayer.Models/Audio/DeEmphasisFilter.cs (+1 -1)
📝 RedBookPlayer.Models/Audio/FilterStage.cs (+1 -1)
RedBookPlayer.Models/Audio/IAudioBackend.cs (+30 -0)
RedBookPlayer.Models/Audio/Linux/AudioBackend.cs (+52 -0)
📝 RedBookPlayer.Models/Audio/PlayerSource.cs (+1 -1)
RedBookPlayer.Models/Audio/SoundOutput.cs (+177 -0)
RedBookPlayer.Models/Audio/Windows/AudioBackend.cs (+52 -0)
📝 RedBookPlayer.Models/Discs/CompactDisc.cs (+110 -256)
📝 RedBookPlayer.Models/Discs/OpticalDiscBase.cs (+10 -37)
📝 RedBookPlayer.Models/Discs/OpticalDiscOptions.cs (+0 -15)
📝 RedBookPlayer.Models/Enums.cs (+17 -0)
📝 RedBookPlayer.Models/Factories/OpticalDiscFactory.cs (+4 -3)

...and 6 more files

📄 Description

This PR does the following:

  • Adds track programming infrastructure (fixes #28)
    • Internal track list filled based on single-disc or multi-disc handling preference
  • Add framework for different audio backends (fixes #33)
    • Add Linux and Windows variations of CSCore invocation (currently identical)
  • Add disc changing mechanisms (fixes #43)
    • Support between 1 and 100 discs in an internal disc changer
    • Add UI support for showing current disc number
  • Add shuffle (fixes #44)
    • Allow shuffle in both single-disc and multi-disc modes
    • Relies on track programming
    • Shuffle can be invoked multiple times manually
    • No automatic shuffle is implemented

This also includes miscellaneous restructures that arose from the above work that will benefit future work. This includes removing some code from discs and audio handling that didn't need to be there.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/aaru-dps/RedBookPlayer/pull/51 **Author:** [@mnadareski](https://github.com/mnadareski) **Created:** 10/6/2021 **Status:** ✅ Merged **Merged:** 11/29/2021 **Merged by:** [@claunia](https://github.com/claunia) **Base:** `devel` ← **Head:** `backend-separation` --- ### 📝 Commits (10+) - [`93a38ec`](https://github.com/aaru-dps/RedBookPlayer/commit/93a38ec9e98086a7211103269684226733611066) Add multiple audio backend framework - [`6a78fc8`](https://github.com/aaru-dps/RedBookPlayer/commit/6a78fc86e538cc6b91f76692032adcc4be4e81c2) Start building out multi-disc framework - [`34b7fbd`](https://github.com/aaru-dps/RedBookPlayer/commit/34b7fbd790eef245cea3512e44734d6dc6ba2de7) Set one SoundOutput per disc - [`765d2f2`](https://github.com/aaru-dps/RedBookPlayer/commit/765d2f21c1f9f08f922cbed25b2bb03ea0d4fbf5) Add unused disc changing methods to Player - [`0a5c3f4`](https://github.com/aaru-dps/RedBookPlayer/commit/0a5c3f49c3a8926159f5cfe27561d6fa8802cecd) Add new logic to settings; fix Player - [`76415ae`](https://github.com/aaru-dps/RedBookPlayer/commit/76415ae04fd3499a1936001c344313824e969054) Add Player passthru for new items - [`7b01715`](https://github.com/aaru-dps/RedBookPlayer/commit/7b01715a1124c07becb28dd7e432b7085a33367d) Safer way of detecing platform - [`211ee8c`](https://github.com/aaru-dps/RedBookPlayer/commit/211ee8cecf01c6c7dc67b6efcf2c5c52a8f3e06f) Wire up disc changing to UI - [`6cd039a`](https://github.com/aaru-dps/RedBookPlayer/commit/6cd039a2b3b9831a047955b988e916121f2a3e47) Add note in enum - [`2bbfd2b`](https://github.com/aaru-dps/RedBookPlayer/commit/2bbfd2b2a7d37d116ce3db5bdbd0103bfca5cfcd) Add disc switching note ### 📊 Changes **26 files changed** (+2007 additions, -1051 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+10 -0) 📝 `RedBookPlayer.GUI/RedBookPlayer.GUI.csproj` (+1 -0) 📝 `RedBookPlayer.GUI/ViewModels/MainViewModel.cs` (+43 -8) 📝 `RedBookPlayer.GUI/ViewModels/PlayerViewModel.cs` (+218 -96) 📝 `RedBookPlayer.GUI/ViewModels/SettingsViewModel.cs` (+36 -0) 📝 `RedBookPlayer.GUI/Views/PlayerView.xaml` (+16 -15) 📝 `RedBookPlayer.GUI/Views/SettingsWindow.xaml` (+132 -90) 📝 `RedBookPlayer.GUI/themes/Default/view.xaml` (+16 -15) 📝 `RedBookPlayer.Models/Audio/DeEmphasisFilter.cs` (+1 -1) 📝 `RedBookPlayer.Models/Audio/FilterStage.cs` (+1 -1) ➕ `RedBookPlayer.Models/Audio/IAudioBackend.cs` (+30 -0) ➕ `RedBookPlayer.Models/Audio/Linux/AudioBackend.cs` (+52 -0) 📝 `RedBookPlayer.Models/Audio/PlayerSource.cs` (+1 -1) ➕ `RedBookPlayer.Models/Audio/SoundOutput.cs` (+177 -0) ➕ `RedBookPlayer.Models/Audio/Windows/AudioBackend.cs` (+52 -0) 📝 `RedBookPlayer.Models/Discs/CompactDisc.cs` (+110 -256) 📝 `RedBookPlayer.Models/Discs/OpticalDiscBase.cs` (+10 -37) 📝 `RedBookPlayer.Models/Discs/OpticalDiscOptions.cs` (+0 -15) 📝 `RedBookPlayer.Models/Enums.cs` (+17 -0) 📝 `RedBookPlayer.Models/Factories/OpticalDiscFactory.cs` (+4 -3) _...and 6 more files_ </details> ### 📄 Description This PR does the following: - Adds track programming infrastructure (fixes #28) - Internal track list filled based on single-disc or multi-disc handling preference - Add framework for different audio backends (fixes #33) - Add Linux and Windows variations of CSCore invocation (currently identical) - Add disc changing mechanisms (fixes #43) - Support between 1 and 100 discs in an internal disc changer - Add UI support for showing current disc number - Add shuffle (fixes #44) - Allow shuffle in both single-disc and multi-disc modes - Relies on track programming - Shuffle can be invoked multiple times manually - No automatic shuffle is implemented This also includes miscellaneous restructures that arose from the above work that will benefit future work. This includes removing some code from discs and audio handling that didn't need to be there. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-30 21:23:16 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aaru-dps/RedBookPlayer#70