Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: Possible to put all 6 russound zones on 1 page in Flatstyle?

  1. #1
    Join Date
    Feb 2007
    Location
    Cedar Park, TX
    Posts
    15

    Default Possible to put all 6 russound zones on 1 page in Flatstyle?

    Hello,

    I've modified several parts of the flatstyle to meet my needs, and the latest was changing the receiver page to a dedicated russound page (Changed icon, removed unnecessary components, etc).

    I would like to get rid of the zone selection buttons, and have 6 separate frames, each one representing a zone with power, volume, etc... I have the graphical logistics laid out, but don't know how to have all 6 zones polling their respective zone data at once. Currently flat is set to only control DM.Receiver.CurrentZone.

    Is this possible? I hope so, it's how the web based device manager works so I have high hopes.

    P.S. I figured out how to do the power on off in one button even though a toggle option isn't avail. It took a bit of trial and error but I finally got it right. That was key to getting enough real-estate on the screen for all 6 zones.

    Thanks!

  2. #2
    Join Date
    May 2004
    Location
    Cardigan, UK
    Posts
    9,278

    Default

    It's certainly possible, but would be a fair amount of work.

    However, as this would be customised for your system you can bypass a large part of what Flatstyle actually does behind the scenes and call the core DM functions directly.

    The key part is in naming the controls correctly (use relative naming e.g. using <^^> etc.) as Flatstyle does. See NRD's NetRemote variable inspector for the names that DM uses.

    You must call DM.RegisterVariableWatch for all relevant slider variables (from your system Lua file) and use DM.Auto or DM.AutoToggle etc. as Lua event actions as appropriate for buttons.
    --Rob

  3. #3
    Join Date
    Feb 2007
    Location
    Cedar Park, TX
    Posts
    15

    Default

    OK, I have done the first part you mention by de-coupling the page from the loopindex functionality and created parent frames for Zone1, zone2, etc, laying out all the appropriate buttons, etc (I dropped a few items I didn't need). I have it laid out in a way that 6 parent frames will fit on one screen. The only remaining item is matching each Zones parent frame to it's respective zone.

    The last line on how to do that piece went over my head - I've just started with all this and am a bit of a noob . Where would DM.RegisterVariableWatch be used to link the parent frames to a zone? I feel like i'm missing something simple here...

  4. #4
    Join Date
    May 2004
    Location
    Cardigan, UK
    Posts
    9,278

    Default

    Okay, you only need to use DM.RegisterVariableWatch() for slider variables.

    e.g. supposing the RussSound zone 1's volume variable were called 'volume' (it will be more a complex name than that, e.g. something like cordelia\russsound\zone1\volume where cordelia is the name of the PC running G5 (use NR's variable inspector to find the correct variable names)
    Code:
    local girder = NetRemote.GetPlugin('Girder')
    
    DM.RegisterVariableWatch('volume', girder)
    This code would probably go in your CCF's .lua file (go to System in NRD's tree and right-click - Edit Lua script file)

    You'll need a call to DM.RegisterVariableWatch for every slider.
    --Rob

  5. #5
    Join Date
    Feb 2007
    Location
    Cedar Park, TX
    Posts
    15

    Default

    So it can't be done as a dynamic DM reference for the zone sliders? Everything else as is will work with anyones CAV66 and pick up the pc connection and zone names. It would be a bummer to have it hard-coded to just my setup.

  6. #6
    Join Date
    Feb 2007
    Location
    Cedar Park, TX
    Posts
    15

    Default

    I may have dove in a bit over my head with this one considering I've only been doing G5/NR for a week

    I did add that bit of code to my main LUA script, but i'm not sure where to call it - the slider has a frame, a slider component (with a state), a thumb graphic and a slider thumb component.

    I think part of my problem is that I don't understand a couple of key things - how the sliders settings in flat all tie together and work, how the DM.Auto event tells the button what to do, and how the controls actually know what zone you're in.

    I've scoured the docs, and they are good, but a lot of the advanced features such as this are nowhere near touched on by the help files. Maybe there are additional docs I need to read through to better understand some of this? I'm sure this isn't rocket science once you have a good base understanding, but trying to reverse engineer it right now is a humbling experience

    Thanks for all your help and patience Rob while I get this ironed out.

  7. #7
    Join Date
    May 2004
    Location
    Cardigan, UK
    Posts
    9,278

    Default

    Making things flexible can take a lot of code.

    Providing the call to DM.RegisterVariableWatch is in the main script it will run at startup, you don't need to call it again.

    Slider variables need to be registered with the relevant plugin (in this case Girder) so that NR knows that it needs to send an event to the plugin when you move the slider.

    DM.Auto works out what to do based on the name of the button it's called from.

    I really need to go through the DM support code and document it properly. I'll try to do that sometime soon if I get a chance.
    --Rob

  8. #8
    Join Date
    Feb 2007
    Location
    Cedar Park, TX
    Posts
    15

    Default

    OK, i'm feeling better about this now... pesky syntax with \\ has been plaguing me unknowingly.

    It's working now, with one quirk. I have stacked ON/OFF buttons on top of each other, and hide the appropriate one according to the above state return variable (to mimic a toggle using a single button). That worked flawlessly before, and works now after my changes, but it doesn't appear to auto-refresh. If the power button says on, and I click it to turn off, it still says on. If I minimize NetRemote, then restore the window, it then shows off.

    Did I do something wrong to cause that?

    Here are my changes:

    Added to my main LUA file....

    local girder = NetRemote.GetPlugin('Girder')
    DM.RegisterVariableWatch('brutale\\RussoundRNET\\C 1Z3\\Volume', girder)
    DM.RegisterVariableWatch('brutale\\RussoundRNET\\C 1Z3\\Power', girder)

    Then on the thumb button for the slider, changed it to this...
    brutale\RussoundRNET\C1Z3\Volume,0,100,0,1024

    For power on/off
    ON Button Element name - brutale\RussoundRNET\C1Z3\Power:Off
    OFF Button Element name - brutale\RussoundRNET\C1Z3\Power:On

    ON Button, State 1, LUA code - return string.upper(NetRemote.GetVariable('brutale\\Russo undRNET\\C1Z3\\Power')) == 'ON'

    OFF Button, State 1, LUA code - return string.upper(NetRemote.GetVariable('brutale\\Russo undRNET\\C1Z3\\Power')) ~= 'ON'

  9. #9
    Join Date
    May 2004
    Location
    Cardigan, UK
    Posts
    9,278

    Default

    Not sure what's happening there - looks like there might be a refreshing problem - is this with NR 2.0.0.101?

    I would just have a single button with two states and a name of
    brutale\RussoundRNET\C1Z3\Power and use a Lua event action of DM.AutoToggle.
    --Rob

  10. #10
    Join Date
    Feb 2007
    Location
    Cedar Park, TX
    Posts
    15

    Default

    Designer 1.1.0.44
    NR 2.0.0.100 - guess I need to grab the latest build of NR

    I changed the button as you suggested which greatly simplified what I was doing. The way DM.Auto was implemented in the flat ccf led me down the path of thinking it only had discreet on/off commands and I had to jump through those hoops. Silly me.

    It looks like I have everything working now as expected (minus the outstanding issue with my other post about initial state of variables). This button change did fix the refresh issue though. I can try it again with the original test button on the latest build and if it still exhibits the problem, send you my CCF if you're interested in seeing/diagnosing it.

    As for hardcoding the zone information - It seems the reason I have this limitation, is because DM only has a limited subset of variables compared to what are available via the girder location output. There are other variables missing in DM that I will use such as party mode that were omitted completely. Is this because of the russound plugin or the DM coding? Is it something that could be expanded in the future?

    Thanks for all your help Rob!

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •