projectM-visualizer / projectM-visualizer/frontend-sdl-cpp
[FEATURE] Add support for reading presets from ZIP files
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 116
- Forks
- 64
- PR merge metrics
- No merged PRs in 30d
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
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.
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.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100