[FEATURE] Add support for reading presets from ZIP files
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by tracing how the configured preset path reaches the playlist library and how preset switches are reported to the application. Review the playlist library boundary and the existing POCO ZIP support. Done means presets can be read and run directly from a configured ZIP file, including switches between presets, without unpacking.
Written by the indexing model from the issue text.
Description
Is Your Enhancement Related to a Problem?
On Windows, path length limits can lead to issues installing/extracting the "Cream of the Crop" preset pack, as some preset files have really long names. This mostly occurs if the install path is already deeply nested, e.g. in a user's home directory. It also prevents WIX from being able to create an MSI installer, as the path limit there is even less (260 for the full source or destination file path and file name).
Your Suggested Enhancement
Add support for opening and parsing ZIP files in the configured present path (either inside a configured directory or as a single file name) and running presets directly from within the ZIP file without unpacking.
Since the application already uses POCO, which has a ZIP implementation, this should be relatively easy to accomplish. It may require changes to libprojectM's playlist library though, as there's currently no way of notifying the application of preset switches if the playlist library is in-between. A new callback should be added so the application can handle the switch itself, just getting the playlist path/filename from the playlist library. For example, files in a ZIP could be prefixed with zip:// to distinguish them from physical files and thus making the application handle them differently.
Alternative Solutions
Edit all presets in the default pack and reduce their file name lengths to more sensible limits. Lots of work and not great in determining duplicates.
Additional Context
No response
- Dominant language
- C++
- Stars
- 116
- Forks
- 64
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from projectM-visualizer/frontend-sdl-cpp
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
projectM-visualizer/frontend-sdl-cpp#134 · 4 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
A delete command to remove visualizations that are buggy, don't work, or are just not good looking. Openenhancement
Difficulty 4/5 3-5 days Newbie friendliness 35/100
projectM-visualizer/frontend-sdl-cpp#120 · 1 comment ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 28/100
projectM-visualizer/frontend-sdl-cpp#110 · 6 comments ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 35/100
projectM-visualizer/frontend-sdl-cpp#109 · 1 comment ·
All issues in projectM-visualizer/frontend-sdl-cpp
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
AXERA-TECH/ax-llm#77 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
games-on-whales/wolf#509 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
bug-unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
NVIDIA/cuda-samples#453 ·