-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Streamline CLI Access #19
base: master
Are you sure you want to change the base?
Conversation
Thank you for the PR! I think it looks pretty good, I will test it out and take a look at your test data. I think I will probably add the |
For the Soundbanks I've taken a look, seems like there's an issue on my part but I'm a little confused. bnkextr seems to work, but the definition on Xentax seems to be different than the implementation for bnkextr. I've pinned it down to Lines 254 to 255 in 5236898
|
It seems like there was a switch between u1 and u4 sometime between 2021 and 2023; I'll have to figure out when and account for it in the data type. |
They switched from uint32 to vlq in version 123 |
Happy that I could help and that you people like the approach. I will attempt to finish a complete implementation today that calls all previously called code paths and move I appreciate your work. |
As recommended in WolvenKit#19
… back later but I prefer LLVM styling over Microsoft and Unix endings over CRLF
Thanks! I've updated the ksy sources in #20 and if they look good I will regenerate the parsers. I think this PR is also close but a couple things @Jan-Ka. First of all, using any unsupported argument results in an exception, including no arguments (which I think should probably just show help). Also the help is a little bit arbitrary, I didn't quite understand it:
(what does |
I've checked @abheekda1 and it comes from // changed for testing
("event", "test", cxxopts::value<string>()->default_value("bla")->implicit_value("blub"))
So, It's not required for the use of Would be cool/good if we could still provide |
I'll be done with the promised changes in at most a few hours, and can fix the issues you discovered along the way. If it's the same for you, I'd like to finish the promised work in this PR first. :) |
As recommended in WolvenKit#19
… back later but I prefer LLVM styling over Microsoft and Unix endings over CRLF
I think I might've borked this PR by rebasing my branch. Edit: Yeah, looks like I did. Should be fine if we squash before merging. |
Other than cleaning up the exceptions and such, what else is left to be done? |
Code path to cache isn't implemented at all. Edit: |
Your recent change seems to still have an issue: PS D:\Repos\Jan-Ka\wwise-audio-tools> cmake --build build
[ 1%] Linking C static library ..\lib\libogg.a
[ 3%] Built target ogg
[ 4%] Linking C static library ..\..\lib\libvorbis.a
[ 28%] Built target vorbis
[ 29%] Building CXX object CMakeFiles/wwtools-shared-lib.dir/src/kaitai/kaitaistream.cpp.obj
D:\Repos\Jan-Ka\wwise-audio-tools\src\kaitai\kaitaistream.cpp:31:10: fatal error: endian.h: No such file or directory
31 | #include <endian.h>
| ^~~~~~~~~~ edit: Seems to be an issue in kaitai: kaitai-io/kaitai_struct_cpp_stl_runtime#44 |
@Jan-Ka I'm curious if you still think we need to use cxxopts? The current cli tool is pretty garbage because I wrote it all at once as a proof of concept. If it works with you, I would be interested in redirecting this PR to rewrite the |
I'm not married to Sorry, Life got in the Way of this PR pretty severely. |
Hello,
I want to use this tool in a different project and needed the ability to provide:
Some of these combinations the current CLI Args Handling did not seem to support. I'm relearning C/C++ and had a bit of a hard time understanding the current implementation (to add just that), so instead I tried to rework it until I could.
Just want to know if this approach would be useful for this project. It's now at a good spot to drop it if it isn't or if this isn't the way it is properly done in c/c++.
I'd like to get a go ahead because I couldn't establish if my variant works, as I can't seem to export soundbanks from W-wise that return any information. (They also don't seem to work with the latest release of wwise-audio-tools)
I've attached my test data. Everything is made in W-wise 2019.2.15.7667 (because that's what CP2077 needs to work, not sure if a newer/older version matters).
Test.bnk
is a custom demo file from a new project;l_intro.bnk
andl_testbank.bnk
are exported from the Limbo Samplepack from Audiokinetic.Wasn't sure about what the proper etiquette for adding libraries in c/c++ projects is. https://github.com/jarro2783/cxxopts seems to be a common low-hanging fruit. It did not meaningfully impact build time or size of the EXE on my machine.
Thanks for your time,
JK
testdata_bnk.zip