NUVO v4 Family Device Driver (Questions)

Forum to discuss plugin support for the Nuvo brand of products.
jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Fri Jun 01, 2012 4:30 pm

Dave,

First, thank you!

Now, how in the world do I use this thing? There doesn't appear to be any documentation at the moment (wiki is empty for AV Family).

Here is what I've done so far:

1) Installed the Nuvo FDD plugin
2) Created an entry in the AV Family Manager (Item #1), Alias: AV1, Driver: Nuvo, Model: GrandConcerto, Zone/Room: (empty), Network Address: (empty), Port: COM10, Description: (empty)
3) Restarted MLS

Here is my setup, so you can better understand the log file responses:

Source -
1 = NV-T2 AM/FM
2 = NV-T2 AM/FM
3 = DirecTV
4 = MuL Server 1
5 = MuL Server 2
6 = MuL Server 3

Zones -
12 zones (1-6 & 9-14)


Defects observed:

1) The radio RDS information for sources 1&2 is displaying and changing, woo-hoo... but the variable names are strange and the values are all starting with a comma:

6/1/2012 5:13:02 PM ProcessResponse RX: <<#S2DISPLINE3,"n'Truck"

renders this:

av_1_source_2_lineispline3 = ",n'Truck"
------------------------------------------------------------

2) The long RDS lines (typically #4) is being cut off:

6/1/2012 5:11:24 PM ProcessResponse RX: <<#S2DISPLINE4," The Kat Charl>>
6/1/2012 5:11:25 PM ProcessResponse RX: <<otte's Best Country "

renders this:

av_source_2_lineispline4 = ", The Kat Charl"
------------------------------------------------------------

3) In reference to #2 above, the 2nd received line appears to be completed ignored:

6/1/2012 5:13:03 PM ProcessResponse RX: <<#S2DISPLINE3,">>
6/1/2012 5:13:03 PM ProcessResponse RX: <<A Truck"
>>
6/1/2012 5:13:05 PM ProcessResponse RX: <<#S2DISPLINE3,">>
6/1/2012 5:13:05 PM ProcessResponse RX: <<Kip"
>>
6/1/2012 5:13:07 PM ProcessResponse RX: <<#S2DISPLINE3,">>
6/1/2012 5:13:07 PM ProcessResponse RX: <<Moore"

renders this:

av_1_source_2_lineispline3 = ","

until such time as the received lines appear together, as is the case with #1 above.
------------------------------------------------------------

Next, the GC server is never queried, which the old plug-in did meaning I have no status or variables unless the GC pushes the status to MLS. When I toggle the home office on/off in person the variables are created and the values appear. As a matter of fact, because the query does happen there are lots of values missing at the moment...

The Nuvo GC v4:

av_1_source_1_lineispline3 = ",Knee"
av_1_source_1_lineispline4 = ","
av_1_source_1_name = "NV-T2 AM/FM"

The old Nuvo GC v3.x:

mlnuvograndconcerto_source_1_duration = "0:00"
mlnuvograndconcerto_source_1_durationsecs = "0"
mlnuvograndconcerto_source_1_nuvonet = "ACTIVE"
mlnuvograndconcerto_source_1_position = "0:00"
mlnuvograndconcerto_source_1_positionsecs = "0"
mlnuvograndconcerto_source_1_sourceactive = "ACTIVE"
mlnuvograndconcerto_source_1_sourcegain = "0"
mlnuvograndconcerto_source_1_sourcename = "Radio 1"
mlnuvograndconcerto_source_1_status = "Normal"
mlnuvograndconcerto_source_1_textline_1 = "96.90 FM"
mlnuvograndconcerto_source_1_textline_2 = "The KAT"
mlnuvograndconcerto_source_1_textline_3 = "Come"
mlnuvograndconcerto_source_1_textline_4 = "The Kat Come Back Song Darius Rucker"


