Chaveador de vídeo automático

Pessoal....
Tenho uma dúvida na programação em basic para o chaveador que pretendo montar:
O chaveador vai ter 4 entradas e uma saída!
Ele serve para ligar os vários aparelhos que temos em casa, de forma automática, sem precisarmos ir até a estante onde está a TV e mudar a chave seletora (que é o que acontece hoje com esses chaveadores de audio e vídeo existentes no mercado).
Talvez eu desista de montar se alguém aqui disser que já existe para comprar!
Mas mesmo assim, ficarei curioso em saber como fazer acontecer o chaveamento de forma automática e segura!
Vamos supor que eu tenho os seguintes aparelhos:
1 - DVD
1 - k-7
1 - Video-game
1 - Parabólica
Vamos supor que eu vou colocar no chaveador na seguinte ordem:
entrada 1 = DVD = PORTB = 1
entrada 2 = k-7 = PORTB = 2
entrada 3 = Video-game = PORTB = 4
entrada 4 = Parabólica = PORTB = 8
Se eu ligar o DVD primeiro (por exemplo), a porta responsável por detectar isso será ativada e ela vai dizer ao micro ligar o 4066 responsável pelo chaveamento DVD -> saída !
Até aqui é fácil de fazer, e da mesma forma se eu desligar o DVD o micro também vai desligar o 4066 sem problemas!
O micro que estou usando é o ATtiny2313 e 3 CD4066.
O problema para o software que eu não consigo fazer, (tentei algumas formas mas sem sucesso), é se o DVD permanecer ligado e eu ligar também qualquer outro aparelho, como por exemplo, a parabólica!
Eu quero que se o DVD está ligado e eu estou assistindo um filme e quero dar uma espiadinha no que está passando na parabólica, que o chaveador ligue a parabólica até que eu a desligue ou eu desligue o DVD.
A intenção é que sempre o último aparelho ligado tenha a vez na saída!
Eu acho que isso não é um bicho de 7 cabeças para fazer e quero que seja assim pela praticidade que vai ser. Não há necessidade de se desligar um aparelho quando se quer espiar outro. hehehe
E no máximo serão 4 aparelhos ligados ao mesmo tempo e são apenas 4 pinos de controle de entrada para serem analisadas!
só DVD ligado = PORTB = 1
só k-7 ligado = PORTB = 2
mas DVD e k-7 ligados juntos o PORTB será = 3 !
Quando for igual a 3, vemos que teremos duas entradas ativas e eu tenho que saber qual delas estava ligada antes. Só consigo fazer isso usando "IF" ou "SELECT CASE" e é muito desgastante fazer assim visto que serão muitas as possibilidades!
Eu criei uma variável chamada "Entrada" e outra chamada "Ultima_entrada", assim, quando elas forem diferentes entre si, o programa executa os "IFs" e no final dessa fileira enorme de "IFs" eu escrevo: "Ultima_entrada = Entrada", assim, o programa não executa mais os "IFs" até que a variável "Entrada" seja modificada novamente!
Não sei se me lembrei de escrever todos os detalhes e se não os deixei confusos, mas posso tentar esclarecer melhor se for necessário.
Tenho um amigo que programa em basic e em C que disse que seria bem simples o programa usando "fila" para empilhar as saídas, mas não me disse como filtrar as entradas!
Alguém teria uma idéia de como fazer?
No aguardo,
Edson
Tenho uma dúvida na programação em basic para o chaveador que pretendo montar:
O chaveador vai ter 4 entradas e uma saída!
Ele serve para ligar os vários aparelhos que temos em casa, de forma automática, sem precisarmos ir até a estante onde está a TV e mudar a chave seletora (que é o que acontece hoje com esses chaveadores de audio e vídeo existentes no mercado).
Talvez eu desista de montar se alguém aqui disser que já existe para comprar!

Mas mesmo assim, ficarei curioso em saber como fazer acontecer o chaveamento de forma automática e segura!
Vamos supor que eu tenho os seguintes aparelhos:
1 - DVD
1 - k-7
1 - Video-game
1 - Parabólica
Vamos supor que eu vou colocar no chaveador na seguinte ordem:
entrada 1 = DVD = PORTB = 1
entrada 2 = k-7 = PORTB = 2
entrada 3 = Video-game = PORTB = 4
entrada 4 = Parabólica = PORTB = 8
Se eu ligar o DVD primeiro (por exemplo), a porta responsável por detectar isso será ativada e ela vai dizer ao micro ligar o 4066 responsável pelo chaveamento DVD -> saída !
Até aqui é fácil de fazer, e da mesma forma se eu desligar o DVD o micro também vai desligar o 4066 sem problemas!
O micro que estou usando é o ATtiny2313 e 3 CD4066.
O problema para o software que eu não consigo fazer, (tentei algumas formas mas sem sucesso), é se o DVD permanecer ligado e eu ligar também qualquer outro aparelho, como por exemplo, a parabólica!
Eu quero que se o DVD está ligado e eu estou assistindo um filme e quero dar uma espiadinha no que está passando na parabólica, que o chaveador ligue a parabólica até que eu a desligue ou eu desligue o DVD.
A intenção é que sempre o último aparelho ligado tenha a vez na saída!
Eu acho que isso não é um bicho de 7 cabeças para fazer e quero que seja assim pela praticidade que vai ser. Não há necessidade de se desligar um aparelho quando se quer espiar outro. hehehe
E no máximo serão 4 aparelhos ligados ao mesmo tempo e são apenas 4 pinos de controle de entrada para serem analisadas!
só DVD ligado = PORTB = 1
só k-7 ligado = PORTB = 2
mas DVD e k-7 ligados juntos o PORTB será = 3 !
Quando for igual a 3, vemos que teremos duas entradas ativas e eu tenho que saber qual delas estava ligada antes. Só consigo fazer isso usando "IF" ou "SELECT CASE" e é muito desgastante fazer assim visto que serão muitas as possibilidades!
Eu criei uma variável chamada "Entrada" e outra chamada "Ultima_entrada", assim, quando elas forem diferentes entre si, o programa executa os "IFs" e no final dessa fileira enorme de "IFs" eu escrevo: "Ultima_entrada = Entrada", assim, o programa não executa mais os "IFs" até que a variável "Entrada" seja modificada novamente!
Não sei se me lembrei de escrever todos os detalhes e se não os deixei confusos, mas posso tentar esclarecer melhor se for necessário.
Tenho um amigo que programa em basic e em C que disse que seria bem simples o programa usando "fila" para empilhar as saídas, mas não me disse como filtrar as entradas!
Alguém teria uma idéia de como fazer?
No aguardo,
Edson