sengsational / cwhelper

The code here is the background job for CW_EPG, an electronic program guide / DVR for Windows
1 stars 1 forks source link

useHdhrCommandLine value not observed with discover #12

Closed sengsational closed 9 months ago

sengsational commented 9 months ago

hdhomerun_config runs for "discover", even though useHdhrCommandLine is false.

sengsational commented 9 months ago

I think this might prevent the log from having 'Command line runtime error' entries: https://github.com/sengsational/cwhelper/commit/92c1e86dae37933fe9942e09dc6c76b408672673

TPeterson94070 commented 9 months ago

Actually, I’m not sure this is right because the stdout.txt log shows that the http discover call is made if the hdhomerun_config.exe is missing, and I suspect that’s within getLiveDiscoverText isn’t it?

(snip) Sun Feb 04 13:23:02 PST 2024 Executing request http://ipv4-api.hdhomerun.com/discover finished executing request with 476 characters received. Sun Feb 04 13:23:02 PST 2024 Got 2 items from active discover command. [1075D4B1, 1080F19F, ] (/snip)

sengsational commented 9 months ago

I was trying to get rid of this in the logs:

Silicon Dust Command Line Data: discover 
Cannot run program ""C:\Users\tmpet\Documents\Embarcadero\Studio\Projects\CW_EPG-vm\Win32\Release\hdhomerun_config.exe"": CreateProcess error=2, The system cannot find the file specified
Sun Feb 04 13:23:07 PST 2024 liveDiscoverText [
null] Command line run :false - 
Sun Feb 04 13:23:07 PST 2024getLiveDiscoverText error: Command line runtime error 

Earlier in the logs, I see:

userHdhrCommandLine="false"

So it shouldn't even try to use the hdhr command line.

TPeterson94070 commented 9 months ago

Agreed that it should not attempt hdhomerun_config.exe after the first time, but a live discover using one of the two types needs to be done, I think, and it appeared that the http api call may be in the method named getLiveDiscoverText. Is that not right?

sengsational commented 9 months ago

I just drilled down into the getLiveDiscoverText() method, and it doesn't do any http calls...only command line. I didn't dig into why this method was never updated to add the http discover and was only doing the command line discover. I suspect it was/is redundant. We do the http discover in TunerManager.countTunersHdhr() and also TunerManager.getTunerCountFromRegistryOrDevice(). I'm not sure why we have more than one place, but one uses a link ending in /discover and the other in /discover.json. Point being, though, the "if" statement I added above, doesn't disable an http discover.

sengsational commented 9 months ago

Change has been merged into master.