Finally, (for the moment), how in the world do I communicate with the Nuvo? Are the old Nuvo commands simply re-mapped to a different name or is access completely different?

Again, thanks!!!!

- Jeff

ps: I know we're just starting on this .... I can get you the Nuvo GC RS-232 manual if you don't have it on hand...

User avatar
CinemarDave
Site Admin
Site Admin
Posts: 10535
Joined: Fri Feb 07, 2003 8:56 am
Location: Planet Earth
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby CinemarDave » Sat Jun 02, 2012 11:58 am

Do not try to compare the V4 Nuvo driver and the old MLGrandconcerto plugin. They are apples and oranges.

Today's update should resolve your display line issues. I wasn't expecting the Nuvo to send back fragmented data. Today's update will now tolerate that.

Get used to using MLServer's Command builder for examining the various commands available to a driver or app. Every V4 product we release has a unique Command Builder file that details all the available commands and the parameters and command syntax. The Command Builder will always have the most up to date command syntax.

Experiment sending commands via Command Builder until you are comfortable that the driver is working. Then you can retrofit your scenes.

Turn on logging to a file inside the Nuvo driver. That way when something is an issue all you have to do is email me the log file.

The driver should make an attempt to get status from the device on startup after a 30 second delay. This should be reflected in the logs. There is also a AV|1~Status command available that will force a status update.

Let me know how today's version work. Depending on the outcome I may want to spend some time remoted into your system.

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Sat Jun 02, 2012 4:06 pm

CinemarDave wrote:Do not try to compare the V4 Nuvo driver and the old MLGrandconcerto plugin. They are apples and oranges.

Today's update should resolve your display line issues. I wasn't expecting the Nuvo to send back fragmented data. Today's update will now tolerate that.


Downloaded all the updates and installed them... I wanted to report great news but now nothing is being read from the Nuvo Radio Tuners, the variables just contain commas and the logs are just showing "RX <<" and nothing more.

I also observed in the logs that you are indeed querying the Zones 1-20, but if a zone isn't turned on you won't get a "full" response (hate that part). What I think is missing is the querying of the Sources (1-6), to retrieve their status.

CinemarDave wrote:Get used to using MLServer's Command builder for examining the various commands available to a driver or app. Every V4 product we release has a unique Command Builder file that details all the available commands and the parameters and command syntax. The Command Builder will always have the most up to date command syntax.

Experiment sending commands via Command Builder until you are comfortable that the driver is working. Then you can retrofit your scenes.


Thanks for the tip, never used the command builder before....

An immediate observation, the "DISPLAY" has 4 lines for the source but the drop-down only shows 2 (1 & 2)... Yes, I can type the 3 or 4 but just thought I would highlight the fact. And, the attempt to transmit the changing of the display for line 2 or 4 failed to change the keypad display. I need to pull out the RS-232 reference manual to see if the command is formatted incorrectly.

Maybe the whole transmit command is being incorrectly assembled? This might explain why I don't see responses for the above Zone 1-20 queries.

CinemarDave wrote:Turn on logging to a file inside the Nuvo driver. That way when something is an issue all you have to do is email me the log file.


Already done, the moment I had everything running.....

CinemarDave wrote:The driver should make an attempt to get status from the device on startup after a 30 second delay. This should be reflected in the logs. There is also a AV|1~Status command available that will force a status update.

Let me know how today's version work. Depending on the outcome I may want to spend some time remoted into your system.


I've re-enabled LogMeIn ... credentials are the same as last time if you still have the PM. Feel free to play with "lucky" zone #13, the keypad is enabled but there are no speakers attached...

Thanks!

- Jeff

User avatar
CinemarDave
Site Admin
Site Admin
Posts: 10535
Joined: Fri Feb 07, 2003 8:56 am
Location: Planet Earth
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby CinemarDave » Sat Jun 02, 2012 4:48 pm

Made changes - then lost my internet connection and your server got locked. It was looking better.

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Sat Jun 02, 2012 5:17 pm

