Uma maneira talvez seja usar amixer
.
Jack conectado:
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
...
Jack não está conectado:
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
...
Então, para esse específico, eu poderia fazer:
amixer -c 0 contents | \
awk -F"," '
$1 == "numid=29" {
c=1
} c && /: values/ {
split($0, a, "=")
print a[2];
exit
}'
dando saída de on
ou off
.
Também é possível usar comandos e especificar por iface
+ name
etc., por exemplo:
Obter lista por:
$ amixer -c 0 controls
Onde -c 0
especifica o cartão, não necessário se padrão ou somente um. Então, por exemplo:
$ amixer -c 0 cget numid=29,iface=CARD
$ amixer -c 0 cget numid=29,iface=CARD | awk -F"=" 'NR == 3 {print $2;}'
Eu encontrei uma parte do software uma vez, acredito que ele usou o Tcl / Tk, que exibia o poder de pinagem para todas as portas no computador + muitas outras informações de HW. Foi um bom software - mas não consigo encontrá-lo novamente. Eu olhei através de 12 HDDs antigos sem sorte. Eu usei para depurar algumas portas de entrada. Então, sim, é definitivamente possível pesquisar o status de uma porta específica.
Jack é difícil de pesquisar na web devido a JACK . Isso torna quase impossível.
Eu tenho um código C que faz algumas pesquisas de informações de placa de som. Tem que procurar se eu puder encontrar.