|
From: Christian S. <sch...@li...> - 2018-06-27 11:32:10
|
On Montag, 25. Juni 2018 12:45:38 CEST Andrew C wrote:
> Would it be possible from a gigedit/engine POV to break the 256 dimension
> limit?
It is of course possible. However if the actual question is whether this would
be a one line change, then I have to disappoint you. At the moment this limit
of max. 256 dimension regions is hard coded at many places in libgig and in
LinuxSampler's gig engine and in gigedit. So in the source code in all of them
you currently find many places like i.e.:
for (int dr = 0; dr < 256; ++dr) {
...
}
So raising that limit would require reviewing and manually adjusting a
substantial amount of code. Automatic refactoring tools would not help in this
case. Not a hard work of course, because in the end you just have to look at
occurences of such 256 numbers in the code (and checking whether the
respective 256 number is actually about dimension regions or something else),
but it takes time and patience.
> In this glorious 64-bit age, could this be upped to 1024 or 768 (though, I
> am aware this would break giga compatibility with the original gigastudio)?
Giga compatibility is not the main issue here. I mean I already extended the
GigaStudio format at several places for adding useful enhancements, always
with the same usage pattern: if the user user decides to use format extension
X than he gets a warning in gigedit that the gig file won't load with
GigaStudio. If he later removes feature X it would load with GigaStudio again.
Well, if you want that 256 limit change to happen, then you could start by
reviewing the code and replacing the occurences of those 256 number literals
by calls to a libgig member variable or method call which would return the
current limit for the gig file. So that overall change would not happen over
night, but rather be a step by step effort.
CU
Christian
|