26

Re: Question about capabilities

Hi Steve,

For some reason I missed the notification(s) that you posted more info.

I'm impressed with your elegant, simple, non-ticker event solution. I would be very interested in seeing the code you created.

I suspect you're seeing "Problem detecting input reolution" because your zone 2 display is emitting a screen resolution that is not supported by the NeTV.

There are two programs I've come across that might give you some insight into the problem.

fpga_ctl

Run it with no arguments to see options available. Proper use of this is way over my head and I suspect it is very dangerous if you use "write" commands without knowing what you're doing (dangerous as in it might damage the fpga chip).

matchmoded

No usage help that I can find. Run it once to launch it in background (daemon) mode, run again to show real-time info about what the NeTV thinks are the parameters of the source HDMI.

If you Google kosagi matchmoded (and even kosagi fpga_ctl) you'll get some interesting posts, including this one that lists the supported modes. Both Google searches return one page of results so it's not overwhelming.

FYI, the "Problem detecting input resolution" is file /media/storage/root/resinfo.html and I think it's updated in real time by matchmoded.

I do not know how to force the NeTV to run at a specific resolution.

At one time I was having trouble with non-supported resolutions of my HDMI source and had looked into getting ConnectPRO TMDS-KITU1, HDMI EDID/DDC Video Ghosting Emulator or similar device, with the goal of configuring it to always send a specific resolution instead of relying on auto-negotiation between an HDMI source and the NeTV.

27 (edited by sredmyer 2016-08-23 05:35:43)

Re: Question about capabilities

I would be happy to discuss/share the code with you...there really is not much to it.  Most of the code is for reading the zone 2 volume from the AVR and keeping track of timing (how long something has been displayed).  The code to manipulate what the NeTV does is very basic.

To prepare the device I first shut off the KeepAlive timer with the following http API method call.

http://My_NeTV/bridge?cmd=keepalive&value=off

I then send a command to change the URL the NeTV device is displaying to my 'blank' page.

http://My_NeTV/bridge?cmd=seturl&value=http%3A%2F%2FMy_WebServer/OverlayBlank.html

These two commands cause the default webpage displayed by the NeTV device to be changed to my page which is blank (pink chroma color) so just the source video is shown.  Turning off the KeepAlive timer prevents the device from reloading it's default page every 60 seconds which is what the KeepAlive timer is doing...every 60 seconds the timer fires and the device reloads it's default page.

When my application sees a change in the zone 2 volume, it calls the SetUrl command again this time specifying an HTML file that includes the volume.

http://My_NeTV/bridge?cmd=seturl&value=http%3A%2F%2FMy_WebServer/OverlayText.html

This causes the NeTV to display another page that is blank (again pink chroma color) except for the text "VOL : x.xxdb" (where x.xx represents the actual volume read from the AVR) near the bottom and centered horizontally on the screen.  This command will be resent continuously (with new volume values) as the volume value changes.

After no change in volume has been seen for 10 seconds, the application clears the text by calling SetURL one more time this time to the blank page again.

http://My_NeTV/bridge?cmd=seturl&value=http%3A%2F%2FMy_WebServer/OverlayBlank.html

This just clears the screen so that only the video source is being displayed.

When the application shuts down, I have it put things back the way they were by first sending

http://My_NeTV/bridge?cmd=seturl&value=http%3A%2F%2FMy_WebServer/OverlayBlank.html

To clear anything that may be being displayed and then enabling the KeepAlive timer with

http://My_NeTV/bridge?cmd=keepalive&value=on

so that the NeTV device will send it's default page sometime in the next 60 seconds.

That's pretty much it.  As I say there is other code but it is just to read and parse the volume from the AVR (via the RS-232 connection) and keep track of how long the volume is displayed.

28 (edited by sredmyer 2016-08-29 08:14:04)

Re: Question about capabilities

So it was suggested that others here might benefit from seeing the webpages I built for use in the solution described above.  So here they are...nothing fancy but they work extremely well for my needs smile.  To see what any of these webpages look like, simply copy the complete text for the file and save it on your PC/MAC as a .html file then point your browser at it.

One point worth mentioning, you may notice that each file below contains the code

        
    <script type="text/javascript">
    function fCheckAlive()
    {    
        return true;
    }
    </script>

This is just a super simple bit of inline JavaScript code that keeps the NeTV device from reverting back to its default webpage (instead of the one you want to display) when the KeepAlive timer ticks.  Essentially, the timer ticks once every 60 seconds and calls this method on the currently loaded webpage.  If the page does not return true, the NeTV device will reload its default page.


The OverlayBlank.html file (this is a blank page and is what is displayed most of the time)

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Overlay</title>
        <style>
            html, body {
                height: 100%;
                margin: 0;
                padding: 0;
                width: 100%;
            }

            body {
                display: table;
                background: #F000F0;
            }

            .my-block {
                text-align: center;
                display: table-cell;
                vertical-align: bottom;
                font-size: 175%;
                color: white;
            }
        </style>
        <script type="text/javascript">
            function fCheckAlive()
            {    
                return true;
            }
        </script>
    </head>
    <body>
        
    </body>
</html>

The OverlayTemp.html file (this file has the 'x.xx' replaced with the actual volume read from the audio equipment)

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Overlay</title>
        <style>
            html, body {
                height: 100%;
                margin: 0;
                padding: 0;
                width: 100%;
            }

            body {
                display: table;
                background: #F000F0;
            }

            .my-block {
                position: fixed;     
                text-align: center;
                bottom: 0px; 
                width: 100%;
                font-family: Lato;
                font-size: 180%;
                font-weight: lighter;
                color: #ffffff;
            }
        </style>
        <script type="text/javascript">
            function fCheckAlive()
            {    
                return true;
            }
        </script>
    </head>
    <body>
        <div class="my-block">
           Vol: x.xxdb<br/><br/>
        </div>
    </body>
</html>

Finally the OverlayText.html file (this is the file that actually displays the volume overlaid on the screen)

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Overlay</title>
        <style>
            html, body {
                height: 100%;
                margin: 0;
                padding: 0;
                width: 100%;
            }

            body {
                display: table;
                background: #F000F0;
            }

            .my-block {
                position: fixed;     
                text-align: center;
                bottom: 0px; 
                width: 100%;
                font-family: Lato;
                font-size: 180%;
                font-weight: lighter;
                color: #ffffff;
            }
        </style>
        <script type="text/javascript">
            function fCheckAlive()
            {    
                return true;
            }
        </script>
    </head>
    <body>
        <div class="my-block">
           Vol: -35.5db<br/><br/>
        </div>
    </body>
</html>

29

Re: Question about capabilities

Hi Steve,

I didn't receive forum notifications for your 08/22/16 nor today's (08/29/16) posts. Not in spam either, just no where. I wasn't ignoring you. big_smile

Thank you VERY much for sharing the HTML code you're using. It's giving me some ideas on enhancing the caller ID notification I generate when I'm watching Netflix on my Roku.