¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Re: Marantz SR7015


 

Yea we ended up going from a #if_Series3 to doing #if_Series2 / #else and that stopped the errors on the S+ compile. My gripe was that if you never opened up S+ and just compiled in Simpl for a 4 Series processor, the S+ compile fail for the #if_Series3 would never come to light and you'd end up with a program with a broken module inside it (or at least one throwing buffer overflow errors and who knows what other problems without the threadsafe). I remember when the 4s came out we were always told what works on 3 series will work just the same on a 4- well I guess they forgot about that whole threadsafe logic they put in all their modules on the app market...

Heres what we did in our modified Marantz SR-7007 v1.1 Processor.usp:

// Create separate 2-Series and 3-Series/4-Series handlers
// Removed original code and reversed logic blocks to use IF_SERIES2 directive
#IF_SERIES2
CHANGE From_Device
{
if(iProcessFromDevice = 0)
{
iProcessFromDevice = 1;
while(find("\x0D", From_Device))
{
sResponseFromDevice = remove("\x0D", From_Device);
? ? ? ? ? ? ProcessRxMessage_FromDevice();
}
iProcessFromDevice = 0;
}
}
#ELSE // Use for both 3-Series/4-Series
THREADSAFE CHANGE From_Device
{
? ? while(1)
? ? {
? ? ? ? try
? ? ? ? {
// extract message from BUFFER_INPUT stream
? ? ? ? ? ? sResponseFromDevice = gather("\x0D", From_Device);
// now process it
? ? ? ? ? ? ProcessRxMessage_FromDevice();
? ? ? ? }
? ? ? ? catch
? ? ? ? {
? ? ? ? ? ? // print out a message to the log
? ? ? ? ? ? generateuserwarning("CHANGE From_Device: Error encountered in BUFFER_INPUT");
? ? ? ? }
? ? }
}
#ENDIF? ? ? ??
?

Join [email protected] to automatically receive all group messages.