CinemarDave wrote:Made changes - then lost my internet connection and your server got locked. It was looking better.


Fixed the LogMeIn settings to not lock the computer upon disconnect.... shouldn't happen again....

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Sun Jun 03, 2012 11:58 am

Dave,

Didn't see you on the server so I did some quick testing of updating the display text (lines 1-4) and it works!!!

Only one problem, all of the text is uppercase on the Nuvo display:

AV|1~Display~4~4~Test Message

Which results in the following on in the Nuvo log:

6/3/2012 12:52:56 PM ProcessCommand Cmd=[1~Display~4~4~Test Message] Client=[MyClient1]
6/3/2012 12:52:56 PM SendCommand TX: av1|*S4DISPLINE4,"TEST MESSAGE"
6/3/2012 12:52:56 PM ProcessResponse RX: <<#S4DISPLINE4,"TEST MESSAGE">>

and the following is displayed on the keypad:

TEST MESSAGE

Not exactly what was intended: Test Message

I'm going to see about getting the keypads updating like before even though I'm currently getting upper case on the displays.

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Sun Jun 03, 2012 2:27 pm

Dave,

A couple more observations.... besides the uppercasing of all text...

1) Text with quotes is being dropped.... in this example, the song title: "The Third Man" Theme (With His Royal Orchestra)

Code: Select all

6/3/2012 3:20:33 PM   ProcessCommand   Cmd=[1~Display~6~1~] Client=[]
6/3/2012 3:20:34 PM   SendCommand   TX: av1|*S6DISPLINE1,""
6/3/2012 3:20:34 PM   ProcessCommand   Cmd=[1~Display~6~2~The Fabulous Fifties - Those Wonderful Years] Client=[]
6/3/2012 3:20:34 PM   SendCommand   TX: av1|*S6DISPLINE2,"THE FABULOUS FIFTIES - THOSE WONDERFUL YEARS"
6/3/2012 3:20:34 PM   ProcessCommand   Cmd=[1~Display~6~3~"The Third Man" Theme (With His Royal Orchestra)] Client=[]
6/3/2012 3:20:34 PM   SendCommand   TX: av1|*S6DISPLINE3,""THE THIRD MAN" THEME (WITH HIS ROYAL ORCHESTRA)"
6/3/2012 3:20:34 PM   ProcessCommand   Cmd=[1~Display~6~4~Guy Lombardo] Client=[]
6/3/2012 3:20:34 PM   SendCommand   TX: av1|*S6DISPLINE4,"GUY LOMBARDO"
6/3/2012 3:20:34 PM   ProcessResponse   RX: <<#OK>>
6/3/2012 3:20:34 PM   ProcessResponse   RX: <<#S6DISPLINE2,"THE FABULOUS FIFTIES - THOSE WONDERFUL YEARS">>
6/3/2012 3:20:34 PM   ProcessResponse   RX: <<#S6DISPLINE3,"">>
6/3/2012 3:20:34 PM   ProcessCommand   Cmd=[1~SetDisplayTrackStatus~6~02:59~00:00~Playing] Client=[]
6/3/2012 3:20:34 PM   SendCommand   TX: av1|*S6DISPINFO,1790,0,2
6/3/2012 3:20:34 PM   ProcessResponse   RX: <<#S6DISPLINE4,"GUY LOMBARDO">>


NOTE: In an attempt to be helpful, this is from the RS-232 manual:
"All strings are enclosed in double quotes. When sending a string to the Grand Concerto, double quotes("“) and asterisks (*) must be escaped by a backslash."

2) Text which is too long isn't being truncated. Here the title is too long for the display... I know it's not the single quote because I tested a different song with a single quote which displayed fine.

Code: Select all

