Autore Topic: auricolari  (Letto 1674 volte)

facs

  • Hero Member
  • *****
  • Post: 716
    • Mostra profilo
auricolari
« il: Gennaio 04, 2009, 02:50:21 pm »
Ciao ragazzi ho un problema da quando ho lasciato la 2007.2 e sembra persistere con tutte le 2008.x, quando attacco gli auticolari al moko non mi cambia profilo, mi sono fatto uno script che lancio dal desktop che esegue da terminale:
Codice: [Seleziona]
alsactl -f /usr/share/openmoko/scenarios/gsmheadset.state restore

Come posso far si che in automatico mi carichi il profilo per gli auricolari?

Grazie a tutti.
Distro
Flash: 2008.12
SD: QTmoko V19
+++++++[>++++++++++<-]>.<++++++++++[>+++<-]>---.++.++++++++++++++++.

facs

  • Hero Member
  • *****
  • Post: 716
    • Mostra profilo
Re:auricolari
« Risposta #1 il: Gennaio 04, 2009, 05:41:25 pm »
Ciao a ttutti ho trovato nella ML questo:
http://lists.openmoko.org/nabble.html#nabble-td1090423
Ho provato i 2 script ma non funzaionano...

Altre idee?

Ciao
Distro
Flash: 2008.12
SD: QTmoko V19
+++++++[>++++++++++<-]>.<++++++++++[>+++<-]>---.++.++++++++++++++++.

facs

  • Hero Member
  • *****
  • Post: 716
    • Mostra profilo
Re:auricolari
« Risposta #2 il: Gennaio 05, 2009, 10:26:15 pm »
Ciao, premetto che non sono un programmatore, ho provato a modificare gli script che ho trovato nel link sopra citato ed in questo modo funzionano, unico requisito è che bisogna inserire l'auricolare quando il dialer è aperto e abbiamo in arrivo una chiamata o la stiamo facendo.
Ecco il primo script:
Codice: [Seleziona]
/usr/bin/jdd
#!/usr/bin/python
# -*- coding: utf-8 -*-
# jack.py - An application to read jack
#
# Version 0.1
#
# Authors: Francois TOURDE <fr-om@...>
#
# Copyright (c) 2008 François TOURDE
#
# jack.py is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3 of the License, or (at your
# option) any later version.
#
# jack.py is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# TODO
#
# Change List
# Change command to activate gsmheadset alsa profile
#
# 2008-09-03: First release


import os
import sys

# Hexdump of /dev/input/event0
# When jack inserted
#     9131 48be a594 0001 0005 0002 0001 0000
#     9131 48be a5f9 0001 0000 0000 0000 0000
# When jack removed
#     9131 48be a594 0001 0005 0002 0000 0000
#     9131 48be a5f9 0001 0000 0000 0000 0000

# Where files are stored
p="/usr/share/openmoko/scenarios/"
ps="saved/"

# Open the jack sensor
f = open("/dev/input/event0", "r")

while 1:
  block = f.read(16)
  if block[8] == "\x05":
    if block[10] == "\x02":
      if block[12] == "\x01":
        # Moving to headset mechanism:
        # point stereoout to headset
        # point gmshandset to gsmheadset
        #os.system("ln -sf %s%s%s %s%s" % (p, ps, "headset.state", p, "stereoout.state"))
        #os.system("ln -sf %s%s%s %s%s" % (p, ps, "gsmheadset.state", p, "gmshandset.state"))
        #os.system("alsactl -f %sstereoout.state restore" % p)
        os.system("alsactl -f /usr/share/openmoko/scenarios/gsmheadset.state restore")
      if block[12] == "\x00":
        # Moving to handset mechanism
        # point stereoout to stereoout
        # point gsmhandset to gsmhandset
        #os.system("ln -sf %s%s%s %s%s" % (p, ps, "stereoout.state", p, "stereoout.state"))
        #os.system("ln -sf %s%s%s %s%s" % (p, ps, "gsmhandset.state", p, "gmshandset.state"))
        #os.system("alsactl -f %sstereoout.state restore" % p)
        os.system("alsactl -f /usr/share/openmoko/scenarios/gsmhandset.state restore")

# Close the jack
f.close()
Le modifiche che ho fatto sono alle righe che iniziano per os.system
Ecco il secondo:
Citazione
/etc/init.d/jdd
#!/bin/sh
#
# Start or stop the Jack Detector Daemon.
#
# Written by Francois TOURDE <fr-om@...>
#


[ -f /etc/default/jdd ] && . /etc/default/jdd

case "$1" in
    start)
        echo -n "Starting jdd daemon: "
        start-stop-daemon -S -x /usr/bin/jdd &
        if [ $? = 0 ]; then
            echo "jdd."
        else
            echo "(failed.)"
        fi
        ;;
    stop)
        echo -n "Stopping jdd daemon: "
        #start-stop-daemon -K -x /usr/bin/jdd &
        for pid in `ps -C jdd|grep jdd |awk '{print $1}'`
        do
                ps -p $pid|grep  -q jdd &&  kill $pid
        done
        echo "jdd."
        ;;
    restart|force-reload)
        $0 stop
        $0 start
        exit
        ;;
    *)
        echo "Usage: /etc/init.d/jdd {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0
