elupus / arcam_fmj

Python module for interacting with a arcam fmj receiver
MIT License
8 stars 6 forks source link

HDA series compatibility #8

Open pp81381 opened 1 year ago

pp81381 commented 1 year ago

Thanks for this great Python module and the related Home Assistant integration!

I've just forked the repository with a view to adding support for the HDA series. It looks like a relatively simple extension to the 860 series. Before I go to the effort of doing so I wanted to just check whether or not that was already work in progress? If not, then I will dive in.

Just to make sure that I'm on the right track, I have a couple of questions:

elupus commented 1 year ago

Nothing in progress at the moment. So go ahead. No idea if you run into problems with HDA PA, could get tricky to make sure we keep things in some generic structure rather than special cases everywhere. Start small and put a pull request up early as a draft. Then i can review as you go along. I will trust you on the true hd. Could well be a typo. Open a separate fix for that.

pp81381 commented 1 year ago

Thanks. I'm on it. I've nearly finished the first cut and will test it over the weekend before submitting.

Another question though. I am still wondering what the best thing to do with the tags is. For example, consider the DecodeMode2CH enumeration below.

How would you like me to handle this? Should I create an APIVERSION_860_AND_HDA_SERIES set? I can see that approach getting out of hand at some point but certainly possible in this iteration.

class DecodeMode2CH(IntOrTypeEnum):
    STEREO = 0x01
    DOLBY_PLII_IIx_MOVIE = 0x02, APIVERSION_450_SERIES
    DOLBY_PLII_IIx_MUSIC = 0x03, APIVERSION_450_SERIES
    DOLBY_SURROUND = 0x04, APIVERSION_HDA_SERIES
    DOLBY_PLII_IIx_GAME = 0x05, APIVERSION_450_SERIES
    DOLBY_PL = 0x06, APIVERSION_450_SERIES
    DTS_NEO_6_CINEMA = 0x07
    DTS_NEO_6_MUSIC = 0x08
    MCH_STEREO = 0x09
    DTS_NEURAL_X = 0x0A, APIVERSION_860_SERIES
    DTS_VIRTUAL_X = 0x0C, APIVERSION_860_SERIES
    DOLBY_VIRTUAL_HEIGHT = 0x0D, APIVERSION_HDA_SERIES
    AURO_NATIVE = 0x0E, APIVERSION_HDA_SERIES
    AURO_MATIC_3D = 0x0F, APIVERSION_HDA_SERIES
    AURO_2D = 0x10, APIVERSION_HDA_SERIES
elupus commented 1 year ago

I think you have to add such a new series. Maybe we could support series inheritance in some way to reduce duplications.