6/3/2012 3:28:08 PM   ProcessCommand   Cmd=[1~Display~6~1~] Client=[]
6/3/2012 3:28:08 PM   SendCommand   TX: av1|*S6DISPLINE1,""
6/3/2012 3:28:08 PM   ProcessCommand   Cmd=[1~Display~6~2~Time Life: Celtic Tapestry] Client=[]
6/3/2012 3:28:08 PM   SendCommand   TX: av1|*S6DISPLINE2,"TIME LIFE: CELTIC TAPESTRY"
6/3/2012 3:28:08 PM   ProcessCommand   Cmd=[1~Display~6~3~Bottom Of The Punch Bowl / Man Who Died And Rose Again / Ward's Jig / Apples In Winter] Client=[]
6/3/2012 3:28:08 PM   SendCommand   TX: av1|*S6DISPLINE3,"BOTTOM OF THE PUNCH BOWL / MAN WHO DIED AND ROSE AGAIN / WARD'S JIG / APPLES IN WINTER"
6/3/2012 3:28:08 PM   ProcessCommand   Cmd=[1~Display~6~4~Ensemble Galilei] Client=[]
6/3/2012 3:28:08 PM   SendCommand   TX: av1|*S6DISPLINE4,"ENSEMBLE GALILEI"
6/3/2012 3:28:08 PM   ProcessResponse   RX: <<#OK>>
6/3/2012 3:28:08 PM   ProcessResponse   RX: <<#OK>>
6/3/2012 3:28:08 PM   ProcessResponse   RX: <<#S6DISPLINE2,"TIME LIFE: CELTIC TAPESTRY">>
6/3/2012 3:28:08 PM   ProcessCommand   Cmd=[1~SetDisplayTrackStatus~5~03:56~02:25~Playing] Client=[]
6/3/2012 3:28:08 PM   SendCommand   TX: av1|*S5DISPINFO,2360,1450,2
6/3/2012 3:28:08 PM   ProcessCommand   Cmd=[1~SetDisplayTrackStatus~6~04:18~00:00~Playing] Client=[]
6/3/2012 3:28:08 PM   SendCommand   TX: av1|*S6DISPINFO,2580,0,2
6/3/2012 3:28:08 PM   ProcessResponse   RX: <<#?>>
6/3/2012 3:28:08 PM   ProcessResponse   RX: <<#S6DISPLINE4,"ENSEMBLE GALILEI">>
6/3/2012 3:28:08 PM   ProcessResponse   RX: <<#OK>>


NOTE: In an attempt to be helpful, I searched the manual but couldn't find anything.... My simple testing shows the display display limit to be 80 characters.

3) The command to sync the Nuvo GC time is missing. I sync the Nuvo GC clock with the computer every hour.

4) After looking at the RS-232 manual... the Message command looks very useful! But it's not implemented properly at the moment, there is no duration so the message appears and vanishes in an instant. This isn't critical at the moment but I could see using it for Caller ID information! Something I was recently going to start working on as a matter of fact...

There are also some issues with the accent characters appearing as "?" ... but maybe that will be cleared up once the uppercasing issue is resolved.

User avatar
CinemarDave
Site Admin
Site Admin
Posts: 10535
Joined: Fri Feb 07, 2003 8:56 am
Location: Planet Earth
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby CinemarDave » Mon Jun 04, 2012 11:24 am

Give today's update a try. It addresses all of this. All of the message commands accept a parameter that says how long to display the message.

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Mon Jun 04, 2012 1:40 pm

CinemarDave wrote:Give today's update a try. It addresses all of this. All of the message commands accept a parameter that says how long to display the message.


Dave,

1) Case issue is fixed....
2) Quotes issue is fixed....
3) Line length, truncated to 80 characters, fixed...
4) SetTime ... present, but command builder isn't rendering properly (hour/minute) ... but I can manually create and run it fine...
5) Message ... The command builder must have a defect because the "Message" parameter doesn't list priority and/or duration like it does for "SourceMessage" which works propely. Haven't tested the command.

Okay, now a new defect...

