This is a little bit complicated, because you would need a direct communication between two extensions, one that is controlling the BCF and the Reaper_WWW extension. For both you have the source code, so you could create a named pipe or a socket to enable the communication between the extensions.
In CSurf_MCU the offset (of the leftmost shown track of a specific hardware) is calculated by adding m_allmcus_bank_offset (the offset for all conected MCUs/BCFs/Extenders/..., this is the value that is modified when you press the select next/previous bank buttons) and m_offset (a fixed value that is given by the user via the Control Surface Settings). When this offset is changing, you must transmit a message to the WWW extension. I'm unfamiliaer with the WWW extension code, but after a short look, it seems that there you must modify the last for loop in the ProcessCommand method. Instead of
if (minv<0) minv=0;
if (maxv>nt) maxv=nt;
for (;minv<maxv;minv++)
you would need
minv = the offset value you got from the MCU extension
if (maxv>nt) maxv=nt;
if (maxv>minv+8) maxv=minv+8; (assuming you have only one hardware unit and want to show only 8 channels)
for ...
If you use the "Show only the tracks that are also shown in the Mixer" feature, you must also communicate g_csurf_mcpmode from the MCU extension and use it's state as second parameter in CSurf_TrackFromID in the for loop of the www extension.
|