On Sonntag, 5. September 2021 15:45:15 CEST Kolja Koch wrote:
> Hi Christian,
> 
> cool, thanks a lot for this!
> As far as I understand it, I will be able to use that in my 'gig-
> creator', that I'm working on (by the way, I ended up using wxWidget).

Yes, for now you would probably assemble a command line and call the system() 
function to execute the assembled command line, something like:

        int res = system("wav2gig --name1-regex '" + name1Pattern + ... );

Later on I will make that available by more convenient functions via the 
libgig API. But that's still in the works on my side.

I also slightly changed the default regex patterns, which are now like this:

        [^-\/\\]+ - [^-]+ - [^-]+ - [^-]+ - [^.]+

Tearing that pattern down:

    [^-\/\\]+

    Which means "any sequence of characters except minus ('-'), forward slash 
    ('/') or backslash ('\')". Basically this strips away a leading path like 
    "/some/where/foo.wav" or "C:\some\where\foo.wav" and stops before the next 
    " - " delimiter starts.

    [^-]+

         Any character sequence except minus ('-'). So it stops before the next
    " - " delimiter starts.

    [^.]+

    Any character sequence except dot ('.'). That strips away the trailing 
    path extension, typically ".wav" or ".WAV".

One more tip: if you are choosing C++ then I recommend to use C++11 string 
literals for your regex code. That avoids having to double escape:

        // double escaped required (one for regex, one for C++)
        string pattern = "[^-\\/\\\\]+";

vs.

        // single escape being sufficient (for regex only)
        string pattern = R"RegEx([^-\/\\]+)RegEx";

That way you can also directly copy & paste the regex code from your source 
code into any RegEx debugging tool of your choice and vice versa.

CU
Christian




_______________________________________________
Linuxsampler-devel mailing list
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel

Reply via email to