CD kinyitása a nyitó gombbal

Fórumok

Van egy atomos gépem, amit routernek és CD lejátszónak használok. Nincs rá monitor és billentyűzet kötve, csak álldigál a sarokban. Ezzel a scripttel szoktam rajta CD-t lejátszani. A script az rc.local-ból indítva démonként fut:


#!/bin/bash
# STATUS == 'play '      -  ha éppen megy a(z analóg) lejátszás
# STATUS == 'no_disc'    -  ha nincs lemez a lejátszóban
# STATUS == 'no-status ' -  ha van lemez a lejátszóban, de nem megy a lejátszás

while true; do
    STATUS=`cdinfo`
    #echo 1-!$STATUS! `date` #szóköz van a végén?
    
    if [ "$STATUS" == "no-status " ]; then
        killall icedax
        icedax dev=/dev/cdrom --no-infofile --max --speed 1 --alltracks  - | aplay &
        #icedax dev=/dev/cdrom -I cooked_ioctl -eNB &
        
        while true; do
            STATUS=`cdinfo`
            #echo 2-!$STATUS! `date` #szóköz van a végén?
            if [ "$STATUS" != "no-status " ]; then
                killall icedax
                break
            fi
            sleep 1
        done
    fi
    sleep 2
done

Működés: A cdinfo program detektálja, ha beraktak egy CD-t, ekkor elindul icedax-szal a lejátszás. A belső ciklus megvárja, hogy kivegyék a CD-t, akkor fordul egyet a külső ciklus, be lehet tenni egy másik CD-t. Elég primitív, egyedül a CD nyitó-csukó gommbal lehet vezérelni, de nekem éppen megfelel. Debian Lennyn évekig használtam. Csakhogy frissítettem Ubuntu Precisera: a script nem működik. Az a baj, hogy a CD nyitó gombbal nem lehet kinyitni a CD-t.

Külön bekezdésben kiemelem a fejlődés nagyszerű eredményét: A CD nyitó gomb nem nyitja a CD-t!

A CD akkor sem nyílik, amikor tart az icedax lejátszás, és akkor sem, amikor az icedax már befejezte. Lennyn a gomb a lejátszást is félbe tudta szakítani. Baromi kényelmetlen, hogy a CD kivételéhez be kell kapcsolni egy másik gépet, hogy lehessen neki eject-et monddani.

Kérdésem, meg lehet-e valahogy oldani, hogy az Ubuntu ne lockolja a CD nyitást?

Hozzászólások

Köszönöm, közben én is megtaláltam. A korszerűsített script:


#!/bin/bash

CDROM=/dev/cdrom2

#exit 0
#set -x

# STATUS == 'play '      -  ha éppen megy a(z analóg) lejátszás
# STATUS == 'no_disc'    -  ha nincs lemez a lejátszóban
# STATUS == 'no-status ' -  ha van lemez a lejátszóban, de nem megy a lejátszás

while true; do
    STATUS=`cdinfo`
    #echo 1-!$STATUS! `date` #szóköz van a végén?
    
    if [ "$STATUS" != "no_disc" ]; then
        killall icedax

        icedax dev=$CDROM --no-infofile --max --speed 1 --alltracks  - | aplay &
        #icedax dev=$CDROM -I cooked_ioctl -eNB &
        
        while true; do
            STATUS=`cdinfo`
            #echo 2-!$STATUS! `date` #szóköz van a végén?

            if [ "$STATUS" == "no_disc" ]; then
                killall icedax
                break
            fi
            sleep 2
            sudo eject -i off $CDROM
        done
    fi

    sleep 2
    sudo eject -i off $CDROM
done

Az eject -i on|off egy újabb fejlemény, ami a Lennyben még nem volt.

--
ulysses.co.hu

Van valahol olyan CD-meghajtóm amin a nyitó gomb mellett lejátszó gomb is van ha megtalálom érdekel ?

1) A lejátszógombos lejátszás úgy használja a meghajtót, mint egy asztali cd lejátszót.

2) Az icedax ezzel szemben ripel (wav-ot állít elő), és azt röptében lejátssza, vagy nálam a scriptben pipe-olja az aplay-nek.

Az a tapasztalat, hogy a 2-es módszer ellenállóbb a cd hibáival szemben. Olyan hibás cd-ket is le lehet játszani a ripelős módszerrel, amiken egy asztali lejátszó (1-es módszer) elakad.

--
ulysses.co.hu

Esetleg ilyenen nem gondolkoztál? Jóval egyszerűbb a lemezcsere, és kiforrott technológia, tartja az értékét...

http://antik.vatera.hu/radio_gramofon_hangszer/rez_csoves_tolcseres_gra…

--
Kis problémából egy kis munkával nagy problémát lehet gyártani. Ha valami müxik ne b***tasd :)
Uriember az, aki nem beszél a Windows-ról, pedig tudna...

Like, +1, Subscribe, smájli

Tetszik ez a script.