Fixes related to cleaning up modem functionality; fix audio; add flash toggle

master
Miles Alan 5 years ago
parent b37138c845
commit 34b2c57038
  1. 5
      README.md
  2. 5
      configs/default_alsa_sound.conf
  3. 3
      scripts/core/sxmo_appmenu.sh
  4. 6
      scripts/core/sxmo_flashtoggle.sh
  5. 2
      scripts/core/sxmo_statusbar.sh
  6. 31
      scripts/modem/sxmo_modemcall.sh
  7. 13
      scripts/modem/sxmo_modemmonitor.sh
  8. 2
      scripts/modem/sxmo_modemmonitortoggle.sh
  9. 13
      scripts/modem/sxmo_modemtext.sh

@ -0,0 +1,5 @@
# sxmo-utils
This repository contains scripts and C programs to support sxmo.

@ -1,4 +1,3 @@
# Mute speaker, only output to headphones
state.sun50ia64audio {
control.1 {
iface MIXER
@ -429,8 +428,8 @@ state.sun50ia64audio {
control.33 {
iface MIXER
name 'DAC Mixer AIF2 DAC Playback Switch'
value.0 true
value.1 true
value.0 false
value.1 false
comment {
access 'read write'
type BOOLEAN

@ -40,13 +40,12 @@ programchoicesinit() {
# System Control menu
echo $WMCLASS | grep -i "config" && CHOICES="$(echo "
Volume ↑ ^ 1 ^ sxmo_vol.sh up
Volume ↓ ^ 1 ^ sxmo_vol.sh down
Brightesss ↑ ^ 1 ^ sxmo_brightness.sh up
Brightness ↓ ^ 1 ^ sxmo_brightness.sh down
Modem $(pgrep -f sxmo_modemmonitor.sh >/dev/null && echo -n "On → Off" || echo -n "Off → On") ^ 1 ^ sxmo_modemmonitortoggle.sh
Modem Info ^ 0 ^ sxmo_modeminfo.sh
Modem Log ^ 0 ^ sxmo_modemlog.sh
Flash $(cat /sys/class/leds/white:flash/brightness | grep -E '^0$' > /dev/null && echo -n "Off → On" || echo -n "On → Off") ^ 1 ^ sxmo_flashtoggle.sh
Rotate ^ 1 ^ rotate
Wifi ^ 0 ^ st -e "nmtui"
Upgrade Pkgs ^ 0 ^ st -e sxmo_upgrade.sh

@ -0,0 +1,6 @@
#!/usr/bin/env sh
sxmo_setpineled white "$(
cat /sys/class/leds/white:flash/brightness |
grep -E '^0$' > /dev/null && echo 255 || echo 0
)"

@ -24,7 +24,7 @@ do
# Volume
VOL=$(
echo "$(audiodevice)" |
echo "$(amixer sget $(audiodevice))" |
grep -oE '([0-9]+)%' |
tr -d ' %' |
awk '{ s += $1; c++ } END { print s/c }' |

@ -1,9 +1,12 @@
#!/usr/bin/env sh
PID=$$
LOGDIR=/home/$USER/.sxmo
trap "kill 0" SIGINT
err() {
echo -e "$1" | dmenu -fn Terminus-20 -c -l 10
kill $$
alsactl --file /usr/share/sxmo/default_alsa_sound.conf restore
kill -9 0
}
modem_n() {
@ -11,10 +14,11 @@ modem_n() {
}
contacts() {
cat $LOGDIR/modemlog.tsv | cut -f3 | sort | uniq | awk NF
RES="$(cat $LOGDIR/modemlog.tsv | cut -f3 | sort | uniq | awk NF)"
echo $RES
echo -e "$RES" | grep 8042221111 || echo Test Number 8042221111
}
modem_cmd_errcheck() {
ARGS="$@"
RES="$(mmcli $ARGS 2>&1)"
@ -23,15 +27,16 @@ modem_cmd_errcheck() {
}
vid_to_number() {
mmcli -m $(modem_n) -o $1 -K | grep call.properties.number | cut -d ':' -f2 | tr -d ' '
mmcli -m $(modem_n) -o $1 -K | grep call.properties.number | cut -d ':' -f2 | tr -d ' ' | sed 's/^[+]//' | sed 's/^1//'
}
log_event() {
EVT_HANDLE="$1"
EVT_VID="$2"
NUMBER="$(vid_to_number $EVT_VID)"
NUM="$(vid_to_number $EVT_VID)"
TIME="$(date --iso-8601=seconds)"
echo -ne "$TIME\t$EVT_HANDLE\t$NUMBER\n" >> $LOGDIR/modemlog.tsv
mkdir -p $LOGDIR
echo -ne "$TIME\t$EVT_HANDLE\t$NUM\n" >> $LOGDIR/modemlog.tsv
}
toggleflag() {
@ -52,12 +57,13 @@ toggleflag() {
dialmenu() {
CONTACTS="$(contacts)"
NUMBER="$(
echo -e "Close Menu\n$CONTACTS\nTest Number 804-222-1111" |
sxmo_dmenu_with_kb.sh -l 10 -p Number -c -fn Terminus-20 |
awk -F' ' '{print $NF}' |
tr -d -
echo -e "Close Menu\n$CONTACTS" |
sxmo_dmenu_with_kb.sh -l 10 -p Number -c -fn Terminus-20
)"
echo $NUMBER | grep "Close Menu" && kill $$
echo "$NUMBER" | grep "Close Menu" && kill 0
NUMBER="$(echo $NUMBER | awk -F' ' '{print $NF}' | tr -d -)"
echo "$NUMBER" | grep -E '^[0-9]+$'> /dev/null || err "$NUMBER is not a number"
echo "Attempting to dial: $NUMBER" >&2
VID="$(
@ -72,7 +78,7 @@ startcall() {
VID="$1"
#modem_cmd_errcheck --voice-status -o $VID
modem_cmd_errcheck -m $(modem_n) -o $VID --start
log_event "call_start" $VID
log_event "call_start" "$VID"
}
acceptcall() {
@ -163,7 +169,6 @@ dtmfmenu() {
done
}
dial() {
VID="$(dialmenu)"
incallmenu $VID

@ -21,10 +21,13 @@ newcall() {
INCOMINGNUMBER=$(
mmcli -m $(modem_n) --voice-list-calls -o "$VID" -K |
grep call.properties.number |
cut -d ':' -f 2
cut -d ':' -f 2 |
sed 's/^[+]//' |
sed 's/^1//'
)
TIME="$(date --iso-8601=seconds)"
mkdir -p $LOGDIR
echo -ne "$TIME\tcall_ring\t$NUMBER\n" >> $LOGDIR/modemlog.tsv
echo "$VID:$INCOMINGNUMBER" > /tmp/sxmo_incomingcall
echo "Number: $INCOMINGNUMBER (VID: $VID)"
@ -39,7 +42,13 @@ newtexts() {
DAT="$(mmcli -m $(modem_n) -s $i -K)"
TEXT="$(echo "$DAT" | grep sms.content.text | sed -E 's/^sms\.content\.text\s+:\s+//')"
NUM="$(echo "$DAT" | grep sms.content.number | sed -E 's/^sms\.content\.number\s+:\s+[+]?//')"
NUM="$(
echo "$DAT" |
grep sms.content.number |
sed -E 's/^sms\.content\.number\s+:\s+[+]?//' |
sed 's/^[+]//' |
sed 's/^1//'
)"
TIME="$(echo "$DAT" | grep sms.properties.timestamp | sed -E 's/^sms\.properties\.timestamp\s+:\s+//')"
TEXTSIZE="$(echo $TEXT | wc -c)"

@ -3,6 +3,6 @@ pgrep -f sxmo_modemmonitor.sh && pkill -9 -f sxmo_modemmonitor.sh || sxmo_modemm
rm /tmp/sxmo_incomingcall
# E.g. wait until process killed or started -- maybe there's a better way..
sleep 0.2
sleep 1
echo 1 > /tmp/sxmo_bar

@ -11,8 +11,9 @@ modem_n() {
mmcli -L | grep -oE 'Modem\/([0-9]+)' | cut -d'/' -f2
}
contacts() {
cat $LOGDIR/modemlog.tsv | cut -f3 | sort | uniq | awk NF
textcontacts() {
# TODO: is find automatically sorted by timestamp?
find $LOGDIR/* -type d -maxdepth 1 | awk -F'/' '{print $NF}' | tac
}
editmsg() {
@ -24,7 +25,7 @@ editmsg() {
sendmsg() {
MODEM=$(modem_n)
NUMBER="$1"
NUMBER="$(echo "$1" | sed 's/^[+]//' | sed 's/^1//')"
TEXT="$2"
TEXTSIZE="$(echo "$TEXT" | wc -c)"
@ -38,7 +39,7 @@ sendmsg() {
done
TIME="$(date --iso-8601=seconds)"
mkdir -p ~/.sxmo/$NUMBER
mkdir -p $LOGDIR/$NUMBER
echo -ne "Sent to $NUMBER at $TIME:\n$TEXT\n\n" >> $LOGDIR/$NUMBER/sms.txt
echo -ne "$TIME\tsent_txt\t$NUMBER\t$TEXTSIZE chars\n" >> $LOGDIR/modemlog.tsv
@ -50,7 +51,7 @@ sendtextmenu() {
# Prompt for number
NUMBER=$(
echo -e "\nCancel\n$(contacts)" |
echo -e "\nCancel\n$(textcontacts)" |
awk NF |
sxmo_dmenu_with_kb.sh -p "Number" -fn "Terminus-20" -l 10 -c
)
@ -79,7 +80,7 @@ tailtextlog() {
main() {
# Display
ENTRIES="$(echo -e "$(contacts)" | xargs -INUM echo NUM logfile)"
ENTRIES="$(echo -e "$(textcontacts)" | xargs -INUM echo NUM logfile)"
ENTRIES="$(echo -e "Close Menu\nSend a Text\n$ENTRIES")"
NUMBER="$(echo -e "$ENTRIES" | dmenu -p Texts -c -fn Terminus-20 -l 10)"
echo $NUMBER | grep "Close Menu" && exit 1

Loading…
Cancel
Save