This is all a lot saner than it ws in the past. The main amplifier is a Cambridge Audio Azur 340R AV receiver, a Raspberry Pi Zero is connected to its RS232C serial port via a MAX3232 which gives me full control of power, volume, input switching, audio modes etc. via MQTT and from there from Node-RED or any of the other devices connected through it.
If cinema mode is off then the audio input is connected to a mixer which mixes together the inputs from my main Linux PC (which also generates the household voice notifications), a Google Chromecast Audio and an Acer Revo running Kodi. When cinema mode is active the input switches to the TOSLink output from my TV which can provide Freeview HD, Freesat HD as well as an Amazon Fire Stick (for Netflix, iPlayer, Kodi etc).
A python script running on the PC that generates the house speech and sound notifications subscribes to a topic that allows the home automation system to automatically adjust the volume depending on modes or events and also allows the RF wall switches or handheld RF remotes to be use as a volume control anywhere in the house. A Nanode connected to a relay board allows the ground floor speakers to be switched on and off via MQTT and a 5.8GHz video sender (used for audio only) is also connected to transmit audio to receivers connected to independent amplifiers upstairs. This allows speech notifications and the audio from any source to be heard throughout the house and in an ideal world presence detection allows it to follow you around.
The Chromecast Audio connected into the mixer is used for Spotify, listening to podcasts using Pocket Casts or radio streaming. Streaming radio can also be used via the web interface, this uses MQTT to communicate with my main Linux PC to ply the stream using mplayer.
Little used these days but there is also a DAB tuner connected which is controlled by an old Nanode 5 with an IR LED which allows it to be operated via MQTT/Node-RED to a REST interface. There is a blog post about this here.
I hardly ever watch any broadcast TV these days but when I do it is via a Freesat HD box in the front room or a DVB-T dongle plugged into my Linux PC, the venerable Series 1 UK TiVo has now been retired. For digital media I have a couple of Amazon Firesticks, one plugged into the lounge TV and one connected to the second input of one of the screens on my desk, these are used for Netflix, Prime Video and with Kodi. There is no automation of any of this but I do keep meaning to get round to adding IR control of the TV to the Arduino based unit I use to control the DAB tuner so that switching cinema mode on doesn’t just set the audio level, input, speakers and lighting correctly but also turns the TV on and selects the Firestick input.