miracle2k / onkyo-eiscp

Control Onkyo A/V receivers over the network; usuable as a script, or as a Python library.
MIT License
466 stars 110 forks source link

help with script #136

Open DrewNeilson opened 2 years ago

DrewNeilson commented 2 years ago

I'm new to Python--and to scripting in general--but have been writing a .bat Command Prompt script to control my A/V equipment. I might eventually rewrite it in Python, but for now I'm going to have it open a second script when it finishes its tasks. That second script is the subject of this message. It can be a Python script. What I want that second script to do is run in the background and when it receives a status message from my Onkyo receiver, send raw EISCP commands to that receiver. One example: when it receives a status message that the input codec has changed to a DTS codec, it sends the raw command to change the listening mode to DTS Neural:X. According to this project's documentation, the Async API seems to be what I'd be interested in, but I'm not certain, and since I have no experience with Python, I don't know how to read the sample script in that section of the documentation. I hope that someone here can write a script for me and post it as a response for everyone to see. The script would basically be:

If input codec changes to ___, send LMDxx

Reason I want this functionality: my primary entertainment device is an Xbox One S. I've set it so that it outputs Dolby Atmos for games and streaming content, so I use my receiver's Dolby Atmos and Dolby Surround listening mode most of the time. Because my Xbox bitstreams audio from Blu-ray discs, that's perhaps the only time that I use my receiver's DTS:X and DTS Neural:X listening mode. While my batch script automatically sets up the Dolby Atmos/Surround listening mode, I have no way to make my receiver automatically switch to a specific DTS listening mode when I play DTS content. Instead, it'll automatically switch to the DTS-compatible listening mode that I used the last time that I played DTS content, or to the most commonly used DTS mode. I want it to instead automatically switch to a specific DTS mode that I define.

I hope that someone here can write a script for me and post it as a response for everyone to see. It'd have blanks or Xs inserted where I'd have to fill in data--such as where I'd need to fill in my receiver's model number ( -n xxx ), and something like (if xxx command received, send xxx command).