The accent characters from the Celtic music isn't displaying properly with the new v4 plugin, but it displayed perfectly fine with the v3 plugin. As a matter of fact I took the time to swap them just to confirm this was the case. So something is missing.... source display strings w/v3 display the accent characters just fine and source display string w/v4 display a "?" on the Nuvo keypads (which appears to be what it's sending back too based on the logs). Here is the log section from the v4 FDD:

Code: Select all

6/4/2012 1:52:27 PM   SendCommand   TX: av1|*S6DISPLINE1,""
6/4/2012 1:52:27 PM   ProcessCommand   Cmd=[1~Display~6~2~Shepherd Moons] Client=[]
6/4/2012 1:52:27 PM   SendCommand   TX: av1|*S6DISPLINE2,"Shepherd Moons"
6/4/2012 1:52:27 PM   ProcessCommand   Cmd=[1~Display~6~3~Lothlórien] Client=[]
6/4/2012 1:52:27 PM   SendCommand   TX: av1|*S6DISPLINE3,"Lothlórien"
6/4/2012 1:52:27 PM   ProcessCommand   Cmd=[1~Display~6~4~Enya] Client=[]
6/4/2012 1:52:27 PM   SendCommand   TX: av1|*S6DISPLINE4,"Enya"
6/4/2012 1:52:27 PM   ProcessResponse   RX: <<#OK>>
6/4/2012 1:52:27 PM   ProcessResponse   RX: <<#S6DISPLINE2,"Shepherd Moons">>
6/4/2012 1:52:27 PM   ProcessCommand   Cmd=[1~SetDisplayTrackStatus~5~03:23~02:21~Playing] Client=[]
6/4/2012 1:52:27 PM   SendCommand   TX: av1|*S5DISPINFO,2030,1410,2
6/4/2012 1:52:27 PM   ProcessResponse   RX: <<#S6DISPLINE3,"Lothl?rien">>
6/4/2012 1:52:28 PM   ProcessCommand   Cmd=[1~SetDisplayTrackStatus~6~02:07~00:00~Playing] Client=[]
6/4/2012 1:52:28 PM   SendCommand   TX: av1|*S6DISPINFO,1270,0,2
6/4/2012 1:52:28 PM   ProcessResponse   RX: <<#OK>>
6/4/2012 1:52:28 PM   ProcessResponse   RX: <<#S5DISPINFO,DUR2030,POS1410,STATUS2>>
6/4/2012 1:52:28 PM   ProcessResponse   RX: <<#S6DISPINFO,DUR1270,POS0,STATUS2>>


I haven't had a chance to try paging yet, maybe tonight, time permitting... slowly putting things back together....

Thanks!!!!

- Jeff

User avatar
CinemarDave
Site Admin
Site Admin
Posts: 10535
Joined: Fri Feb 07, 2003 8:56 am
Location: Planet Earth
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby CinemarDave » Mon Jun 04, 2012 3:04 pm

Everything in the .Net world uses the UTF-16, double-byte, character set. I am converting the UTF-16 strings to UTF-8 but the Nuvo must not like them either. In the V3 world there was only the 127 character ANSI set. That's why V3 worked. I do not know how easy it will be to get to the base ANSI set.

Command Builder is only designed to handle 6 parameters. Unfortunately, the SetTime command uses 7. That is why it doesn't render properly in the Command builder.

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Mon Jun 04, 2012 4:26 pm

CinemarDave wrote:Everything in the .Net world uses the UTF-16, double-byte, character set. I am converting the UTF-16 strings to UTF-8 but the Nuvo must not like them either. In the V3 world there was only the 127 character ANSI set. That's why V3 worked. I do not know how easy it will be to get to the base ANSI set.

Command Builder is only designed to handle 6 parameters. Unfortunately, the SetTime command uses 7. That is why it doesn't render properly in the Command builder.


Dave,

Regarding SetTime, understood...