Ho fatto una modifica nella sezione dello stop perchè non funzionava, ci ho aggiunto un ciclo for che killa i processi jdd se presenti, questo perchè il comando ps -C jdd mi tira fuori 3 pid invece di uno e quindi voglio essere sicuro di killare il pid corretto.
Ultima cosa bisogna attivarlo al boot del moko:
Codice: [Seleziona]
update-rc.d jdd start 5 .Spero possa tornare utile anche a voi.
Ciao
Distro
Flash: 2008.12
SD: QTmoko V19
+++++++[>++++++++++<-]>.<++++++++++[>+++<-]>---.++.++++++++++++++++.

djdas

  • Hero Member
  • *****
  • Post: 2689
  • Namastè - Om Mani Pedmè Hung
    • Mostra profilo
Re:auricolari
« Risposta #3 il: Gennaio 08, 2009, 03:13:01 pm »
Ciao :)
Premesso che non ho provato gli script perché ancora non ho avuto tempo di scaricarli e installarli, ma avevo due appunti:
1) invece di avere due cartelle con gli scenarios e fare tutti i vari spostamenti e copie, non si potrebbe fare dei soft link a file nella stessa cartella e cambiare i puntamenti di volta in volta?
2) anziché il ciclo for per killare i PID hai provato con "killall jdd"? ;)
Ciau!
Distro FDTF Download: TAR ,JFFS2,Kernel

djdas

  • Hero Member
  • *****
  • Post: 2689
  • Namastè - Om Mani Pedmè Hung
    • Mostra profilo
Re:auricolari
« Risposta #4 il: Gennaio 08, 2009, 03:14:36 pm »
OPS! Sorry, lascia perdere la prima domanda, non avevo letto che c'erano dei commenti :P
Scusate Ciau!
Distro FDTF Download: TAR ,JFFS2,Kernel

furester

  • Hero Member
  • *****
  • Post: 1296
    • Mostra profilo
    • Xenos Blog All
Re:auricolari
« Risposta #5 il: Gennaio 08, 2009, 07:17:21 pm »
Scusate un attimo .. questi script servono solo per le chiamate e funzionano solo se si inseriscono le cuffiette mentre abbiamo una chiamata in arrivo, giusto? Cioè .. nn è che se io ho inserito gli auricolari in automatico il suono esce da lì e solo da lì!? Quindi non posso usare il FR come lettore mp3?

UPDATE: ho riprovato or ora con starling appena compilato su SHR e l'output da cuffie funziona così come quando tolgo il jack torna a suonare dalla cassa interna, quindi posso affermare che SHR\FSO ha risolto il problema!
« Ultima modifica: Gennaio 08, 2009, 07:38:14 pm da furester »

facs

  • Hero Member
  • *****
  • Post: 716
    • Mostra profilo
Re:auricolari
« Risposta #6 il: Gennaio 08, 2009, 09:26:04 pm »
Grazie djdas, con killall jdd funziona, ecco lo script in versione definitiva:
Codice: [Seleziona]
#!/bin/sh
#
# Start or stop the Jack Detector Daemon.
#
# Written by Francois TOURDE <fr-om@...>
#
#
# jdd  This shell script starts and stops jdd.
#
# chkconfig: 5 90 40
# description: jdd manages the headset profile
# processname: jdd


[ -f /etc/default/jdd ] && . /etc/default/jdd

case "$1" in
    start)
        echo -n "Starting jdd daemon: "
        start-stop-daemon -S -x /usr/bin/jdd &
        if [ $? = 0 ]; then
            echo "jdd."
        else
            echo "(failed.)"
        fi
        ;;
    stop)
        echo -n "Stopping jdd daemon: "
        killall jdd
        echo "jdd."
        ;;
    restart|force-reload)
        $0 stop
        $0 start
        exit
        ;;
    *)
        echo "Usage: /etc/init.d/jdd {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0
Ciao ciao
Distro
Flash: 2008.12
SD: QTmoko V19
+++++++[>++++++++++<-]>.<++++++++++[>+++<-]>---.++.++++++++++++++++.

djdas

  • Hero Member
  • *****
  • Post: 2689
  • Namastè - Om Mani Pedmè Hung
    • Mostra profilo
Re:auricolari
« Risposta #7 il: Gennaio 08, 2009, 11:43:04 pm »
Di niente ;)
@furester: secondo me potrebbe funzionare anche come lettore MP3, basterebbe rendere un po' intelligente il demone, nel senso che si potrebbe "conservare lo stato" cioè il file precedentemente caricato e ripristinarlo all'estrazione della cuffia (in pratica invece di mettere solo gsmhandset.state all'estrazione, sapere quale stato precedentemente era presente e quindi nel caso di uso come lettore MP3 dovrebbe essere speakerout.state), l'unica cosa è che se le applicazioni modificano lo stato esternamente al demone si fa casino, ma penso che in FSO/SHR si occupi di tutto DBUS e quindi, come d'altronde hai testato, funziona ;)
Ciau!
Distro FDTF Download: TAR ,JFFS2,Kernel