About the character translation, I've never programmed a thing for MainLobby. So I'm being lazy here as I wrap up my regular work day, but what language are you basically using? The character set in question is "Extended ASCII" (0-255) which contains the accented characters, boxes, graphics, etc. and not straight ASCII (0-127). As for conversion, there seem to be suggestions of languages which will map correctly but it's not UTF-8 rather they're suggestion code page 437, "iso-8859-1" (aka Latin-1), etc. I'll keep digging but this should be solvable without the need for creating a whole mapping table.

Thanks

- Jeff

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Tue Jun 05, 2012 5:30 pm

Dave,

Just tried paging and it's not working.... from the logs:

Code: Select all

6/5/2012 6:22:48 PM   ProcessCommand   Cmd=[1~Page~On] Client=[Server]
6/5/2012 6:22:48 PM   SendCommand   TX: av1|*ZPAGE1
6/5/2012 6:22:48 PM   ProcessResponse   RX: <<#?>>
6/5/2012 6:22:59 PM   ProcessCommand   Cmd=[1~Page~Off] Client=[Server]
6/5/2012 6:22:59 PM   SendCommand   TX: av1|*ZPAGE0
6/5/2012 6:22:59 PM   ProcessResponse   RX: <<#?>>
6/5/2012 6:23:17 PM   ProcessCommand   Cmd=[1~Page~On] Client=[Server]
6/5/2012 6:23:17 PM   SendCommand   TX: av1|*ZPAGE1
6/5/2012 6:23:17 PM   ProcessResponse   RX: <<#?>>
6/5/2012 6:23:28 PM   ProcessCommand   Cmd=[1~Page~Off] Client=[Server]
6/5/2012 6:23:28 PM   SendCommand   TX: av1|*ZPAGE0
6/5/2012 6:23:28 PM   ProcessResponse   RX: <<#?>>


If I'm reading it correctly, you have a "Z" on the front of the command and that's incorrect.

Pg 12, Section 6.5 -
*PAGE0 = Off
*PAGE1 = On

Thanks!

- Jeff

ps: Now off to setup the scheduler for setting the Nuvo clock again....

User avatar
CinemarDave
Site Admin
Site Admin
Posts: 10535
Joined: Fri Feb 07, 2003 8:56 am
Location: Planet Earth
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby CinemarDave » Tue Jun 05, 2012 6:13 pm

Updated driver. Page should be fixed.

jeffdoo
Intermediate
Intermediate
Posts: 329
Joined: Sat Aug 25, 2007 9:19 pm
Location: Huntersville, NC
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby jeffdoo » Tue Jun 05, 2012 7:26 pm

CinemarDave wrote:Updated driver. Page should be fixed.


Dave,

I have confirmed paging is now fixed....

New question, how do I capture key presses (Next, Prev, Play/Pause)? This would be Pg 8 sections 5.4, 5.5, and 5.6. We do make heavy use of the Nuvo keypads to skip (Next) songs and, when it works, replay (Prev) songs. [Note: MuL is still broken w/Random and previous....] The plugin is capturing the unsolicited messages but I can't figure out what happens next.

Let me know how I can help out with the UTF-16 > "Extended ASCII" conversion ....

Thanks!

- Jeff

User avatar
CinemarDave
Site Admin
Site Admin
Posts: 10535
Joined: Fri Feb 07, 2003 8:56 am
Location: Planet Earth
Contact:

Re: NUVO v4 Family Device Driver (Questions)

Postby CinemarDave » Tue Jun 05, 2012 8:00 pm

When a key press comes in the driver will tell MLServer to execute a macro called Nuvo.<<keyname>> and passing the Zone and Source as parameters. As an example pressing the Prev key should result in a Nuvo.Prev|1~3 command being sent to MLServer.

The core macros you need to define are
Nuvo.Prev|Zone~Source
Nuvo.Next|Zone~Source
Nuvo.PlayPause|Zone~Source
Nuvo.Macro|Zone~Source~Macro


Return to “Nuvo”

Who is online

Users browsing this forum: No registered users and 1 guest