From 26c1d8db4284880bcab0db449e9d1634e157dc7b Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sun, 6 Feb 2011 20:44:35 +1100 Subject: [PATCH] Lots of random updates Just trying to sync-up with various previously-untracked things Signed-off-by: NeilBrown --- NOTES/Control | 73 ++ NOTES/Debian | 70 ++ NOTES/Network | 15 + TODO => NOTES/TODO | 0 NOTES/TODO2 | 868 ++++++++++++++ Shop/shop.py | 2160 +++++++++++++++++++++++++++++++++++ Shop/t.table | 4 + Shop/test.list | 4 + Shop/test.table | 39 + Shop/todo | 67 ++ apmhacks/apmd_proxy | 98 ++ auxlaunch/auxlaunch.py | 457 ++++++++ auxlaunch/auxlaunch2.py | 457 ++++++++ gsm/At.Commands.pdf | Bin 0 -> 2678165 bytes gsm/notes | 105 ++ guessture | 1 + launcher/.launchrc | 25 + launcher/fingerscroll.py | 85 ++ launcher/gpstz | 62 + launcher/launch.py | 1411 +++++++++++++++++++++++ launcher/launch_settings.py | 26 + launcher/wmctrl.py | 153 +++ launcher/wpa | 160 +++ lib/decode-long-sms.c | 45 + lib/decode-long-sms.py | 25 + lib/play.py | 133 +++ lib/pyfakekey.c | 20 + lib/tapinput.py | 347 ++++++ mickeyterm/mickeyterm.py | 532 +++++++++ music/music.py | 852 ++++++++++++++ music/notes | 28 + music/properties.py | 40 + netchoose/mdbus.py | 431 +++++++ netchoose/netchoose.py | 89 ++ sms/contact.py | 21 + sms/exesms | 48 + sms/notes | 290 +++++ sms/sendsms.py | 1595 ++++++++++++++++++++++++++ sms/storesms.py | 483 ++++++++ sms/test.py | 33 + sounds/formats.h | 127 ++ sounds/sound.c | 1440 +++++++++++++++++++++++ sounds/sounds.py | 263 +++++ test/autocon.c | 60 + test/clock.py | 36 + test/fake-test.c | 31 + test/notify.py | 12 + test/pykey.py | 130 +++ test/reflash | 5 + test/status.py | 51 + test/test.py | 49 + test/test1.py | 35 + test/test2.py | 29 + test/wkalrm.c | 244 ++++ 54 files changed, 13864 insertions(+) create mode 100644 NOTES/Control create mode 100644 NOTES/Debian create mode 100644 NOTES/Network rename TODO => NOTES/TODO (100%) create mode 100644 NOTES/TODO2 create mode 100755 Shop/shop.py create mode 100644 Shop/t.table create mode 100644 Shop/test.list create mode 100644 Shop/test.table create mode 100644 Shop/todo create mode 100755 apmhacks/apmd_proxy create mode 100755 auxlaunch/auxlaunch.py create mode 100644 auxlaunch/auxlaunch2.py create mode 100644 gsm/At.Commands.pdf create mode 100644 gsm/notes create mode 160000 guessture create mode 100644 launcher/.launchrc create mode 100644 launcher/fingerscroll.py create mode 100644 launcher/gpstz create mode 100644 launcher/launch.py create mode 100644 launcher/launch_settings.py create mode 100644 launcher/wmctrl.py create mode 100644 launcher/wpa create mode 100644 lib/decode-long-sms.c create mode 100644 lib/decode-long-sms.py create mode 100644 lib/play.py create mode 100644 lib/pyfakekey.c create mode 100644 lib/tapinput.py create mode 100755 mickeyterm/mickeyterm.py create mode 100755 music/music.py create mode 100644 music/notes create mode 100644 music/properties.py create mode 100644 netchoose/mdbus.py create mode 100755 netchoose/netchoose.py create mode 100644 sms/contact.py create mode 100644 sms/exesms create mode 100644 sms/notes create mode 100644 sms/sendsms.py create mode 100644 sms/storesms.py create mode 100644 sms/test.py create mode 100644 sounds/formats.h create mode 100644 sounds/sound.c create mode 100644 sounds/sounds.py create mode 100644 test/autocon.c create mode 100644 test/clock.py create mode 100644 test/fake-test.c create mode 100644 test/notify.py create mode 100644 test/pykey.py create mode 100644 test/reflash create mode 100644 test/status.py create mode 100644 test/test.py create mode 100644 test/test1.py create mode 100644 test/test2.py create mode 100644 test/wkalrm.c diff --git a/NOTES/Control b/NOTES/Control new file mode 100644 index 0000000..8c5abd1 --- /dev/null +++ b/NOTES/Control @@ -0,0 +1,73 @@ + +Overall control: + - blanking + - suspend + - screen-lock + - screen-capture + - screen-rotate? + - charging current ?? + - + +Use AUX button?? + + +Blanking: + Need to know if screen is being used. + hint: if GPS is on, then screen is watched. + if touchpad gets input, then screen is watched. + if power is on can wait longer. + After 10 seconds of no touchpad, check power and gps power + + /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/charger_type + starts "none" or "host" + /sys/bus/platform/devices/neo1973-pm-gps.0/pwron + 0 or 1 + + First stage blank goes to half brightness and disables keyboard + A tap goes full and enables. (so we lose the tap) + + Second stage goes off. Tap returns to first stage. + +Suspend: + Need to know when system is being used: + - network connections other than 127.0.0.1 + - active phone call + - active screen + +So: + + We have a current state: + on: screen is on and accepting input + half: screen is reduced brightness and blocked + off: screen is off, input is diverted + + We have a time of last touchpad input + + We measure: + gps power + charger type + network connections. + + We decide in new state and timeout + We change state (if needed) and sleep. + sleeping involves reading touchpad so we know time of last input. + + + switch state: + case 'on': + if last input < 10 seconds, set time for remaining seconds done + if charger and last input < 30 seconds, as above + set state to half + set time to 50 + + case 'half' + if < 10 seconds, set state to on, wait 10 seconds + if gps power wait for 10 minutes, else 1 minute + set state to off + + case 'off' + if < 10 seconds, set state to half, wait 10 seconds + if gps, wait 30 minutes, else 2 minutes + if network or charger, stay at off indefinately + if time is up, "apm -s", assume input, set to 'on'. + diff --git a/NOTES/Debian b/NOTES/Debian new file mode 100644 index 0000000..610e523 --- /dev/null +++ b/NOTES/Debian @@ -0,0 +1,70 @@ + +Install + +remove fso-frameworkd and zhone +but keep python-gst10.0 and python-gtk, apmd +discard dash, just use bash + +Install latest andy-tracking kernel plus modules + +add gcc, libc6-dev, and some other dev to get gsm0710muxd to compile +add nfs-utils +add less, lsof +add x11-utils +add gpsd tangogps +add xserver-xglamo +add mplayer +add ntpdate +add bc +gcc libc6-dev nfs-utils less lsof x11-utils gpsd tangogps xserver-xglamo mplayer ntpdate bc + +add libts-bin and calibrate the touchscreen with ... you cannot + just copy /etc/pointercal + 557 38667 -4654632 -51172 121 46965312 65536 + + +dpkg-reconfigure gpsd + tell it to use /dev/ttySAC1 +echo 1 > + /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-regltr.7/neo1973-pm-gps.0/power_on + /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-regltr.7/neo1973-pm-gps.0/keep_on_in_suspend + +add telnet + +DPI is different... what to do?? + +remove /var/lib/apt/lists and symlink to /media/card +remove /var/cache/apt and symlink to /media/card +remove /usr/share/man /usr/share/doc + should probably mount tmpfs on those to avoid getting new stuff + + +/dev/ttySAC don't get setup!! +rather we get +crw-rw---- 2 root dialout 204, 64 Feb 11 13:51 s3c2410_serial0 +crw-rw---- 2 root dialout 204, 65 Feb 11 12:03 s3c2410_serial1 +crw-rw---- 2 root dialout 204, 66 Feb 11 12:03 s3c2410_serial2 + +echo 'KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"' > /etc/udev/rules.d/56-ttySAC.rules + +or >> /etc/udev/rules.d/56-freerunner.rules + + + +add wmctrl for launch - should get rid of this +---- +copy gsm0710muxd, run it +copy Freerunner/gsm,lib/* to /usr/local/lib/python2.5/site-packages/ +chmod +X gsmd and link to /usr/local/bin +add #!env to top +mkdir /var/run/gsm-state +mkdir /var/lib/misc/flightmode + and > active +copy apmd/ + + +Need to: + start gsm0710muxd + gsmd + launch + diff --git a/NOTES/Network b/NOTES/Network new file mode 100644 index 0000000..688647b --- /dev/null +++ b/NOTES/Network @@ -0,0 +1,15 @@ + +Want to have easy config for network: + + Start/stop GPRS, and set AP name + Start/stop wireless, and set AP name + +So: + Big "GPRS" button toggles on/off + text entry for AP name + + Big "WLAN" button toggles on/off + If on and no ESSID chosen, try to fill in box. + + +AP name is stored in /media/card/gprs diff --git a/TODO b/NOTES/TODO similarity index 100% rename from TODO rename to NOTES/TODO diff --git a/NOTES/TODO2 b/NOTES/TODO2 new file mode 100644 index 0000000..5637046 --- /dev/null +++ b/NOTES/TODO2 @@ -0,0 +1,868 @@ +TODO: sep 2009, now that I am using this as my real phone: + - send touch tone commands + - keep record of incoming/outgoing calls + - reduce time from wake to ring +TODO: + DONE runit to scroll to the bottom + DONE bigger buttons in runit + text, not icons, for shop config stuff + DONE launch/status to update more often + DONE gsm info in launch/status + DONE gsmd: reading 'extra' needs to cope with multiple lines: + SMS: + - update git + - add 'xterm' so I can type... + DONE - add 'esc' to 'tapinput' + - look for launch errors in .xsession-errors: + File "/usr/local/bin/launch", line 324, in press + if not self.offsets: +AttributeError: 'Selector' object has no attribute 'offsets' + + - make sure launch updates when sms message arrives + - find out why everything is so slow + - make sure only one 'gsm-getsms' running at a time. Maybe kill + old one? + - trace?? to find out why we don't seem to pick up a message on + resume. The newsms file gets changed but maybe no signal gets sent. + - "sendsms -n" should go straight to 'new'. + - clean up rubbish in 'new' and 'draft' files. + - lock should be in charge of buzzer. + It turns it off on 'wake' or after a timeout and turns it on when some file changes. + Maybe there is an 'alert' file which gets 'sms' or 'ring'. + In the case of 'ring' it is updates regularly. + 'lock' sets a buzz, turns on display, maybe beeps + - run gsm-getsms at appropriate times + -n when /var/run/gsm-state/new-sms changes + DONE -a at boot time, or when gsmd starts?? + - write some info to a 'new sms' file that I can watch for status + Probably just watch the 'newmesg' log and update shortly after that changes. + - improve atchan code - better abstractions + - 'delete' should return to list view if in message view + - Make sure sendsms notices when the files change + - Make 'sender' and time easier to read. + Probably make lines twice as high + time can be 'today' and 'yesterday' and ' 5 minutes ago' etc + mark day/month boundaries some how? + - figure out if a '+' should be at the front of the phone number + - look into timezone information on exesms messages + - implement search function + - Highlight 'new', 'draft' 'in/out' better. Icon? + - Don't duplicate a draft when we edit it. + - Find some way to remove cruft from new/draft + - buzz buzzer when message arrives. + - include transit time in full message view. + - Make messages disappear from 'new' when they are read. + - popup reading in 'new' mode when selected from launcher + - capture and decode catenated messages + - figure out why changing lists is so slow. + - implement undelete. + - implement scrolling of message list + - change 'open' to 'forward' or 'edit' + - add 'reply' button + ?? detect SIM card id and have separate mirror file?? + AT+CIMI + 505038191025166 + 505038240084403 + - move 'config' to 'listing' page? + - change between 'save draft' and 'cancel' when clear. + - press-and-hold send to select handler + - make 'paste' active only when there is something to paste + - send only active when fields are filled in. + + +receive AT response +CBM: 4576,50,1,1,1 +receive AT response South +receive AT response Sydney +receive AT response + +Sms-store: + DONE store direction (in/out) and only one address (Sender or recipient) + +Inter toy communication: + e.g. + play this tune + call this number + I want the speakers + don't suspend just now + call me on resume + everybody pause + + Use X clipboards for specific messages + use lock files for 'dont' + use leases for 'call me' and 'everybody' + That would require all running as same uid. + Maybe DNOTIFY, but cannot use that well from python + So write C helper and do inotify? + But check gobject doco first. + I think I can use dnotify OK, poll each file on each signal. + So use that for 'call me on resume' + Possibly for 'incoming call', 'received sms', + Maybe for 'Internet now available' + Used by weather, time, + Also 'GSM' and 'GPS' now available + + Root Properties - one-to-many messages. that are ui based. + e.g. 'pause' 'ABC/abc/123/$%&', 'scale size' + + So: suspend. + We have a directory /var/lock/suspend + containing: + auto: Taking a LOCK_SH on this prevents auto suspend. + If auto-suspender can get a LOCK_EX, it suspends, then + unlocks on resume + suspend: Taking a LOCK_SH on this prevents any suspend completing. + However any locker must also watch the file with e.g. + dnotify, and when the file is nonempty, the lock must be + released promptly. + next_suspend: Taking a lock on this while holding a lock on + suspend ensures that you will not miss a suspend/resume cycle. + On resume, the file is renamed to 'suspend', + So 'dnotify' can discover when resume happens and a subsequent + suspend will not complete until the lock is released. + + A client with: + take a lock on 'suspend' + check that link count is non-zero (if zero, close and loop) + loop: + set up for active system + wait + when there is a change in the file: + set up for suspend + possibly take lock on next_suspend + release lock + wait for activity on next_suspend (which will be renamed to 'suspend') + goto loop + + +Alert: + Alert is currently part of 'lock'. Is that a good idea? + The connection is that we only want to sound an alert if there is + an easy way to turn it off - and 'lock' is in the best position to + turn things off. It is closest to the user. If lock isn't + running, don't want to make any noise. + + Alert needs: + - different alerts: ring, sms, alarm, low-battery + - different sub-alerts: ring/family. sms/work, alarm/urgent + - different settings: silent, unobtrusive, normal + - different actions: tone, buzz, flash, repeat count, volume + change, LED flash, screen flash. + - some alerts stop when there is user input (tone). Some + continue (LED) + + - concurrent alerts?? alarm and SMS at same time? + As long as we get attention, and display status on screen.. + Maybe need alert priority and only play the most important. + + Configuration: too complex for just directories with symlinks to + .wav files. + Still want to make it easy to change config, either temp or perm. + + Config changes can be + - time based + - location based? + - orientation based + - user-requested + + Does the alert program do this itself, or does some other program + move files around? + + Maybe have a set of .ini files where settings cumulate. + Read base, then others + - calendar program creates a plan every so often which lists + time - profile e.g. 20090228-123456 silent + 20090301-012334 - + - The location service gives a name to where we are, as precise + as possible. We then look for setting "location-$NAME" + - ditto for orientation. + + +Disable 'xset' screen blan!k + +tapinput: + DONE differently OK should become 'go away' + DONE Need a 'mode' where all 12 are used. press/hold mode/del to recover. + DONE Move > half off screen, and disappear. + DONE statusicon to recover + DONE Add: Ret UP DOWN LEFT RIGHT + + +Weather: + Waits for 'internet now available' and if more than 8 hours since + last check, download weather details. + +Library: + Selector + Currently used in + launcher (folders/tasks), music, shop, sendsms + Features: + - goes multi-column if possible/needed + - auto-scroll when near extreme + - tap selects but doesn't activate + - small left/right tap areas for select-and-activate + - simple text with different colours, or app-specific rendering + - alternating background, background for highlight + - drags used for text entry + + AutoBox + Acts like vbox or hbox depending on available space + + Slider + pop-up window + + +Note pad with search. + This might just be an extension to scribble. + - simple text file editor + - multiple pages with a list that can be selected from + - search across all pages - show page name and line. + - mark pages 'read-only' + (ideas from tomboy) + - text size. features: highlight strikethrough bold italic + - 'link' a word to a page of the same name. + - group pages into notebooks??? + - scrollable pages? + - collapsable lists. + +Scribble: + - larger buttons + - ??save png?? + - allow grouping of texts with tap-draw-hold + - when we have a group of texts, allow + - align + - sort + - fold + - move a text with tap-hold-draw + - easier to select individual text + - allow text to be deleted - maybe drag to corner + - new line gets leading number or bullet or whatever + - I need: + 'text' entries to record opposite corner when drawn + some set of the last N text entries + these are drawn with a grey background?? + select text + +runit + Set window name to something appropriate + DONE run a command and display the output. No user interaction(yet) + DONE One button to close + Possible additions. + - rerun button + - different colour for stderr + - buffer to build text, then enter it + Combine with launcher??? or teach launcher to understand it better + Make it easier to run a little shell script + + +lock: + DONE Be more careful about counting up/down - count per button. + DONE be careful about press/release difference + DONE allow insta-lock with icon + LATER use lockfile to tell when someone wants no-blank + LATER Have lockfile for 'next suspend'. use inotify for clients + to find out when 'next' becomes 'now' + DONE use lockfile to tell when someone wants no-suspend + DONE suspend when more idle + DONE use external net connections to disable suspend + DONE maybe don't suspend while charging (of >50%) + DONE don't suspend while load-average is high + DONE no-suspend setting. + Only check TCP if keep-alive is working.... + Use alsa to play tones for alerts. Also buzz + Alerts are requested by creating file /var/run/alert/$name + where 'name' is something like 'sms' or 'ring' or 'alarm' + We look for /etc/alert/$name to find out what to play. + Not sure how to include + tone + volume + repeat/louder + vibrate + display brightness + LED flash + + We terminate the alert tone when a button is pressed + Vibrate continues if it is a repeating alert (ring) + + +Event Viewer + Events such as SMS, missed-call, alarm get appended to a file + The viewer shows recent events and allows the relevant window to be + selected. + It has a blinking statusicon when there are new events + + This is probably just included in launcher + +PictureViewer + one pane which just shows a photo, is full screen, taps left and right moves + one pane with browser showing date information + thumbnails? + +Address Book + store addresses with phone numbers + lookup and display + Format address label as postscript for printing + send phone number to dialler + + Store: + Names + Addresses - people share these + Phone number - people have several, and share them + Email address - again, can be multiple and shared. + + So we allow entries to include others by reference + + Name - given / family + Category (family, collegue, church, ...) + Address[desc] - l1 / l2 / postcode / country + Phone[desc] - number + Email[desc] - addr + group[desc] - entity + + What key to use for 'entity' ?? + Name? not unique and can change. + UUID I guess. assigned sequentially. Maybe use hostname to + uniqueify + + Store: + notabene.1234 = { + name = { given = Neil ; family = Brown } + Category = me; + Category = Family; + address = { type=Home; a= "13 Lang Ave"; + city="Pagewood"; postcode=2019; + country = Australia + } + Phone = { type=mobile; num=0403463349; } + Valid = date + } + + + That is horribly verbose and not needed. + Though if we store gzipped, it isn't much waste. + + We don't really want to store it in memory as that isn't paged out, + So we want an ondisk format which is very easy to parse. Hopefully + it will be cached most of the time. + So: ':' separated fields with ',' separated subfields and '=' assignments + id:family:given:cat,cat:ref,ref:PO:addr:addrext:city:postcode:country:mobile=number,work=number:Date + + Should probably use VCARD - it isn't that hard. + Just ignore the bits we don't understand yet. + When editting, only change fields we understand. + When there are interdependent fields like N vs FN and ADR vs LBL + that can be awkward. + + No. Don't like VCARD - no references (that I can find) as no ID for each entry ??? + + Anyway I'll use my own internal format and maybe export/import one day if I decide to care. + + We mmap the file and typicaly use 're' to search through it, while holding a read lock and having + checked the size. + + We access the address book by extracting addresses. + 'first', 'next' + These can have an 're' argument meaning 'first/next that matches re' + File contains an initial line with a version number, so that each line starts and ends + with '\n'. Thus each field starts and ends with [\n:,=] + + How to integrate this? + Any program that just needs read access goes direct to the file, mmaping and searching + Auto updates such as 'last used' can similarly be on on the mmapped file. + Updates need to be handled by a single GUI. + When someone - e.g. SMS or Call-Log - wants to store a number or edit an entry, + they put a resource on the root window. If the contact list is watching, it + picks it up. If it isn't, the button is greyed out (or we run the program) + + The contact editor: + Has an edit window where content of interest appears + +music: + doesn't always move forward at end-of-song + have better way to 'play chosen song' + If 'seek' dropdown didn't select a time, don't jump at all. + report song on root window property + Have fs browser to find music folder(s) + survive suspend somehow + Don't seek when there is nothing to seek (negative offset??) + record current location for restart + remove "/home/music/ogg" from displayed path + grab /var/run/suspend_disabled when playing + DONE add volume control + DONE Think about seek control + Maybe support HTTP: uris such as classic-fm + Support Random-Album + Support Random-Song + tap 'current song' to go there in browser + search by substring + +clock: + sync to real time properly + alarm clock: + periodic or one-off + wake to music or buzzer + pop up: + set timezone + show date/calendar + ntpdate + gpsdate + gps-timezone + +Shopping List + Need to add/edit locations and places. + When 'choose location' or 'choose place' is up, the + 'add' and 'edit' button affect the location name instead of the product + renaming a thing to 'empty' only works if it is not in use. + When we click 'config', product list is replaced by location list. + Click 'config' again to go back. Different background colour?? + If we change place, it changes set of locations + '+' adds a new location + 'edit' changes the name of current location + zoom still exist + tick and cross become up and down to move current location + + +Battery + try to get more timely alerts without polling - Need to use DBUS. + DONE Select between pop-up new window and restore old window + DONE Show time_to_{full,empty}_now in correct units + ?? use 'status' for 'Charging' ... + DONE timeout to make window disappear? or to refresh display + DONE pop up window with + suspend + shutdown + 500/1000 mAmps + +network + need to consider Wifi, USB, bluetooth, gprs, BT/ppp + Show status of each + device specific page for each: + Wifi: + list access points + connect with DHCP, enter WPA-PSK + suspend mode: power off or WOW + USB: + disable/DHCP-client/DHCP-server + if dchp-server: have list of address configs to choose between + if another network is active, choose based on that. + Bluetooth + list peers + connect + listen + DHCP client/server + disable/power down + ppp over rfcomm + GPRS + on-demand + enter AP + +launcher + content for status page: + - date, time, timezone?? + - GSM carrier, Cellid strenght? + - Network connectivity + - new messages + - missed calls + - last window + - GPS co-ords? + - next reminder + - top of todo list?? + - load average / uptime + Delay "wmctrl -l" a bit so that we start up faster ?? + + support displaying values from root attributes + run wmctrl at the right time better. + have a 'status' folder which shows 'today' + use pango.markup + Don't adjust sizes of entires + Allow different sizes items - keep list of offset for click + Don't allow item to be selected if no buttons + Center type. MAybe "type" can be e.g. "cmd:center" or "thing:right" + How to schedule redraw of e.g. time / date / etc + Expensive tasks would need to cache values incase they are called too often. + don't iconize- just stay behind + watch root properties to be notified of window changes. + + DONE direct button access + DONE list options + DONEkill window + DONE reload option + + DONE Two columns with button row at bottom. + DONE First column is cmd group and includes 'active windows' + DONE Second column is options in the group + DONE Buttons are "run" or "stop" + + I want a third column. When it appears, the first column disappears. + This can be used for: + - address-book access when making a call + - log of recent calls - in or out + - todo list? + Why not just put these in the second column with the trigger in the first. + So first column gets: + contact: shows address book. + text entry reduces list + selection provides 'call' and 'txt' and 'open' buttons + calls: shows similar list, but of recent calls. Can call back + or save numbers. + Selecting 'last call' or 'dialout' in status window can allows jump to + this different page. + + I think I need to rewrite launcher from scratch - it got messy. + Have same layout: + - text entry at the top: + any change is sent to any visible task + - buttons at the bottom. + these are chosen by active task + - left column of task groups. + apps comms calls contacts windows games status + - right column of tasks + + A 'tasklist' is given to each column and can be static or dynamic. + A 'task' has an appearance and an action. + For the right column, the action sets the left column. + For the left column, the action sets the buttons + The buttons also have appearance and action. The action + can do all sorts of things: + - run or kill program + - raise or close window + - make phone call / hang up + + The two columns can be replaced by a textarea that displays the output + of some command. + + The 'aux' button can be pressed or held. + - press raises the window, then selects 'status', then returns to previous window + - hold ... what can that do? Answer the phone? + Maybe if a task is signalling for attention, then 'press' goes to + that task, and 'hold' activated the first button for the task. + + I need to define the interface for pluggins. + A plugin needs to be able to: + - create a task + - create a group + - watch a file + - run a process + - open a window + - Add an embedded-window + + A task must be able to + - display a text + - present some buttons + - present an embedded window + - receive keyboard input + - request that a different task or group be selected + + Some examples of the embedded window: + - tap-board for text/number entry + - calendar - one month + - text, e.g. SMS message, email + + Config file: + This stores a list of groups. + Some groups need no further details (e.g. active windows) + Others need to explicitly list tasks + Tasks can be: + Internal (in a module) + External-window (program to run, window to find) + External-text + + When listing explicit tasks we can use: + !command + for external-text + (window) command + for external-window, where 'window' is the name of the window + module.command + for an internal module + + Each group is given in config file as: + [name/type] + if '/type' is missing, "list" is assumed. + Types and the required content are: + list + a series of task descriptions + windows + a series of window names to ignore (?) + contacts + file= name of address book + call-log + nothing - the call log has a standard location + + If 'type' is 'modules', then each line names a module + + Modules have an entry point "init" which returns: + a list of group types supported + a list of internal commands + each is paired with an object-creation command. + + A 'group' object must be able to parse config lines + and produce a task list etc. + +gpstrack + pygtk similar to tangogps + + Display maps, zoom follow GPS + Separate threads for file loading, GPS track, and UI + 3-D view of path?? + record path followed + Always compress and write to a file + record drawn path + download maps + - always all parent maps for a given download + - download maps along a path (to some depth/width) + This includes a drawn path. + If map not available, scale other resolution + record locations + display locations + report time-to-first-fix + three different modes interpretting drag + 1/ move map around + 2/ draw a path on the map + 3/ write text to tag location or path. + + +Bible viewer: + Store KJV + Download and cache NIV if Network available. + Windows: + +Sound recorder: + - support pause/restart + - play from start, play last 10 seconds, seek + - allow naming of music files + - adjustable audio level?? + - adjustable compression ?? speex/vorbis + +phone functions + ON-CALL + pops up when a call becomes active + presents number*# buttons for tones + Allows HOLD/CALL-WAITING/HANG_UP + Disappears when no call is active + Should handle VOIP too, including call-waiting + Logs times?? + disables suspend + un-pause after the call ?? + Warning tone at points in call time + + Answer-Call + Display CNI, look up in address book + Choose ring tone bassed on number and time of day?? + Check device position and be quiet if face down. + + Make Call + allow number to be entered somehow + choose VOIP or mobile, while number is being entered. + silence music, disable suspend + Make connections, log, trigger ON-CALL + + SendSMS + text + recipient + send via eXeTeL if network is up, else ?? + + Editor window: simple text, no new lines. auto scroll, + simple editing + spell check + auto-wrap + + Q: + How to select for cut/paste?? + 'cut' button is normally 'select'. + tap that, then draw range, then 'cut' + status bar with valid spellings? and common continuations + Buttons: + send: sends to one or more addresses + draft: save as a draft and go to list of drafts + config: go to config page. + + If sending fails, save as draft and go to draft page. + If it succeeds, save as 'send' and save to 'sent' page. + + 'message list' page shows one message per line. + messages can be selected. + the selected message can be: + deleted + reloaded for send + viewed? + The list can be: + all / draft / new / sent / received + restricted by search string + up/down a page + So: + Top: + delete/view/send buttons + Bottom: + One button rotates through all/draft/new/sent/received + two for up/down + one for search + + Config options: + backend to use for different class of number. + each backend has a config page. + exetel userid and password + + RecvSMS + Database of all messages + Highlight unread messages + Sort in selectable order - provide virtual folders + Date, Month, Sender "contains text" + + Handle VCARD: +0000000 006 005 004 # 364 \0 \0 B E G I N : V C A +0000020 R D \r \n V E R S I O N : 2 . 1 \r +0000040 \n N : F a n n y \r \n T E L ; P R +0000060 E F ; W O R K ; V O I C E : 9 2 +0000100 3 4 8 9 0 8 \r \n T E L ; C E L L +0000120 ; V O I C E : 0 4 3 3 2 3 1 0 6 +0000140 9 \r \n T E L ; H O M E ; V O I C +0000160 E : 0 2 9 6 6 1 8 8 8 8 \r \n E N +0000200 D : V C A R D \r \n +BEGIN:VCARD^M +VERSION:2.1^M +N:Fanny^M +TEL;PREF;WORK;VOICE:92348908^M +TEL;CELL;VOICE:0433231069^M +TEL;HOME;VOICE:0296618888^M +END:VCARD^M + + + SMS storage: + + ** Worry about ASCII / UNICODE + a/ could use one file per message, named by time + with links to a directory for 'draft' or 'new' + But that wastes space. + b/ could use a TDB database, keyed by date, with + a hierarchy of days and years for directories. + c/ plain text file, one per month + 'new' and 'draft' are separate files that list ids. + + Probably c. + + Each SMS entry is one line, space separated: + date-time %Y%m%d-%H%M%S.uuid + 'from' number + 'to' numbers, comma separated + 'text' of message, URL encoded on to one line with no spaces. + + Hmm.. + + + More on storage. + There are two dates that could be of interest. + - the time I first saw the message (my clock) + - the time the message was sent (with incoming messages). + We need to record both of these. + For outgoing, there could be "time message successfully sent" + + +---------------------------------------------------------------- +Thinking about buttons. + + - I want to easily/quickly get to 'main page' with time and status etc. + But sometimes I want to get 'back where I was' after a screen blank + + - I want the 'power' button to always do the same thing. It wakes up + from suspend, so it must wake up the same way from blank. + But what should it present: last screen, last launcher, or status? + It should be the thing I most likely want after a long abscence, which + would be the front status page. + It should also be the thing that I can use when there is an incoming call. + That would be something with an 'answer' button. So The status page + with 'incoming call' selected and 'answer/cancel' buttons at the bottom. + 'Answer' would alert the GSM-call window to pop up and answer the call. + + - So the aux button does: + - nothing during suspend + - wakeup display during blank + - launcher when active + + - But that means the lock program needs to grab AUX, so the earpiece + switch gets grabbed too. So either the lock program handles earpiece + switching, or it signals someone else. I guess we write to a file when + that changes. Though we could go direct to scenarios symlink. + How complex should this be? + /var/lib/audio/scenario -> handset or headset + handset -> scenario/handset ditto for headset + scenario points to gsm, voip, stereo, record, gsm-speaker + these are each directories which contain 2 .state files. + + - Maybe I want a button to bring up the tap-board as well?? + + Maybe: + power button always brings up control window, and selects status + aux button returns to + + + +And about lights. +We have two lights. +One can be red. +One can be blue, orange, or purple. +We can used the signal: + - charging state (powered, battery full) + - ringing state (could be different colour depending on if we know them) + - blank-but-not-off-yet + - wifi associated (might be a waste of battery...) + - + +PLAN: + + - arrange for power button to present status page + - Sort out tapinput usage + - install sendsms and make sure I can send via GSM + - sync SMS messages from SIM to flash + - display unread message info in status page + - tap on that goes to SMS application + + +QVGA: + qvga-normal & normal in "/sys/bus/spi/devices/spi2.0/state" . + +SMS/cellid + www.opencellid.org + + Keep database of locations and cells I have seen. + Don't add duplicates that are within 100m... say 3 seconds or arc. + + ?? Create a key by interleaving bits from lat and long + That gives discontinuities.. but we only need to search 2 places.. well, 4. + So if we want lat==a..b and long==c..d + We find the most sig bit in which a and b (resp c and d) differ + and need to check + +---------------------------------------------------- +What happens when I type text. I might want to: + + - make a phone call .. or SMS + - look up name in address book + - calculate result + - add to TODO list + - lookup in shopping list + +Maybe each 'task' can register a text handler. + They get called when text changes and can update their name?? + They could make themselves active, but hopefully only one would do that. + How could 'address book' show a list of possibles? + +I have outgoing calls sortof working. +Need: + - gsmd to know and track status in 'incoming'. + - wait for atchan to be set up so I don't have to press twice DONE + - clean text when call completes + - steal keyboard input for touchtones ?? + - call history + - address book lookup + + +---------------------------------------- +Main page currently has + two columns for selection/status + buttons at bottom for action + + Want text input line at the top for e.g. phone number, + contact name, calculation, note search + But when not typing anything it is visually unpleasant. + For buttons at bottom, they simple provide more space. + That doesn't work so well at the top.. unless we can do something with the + 'gravity' setting .. seems unlikely. + So I want something permanent there when there is no input. diff --git a/Shop/shop.py b/Shop/shop.py new file mode 100755 index 0000000..a7b7048 --- /dev/null +++ b/Shop/shop.py @@ -0,0 +1,2160 @@ +#!/usr/bin/env python + +# +# TO FIX +# - re-order places? +# - document +# - use separate hand-writing code +# - use separate list-select code + + +import sys, os, time +import pygtk, gtk, pango +import gobject + +########################################################### +# Writing recognistion code +import math + + +def LoadDict(dict): + # Upper case. + # Where they are like lowercase, we either double + # the last stroke (L, J, I) or draw backwards (S, Z, X) + # U V are a special case + + dict.add('A', "R(4)6,8") + dict.add('B', "R(4)6,4.R(7)1,6") + dict.add('B', "R(4)6,4.L(4)2,8.R(7)1,6") + dict.add('B', "S(6)7,1.R(4)6,4.R(7)0,6") + dict.add('C', "R(4)8,2") + dict.add('D', "R(4)6,6") + dict.add('E', "L(1)2,8.L(7)2,8") + # double the stem for F + dict.add('F', "L(4)2,6.S(3)7,1") + dict.add('F', "S(1)5,3.S(3)1,7.S(3)7,1") + + dict.add('G', "L(4)2,5.S(8)1,7") + dict.add('G', "L(4)2,5.R(8)6,8") + # FIXME I need better straight-curve alignment + dict.add('H', "S(3)1,7.R(7)6,8.S(5)7,1") + dict.add('H', "L(3)0,5.R(7)6,8.S(5)7,1") + # capital I is down/up + dict.add('I', "S(4)1,7.S(4)7,1") + + # Capital J has a left/right tail + dict.add('J', "R(4)1,6.S(7)3,5") + + dict.add('K', "L(4)0,2.R(4)6,6.L(4)2,8") + + # Capital L, like J, doubles the foot + dict.add('L', "L(4)0,8.S(7)4,3") + + dict.add('M', "R(3)6,5.R(5)3,8") + dict.add('M', "R(3)6,5.L(1)0,2.R(5)3,8") + + dict.add('N', "R(3)6,8.L(5)0,2") + + # Capital O is CW, but can be CCW in special dict + dict.add('O', "R(4)1,1", bot='0') + + dict.add('P', "R(4)6,3") + dict.add('Q', "R(4)7,7.S(8)0,8") + + dict.add('R', "R(4)6,4.S(8)0,8") + + # S is drawn bottom to top. + dict.add('S', "L(7)6,1.R(1)7,2") + + # Double the stem for capital T + dict.add('T', "R(4)0,8.S(5)7,1") + + # U is L to R, V is R to L for now + dict.add('U', "L(4)0,2") + dict.add('V', "R(4)2,0") + + dict.add('W', "R(5)2,3.L(7)8,6.R(3)5,0") + dict.add('W', "R(5)2,3.R(3)5,0") + + dict.add('X', "R(4)6,0") + + dict.add('Y',"L(1)0,2.R(5)4,6.S(5)6,2") + dict.add('Y',"L(1)0,2.S(5)2,7.S(5)7,2") + + dict.add('Z', "R(4)8,2.L(4)6,0") + + # Lower case + dict.add('a', "L(4)2,2.L(5)1,7") + dict.add('a', "L(4)2,2.L(5)0,8") + dict.add('a', "L(4)2,2.S(5)0,8") + dict.add('b', "S(3)1,7.R(7)6,3") + dict.add('c', "L(4)2,8", top='C') + dict.add('d', "L(4)5,2.S(5)1,7") + dict.add('d', "L(4)5,2.L(5)0,8") + dict.add('e', "S(4)3,5.L(4)5,8") + dict.add('e', "L(4)3,8") + dict.add('f', "L(4)2,6", top='F') + dict.add('f', "S(1)5,3.S(3)1,7", top='F') + dict.add('g', "L(1)2,2.R(4)1,6") + dict.add('h', "S(3)1,7.R(7)6,8") + dict.add('h', "L(3)0,5.R(7)6,8") + dict.add('i', "S(4)1,7", top='I', bot='1') + dict.add('j', "R(4)1,6", top='J') + dict.add('k', "L(3)0,5.L(7)2,8") + dict.add('k', "L(4)0,5.R(7)6,6.L(7)1,8") + dict.add('l', "L(4)0,8", top='L') + dict.add('l', "S(3)1,7.S(7)3,5", top='L') + dict.add('m', "S(3)1,7.R(3)6,8.R(5)6,8") + dict.add('m', "L(3)0,2.R(3)6,8.R(5)6,8") + dict.add('n', "S(3)1,7.R(4)6,8") + dict.add('o', "L(4)1,1", top='O', bot='0') + dict.add('p', "S(3)1,7.R(4)6,3") + dict.add('q', "L(1)2,2.L(5)1,5") + dict.add('q', "L(1)2,2.S(5)1,7.R(8)6,2") + dict.add('q', "L(1)2,2.S(5)1,7.S(5)1,7") + # FIXME this double 1,7 is due to a gentle where the + # second looks like a line because it is narrow.?? + dict.add('r', "S(3)1,7.R(4)6,2") + dict.add('s', "L(1)2,7.R(7)1,6", top='S', bot='5') + dict.add('t', "R(4)0,8", top='T', bot='7') + dict.add('t', "S(1)3,5.S(5)1,7", top='T', bot='7') + dict.add('u', "L(4)0,2.S(5)1,7") + dict.add('v', "L(4)0,2.L(2)0,2") + dict.add('w', "L(3)0,2.L(5)0,2", top='W') + dict.add('w', "L(3)0,5.R(7)6,8.L(5)3,2", top='W') + dict.add('w', "L(3)0,5.L(5)3,2", top='W') + dict.add('x', "L(4)0,6", top='X') + dict.add('y', "L(1)0,2.R(5)4,6", top='Y') # if curved + dict.add('y', "L(1)0,2.S(5)2,7", top='Y') + dict.add('z', "R(4)0,6.L(4)2,8", top='Z', bot='2') + + # Digits + dict.add('0', "L(4)7,7") + dict.add('0', "R(4)7,7") + dict.add('1', "S(4)7,1") + dict.add('2', "R(4)0,6.S(7)3,5") + dict.add('2', "R(4)3,6.L(4)2,8") + dict.add('3', "R(1)0,6.R(7)1,6") + dict.add('4', "L(4)7,5") + dict.add('5', "L(1)2,6.R(7)0,3") + dict.add('5', "L(1)2,6.L(4)0,8.R(7)0,3") + dict.add('6', "L(4)2,3") + dict.add('7', "S(1)3,5.R(4)1,6") + dict.add('7', "R(4)0,6") + dict.add('7', "R(4)0,7") + dict.add('8', "L(4)2,8.R(4)4,2.L(3)6,1") + dict.add('8', "L(1)2,8.R(7)2,0.L(1)6,1") + dict.add('8', "L(0)2,6.R(7)0,1.L(2)6,0") + dict.add('8', "R(4)2,6.L(4)4,2.R(5)8,1") + dict.add('9', "L(1)2,2.S(5)1,7") + + dict.add(' ', "S(4)3,5") + dict.add('', "S(4)5,3") + dict.add('-', "S(4)3,5.S(4)5,3") + dict.add('_', "S(4)3,5.S(4)5,3.S(4)3,5") + dict.add("", "S(4)5,3.S(3)3,5") + dict.add("","S(4)3,5.S(5)5,3") + dict.add("", "S(4)7,1.S(1)1,7") # "" + dict.add("","S(4)1,7.S(7)7,1") # "" + dict.add("", "S(4)2,6") + + +class DictSegment: + # Each segment has for elements: + # direction: Right Straight Left (R=cw, L=ccw) + # location: 0-8. + # start: 0-8 + # finish: 0-8 + # Segments match if there difference at each element + # is 0, 1, or 3 (RSL coded as 012) + # A difference of 1 required both to be same / 3 + # On a match, return number of 0s + # On non-match, return -1 + def __init__(self, str): + # D(L)S,R + # 0123456 + self.e = [0,0,0,0] + if len(str) != 7: + raise ValueError + if str[1] != '(' or str[3] != ')' or str[5] != ',': + raise ValueError + if str[0] == 'R': + self.e[0] = 0 + elif str[0] == 'L': + self.e[0] = 2 + elif str[0] == 'S': + self.e[0] = 1 + else: + raise ValueError + + self.e[1] = int(str[2]) + self.e[2] = int(str[4]) + self.e[3] = int(str[6]) + + def match(self, other): + cnt = 0 + for i in range(0,4): + diff = abs(self.e[i] - other.e[i]) + if diff == 0: + cnt += 1 + elif diff == 3: + pass + elif diff == 1 and (self.e[i]/3 == other.e[i]/3): + pass + else: + return -1 + return cnt + +class DictPattern: + # A Dict Pattern is a list of segments. + # A parsed pattern matches a dict pattern if + # the are the same nubmer of segments and they + # all match. The value of the match is the sum + # of the individual matches. + # A DictPattern is printers as segments joined by periods. + # + def __init__(self, str): + self.segs = map(DictSegment, str.split(".")) + def match(self,other): + if len(self.segs) != len(other.segs): + return -1 + cnt = 0 + for i in range(0,len(self.segs)): + m = self.segs[i].match(other.segs[i]) + if m < 0: + return m + cnt += m + return cnt + + +class Dictionary: + # The dictionary hold all the pattern for symbols and + # performs lookup + # Each pattern in the directionary can be associated + # with 3 symbols. One when drawing in middle of screen, + # one for top of screen, one for bottom. + # Often these will all be the same. + # This allows e.g. s and S to have the same pattern in different + # location on the touchscreen. + # A match requires a unique entry with a match that is better + # than any other entry. + # + def __init__(self): + self.dict = [] + def add(self, sym, pat, top = None, bot = None): + if top == None: top = sym + if bot == None: bot = sym + self.dict.append((DictPattern(pat), sym, top, bot)) + + def _match(self, p): + max = -1 + val = None + for (ptn, sym, top, bot) in self.dict: + cnt = ptn.match(p) + if cnt > max: + max = cnt + val = (sym, top, bot) + elif cnt == max: + val = None + return val + + def match(self, str, pos = "mid"): + p = DictPattern(str) + m = self._match(p) + if m == None: + return m + (mid, top, bot) = self._match(p) + if pos == "top": return top + if pos == "bot": return bot + return mid + + +class Point: + # This represents a point in the path and all the points leading + # up to it. It allows us to find the direction and curvature from + # one point to another + # We store x,y, and sum/cnt of points so far + def __init__(self,x,y) : + self.xsum = x + self.ysum = y + self.x = x + self.y = y + self.cnt = 1 + + def copy(self): + n = Point(0,0) + n.xsum = self.xsum + n.ysum = self.ysum + n.x = self.x + n.y = self.y + n.cnt = self.cnt + return n + + def add(self,x,y): + if self.x == x and self.y == y: + return + self.x = x + self.y = y + self.xsum += x + self.ysum += y + self.cnt += 1 + + def xlen(self,p): + return abs(self.x - p.x) + def ylen(self,p): + return abs(self.y - p.y) + def sqlen(self,p): + x = self.x - p.x + y = self.y - p.y + return x*x + y*y + + def xdir(self,p): + if self.x > p.x: + return 1 + if self.x < p.x: + return -1 + return 0 + def ydir(self,p): + if self.y > p.y: + return 1 + if self.y < p.y: + return -1 + return 0 + def curve(self,p): + if self.cnt == p.cnt: + return 0 + x1 = p.x ; y1 = p.y + (x2,y2) = self.meanpoint(p) + x3 = self.x; y3 = self.y + + curve = (y3-y1)*(x2-x1) - (y2-y1)*(x3-x1) + curve = curve * 100 / ((y3-y1)*(y3-y1) + + (x3-x1)*(x3-x1)) + if curve > 6: + return 1 + if curve < -6: + return -1 + return 0 + + def Vcurve(self,p): + if self.cnt == p.cnt: + return 0 + x1 = p.x ; y1 = p.y + (x2,y2) = self.meanpoint(p) + x3 = self.x; y3 = self.y + + curve = (y3-y1)*(x2-x1) - (y2-y1)*(x3-x1) + curve = curve * 100 / ((y3-y1)*(y3-y1) + + (x3-x1)*(x3-x1)) + return curve + + def meanpoint(self,p): + x = (self.xsum - p.xsum) / (self.cnt - p.cnt) + y = (self.ysum - p.ysum) / (self.cnt - p.cnt) + return (x,y) + + def is_sharp(self,A,C): + # Measure the cosine at self between A and C + # as A and C could be curve, we take the mean point on + # self.A and self.C as the points to find cosine between + (ax,ay) = self.meanpoint(A) + (cx,cy) = self.meanpoint(C) + a = ax-self.x; b=ay-self.y + c = cx-self.x; d=cy-self.y + x = a*c + b*d + y = a*d - b*c + h = math.sqrt(x*x+y*y) + if h > 0: + cs = x*1000/h + else: + cs = 0 + return (cs > 900) + +class BBox: + # a BBox records min/max x/y of some Points and + # can subsequently report row, column, pos of each point + # can also locate one bbox in another + + def __init__(self, p): + self.minx = p.x + self.maxx = p.x + self.miny = p.y + self.maxy = p.y + + def width(self): + return self.maxx - self.minx + def height(self): + return self.maxy - self.miny + + def add(self, p): + if p.x > self.maxx: + self.maxx = p.x + if p.x < self.minx: + self.minx = p.x + + if p.y > self.maxy: + self.maxy = p.y + if p.y < self.miny: + self.miny = p.y + def finish(self, div = 3): + # if aspect ratio is bad, we adjust max/min accordingly + # before setting [xy][12]. We don't change self.min/max + # as they are used to place stroke in bigger bbox. + # Normally divisions are at 1/3 and 2/3. They can be moved + # by setting div e.g. 2 = 1/2 and 1/2 + (minx,miny,maxx,maxy) = (self.minx,self.miny,self.maxx,self.maxy) + if (maxx - minx) * 3 < (maxy - miny) * 2: + # too narrow + mid = int((maxx + minx)/2) + halfwidth = int ((maxy - miny)/3) + minx = mid - halfwidth + maxx = mid + halfwidth + if (maxy - miny) * 3 < (maxx - minx) * 2: + # too wide + mid = int((maxy + miny)/2) + halfheight = int ((maxx - minx)/3) + miny = mid - halfheight + maxy = mid + halfheight + + div1 = div - 1 + self.x1 = int((div1*minx + maxx)/div) + self.x2 = int((minx + div1*maxx)/div) + self.y1 = int((div1*miny + maxy)/div) + self.y2 = int((miny + div1*maxy)/div) + + def row(self, p): + # 0, 1, 2 - top to bottom + if p.y <= self.y1: + return 0 + if p.y < self.y2: + return 1 + return 2 + def col(self, p): + if p.x <= self.x1: + return 0 + if p.x < self.x2: + return 1 + return 2 + def box(self, p): + # 0 to 9 + return self.row(p) * 3 + self.col(p) + + def relpos(self,b): + # b is a box within self. find location 0-8 + if b.maxx < self.x2 and b.minx < self.x1: + x = 0 + elif b.minx > self.x1 and b.maxx > self.x2: + x = 2 + else: + x = 1 + if b.maxy < self.y2 and b.miny < self.y1: + y = 0 + elif b.miny > self.y1 and b.maxy > self.y2: + y = 2 + else: + y = 1 + return y*3 + x + + +def different(*args): + cur = 0 + for i in args: + if cur != 0 and i != 0 and cur != i: + return True + if cur == 0: + cur = i + return False + +def maxcurve(*args): + for i in args: + if i != 0: + return i + return 0 + +class PPath: + # a PPath refines a list of x,y points into a list of Points + # The Points mark out segments which end at significant Points + # such as inflections and reversals. + + def __init__(self, x,y): + + self.start = Point(x,y) + self.mid = Point(x,y) + self.curr = Point(x,y) + self.list = [ self.start ] + + def add(self, x, y): + self.curr.add(x,y) + + if ( (abs(self.mid.xdir(self.start) - self.curr.xdir(self.mid)) == 2) or + (abs(self.mid.ydir(self.start) - self.curr.ydir(self.mid)) == 2) or + (abs(self.curr.Vcurve(self.start))+2 < abs(self.mid.Vcurve(self.start)))): + pass + else: + self.mid = self.curr.copy() + + if self.curr.xlen(self.mid) > 4 or self.curr.ylen(self.mid) > 4: + self.start = self.mid.copy() + self.list.append(self.start) + self.mid = self.curr.copy() + + def close(self): + self.list.append(self.curr) + + def get_sectlist(self): + if len(self.list) <= 2: + return [[0,self.list]] + l = [] + A = self.list[0] + B = self.list[1] + s = [A,B] + curcurve = B.curve(A) + for C in self.list[2:]: + cabc = C.curve(A) + cab = B.curve(A) + cbc = C.curve(B) + if B.is_sharp(A,C) and not different(cabc, cab, cbc, curcurve): + # B is too pointy, must break here + l.append([curcurve, s]) + s = [B, C] + curcurve = cbc + elif not different(cabc, cab, cbc, curcurve): + # all happy + s.append(C) + if curcurve == 0: + curcurve = maxcurve(cab, cbc, cabc) + elif not different(cabc, cab, cbc) : + # gentle inflection along AB + # was: AB goes in old and new section + # now: AB only in old section, but curcurve + # preseved. + l.append([curcurve,s]) + s = [A, B, C] + curcurve =maxcurve(cab, cbc, cabc) + else: + # Change of direction at B + l.append([curcurve,s]) + s = [B, C] + curcurve = cbc + + A = B + B = C + l.append([curcurve,s]) + + return l + + def remove_shorts(self, bbox): + # in self.list, if a point is close to the previous point, + # remove it. + if len(self.list) <= 2: + return + w = bbox.width()/10 + h = bbox.height()/10 + n = [self.list[0]] + leng = w*h*2*2 + for p in self.list[1:]: + l = p.sqlen(n[-1]) + if l > leng: + n.append(p) + self.list = n + + def text(self): + # OK, we have a list of points with curvature between. + # want to divide this into sections. + # for each 3 consectutive points ABC curve of ABC and AB and BC + # If all the same, they are all in a section. + # If not B starts a new section and the old ends on B or C... + BB = BBox(self.list[0]) + for p in self.list: + BB.add(p) + BB.finish() + self.bbox = BB + self.remove_shorts(BB) + sectlist = self.get_sectlist() + t = "" + for c, s in sectlist: + if c > 0: + dr = "R" # clockwise is to the Right + elif c < 0: + dr = "L" # counterclockwise to the Left + else: + dr = "S" # straight + bb = BBox(s[0]) + for p in s: + bb.add(p) + bb.finish() + # If all points are in some row or column, then + # line is S + rwdiff = False; cldiff = False + rw = bb.row(s[0]); cl=bb.col(s[0]) + for p in s: + if bb.row(p) != rw: rwdiff = True + if bb.col(p) != cl: cldiff = True + if not rwdiff or not cldiff: dr = "S" + + t1 = dr + t1 += "(%d)" % BB.relpos(bb) + t1 += "%d,%d" % (bb.box(s[0]), bb.box(s[-1])) + t += t1 + '.' + return t[:-1] + + + + + +class text_input: + def __init__(self, page, callout): + + self.page = page + self.callout = callout + self.colour = None + self.line = None + self.dict = Dictionary() + LoadDict(self.dict) + + page.connect("button_press_event", self.press) + page.connect("button_release_event", self.release) + page.connect("motion_notify_event", self.motion) + page.set_events(page.get_events() + | gtk.gdk.BUTTON_PRESS_MASK + | gtk.gdk.BUTTON_RELEASE_MASK + | gtk.gdk.POINTER_MOTION_MASK + | gtk.gdk.POINTER_MOTION_HINT_MASK) + + def set_colour(self, col): + self.colour = col + + def press(self, c, ev): + # Start a new line + self.line = [ [int(ev.x), int(ev.y)] ] + return + def release(self, c, ev): + if self.line == None: + return + if len(self.line) == 1: + self.callout('click', ev) + self.line = None + return + + sym = self.getsym() + if sym: + self.callout('sym', sym) + self.callout('redraw', None) + self.line = None + return + + def motion(self, c, ev): + if self.line: + if ev.is_hint: + x, y, state = ev.window.get_pointer() + else: + x = ev.x + y = ev.y + x = int(x) + y = int(y) + prev = self.line[-1] + if abs(prev[0] - x) < 10 and abs(prev[1] - y) < 10: + return + if self.colour: + c.window.draw_line(self.colour, prev[0],prev[1],x,y) + self.line.append([x,y]) + return + + def getsym(self): + alloc = self.page.get_allocation() + pagebb = BBox(Point(0,0)) + pagebb.add(Point(alloc.width, alloc.height)) + pagebb.finish(div = 2) + + p = PPath(self.line[1][0], self.line[1][1]) + for pp in self.line[1:]: + p.add(pp[0], pp[1]) + p.close() + patn = p.text() + pos = pagebb.relpos(p.bbox) + tpos = "mid" + if pos < 3: + tpos = "top" + if pos >= 6: + tpos = "bot" + sym = self.dict.match(patn, tpos) + if sym == None: + print "Failed to match pattern:", patn + return sym + + + + + +######################################################################## + + +def extend_array(ra, leng, val=None): + while len(ra) <= leng: + ra.append(val) + + +class Prod: + # A product that might be purchased + # These are stored in a list index by product number + def __init__(self, num, line): + # line is read from file, or string typed in for new + # product in which case it contains no comma. + # otherwise "Name,[R|I]{,Ln:m}" + self.num = num + words = line.split(',') + self.name = words[0] + self.regular = (len(words) > 1 and words[1] == 'R') + self.loc = [] + for loc in words[2:]: + if len(loc) == 0: + continue + n = loc[1:].split(':') + pl = int(n[0]) + lc = int(n[1]) + extend_array(self.loc, pl, -1) + self.loc[pl] = lc + + def format(self,f): + str = "I%d," % self.num + str += self.name + ',' + if self.regular: + str += 'R' + else: + str += 'I' + for i in range(len(self.loc)): + if self.loc[i] >= 0: + str += ",L%d:%d"%(i, self.loc[i]) + str += '\n' + f.write(str) + + +class Purch: + # A purchase that could be made + # A list of these is the current shopping list. + def __init__(self,source): + # source is a string read from a file, or + # a product being added to the list. + if source.__class__ == Prod: + self.prod = source.num + self.state = 'X' + self.comment = "" + elif source.__class__ == str: + l = source.split(',', 2) + self.prod = int(l[0]) + self.state = l[1] + self.comment = l[2] + else: + raise ValueError + + def format(self, f): + str = '%d,%s,%s\n' % (self.prod, self.state, self.comment) + f.write(str) + + def loc(self): + global place + p = products[self.prod] + if len(p.loc) <= place: + return -1 + if p.loc[place] == None: + return -1 + return p.loc[place] + + def locord(self): + global place + p = products[self.prod] + if len(p.loc) <= place: + return -1 + if p.loc[place] == -1 or p.loc[place] == None: + return -1 + return locorder[place].index(p.loc[place]) + +def purch_cmp(a,b): + pa = products[a.prod] + pb = products[b.prod] + la = a.locord() + lb = b.locord() + + if la < lb: + return -1 + if la > lb: + return 1 + # same location + return cmp(pa.name, pb.name) + + +def parse_places(l): + # P,n:name,... + w = l.split(',') + if w[0] != 'P': + return + for p in w[1:]: + w2 = p.split(':',1) + pos = int(w2[0]) + extend_array(places, pos,0) + places[pos] = w2[1] + +def parse_locations(l): + # Ln,m:loc,m2:loc2, + w = l.split(',') + if w[0][0] != 'L': + return + lnum = int(w[0][1:]) + loc = [] + order = [] + for l in w[1:]: + w2 = l.split(':',1) + pos = int(w2[0]) + extend_array(loc, pos) + loc[pos] = w2[1] + order.append(pos) + extend_array(locations, lnum) + extend_array(locorder, lnum) + locations[lnum] = loc + locorder[lnum] = order + +def parse_item(l): + # In,rest + w = l.split(',',1) + if w[0][0] != 'I': + return + lnum = int(w[0][1:]) + itm = Prod(lnum, w[1]) + extend_array(products, lnum) + products[lnum] = itm + +def load_table(f): + # read P L and I lines + l = f.readline() + while len(l) > 0: + l = l.strip() + if l[0] == 'P': + parse_places(l) + elif l[0] == 'L': + parse_locations(l) + elif l[0] == 'I': + parse_item(l) + l = f.readline() + +def save_table(name): + try: + f = open(name+".new", "w") + except: + return + f.write("P") + for i in range(len(places)): + f.write(",%d:%s" % (i, places[i])) + f.write("\n") + + for i in range(len(places)): + f.write("L%d" % i) + for j in locorder[i]: + f.write(",%d:%s" % (j, locations[i][j])) + f.write("\n") + for p in products: + if p: + p.format(f) + f.close() + os.rename(name+".new", name) + +table_timeout = None +def table_changed(): + global table_timeout + if table_timeout: + gobject.source_remove(table_timeout) + table_timeout = None + table_timeout = gobject.timeout_add(15*1000, table_tick) + +def table_tick(): + global table_timeout + if table_timeout: + gobject.source_remove(table_timeout) + table_timeout = None + save_table("Products") + +def load_list(f): + # Read item,state,comment from file to 'purch' list + l = f.readline() + while len(l) > 0: + l = l.strip() + purch.append(Purch(l)) + l = f.readline() + +def save_list(name): + try: + f = open(name+".new", "w") + except: + return + for p in purch: + if p.state != 'X': + p.format(f) + f.close() + os.rename(name+".new", name) + + +list_timeout = None +def list_changed(): + global list_timeout + if list_timeout: + gobject.source_remove(list_timeout) + list_timeout = None + list_timeout = gobject.timeout_add(15*1000, list_tick) + +def list_tick(): + global list_timeout + if list_timeout: + gobject.source_remove(list_timeout) + list_timeout = None + save_list("Purchases") + +def merge_list(purch, prod): + # add to purch any products not already there + have = [] + for p in purch: + extend_array(have, p.prod, False) + have[p.prod] = True + for p in prod: + if p and (p.num >= len(have) or not have[p.num]) : + purch.append(Purch(p)) + +def locname(purch): + if purch.loc() < 0: + return "Unknown" + else: + return locations[place][purch.loc()] + +class PurchView: + # A PurchView is the view on the list of possible purchases. + # We draw the names in a DrawingArea + # When a name is tapped, we call-out to possibly update it. + # We get a callback when: + # item state changes, so we need to change colour + # list (or sort-order) changes so complete redraw is needed + # zoom changes + # + + def __init__(self, zoom, callout, entry): + p = gtk.DrawingArea() + p.show() + self.widget = p + + fd = p.get_pango_context().get_font_description() + self.fd = fd + + self.callout = callout + self.zoom = 0 + self.set_zoom(zoom) + self.pixbuf = None + self.width = self.height = 0 + self.need_redraw = True + + self.colours = None + + self.plist = None + self.search = None + self.current = None + self.gonext = False + self.top = None + self.all_headers = False + + p.connect("expose-event", self.redraw) + p.connect("configure-event", self.reconfig) + + #p.connect("button_release_event", self.click) + p.set_events(gtk.gdk.EXPOSURE_MASK + | gtk.gdk.STRUCTURE_MASK) + + self.entry = entry + self.writing = text_input(p, self.stylus) + + def stylus(self, cmd, info): + if cmd == "click": + self.click(None, info) + return + if cmd == "redraw": + self.widget.queue_draw() + return + if cmd == "sym": + + if info == "": + self.entry.emit("backspace") + elif info == "": + self.entry.emit("activate") + else: + self.entry.emit("insert-at-cursor",info) + #print "Got Sym ", info + + def add_col(self, sym, col): + c = gtk.gdk.color_parse(col) + gc = self.widget.window.new_gc() + gc.set_foreground(self.widget.get_colormap().alloc_color(c)) + self.colours[sym] = gc + + def set_zoom(self, zoom): + if zoom > 50: + zoom = 50 + if zoom < 20: + zoom = 20 + if zoom == self.zoom: + return + self.need_redraw = True + self.zoom = zoom + s = pango.SCALE + for i in range(zoom): + s = s * 11 / 10 + self.fd.set_absolute_size(s) + self.widget.modify_font(self.fd) + met = self.widget.get_pango_context().get_metrics(self.fd) + + self.lineheight = (met.get_ascent() + met.get_descent()) / pango.SCALE + self.lineascent = met.get_ascent() / pango.SCALE + self.widget.queue_draw() + + def set_search(self, str): + self.search = str + self.need_redraw = True + self.widget.queue_draw() + + def reconfig(self, w, ev): + alloc = w.get_allocation() + if not self.pixbuf: + return + if alloc.width != self.width or alloc.height != self.height: + self.pixbuf = None + self.need_redraw = True + + def redraw(self, w, ev): + if self.colours == None: + self.colours = {} + self.add_col('N', "blue") # need + self.add_col('F', "darkgreen") # found + self.add_col('C', "red") # Cannot find + self.add_col('R', "orange")# Regular + self.add_col('X', "black") # No Need + self.add_col(' ', "white") # selected background + self.add_col('_', "black") # location separator + self.add_col('title', "cyan") + self.bg = self.widget.get_style().bg_gc[gtk.STATE_NORMAL] + self.writing.set_colour(self.colours['_']) + + + if self.need_redraw: + self.draw_buf() + + self.widget.window.draw_drawable(self.bg, self.pixbuf, 0, 0, 0, 0, + self.width, self.height) + + def draw_buf(self): + self.need_redraw = False + p = self.widget + if self.pixbuf == None: + alloc = p.get_allocation() + self.pixbuf = gtk.gdk.Pixmap(p.window, alloc.width, alloc.height) + self.width = alloc.width + self.height = alloc.height + self.pixbuf.draw_rectangle(self.bg, True, 0, 0, + self.width, self.height) + + if self.plist == None: + # Empty list, say so. + layout = self.widget.create_pango_layout("List Is Empty") + (ink, log) = layout.get_pixel_extents() + (ex,ey,ew,eh) = log + self.pixbuf.draw_layout(self.colours['X'], (self.width-ew)/2, + (self.height-eh)/2, + layout) + return + + # find max width and height + maxw = 1; maxh = 1; longest = "nothing" + curr = None; top = 0 + visible = [] + curloc = None + for p in self.plist: + + if self.search == None and p.state == 'X': + # Don't normally show "noneed" entries + if p.prod == self.current and self.gonext: + curr = len(visible) + continue + if self.search != None and products[p.prod].name.lower().find(self.search.lower()) < 0: + # doesn't contain search string + continue + while p.loc() != curloc: + if not self.all_headers: + curloc = p.loc() + elif curloc == None: + curloc = -1 + else: + if curloc < 0: + i = -1 + else: + i = locorder[place].index(curloc) + + if i < len(locorder[place]) - 1: + curloc = locorder[place][i+1] + else: + break + if curloc < 0: + locstr = "Unknown" + elif curloc < len(locations[place]): + locstr = locations[place][curloc] + else: + locstr = None + + if locstr == None: + break + + if self.top == locstr: + top = len(visible) + visible.append(locstr) + + layout = self.widget.create_pango_layout(locstr) + (ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + if ew > maxw: maxw = ew; longest = products[p.prod].name + if eh > maxh: maxh = eh + + if p.prod == self.top: + top = len(visible) + if curr != None and self.gonext and self.gonext == p.state: + self.gonext = False + self.current = p.prod + self.callout(p, 'auto') + if p.prod == self.current: + curr = len(visible) + visible.append(p) + layout = self.widget.create_pango_layout(products[p.prod].name) + (ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + if ew > maxw: maxw = ew; longest = products[p.prod].name + if eh > maxh: maxh = eh + # print "mw=%d mh=%d lh=%d la=%d" % (maxw, maxh, self.lineheight, self.lineascent) + + if self.all_headers: + # any following headers with no items visible + while True: + if curloc == None: + curloc = -1 + else: + if curloc < 0: + i = -1 + else: + i = locorder[place].index(curloc) + + if i < len(locorder[place]) - 1: + curloc = locorder[place][i+1] + else: + break + if curloc < 0: + locstr = "Unknown" + elif curloc < len(locations[place]): + locstr = locations[place][curloc] + else: + locstr = None + + if locstr == None: + break + + if self.top == locstr: + top = len(visible) + visible.append(locstr) + + layout = self.widget.create_pango_layout(locstr) + (ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + if ew > maxw: maxw = ew; longest = products[p.prod].name + if eh > maxh: maxh = eh + + self.gonext = False + truemaxw = maxw + maxw = int(maxw * 11/10) + if maxh > self.lineheight: + self.lineheight = maxh + # Find max rows/columns + rows = int(self.height / self.lineheight) + cols = int(self.width / maxw) + if rows < 1 or cols < 1: + if self.zoom > 10: + self.set_zoom(self.zoom - 1) + self.need_redraw = True + self.widget.queue_draw() + return + #print "rows=%d cols=%s" % (rows,cols) + colw = int(self.width / cols) + offset = (colw - truemaxw)/2 + self.offset = offset + + # check 'curr' is in appropriate range and + # possibly adjust 'top'. Then trim visible to top. + # Allow one blank line at the end. + cells = rows * cols + if cells >= len(visible): + # display everything + top = 0 + elif curr != None: + # make sure curr is in good range + if curr - top < rows/3: + top = curr - (cells - rows/3) + if top < 0: + top = 0 + if (cells - (curr - top)) < rows/3: + top = curr - rows / 3 + if len(visible) - top < cells-1: + top = len(visible) - (cells-1) + if top < 0: + top = 0 + else: + if len(visible) - top < cells-1: + top = len(visible) - (cells-1) + if top < 0: + top = 0 + + visible = visible[top:] + self.top = None + + self.visible = visible + self.rows = rows + self.cols = cols + + for r in range(rows): + for c in range(cols): + pos = c*rows+r + uline = False + if pos < len(visible): + if type(visible[pos]) == str: + strng = visible[pos] + state = 'title' + comment = False + if self.top == None: + self.top = visible[pos] + else: + strng = products[visible[pos].prod].name + uline = products[visible[pos].prod].regular + state = visible[pos].state + if self.top == None: + self.top = visible[pos].prod + comment = (not not visible[pos].comment) + else: + break + layout = self.widget.create_pango_layout(strng) + if uline: + a = pango.AttrList() + a.insert(pango.AttrUnderline(pango.UNDERLINE_SINGLE,0,len(strng))) + layout.set_attributes(a) + if curr != None and c*rows+r == curr - top: + self.pixbuf.draw_rectangle(self.colours[' '], True, + c*colw, r*self.lineheight, + colw, self.lineheight) + if state == 'title': + self.pixbuf.draw_rectangle(self.colours['_'], True, + c*colw+2, r*self.lineheight, + colw-4, self.lineheight) + self.pixbuf.draw_rectangle(self.colours['_'], False, + c*colw+2, r*self.lineheight, + colw-4-1, self.lineheight-1) + + if comment: + if offset > self.lineheight * 0.8: + w = int (self.lineheight * 0.8 * 0.9) + o = (offset - w) / 2 + else: + w = int(offset*0.9) + o = int((offset-w)/2) + vo = int((self.lineheight-w)/2) + self.pixbuf.draw_rectangle(self.colours[state], True, + c * colw + o, r * self.lineheight + vo, + w, w) + + + self.pixbuf.draw_layout(self.colours[state], + c * colw + offset, + r * self.lineheight, + layout) + + + def click(self, w, ev): + cw = self.width / self.cols + rh = self.lineheight + col = int(ev.x/cw) + row = int(ev.y/rh) + cell = col * self.rows + row + cellpos = ev.x - col * cw + pos = 0 + if cellpos < self.lineheight or cellpos < self.offset: + pos = -1 + elif cellpos > cw - self.lineheight: + pos = 1 + + if cell < len(self.visible) and type(self.visible[cell]) != str: + if pos == 0: + prod = self.visible[cell].prod + layout = self.widget.create_pango_layout(products[prod].name) + (ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + if cellpos > self.offset + ew: + pos = 1 + self.callout(self.visible[cell], pos) + if cell < len(self.visible) and type(self.visible[cell]) == str: + self.callout(self.visible[cell], 'heading') + + + def set_purch(self, purch): + if purch: + self.plist = purch + self.need_redraw = True + self.widget.queue_draw() + + def select(self, item = None, gonext = False): + if gonext: + self.gonext = gonext + elif item != None: + self.current = item + self.need_redraw = True + self.widget.queue_draw() + + def show_headers(self, all): + self.all_headers = all + self.need_redraw = True + self.widget.queue_draw() + +class ShoppingList: + + def __init__(self): + window = gtk.Window(gtk.WINDOW_TOPLEVEL) + window.connect("destroy", self.close_application) + window.set_title("Shopping List") + + self.purch = None + self.isize = gtk.icon_size_register("mine", 40, 40) + + # try to guess where user is so when he tried to change the + # location of something, we try 'here' first. + # Update this whenever we find something, or set a location. + # We clear to -1 when we change place + self.current_loc = -1 + + vb = gtk.VBox() + window.add(vb) + vb.show() + + top = gtk.HBox() + top.set_size_request(-1,40) + vb.pack_start(top, expand=False) + top.show() + + glob = gtk.HBox() + glob.set_size_request(-1,80) + glob.set_homogeneous(True) + vb.pack_end(glob, expand=False) + glob.show() + self.glob_control = glob + + locedit = gtk.HBox() + locedit.set_size_request(-1, 80) + vb.pack_end(locedit, expand=False) + locedit.hide() + self.locedit = locedit + + loc = gtk.HBox() + loc.set_size_request(-1,80) + vb.pack_end(loc, expand=False) + loc.hide() + self.loc = loc + + placeb = gtk.HBox() + placeb.set_size_request(-1,80) + vb.pack_end(placeb, expand=False) + placeb.hide() + self.place = placeb + + filemenu = gtk.HBox() + filemenu.set_homogeneous(True) + filemenu.set_size_request(-1,80) + vb.pack_end(filemenu, expand=False) + filemenu.hide() + self.filemenu = filemenu + + curr = gtk.HBox() + curr.set_size_request(-1,80) + curr.set_homogeneous(True) + vb.pack_end(curr, expand=False) + curr.show() + self.curr = curr + self.mode = 'curr' + + e = gtk.Entry() + + l = PurchView(34, self.item_selected, e) + vb.add(l.widget) + self.lview = l + + # multi use text-entry body + # used for search-string, comment-entry, item-entry/rename + # + ctx = e.get_pango_context() + fd = ctx.get_font_description() + fd.set_absolute_size(25*pango.SCALE) + e.modify_font(fd) + e.show() + top.add(e) + self.button(gtk.STOCK_OK, top, self.enter_change, expand = False) + self.entry = e + global XX + XX = e + self.entry_ignore = True + self.entry_mode = "comment" + e.connect("changed", self.entry_changed) + self.ecol_search = None + self.ecol_comment = None + self.ecol_item = None + self.ecol_loc = None + + # global control buttons + self.button(gtk.STOCK_REFRESH, glob, self.choose_place) + self.button(gtk.STOCK_PREFERENCES, glob, self.show_controls) + self.search_toggle = self.button(gtk.STOCK_FIND, glob, self.toggle_search, toggle=True) + self.button(gtk.STOCK_ADD, glob, self.add_item) + self.button(gtk.STOCK_EDIT, glob, self.change_name) + + # buttons to control current entry + self.button(gtk.STOCK_APPLY, curr, self.tick) + self.button(gtk.STOCK_CANCEL, curr, self.cross) + self.button(gtk.STOCK_JUMP_TO, curr, self.choose_loc) + self.button(gtk.STOCK_ZOOM_IN, curr, self.zoomin) + self.button(gtk.STOCK_ZOOM_OUT, curr, self.zoomout) + + # buttons for whole-list operations + self.button(gtk.STOCK_SAVE_AS, filemenu, self.record) + self.button(gtk.STOCK_HOME, filemenu, self.reset) + a = self.button(gtk.STOCK_CONVERT, filemenu, self.add_regulars) + self.add_reg_clicked = False + a.connect('leave',self.clear_regulars) + self.save_button = self.button(gtk.STOCK_SAVE, filemenu, self.save) + self.revert_button = self.button(gtk.STOCK_REVERT_TO_SAVED, filemenu, self.revert_to_saved) + self.revert_button.hide() + self.button(gtk.STOCK_QUIT, filemenu, self.close_application) + + # Buttons to change location of current entry + self.button(gtk.STOCK_GO_BACK, loc, self.prevloc, expand = False) + self.curr_loc = self.button("here", loc, self.curr_switch) + self.button(gtk.STOCK_GO_FORWARD, loc, self.nextloc, expand = False) + l = self.curr_loc.child + ctx = l.get_pango_context() + fd = ctx.get_font_description() + fd.set_absolute_size(25*pango.SCALE) + l.modify_font(fd) + + # buttons to edit the current location + self.button(gtk.STOCK_DELETE, locedit, self.locdelete) + self.button(gtk.STOCK_GO_UP, locedit, self.loc_move_up) + self.button(gtk.STOCK_GO_DOWN, locedit, self.loc_move_down) + self.button(gtk.STOCK_ADD, locedit, self.add_item) + self.button(gtk.STOCK_EDIT, locedit, self.change_name) + + + # Buttons to change current 'place' + self.button(gtk.STOCK_MEDIA_REWIND, placeb, self.prevplace, expand = False) + self.curr_place = self.button("HOME", placeb, self.curr_switch) + self.button(gtk.STOCK_MEDIA_FORWARD, placeb, self.nextplace, expand = False) + l = self.curr_place.child + ctx = l.get_pango_context() + fd = ctx.get_font_description() + fd.set_absolute_size(25*pango.SCALE) + l.modify_font(fd) + + + window.set_default_size(480, 640) + window.show() + + + def close_application(self, widget): + gtk.main_quit() + if table_timeout: + table_tick() + if list_timeout: + list_tick() + + def item_selected(self, purch, pos): + if pos == 'heading': + if self.mode != 'loc': + return + newloc = None + for i in range(len(locations[place])): + if locations[place][i] == purch: + newloc = i + if i == None: + return + extend_array(products[self.purch.prod].loc, place, -1) + products[self.purch.prod].loc[place] = newloc + table_changed() + self.lview.plist.sort(purch_cmp) + self.set_loc() + self.lview.select() + return + + if self.entry_mode == "comment": + self.lview.select(purch.prod) + self.purch = purch + self.entry_ignore = True + self.entry.set_text(purch.comment) + self.entry_ignore = False + self.set_loc() + #if pos < 0: + # self.tick(None) + #if pos > 0: + # self.cross(None) + if self.entry_mode == "search": + if pos != 'auto': + if purch.state == 'X' or purch.state == 'R': + purch.state = 'N' + elif purch.state == 'N': + purch.state = 'X' + self.lview.select(purch.prod) + self.purch = purch + self.set_loc() + list_changed() + + + def entry_changed(self, widget): + if self.entry_ignore: + return + if self.entry_mode == "search": + self.lview.set_search(self.entry.get_text()) + if self.entry_mode == "comment" and self.purch != None: + self.purch.comment = self.entry.get_text() + list_changed() + + def set_purch(self, purch): + self.lview.set_purch(purch) + + def button(self, name, bar, func, expand = True, toggle = False): + if toggle: + btn = gtk.ToggleButton() + else: + btn = gtk.Button() + if type(name) == str and name[0:3] != "gtk": + if not expand: + name = " " + name + " " + btn.set_label(name) + else: + img = gtk.image_new_from_stock(name, self.isize) + if not expand: + img.set_size_request(80, -1) + img.show() + btn.add(img) + btn.show() + bar.pack_start(btn, expand = expand) + btn.connect("clicked", func) + btn.set_focus_on_click(False) + return btn + + def record(self, widget): + # Record current purchase file in datestamped storage + save_list(time.strftime("purch-%Y%m%d-%H")) + + def reset(self, widget): + # Reset the shopping list. + # All regular to noneed + # if there were no regular, then + # found -> noneed + # cannot find -> need + found = False + for p in purch: + if p.state == 'R': + p.state = 'X' + found = True + if not found: + for p in purch: + if p.state == 'F': + p.state = 'X' + if p.state == 'C': + p.state = 'N' + list_changed() + self.lview.select() + + def add_regulars(self, widget): + if self.add_reg_clicked: + return self.all_regulars(widget) + # Mark all regulars (not already selected) as regulars + for p in purch: + if products[p.prod].regular and p.state == 'X': + p.state = 'R' + list_changed() + self.lview.select() + self.add_reg_clicked = True + + def all_regulars(self, widget): + # Mark all regulars and don'twant (not already selected) as regulars + for p in purch: + if p.state == 'X': + p.state = 'R' + list_changed() + self.lview.select() + def clear_regulars(self, widget): + self.add_reg_clicked = False + + def save(self, widget): + table_tick() + list_tick() + self.curr_switch(widget) + + + def setecol(self): + if self.ecol_search != None: + return + c = gtk.gdk.color_parse("yellow") + self.ecol_search = c + + c = gtk.gdk.color_parse("white") + self.ecol_comment = c + + c = gtk.gdk.color_parse("pink") + self.ecol_item = c + + c = gtk.gdk.color_parse('grey90') + self.ecol_loc = c + + def toggle_search(self, widget): + self.setecol() + if self.entry_mode == "item": + self.search_toggle.set_active(False) + return + if self.entry_mode == "search": + self.entry_ignore = True + self.entry.set_text(self.purch.comment) + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_comment) + self.entry_mode = "comment" + self.lview.set_search(None) + self.entry_ignore = False + return + self.entry_mode = "search" + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_search) + self.entry_ignore = True + self.entry.set_text("") + self.lview.set_search("") + self.entry_ignore = False + self.search_toggle.set_active(True) + + def choose_loc(self, widget): + # replace 'curr' buttons with 'loc' buttons + if self.purch == None: + return + self.curr.hide() + self.filemenu.hide() + self.loc.show() + self.locedit.show() + self.glob_control.hide() + self.mode = 'loc' + self.set_loc() + self.lview.show_headers(True) + + def set_loc(self): + loc = locname(self.purch) + self.current_loc = self.purch.loc() + self.curr_loc.child.set_text(places[place]+" / "+loc) + + def curr_switch(self, widget): + # set current item to current location, and switch back + self.lview.show_headers(False) + self.loc.hide() + self.locedit.hide() + self.glob_control.show() + self.place.hide() + self.filemenu.hide() + self.curr.show() + self.mode = 'curr' + + def show_controls(self, widget): + if self.mode == 'filemenu': + self.curr_switch(widget) + else: + self.lview.show_headers(False) + self.loc.hide() + self.place.hide() + self.curr.hide() + self.locedit.hide() + self.glob_control.show() + self.filemenu.show() + self.mode = 'filemenu' + + + def nextloc(self, widget): + if self.entry_mode != 'comment': + self.enter_change(None) + if self.current_loc != -1 and self.current_loc != self.purch.loc(): + newloc = self.current_loc + self.current_loc = -1 + elif self.purch.loc() < 0: + newloc = locorder[place][0] + else: + i = locorder[place].index(self.purch.loc()) + if i < len(locorder[place])-1: + newloc = locorder[place][i+1] + else: + return + + + if newloc < -1 or newloc >= len(locations[place]): + return + extend_array(products[self.purch.prod].loc, place, -1) + products[self.purch.prod].loc[place] = newloc + table_changed() + self.lview.plist.sort(purch_cmp) + self.set_loc() + self.lview.select() + + def prevloc(self, widget): + if self.entry_mode != 'comment': + self.enter_change(None) + if self.current_loc != -1 and self.current_loc != self.purch.loc(): + newloc = self.current_loc + self.current_loc = -1 + elif self.purch.loc() < 0: + return + else: + i = locorder[place].index(self.purch.loc()) + if i > 0: + newloc = locorder[place][i-1] + else: + newloc = -1 + + if newloc < -1: + return + extend_array(products[self.purch.prod].loc, place, -1) + products[self.purch.prod].loc[place] = newloc + table_changed() + self.lview.plist.sort(purch_cmp) + self.set_loc() + self.lview.select() + + def locdelete(self, widget): + # merge this location with the previous one + # So every product with this location needs to be changed, + # and the locorder updated. + l = self.purch.loc() + if l < 0: + # cannot delete 'Unknown' + return + i = locorder[place].index(l) + if i == 0: + # nothing to merge with + return + safe.backup_table() + newl = locorder[place][i-1] + for p in products: + if p != None: + if len(p.loc) > place: + if p.loc[place] == l: + p.loc[place] = newl + locorder[place][i:i+1] = [] + + table_changed() + self.lview.plist.sort(purch_cmp) + self.set_loc() + self.lview.select() + + def loc_move_up(self, widget): + l = self.purch.loc() + if l < 0: + # Cannot move 'unknown' + return + i = locorder[place].index(l) + if i == 0: + # nowhere to move + pass + else: + o = locorder[place][i-1:i+1] + locorder[place][i-1:i+1] = [o[1],o[0]] + table_changed() + self.lview.plist.sort(purch_cmp) + self.set_loc() + self.lview.select() + + def loc_move_down(self, widget): + l = self.purch.loc() + if l < 0: + # Cannot move 'unknown' + return + i = locorder[place].index(l) + if i+1 >= len(locorder[place]): + # nowhere to move + pass + else: + o = locorder[place][i:i+2] + locorder[place][i:i+2] = [o[1],o[0]] + table_changed() + self.lview.plist.sort(purch_cmp) + self.set_loc() + self.lview.select() + + + def choose_place(self, widget): + if self.entry_mode != 'comment': + self.enter_change(None) + if self.mode == 'place': + self.curr_switch(widget) + return + self.pl_visible = True + self.lview.show_headers(False) + self.loc.hide() + self.locedit.hide() + self.glob_control.show() + self.curr.hide() + self.filemenu.hide() + self.mode = 'place' + self.place.show() + self.set_place() + + def set_place(self): + global place + if place >= len(places): + place = len(places) - 1 + if place < 0: + place = 0 + if place >= len(places): + pl = "Unknown Place" + else: + pl = places[place] + self.curr_place.child.set_text(pl) + self.current_loc = -1 + + def nextplace(self, widget): + global place + if place >= len(places)-1: + return + place += 1 + self.lview.plist.sort(purch_cmp) + self.set_place() + if self.purch: + self.lview.select() + else: + self.lview.set_purch(None) + + def prevplace(self, widget): + global place + if place <= 0: + return + place -= 1 + self.lview.plist.sort(purch_cmp) + self.set_place() + if self.purch: + self.lview.select() + else: + self.lview.set_purch(None) + + + def zoomin(self, widget): + self.lview.set_zoom(self.lview.zoom+1) + def zoomout(self, widget): + self.lview.set_zoom(self.lview.zoom-1) + + def tick(self, widget): + if self.purch != None: + if self.entry_mode == "search": + # set to regular + products[self.purch.prod].regular = True + #self.purch.state = 'R' + self.lview.select(gonext=self.purch.state) + list_changed(); table_changed() + return + oldstate = self.purch.state + if self.purch.state == 'N': self.purch.state = 'F' + elif self.purch.state == 'C': self.purch.state = 'F' + elif self.purch.state == 'R': self.purch.state = 'N' + elif self.purch.state == 'X': self.purch.state = 'N' + if self.purch.state == 'F': + self.current_loc = self.purch.loc() + self.lview.select(gonext = oldstate) + list_changed() + def cross(self, widget): + if self.purch != None: + oldstate = self.purch.state + if self.entry_mode == "search": + # set to regular + products[self.purch.prod].regular = False + if self.purch.state == 'R': + self.purch.state = 'X' + self.lview.select(gonext=oldstate) + list_changed(); table_changed() + return + + if self.purch.state == 'N': self.purch.state = 'C' + elif self.purch.state == 'F': self.purch.state = 'N' + elif self.purch.state == 'C': self.purch.state = 'X' + elif self.purch.state == 'R': self.purch.state = 'X' + elif self.purch.state == 'X': self.purch.state = 'X' + self.lview.select(gonext = oldstate) + list_changed() + + def add_item(self, widget): + global place + self.setecol() + if self.entry_mode == "search": + self.search_toggle.set_active(False) + if self.entry_mode != "comment": + return + if self.mode == 'curr': + self.entry_mode = "item" + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_item) + self.entry_ignore = True + self.entry.set_text("") + self.purch = None + self.lview.select() + self.entry_ignore = False + elif self.mode == 'loc': + if self.purch == None: + return + if None in locations[place]: + lnum = locations[place].index(None) + else: + lnum = len(locations[place]) + locations[place].append(None) + locations[place][lnum] = 'NewLocation' + if self.purch.loc() == -1: + so = 0 + else: + so = locorder[place].index(self.purch.loc())+1 + locorder[place][so:so] = [lnum] + self.nextloc(None) + self.entry_mode = 'location' + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_loc) + self.entry_ignore = True + self.entry.set_text('NewLocation') + self.entry_ignore = False + elif self.mode == 'place': + if None in places: + pnum = places.index(None) + else: + pnum = len(places) + places.append(None) + places[pnum] = 'NewPlace' + extend_array(locations, pnum) + locations[pnum] = [] + extend_array(locorder, pnum) + locorder[pnum] = [] + place = pnum + self.lview.plist.sort(purch_cmp) + self.set_place() + self.entry_mode = 'place' + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_loc) + self.entry_ignore = True + self.entry.set_text('NewPlace') + self.entry_ingore = False + def change_name(self, widget): + self.setecol() + if self.entry_mode == "search": + self.search_toggle.set_active(False) + if self.entry_mode == "item": + if self.purch != None: + self.entry.set_text(products[self.purch.prod].name) + return + if self.entry_mode == "location": + if self.purch != None: + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_loc) + self.entry.set_text(locname(self.purch)) + return + if self.entry_mode == 'place': + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_loc) + set.entry.set_text(places[place]) + return + if self.entry_mode != "comment": + return + if self.mode == 'curr': + if self.purch == None: + return + self.entry_mode = "item" + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_item) + self.entry_ignore = True + self.entry.set_text(products[self.purch.prod].name) + self.entry_ignore = False + elif self.mode == 'loc': + if self.purch == None: + return + if self.purch.loc() < 0: + return + self.entry_mode = "location" + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_loc) + self.entry_ignore = True + self.entry.set_text(locname(self.purch)) + self.entry_ignore = False + elif self.mode == 'place': + self.entry_mode = 'place' + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_loc) + self.entry_ignore = True + self.entry.set_text(places[place]) + self.entry_inode = False + + # + # An item is being added or renamed. Commit the change + # If the new name is empty, that implys a delete. + # We only allow the delete if the state is 'X' and not regular + def update_item(self, name): + if len(name) > 0: + if self.purch == None: + # check for duplicates FIXME + num = len(products) + prod = Prod(num, name) + products.append(prod) + p = Purch(prod) + purch.append(p) + p.state = "N"; + self.purch = p + self.set_purch(purch) + self.lview.select(num) + self.lview.plist.sort(purch_cmp) + else: + products[self.purch.prod].name = name + self.lview.select() + self.lview.plist.sort(purch_cmp) + self.forget_backup() + table_changed() + list_changed() + elif self.purch: + # delete? + if self.purch.state == 'N': + # OK to delete + products[self.purch.prod] = None + try: + i = purch.index(self.purch) + except: + pass + else: + if i == 0: + new = -1 + else: + new = purch[i-1].prod + del purch[i] + self.lview.plist.sort(purch_cmp) + self.lview.select(new) + table_changed() + list_changed() + self.forget_backup() + + def update_location(self, name): + if len(name) > 0: + locations[place][self.purch.loc()] = name + self.set_loc() + self.lview.select() + table_changed() + return + # See if we can delete this location + # need to check all products that they aren't 'here' + for p in products: + if p and p.num != self.purch.prod and place < len(p.loc): + if p.loc[place] == self.purch.loc(): + return + # nothing here except 'purch' + l = self.purch.loc() + self.prevloc(None) + locations[place][l] = None + locorder[place].remove(l) + self.lview.plist.sort(purch_cmp) + self.lview.select() + table_changed() + list_changed() + + def update_place(self, name): + global place + if len(name) > 0: + places[place] = name + self.lview.select() + self.set_place() + table_changed() + return + if len(places) <= 1: + return + + self.backup_table() + places[place:place+1] = [] + locations[place:place+1] = [] + locorder[place:place+1] = [] + if place >= len(places): + place -= 1 + table_changed() + self.set_place() + self.lview.select() + + def backup_table(self): + save_table("Products.backup") + self.save_button.hide() + self.revert_button.show() + + def forget_backup(self): + self.save_button.show() + self.revert_button.hide() + + def revert_to_saved(self, widget): + try: + f = open("Products.backup") + products = [] + locations = [] + locorder = [] + places = [] + load_table(f) + f.close() + except: + pass + + self.forget_backup() + + + def enter_change(self, widget): + name = self.entry.get_text() + mode = self.entry_mode + # This is need to avoid recursion as update_* calls {next,prev}loc + self.entry_mode = 'comment' + if mode == 'item': + self.update_item(name) + elif mode == 'location': + self.update_location(name) + elif mode == 'place': + self.update_place(name) + + self.entry_mode = "comment" + self.entry.modify_base(gtk.STATE_NORMAL, self.ecol_comment) + self.entry_ignore = True + self.entry.set_text("") + self.entry_ignore = False + +def main(): + gtk.main() + return 0 + +if __name__ == "__main__": + + home = os.getenv("HOME") + p = os.path.join(home, "shopping") + if os.path.exists(p): + os.chdir(p) + else: + os.chdir(home) + + products = [] + locations = [] + locorder = [] + places = [] + try: + f = open("Products") + load_table(f) + f.close() + except: + places = ['Home'] + locorder = [[]] + locations =[[]] + + purch = [] + try: + f = open("Purchases") + except: + pass + else: + load_list(f) + f.close() + merge_list(purch, products) + + + place = 0 + purch.sort(purch_cmp) + + sl = ShoppingList() + sl.set_purch(purch) + ss = gtk.settings_get_default() + ss.set_long_property("gtk-cursor-blink", 0, "shop") + main() diff --git a/Shop/t.table b/Shop/t.table new file mode 100644 index 0000000..c51a30c --- /dev/null +++ b/Shop/t.table @@ -0,0 +1,4 @@ +P,0:Home,1:Coles-EG,2:Woolies-HD +L0,0:Pantry,1:Freezer,2:Fridge,3:Laundry,4:Bathroom,5:Highcupboard +L1,0:F&V,1:Deli,2:Bakery,3:Meat,4:A1,5:A2,6:A3,7:None,8:None,9:Fridge +L2,0:F&V,1:Bakery,2:None,3:Deli,4:Fridge,5:Bread,6:Choc diff --git a/Shop/test.list b/Shop/test.list new file mode 100644 index 0000000..8baf98d --- /dev/null +++ b/Shop/test.list @@ -0,0 +1,4 @@ +12,N, +3,N, +36,N,bob +25,N,twinings diff --git a/Shop/test.table b/Shop/test.table new file mode 100644 index 0000000..7662f28 --- /dev/null +++ b/Shop/test.table @@ -0,0 +1,39 @@ +P,0:Home,1:Coles-EG,2:Woolies-HD +L0,0:Pantry,1:Freezer,2:Fridge,3:Laundry,4:Bathroom,5:Highcupboard +L1,8:Cereal,12:Roast,0:F&V,1:Deli,2:Bakery,3:Meat,4:A1,9:FrontDoor,11:Cheeses,10:M Aisle,5:zzzz,6:JuiceAisle +L2,0:F&V,1:Bakery,2:No thing2,3:Deli,4:Fridge,5:Bread,6:Choc +I0,Cheese sliced,R,L0:2,L1:11,L2:4 +I1,Milk,R,L0:2,L1:10,L2:4 +I2,Bread,R,L0:5 +I3,Weetbix,R,L0:0,L1:6 +I4,Allbran,I,L0:0,L1:5 +I5,Tin Fruit,I,L0:0 +I6,Yoghurt,I,L0:2 +I8,Juice,I,L1:6 +I9,Sugar,I,L0:5 +I10,Flour,I +I11,Sugar Icing,I,L0:0,L1:9 +I12,Sugar Brown,I,L0:0,L1:5 +I13,Fruit,I +I14,Veges,R,L0:2,L1:12 +I15,RoastingVeges,R,L0:2,L1:12 +I17,Tomato Sauce,R,L0:0 +I18,Worchester Sc,R,L0:0,L1:5 +I19,Soy Sauce,R,L0:1,L1:1,L2:3 +I20,Spagetti,R,L0:2,L1:2,L2:2 +I21,Pasta,R,L0:1,L1:4 +I22,Noodles,R,L0:0 +I23,EasyMac,R,L0:1,L1:5 +I24,Oat Bran,R,L0:0,L1:8 +I25,Tea Bags,I,L0:4 +I26,Milo,R,L0:1,L1:10 +I27,Saltanas,R,L0:1,L1:4 +I28,Margarine,R,L0:2 +I29,Bacon,R,L0:2 +I30,Mince,R,L0:1,L1:3 +I31,Sugar Raw,I,L0:0,L1:0 +I32,Sustain,I,L0:0,L1:8 +I33,Cheese block,I,L0:2,L1:11 +I34,bob,I,L0:0 +I35,fredd,I +I36,SometingNew,I,L0:3 diff --git a/Shop/todo b/Shop/todo new file mode 100644 index 0000000..95870fe --- /dev/null +++ b/Shop/todo @@ -0,0 +1,67 @@ +Design: + + enter new 'location' + enter new 'place' + Delete items?? + prime new list from old list + go to top + scroll up/down?? + +DONE How to 'scroll' in search mode? + Maybe select location separator +DONE list load/save +DONE report 'place' on display +DONE Change product to/from 'regular' + tick or cross in search mode + + + FL menu: + - reset: + All 'found', 'regular', 'noneed' return to + 'regular' or 'noneed' + and lose comment + All 'need' and 'cannot' become 'need' + - exit ?? + - Edit place/location + - Delete. need to re-select item after entering menu, then delete + +Implement: + +DONE Make 'search' a toggle button +DONE Sort by location +DONE separator for location change +DONE change place +DONE change name of item +DONE change location of item +DONE save table +DONE save list +DONE load old list +DONE left/right click to tick/cross instantly +DONE guessture text input +DONE Don't jump instantly from 'search' back to 'list' +DONE Highlight current in 'search' mode + + ?highlight entries with comments? +Don't allow things to disappear instantly +New items need to be sorted in +disable button that won't work. + +DONE - Bigger left-right buttons when selecting place +DONE - Don't lose notes on newly added items. +DONE - newly added items should get sorted in to 'unknown' +DONE - When setting 'location', jump to 'here' being the last place +NO - just discard this functionality. - goto-head, goto-tail should update notes. +- button for 'fresh list' +- button for 'hide/show all regular' +DONE - Don't got to 'regular' if it isn't regular. +DONE - darker green colour +DONE - labels for each location +DONE - tag items with comments +- find files in more sensible way +- add places +- edit places +- re-order places +DONE - add locations +DONE - edit locations +- re-order locations +DONE - delete a product?? diff --git a/apmhacks/apmd_proxy b/apmhacks/apmd_proxy new file mode 100755 index 0000000..3a8cb0d --- /dev/null +++ b/apmhacks/apmd_proxy @@ -0,0 +1,98 @@ +#!/bin/sh +# +# apmd_proxy - program dispatcher for APM daemon +# +# Written by Craig Markwardt (craigm@lheamail.gsfc.nasa.gov) 21 May 1999 +# Modified for Debian by Avery Pennarun +# +# This shell script is called by the APM daemon (apmd) when a power +# management event occurs. Its first and second arguments describe the +# event. For example, apmd will call "apmd_proxy suspend system" just +# before the system is suspended. +# +# Here are the possible arguments: +# +# start - APM daemon has started +# stop - APM daemon is shutting down +# suspend critical - APM system indicates critical suspend (++) +# suspend system - APM system has requested suspend mode +# suspend user - User has requested suspend mode +# standby system - APM system has requested standby mode +# standby user - User has requested standby mode +# resume suspend - System has resumed from suspend mode +# resume standby - System has resumed from standby mode +# resume critical - System has resumed from critical suspend +# change battery - APM system reported low battery +# change power - APM system reported AC/battery change +# change time - APM system reported time change (*) +# change capability - APM system reported config. change (+) +# +# (*) - APM daemon may be configured to not call these sequences +# (+) - Available if APM kernel supports it. +# (++) - "suspend critical" is never passed to apmd from the kernel, +# so we will never see it here. Scripts that process "resume +# critical" events need to take this into account. +# +# It is the proxy script's responsibility to examine the APM status +# (via /proc/apm) or other status and to take appropriate actions. +# For example, the script might unmount network drives before the +# machine is suspended. +# +# In Debian, the usual way of adding functionality to the proxy is to +# add a script to /etc/apm/event.d. This script will be called by +# apmd_proxy (via run-parts) with the same arguments. +# +# If it is important that a certain set of script be run in a certain +# order on suspend and in a different order on resume, then put all +# the scripts in /etc/apm/scripts.d instead of /etc/apm/event.d and +# symlink to these from /etc/apm/suspend.d, /etc/apm/resume.d and +# /etc/apm/other.d using names whose lexicographical order is the same +# as the desired order of execution. +# +# If the kernel's APM driver supports it, apmd_proxy can return a non-zero +# exit status on suspend and standby events, indicating that the suspend +# or standby event should be rejected. +# +# ******************************************************************* + +set -e + +# The following doesn't yet work, because current kernels (up to at least +# 2.4.20) do not support rejection of APM events. Supporting this would +# require substantial modifications to the APM driver. We will re-enable +# this feature if the driver is ever modified. -- cph@debian.org +# +#SUSPEND_ON_AC=false +#[ -r /etc/apm/apmd_proxy.conf ] && . /etc/apm/apmd_proxy.conf +# +#if [ "${SUSPEND_ON_AC}" = "false" -a "${2}" = "system" ] \ +# && on_ac_power >/dev/null; then +# # Reject system suspends and standbys if we are on AC power +# exit 1 # Reject (NOTE kernel support must be enabled) +#fi + +echo $1 $2 $FORCE_APM `date` >> /tmp/apm.trace +if [ " $1" = " suspend" -a " $2" = " user" -a " $FORCE_APM" != " yes" ] +then exit 0 +fi +if [ " $1" = " resume" -a " $FORCE_APM" != " yes" ] +then exit 0 +fi +if [ "${1}" = "suspend" -o "${1}" = "standby" ]; then + run-parts --arg="${1}" --arg="${2}" /etc/apm/event.d + if [ -d /etc/apm/suspend.d ]; then + run-parts --arg="${1}" --arg="${2}" /etc/apm/suspend.d + fi +elif [ "${1}" = "resume" ]; then + if [ -d /etc/apm/resume.d ]; then + run-parts --arg="${1}" --arg="${2}" /etc/apm/resume.d + fi + run-parts --arg="${1}" --arg="${2}" /etc/apm/event.d +else + run-parts --arg="${1}" --arg="${2}" /etc/apm/event.d + if [ -d /etc/apm/other.d ]; then + run-parts --arg="${1}" --arg="${2}" /etc/apm/other.d + fi +fi + +exit 0 diff --git a/auxlaunch/auxlaunch.py b/auxlaunch/auxlaunch.py new file mode 100755 index 0000000..a2aede8 --- /dev/null +++ b/auxlaunch/auxlaunch.py @@ -0,0 +1,457 @@ +#!/usr/bin/env python + +# Auxlaunch, October 2008, aliasid + + +import pygtk +import gtk +import sys +import os +import dbus +import dbus.glib +import posix +posix.chdir("/home/root") + +class ViewManager: + '''Manage the user interface''' + def __init__(self): + # Create map for change buttons. Indicate which modes + # are invoked by which button positions. This supports options + # like righ/left handed, and window-swithcing or not. + lns = {0:Controller.GRP,1:Controller.APP,2:Controller.ERR} + lsw = {0:Controller.GRP,1:Controller.APP,2:Controller.WIN} + rns = {0:Controller.APP,1:Controller.GRP,2:Controller.ERR} + rsw = {0:Controller.WIN,1:Controller.APP,2:Controller.GRP} + self.keymap = {'left': {'no_switching':lns,'switching':lsw}, + 'right':{'no_switching':rns,'switching':rsw}} + + self.hidden = False # Track if Auxluanch's window is showing or not + + def start_ui(self): + global ctrl + + # Set up GTK window and table + self.win = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.win.connect("delete_event", self.delete_event) + self.win.connect("focus_in_event", self.focus_event) + self.win.set_border_width(10) + if ctrl.simple_ui(): + rows = 2 + else: + rows = 3 + if ctrl.window_mgr(): + columns = 2 + else: + columns = 1 + self.tbl = gtk.Table(rows, columns, True) + self.win.add(self.tbl) + + # Create a "go" button + self.btnGo = self.create_button('gtk-dialog-error','go',0,3,0,1) + self.btnGo.set_label('initial') + + # Create multiple sets of arrow or "change" buttons + # Buttons' "data" indicates position (column) and + # "adjustment" (+1/-1 = up or down) + if ctrl.simple_ui(): + self.btn1dn = self.create_button('gtk-directory', '0,-1',0,1,1,3) + self.btn2dn = self.create_button('gtk-index', '1,-1',1,2,1,3) + if ctrl.window_mgr(): + self.btn3dn = self.create_button('gtk-refresh','2,-1',2,3,1,3) + else: + self.btn1up = self.create_button('gtk-go-up' ,'0,+1',0,1,1,2) + self.btn1dn = self.create_button('gtk-go-down','0,-1',0,1,2,3) + self.btn2up = self.create_button('gtk-go-up' ,'1,+1',1,2,1,2) + self.btn2dn = self.create_button('gtk-go-down','1,-1',1,2,2,3) + if ctrl.window_mgr(): + self.btn3up = self.create_button('gtk-go-up' ,'2,+1',2,3,1,2) + self.btn3dn = self.create_button('gtk-go-down','2,-1',2,3,2,3) + + # Prepare UI + self.tbl.show() + self.win.show() + self.hide() + + # Hook up to AUX button + bus = dbus.SystemBus() + #bus.add_signal_receiver(self.signal_handler, + # dbus_interface="org.freesmartphone.odeviced", + # signal_name=None) + bus.add_signal_receiver(self.signal_handler, + dbus_interface="org.freesmartphone.Device.Input", + signal_name="Event") + #bus.add_signal_receiver(self.signal_handler,None, None, + # "org.freesmartphone.odeviced","/org/freesmartphone/Device/Input") + self.x = True + + gtk.main() # Allow GTK's event loop to run and call us back + + def signal_handler(self, name, action, xx): + '''React to AUX button press''' + print "name = %s and action = %s xx=%s" % (name,action,xx) + if self.x: + self.x = False + return + self.x = True + if (name == "AUX" or name == "ButtonPressed") and (action == "pressed" or action == "phone"): + if ctrl.hide() : + if self.hidden: + self.show() + else: + self.hide() + else: + self.show() + + + def button_pressed(self, widget, data): + global ctrl + if data == 'go': + ctrl.go() + else: + # Figure out what user meant based on button button position and + # command line options. Asumme defaults 1st. + # TODO: clean up constants below + right_left = 'left' + switching = 'no_switching' + if ctrl.right_hand(): right_left = 'right' + if ctrl.window_mgr(): switching = 'switching' + data = data.split(',') + column = self.keymap[right_left][switching][int(data[0])] + ctrl.adjust(column, int(data[1])) + + def set_go(self, icon, text): + '''Update Go button's image and label''' + self.btnGo.set_image(icon) + self.btnGo.set_label(text) + label = self.btnGo.child.child.get_children()[1] + label.set_markup(''+text+'') + + def delete_event(self, widget, event, data=None): + '''Answers qeuestion: should exit event be deleted?''' + if ctrl.done(): + gtk.main_quit() + return False + else: + return True + + def focus_event(self, widget, event, data=None): + ''' Process event: app window gained or lost focus''' + ctrl.refresh() + + def create_button(self, stock_id, data, left,right,top,botton): + '''Utility function to create buttons''' + button = gtk.Button() + image = gtk.Image() + image.set_from_stock(stock_id, gtk.ICON_SIZE_DIALOG) + button.set_image(image) + button.connect("clicked", self.button_pressed, data) + self.tbl.attach(button, left, right, top, botton) + button.show() + return button + + def hide(self): + self.win.iconify() + self.hidden = True + + def show(self): + self.win.maximize() + self.win.present() + self.hidden = False + + def stop_ui(self): + gtk.main_quit() + +class Controller: + '''Track status of auxlaunch app, manages model and view''' + + # These constants are passed between the view and the controller. + # They represent the "mode" (what the go button will do). Mode is + # determined by most recently pressed adjust button's position on-screen. + APP = 'app' + WIN = 'win' + GRP = 'grp' + ERR = ' ' + + def __init__(self): + # The application's "state" is the mode of the go button + # plus the current index positions in the lists of groups, + # apps, and windows + self.goMode = self.APP + self.curGrp = 0 + self.curApp = 0 + self.curWin = 0 + + def run(self): + if self.help_needed(): + pass + else: + global model + global view + model.load_from_rc() + if self.dms(): + model.load_from_dms() + view.start_ui() + + # Command line options: + def help_needed(self): + if '-help' in sys.argv: + print '-dms = Include items from Debian Menu System.' + print '-nowm = No window manager. (Do not show window switching buttons).' + print '-right = Swap app-launchning and window-switching buttons (right for left).' + print '-hide = Cause AUX button to hide Auxlaunch (when it is displayed).' + print '-simple = Use "change" buttons for grp/app/win selecting (instead of up/down buttons).' + return True + else: + return False + def window_mgr(self): + if '-nowm' in sys.argv: return False + else: return True + def right_hand(self): + if '-right' in sys.argv: return True + else: return False + def dms(self): + if '-dms' in sys.argv: return True + else: return False + def hide(self): + if '-hide' in sys.argv: return True + else: return False + def simple_ui(self): + if '-simple' in sys.argv: return True + else: return False + + def done(self): + '''Check if ok to exit application''' + return True # For now, always exit - nothing needs to be saved + + def go(self): + '''React to "Go" button press''' + if self.goMode == self.APP: + command = model.get_app(self.curGrp,self.curApp).get_command() + if command == '(cancel)': + view.hide() + elif command == '(quit)': + view.stop_ui() + else: + print 'auxlaunch: launching "'+command+'"' # debug + view.hide() + os.system(command) + elif self.goMode == self.WIN: + window_title = model.get_window(self.curWin).get_title() + window_ID = model.get_window(self.curWin).get_win_id() + print 'auxlaunch: swtiching "'+window_title+'": '+window_ID # debug + view.hide() + os.system('wmctrl -i -a '+window_ID) + elif self.goMode == self.GRP: + self.curApp = 0 + app = model.get_app(self.curGrp,self.curApp) + view.set_go(app.get_icon(), app.get_name()) + self.goMode = self.APP + + def adjust(self, new_mode, change): + '''React to change-button press, update state and "Go" button''' + + # Adjust state while enforcing bounds checking of list indexes + if new_mode == Controller.GRP: + self.curGrp = (self.curGrp + change) % model.num_groups() + view.set_go(model.group_image(), model.get_group(self.curGrp)) + elif new_mode == Controller.APP: + self.curApp = (self.curApp + change) % model.num_apps_in_group(self.curGrp) + app = model.get_app(self.curGrp,self.curApp) + view.set_go(app.get_icon(), app.get_name()) + elif new_mode == Controller.WIN: + self.curWin = (self.curWin + change) % model.num_win() + window = model.get_window(self.curWin) + view.set_go(model.switch_image, window.get_title()) + + # Adjust Go button's mode + self.goMode = new_mode + + def refresh(self): + '''Load new snapshot of other apps' window titles''' + if self.window_mgr(): + model.reload_windows() + self.curWin = 0 # TODO: guess window based on history + window = model.get_window(self.curWin) + view.set_go(model.switch_image, window.get_title()) + +class ModelManager: + '''Provide data - groups, apps, windows, images''' + def __init__(self): + # Create a group-to-app-list dictionary where keys will + # be group names and items will be lists of "Apps"s + self.grpApps = {} + + # Keep list objects that represent current X application windows + self.winList = [] + + # Store generic "group' and "switch' images - since other images are in model + self.switch_image = gtk.Image() + self.switch_image.set_from_stock('gtk-refresh', gtk.ICON_SIZE_DIALOG) + self.grp_image = gtk.Image() + self.grp_image.set_from_stock('gtk-directory', gtk.ICON_SIZE_DIALOG) + + # Images + def switch_image(self): + return self.switch_image + def group_image(self): + return self.grp_image + + # Windows + def num_win(self): + return len(self.winList) + + def get_window(self, number): + return self.winList[number] + + def reload_windows(self): + '''Build list of other apps' window IDs and titles''' + self.winList = [] + output = os.popen('wmctrl -l','r') + while True: + line = output.readline() + if not line: break + field = line.split(None,3) + title = field[3].rstrip() + title = title.replace('<','-') + title = title.replace('>','-') + if title == 'auxlaunch': + continue + self.winList.append(WinItem(field[0], title)) + + # Groups and apps + def num_groups(self): + return len(self.grpApps.keys()) + + def num_apps_in_group(self, groupNum): + group = self.grpApps.keys()[groupNum] + return len(self.grpApps[group]) + + def get_group(self, number): + return self.grpApps.keys()[number] + + def get_app(self, groupNum, appNum): + '''Provide desired app item object''' + group = self.grpApps.keys()[groupNum] + return self.grpApps[group][appNum] + + def load_from_rc(self): + '''Read Auxlaunch's config file''' + # Create temporary, holding variables + INITGROUP = '(My Default Group)' + curGroup = INITGROUP + curApps = [] + + rcfile = open('.auxlaunchrc') + for line in rcfile: + field = line.split(',') + if field[0][0].upper() == '"': # Menu record + if not (curGroup == INITGROUP and len(curApps) == 0): + self.grpApps[curGroup] = curApps # Flush holding vars + curGroup = field[0].strip('"').strip("'") + curApps = [] + else: # Item record + image = gtk.Image() + if field[2].rstrip() == '': + image.set_from_stock('gtk-execute', gtk.ICON_SIZE_DIALOG) + elif field[2][:4] == 'gtk-': + image.set_from_stock(field[2], gtk.ICON_SIZE_DIALOG) + else: + image.set_from_file(field[2]) + app = AppItem(image,field[0],field[1]) + curApps.append(app) + # Flush last holding value + if not (curGroup == INITGROUP and len(curApps) == 0): + self.grpApps[curGroup] = curApps + + def load_from_dms(self): + '''Read entries out of Debian Menu System files''' + for filename in os.listdir('/usr/share/menu'): + file_object = open('/usr/share/menu/'+filename) + buf = file_object.read(1000000) + buf = buf.decode('string_escape') # Remove escaped newlines + entries = buf.splitlines() + for entry in entries: + entry = entry.split() # Remove leading, trailing, + entry = ' '.join(entry) # and extra inner spaces + entry = entry.strip() + if entry == '': continue # Skip empties and non-entries + if entry[0] <> '?': continue + entry = entry.partition(':')[2] # Remove prior to ':' + if entry == '': continue + quoted = False # Chop at unquoted spaces + space_at = [] + for i in range(len(entry)): + if entry[i] == '"': + quoted = not quoted + if entry[i] == ' ' and not quoted: + space_at.append(i) + fields = [] + start = 0 + for end in space_at: + fields.append(entry[start:end]) + start = end+1 + fields.append(entry[start:]) + + # Extract field names and values + item = {'needs':'', 'title':'', 'command':'', 'icon':'', 'section':'Default'} + for field in fields: + if field == '': continue + if not '=' in field: continue + pair = field.split('=') # TODO Why needed to avoid error? + item[pair[0]] = pair[1].strip('"') + + # TODO: Don't yet know how to launch cmd line ("text") apps, so skip 'em + if not item['needs'].upper() == 'X11': continue + + # Derive label, image, command, and group + label = '' + if item['title'] <> '': label = ' ' + item['title'] + elif item['command'] <> '': label = ' ' + item['command'] + else: continue + command = item['command'] + ' &' # TODO: Best place to add '&'? + image = gtk.Image() + if item['icon'] == '': image.set_from_stock('gtk-execute', gtk.ICON_SIZE_DIALOG) + else: image.set_from_file(item['icon']) + + # Insert app, and possibly group, into dictionary + appList = [] + if self.grpApps.has_key(item['section']): + appList = self.grpApps[item['section']] + appList.append(AppItem(image, label, command)) + self.grpApps[item['section']] = appList + + +class AppItem: + '''Store attributes of an application''' + def __init__(self, icon, name, command): + self.icon = icon + self.name = name + self.command = command + + def get_icon(self): + return self.icon + + def get_name(self): + return self.name + + def get_command(self): + return self.command + +class WinItem: + '''Store attributes of a window''' + def __init__(self, window_id, title): + self.win_id = window_id + self.title = title + + def get_win_id(self): + return self.win_id + + def get_title(self): + return self.title + +# Auxluanch execution starts here +model = ModelManager() +ctrl = Controller() +view = ViewManager() +ctrl.run() + diff --git a/auxlaunch/auxlaunch2.py b/auxlaunch/auxlaunch2.py new file mode 100644 index 0000000..6edc037 --- /dev/null +++ b/auxlaunch/auxlaunch2.py @@ -0,0 +1,457 @@ +#!/usr/bin/env python + +# Auxlaunch, October 2008, aliasid + + +import pygtk +import gtk +import sys +import os +import dbus +import dbus.glib +import posix +posix.chdir("/home/root") + +class ViewManager: + '''Manage the user interface''' + def __init__(self): + # Create map for change buttons. Indicate which modes + # are invoked by which button positions. This supports options + # like righ/left handed, and window-swithcing or not. + lns = {0:Controller.GRP,1:Controller.APP,2:Controller.ERR} + lsw = {0:Controller.GRP,1:Controller.APP,2:Controller.WIN} + rns = {0:Controller.APP,1:Controller.GRP,2:Controller.ERR} + rsw = {0:Controller.WIN,1:Controller.APP,2:Controller.GRP} + self.keymap = {'left': {'no_switching':lns,'switching':lsw}, + 'right':{'no_switching':rns,'switching':rsw}} + + self.hidden = False # Track if Auxluanch's window is showing or not + + def start_ui(self): + global ctrl + + # Set up GTK window and table + self.win = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.win.connect("delete_event", self.delete_event) + self.win.connect("focus_in_event", self.focus_event) + self.win.set_border_width(10) + if ctrl.simple_ui(): + rows = 2 + else: + rows = 3 + if ctrl.window_mgr(): + columns = 2 + else: + columns = 1 + self.tbl = gtk.Table(rows, columns, True) + self.win.add(self.tbl) + + # Create a "go" button + self.btnGo = self.create_button('gtk-dialog-error','go',0,3,0,1) + self.btnGo.set_label('initial') + + # Create multiple sets of arrow or "change" buttons + # Buttons' "data" indicates position (column) and + # "adjustment" (+1/-1 = up or down) + if ctrl.simple_ui(): + self.btn1dn = self.create_button('gtk-directory', '0,-1',0,1,1,3) + self.btn2dn = self.create_button('gtk-index', '1,-1',1,2,1,3) + if ctrl.window_mgr(): + self.btn3dn = self.create_button('gtk-refresh','2,-1',2,3,1,3) + else: + self.btn1up = self.create_button('gtk-go-up' ,'0,+1',0,1,1,2) + self.btn1dn = self.create_button('gtk-go-down','0,-1',0,1,2,3) + self.btn2up = self.create_button('gtk-go-up' ,'1,+1',1,2,1,2) + self.btn2dn = self.create_button('gtk-go-down','1,-1',1,2,2,3) + if ctrl.window_mgr(): + self.btn3up = self.create_button('gtk-go-up' ,'2,+1',2,3,1,2) + self.btn3dn = self.create_button('gtk-go-down','2,-1',2,3,2,3) + + # Prepare UI + self.tbl.show() + self.win.show() + self.hide() + + # Hook up to AUX button + bus = dbus.SystemBus() + #bus.add_signal_receiver(self.signal_handler, + # dbus_interface="org.freesmartphone.odeviced", + # signal_name=None) + bus.add_signal_receiver(self.signal_handler, + dbus_interface="org.freesmartphone.Device.Input", + signal_name="Event") + #bus.add_signal_receiver(self.signal_handler,None, None, + # "org.freesmartphone.odeviced","/org/freesmartphone/Device/Input") + self.x = True + + gtk.main() # Allow GTK's event loop to run and call us back + + def signal_handler(self, name, action, xx): + '''React to AUX button press''' + print "name = %s and action = %s xx=%s" % (name,action,xx) + if self.x: + self.x = False + return + self.x = True + if (name == "AUX" or name == "ButtonPressed") and (action == "pressed" or action == "phone"): + if ctrl.hide() : + if self.hidden: + self.show() + else: + self.hide() + else: + self.show() + + + def button_pressed(self, widget, data): + global ctrl + if data == 'go': + ctrl.go() + else: + # Figure out what user meant based on button button position and + # command line options. Asumme defaults 1st. + # TODO: clean up constants below + right_left = 'left' + switching = 'no_switching' + if ctrl.right_hand(): right_left = 'right' + if ctrl.window_mgr(): switching = 'switching' + data = data.split(',') + column = self.keymap[right_left][switching][int(data[0])] + ctrl.adjust(column, int(data[1])) + + def set_go(self, icon, text): + '''Update Go button's image and label''' + self.btnGo.set_image(icon) + self.btnGo.set_label(text) + label = self.btnGo.child.child.get_children()[1] + label.set_markup(''+text+'') + + def delete_event(self, widget, event, data=None): + '''Answers qeuestion: should exit event be deleted?''' + if ctrl.done(): + gtk.main_quit() + return False + else: + return True + + def focus_event(self, widget, event, data=None): + ''' Process event: app window gained or lost focus''' + ctrl.refresh() + + def create_button(self, stock_id, data, left,right,top,botton): + '''Utility function to create buttons''' + button = gtk.Button() + image = gtk.Image() + image.set_from_stock(stock_id, gtk.ICON_SIZE_DIALOG) + button.set_image(image) + button.connect("clicked", self.button_pressed, data) + self.tbl.attach(button, left, right, top, botton) + button.show() + return button + + def hide(self): + self.win.iconify() + self.hidden = True + + def show(self): + self.win.maximize() + self.win.present() + self.hidden = False + + def stop_ui(self): + gtk.main_quit() + +class Controller: + '''Track status of auxlaunch app, manages model and view''' + + # These constants are passed between the view and the controller. + # They represent the "mode" (what the go button will do). Mode is + # determined by most recently pressed adjust button's position on-screen. + APP = 'app' + WIN = 'win' + GRP = 'grp' + ERR = ' ' + + def __init__(self): + # The application's "state" is the mode of the go button + # plus the current index positions in the lists of groups, + # apps, and windows + self.goMode = self.APP + self.curGrp = 0 + self.curApp = 0 + self.curWin = 0 + + def run(self): + if self.help_needed(): + pass + else: + global model + global view + model.load_from_rc() + if self.dms(): + model.load_from_dms() + view.start_ui() + + # Command line options: + def help_needed(self): + if '-help' in sys.argv: + print '-dms = Include items from Debian Menu System.' + print '-nowm = No window manager. (Do not show window switching buttons).' + print '-right = Swap app-launchning and window-switching buttons (right for left).' + print '-hide = Cause AUX button to hide Auxlaunch (when it is displayed).' + print '-simple = Use "change" buttons for grp/app/win selecting (instead of up/down buttons).' + return True + else: + return False + def window_mgr(self): + if '-nowm' in sys.argv: return False + else: return True + def right_hand(self): + if '-right' in sys.argv: return True + else: return False + def dms(self): + if '-dms' in sys.argv: return True + else: return False + def hide(self): + if '-hide' in sys.argv: return True + else: return False + def simple_ui(self): + if '-simple' in sys.argv: return True + else: return False + + def done(self): + '''Check if ok to exit application''' + return True # For now, always exit - nothing needs to be saved + + def go(self): + '''React to "Go" button press''' + if self.goMode == self.APP: + command = model.get_app(self.curGrp,self.curApp).get_command() + if command == '(cancel)': + view.hide() + elif command == '(quit)': + view.stop_ui() + else: + print 'auxlaunch: launching "'+command+'"' # debug + view.hide() + os.system(command) + elif self.goMode == self.WIN: + window_title = model.get_window(self.curWin).get_title() + window_ID = model.get_window(self.curWin).get_win_id() + print 'auxlaunch: swtiching "'+window_title+'": '+window_ID # debug + view.hide() + os.system('wmctrl -i -a '+window_ID) + elif self.goMode == self.GRP: + self.curApp = 0 + app = model.get_app(self.curGrp,self.curApp) + view.set_go(app.get_icon(), app.get_name()) + self.goMode = self.APP + + def adjust(self, new_mode, change): + '''React to change-button press, update state and "Go" button''' + + # Adjust state while enforcing bounds checking of list indexes + if new_mode == Controller.GRP: + self.curGrp = (self.curGrp + change) % model.num_groups() + view.set_go(model.group_image(), model.get_group(self.curGrp)) + elif new_mode == Controller.APP: + self.curApp = (self.curApp + change) % model.num_apps_in_group(self.curGrp) + app = model.get_app(self.curGrp,self.curApp) + view.set_go(app.get_icon(), app.get_name()) + elif new_mode == Controller.WIN: + self.curWin = (self.curWin + change) % model.num_win() + window = model.get_window(self.curWin) + view.set_go(model.switch_image, window.get_title()) + + # Adjust Go button's mode + self.goMode = new_mode + + def refresh(self): + '''Load new snapshot of other apps' window titles''' + if self.window_mgr(): + model.reload_windows() + self.curWin = 0 # TODO: guess window based on history + window = model.get_window(self.curWin) + view.set_go(model.switch_image, window.get_title()) + +class ModelManager: + '''Provide data - groups, apps, windows, images''' + def __init__(self): + # Create a group-to-app-list dictionary where keys will + # be group names and items will be lists of "Apps"s + self.grpApps = {} + + # Keep list objects that represent current X application windows + self.winList = [] + + # Store generic "group' and "switch' images - since other images are in model + self.switch_image = gtk.Image() + self.switch_image.set_from_stock('gtk-refresh', gtk.ICON_SIZE_DIALOG) + self.grp_image = gtk.Image() + self.grp_image.set_from_stock('gtk-directory', gtk.ICON_SIZE_DIALOG) + + # Images + def switch_image(self): + return self.switch_image + def group_image(self): + return self.grp_image + + # Windows + def num_win(self): + return len(self.winList) + + def get_window(self, number): + return self.winList[number] + + def reload_windows(self): + '''Build list of other apps' window IDs and titles''' + self.winList = [] + output = os.popen('wmctrl -l','r') + while True: + line = output.readline() + if not line: break + field = line.split(None,3) + title = field[3].rstrip() + title = title.replace('<','-') + title = title.replace('>','-') + if title == 'auxlaunch': + continue + self.winList.append(WinItem(field[0], title)) + + # Groups and apps + def num_groups(self): + return len(self.grpApps.keys()) + + def num_apps_in_group(self, groupNum): + group = self.grpApps.keys()[groupNum] + return len(self.grpApps[group]) + + def get_group(self, number): + return self.grpApps.keys()[number] + + def get_app(self, groupNum, appNum): + '''Provide desired app item object''' + group = self.grpApps.keys()[groupNum] + return self.grpApps[group][appNum] + + def load_from_rc(self): + '''Read Auxlaunch's config file''' + # Create temporary, holding variables + INITGROUP = '(My Default Group)' + curGroup = INITGROUP + curApps = [] + + rcfile = open('.auxlaunchrc') + for line in rcfile: + field = line.split(',') + if field[0][0].upper() == '"': # Menu record + if not (curGroup == INITGROUP and len(curApps) == 0): + self.grpApps[curGroup] = curApps # Flush holding vars + curGroup = field[0].strip('"').strip("'") + curApps = [] + else: # Item record + image = gtk.Image() + if field[2].rstrip() == '': + image.set_from_stock('gtk-execute', gtk.ICON_SIZE_DIALOG) + elif field[2][:4] == 'gtk-': + image.set_from_stock(field[2], gtk.ICON_SIZE_DIALOG) + else: + image.set_from_file(field[2]) + app = AppItem(image,field[0],field[1]) + curApps.append(app) + # Flush last holding value + if not (curGroup == INITGROUP and len(curApps) == 0): + self.grpApps[curGroup] = curApps + + def load_from_dms(self): + '''Read entries out of Debian Menu System files''' + for filename in os.listdir('/usr/share/menu'): + file_object = open('/usr/share/menu/'+filename) + buf = file_object.read(1000000) + buf = buf.decode('string_escape') # Remove escaped newlines + entries = buf.splitlines() + for entry in entries: + entry = entry.split() # Remove leading, trailing, + entry = ' '.join(entry) # and extra inner spaces + entry = entry.strip() + if entry == '': continue # Skip empties and non-entries + if entry[0] <> '?': continue + entry = entry.partition(':')[2] # Remove prior to ':' + if entry == '': continue + quoted = False # Chop at unquoted spaces + space_at = [] + for i in range(len(entry)): + if entry[i] == '"': + quoted = not quoted + if entry[i] == ' ' and not quoted: + space_at.append(i) + fields = [] + start = 0 + for end in space_at: + fields.append(entry[start:end]) + start = end+1 + fields.append(entry[start:]) + + # Extract field names and values + item = {'needs':'', 'title':'', 'command':'', 'icon':'', 'section':'Default'} + for field in fields: + if field == '': continue + if not '=' in field: continue + pair = field.split('=') # TODO Why needed to avoid error? + item[pair[0]] = pair[1].strip('"') + + # TODO: Don't yet know how to launch cmd line ("text") apps, so skip 'em + if not item['needs'].upper() == 'X11': continue + + # Derive label, image, command, and group + label = '' + if item['title'] <> '': label = ' ' + item['title'] + elif item['command'] <> '': label = ' ' + item['command'] + else: continue + command = item['command'] + ' &' # TODO: Best place to add '&'? + image = gtk.Image() + if item['icon'] == '': image.set_from_stock('gtk-execute', gtk.ICON_SIZE_DIALOG) + else: image.set_from_file(item['icon']) + + # Insert app, and possibly group, into dictionary + appList = [] + if self.grpApps.has_key(item['section']): + appList = self.grpApps[item['section']] + appList.append(AppItem(image, label, command)) + self.grpApps[item['section']] = appList + + +class AppItem: + '''Store attributes of an application''' + def __init__(self, icon, name, command): + self.icon = icon + self.name = name + self.command = command + + def get_icon(self): + return self.icon + + def get_name(self): + return self.name + + def get_command(self): + return self.command + +class WinItem: + '''Store attributes of a window''' + def __init__(self, window_id, title): + self.win_id = window_id + self.title = title + + def get_win_id(self): + return self.win_id + + def get_title(self): + return self.title + +# Auxluanch execution starts here +model = ModelManager() +ctrl = Controller() +view = ViewManager() +ctrl.run() + diff --git a/gsm/At.Commands.pdf b/gsm/At.Commands.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4ddb3d5a97591b1c5c1e519f4fc0b940f7e2e343 GIT binary patch literal 2678165 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%0AXD^TB(9E}{ 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

YSS00ng$2sWcFB# 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
OrsPg;VzCS`UYP6X-ha`(-$4}K-Xf%!v%Co8 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

LgAuQCM9)5*Qm_fXX1iN?rcMS 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

4VFn7Z6nE`Zz>3X_B@=2lsrmHg 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Ð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 z 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'x6d0<@ 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

O+Bci(vkli$FiVG^ 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

RqX%2nDH#E%>VA+|0kY@{eLK4|L5)d{~aLw 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%0A%6{H>s7Y*+|uHS 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 *-Hsf7d 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

8gNV9rzwxYUUO#N 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 abs(dy): + newx = newx - dx + else: + newy = newy - dy + + if newx >= self.hadj.upper - self.hadj.page_size: + newx = self.hadj.upper - self.hadj.page_size + if newx <= self.hadj.lower: newx = self.hadj.lower + if newy >= self.vadj.upper - self.vadj.page_size: + newy = self.vadj.upper - self.vadj.page_size + if newy <= self.vadj.lower: newy = self.vadj.lower + self.hadj.value = newx + self.vadj.value = newy + w.stop_emission("motion_notify_event") + +if __name__ == "__main__": + # test app for FingerScroll + import sys + w = gtk.Window(gtk.WINDOW_TOPLEVEL) + w.connect("destroy", lambda w: gtk.main_quit()) + w.set_title("FingerScroll test") + w.show() + w.set_default_size(200,200) + + sw = FingerScroll(); sw.show() + w.add(sw) + + b = sw.get_buffer() + + f = open(sys.argv[-1], "r") + l = f.readline() + while len(l): + b.insert(b.get_end_iter(), l) + l = f.readline() + + gtk.main() diff --git a/launcher/gpstz b/launcher/gpstz new file mode 100644 index 0000000..be7a405 --- /dev/null +++ b/launcher/gpstz @@ -0,0 +1,62 @@ +#!/bin/bash + +case $1 in + */* ) + if cmp -s /etc/localtime /usr/share/zoneinfo/$1 + then : localtime is OK + else : echo Copying to localtime + cp /usr/share/zoneinfo/$1 /etc/localtime + fi + if [ `cat /etc/timezone` != $1 ] + then : echo Setting /etc/timezone + echo $1 > /etc/timezone + fi + exit 0 + ;; + --list ) ;; + * ) echo >&2 Usage: gpstz [--list] zone/name + exit 1 +esac + +gpspipe -r -n 20 | grep GPGGA | while IFS=, read a tm lat NS long EW etc + do + long=${long%.*} lat=${lat%.*} + case $NS in + N) lat=+$lat;; + S) lat=-$lat;; + esac + case $EW in + E) long=+$long ;; + W) long=-$long ;; + esac + # echo $lat $long + mind=9999999999 + while read country loc tz desc + do + case $country in + \#* ) continue;; + esac + case $loc in + [-+][0-9][0-9][0-9][0-9][-+][0-9][0-9][0-9][0-9][0-9] ) + tlat=${loc%??????} + tlat=${tlat#?} + tlat=${tlat#0} + tlat=${tlat#0} + tlat=${tlat#0} + tlat=${loc%??????????}$tlat + tlong=${loc#?????} + slong=${tlong%?????} + tlong=${tlong#?} + tlong=${tlong#0} + tlong=${tlong#0} + tlong=$slong${tlong#0} + ;; + * ) continue + esac + # echo $tz at $tlat $tlong + x=$[long-tlong] y=$[lat-tlat] + d=$[x*x+y*y] + echo $d $tz + done < /usr/share/zoneinfo/zone.tab + break + done | sort -n | sed 10q diff --git a/launcher/launch.py b/launcher/launch.py new file mode 100644 index 0000000..64d012e --- /dev/null +++ b/launcher/launch.py @@ -0,0 +1,1411 @@ +#!/usr/bin/env python2.5 + +# Neo Launcher +# inspired in part by Auxlaunch +# +# We have a list of folders each of which contains a list of +# tasks, each of which can have a small number of options. +# We present the folders in one column and the tasks in another, +# with the options in buttons below. +# Task types are: +# Program: Option is to run the program +# If the program is currently running, there is also an option to +# kill the program +# If there is a window that is believed to be attached to the program +# The kill option simply closes that window, and there is another option +# to raise the window +# Window: Options are to raise or to kill the window. +# +# +# TODO +# LATER Make list of windows-to-exclude (Panel 0) configurable +# Sort things? +# more space around main words +# +# Design thoughts 28Dec2010 +# Having separete 'internal' folders is bad +# And having to explicitly list lots of speed-dials for a speed-dial +# folder is bad. +# So I want two classes of folder: +# - one that has an explicit list of items, which can be programs or +# any internal function. +# - one that has an implicit list of items, which is generated by an +# internal function or a plug-in +# The implicit list could be an internal function which creates multiple +# entries.. +# So: +# [foldername] +# tag,command line,window-name +# tag,(internal) +# tag,internal() +# tag,module.internal(arguments) +# *,internal(arguments) +# +# The list-creating function would need a call-back to ask for the list +# to be re-calculated +# possible function lists are: +# - windows +# - speed-dials +# - recent-calls +# - wifi networks scanned (add/add-auto, possibly with password) +# - wifi networks known (connect, delete) +# - nearby time zones +# - generic list that was asked for, thus effecting a three-level +# list. Maybe I want that anyway? +# Slight change - allow an internal function to provide a new list. This +# switches to a virtual folder showing that list. When the original folder +# is selected, we go back there... + +import gtk, gobject +import pygtk +import sys, os, time +import pango, re +import struct +import dnotify +import fcntl +from fingerscroll import FingerScroll +from subprocess import Popen, PIPE +from wmctrl import winlist + +import ctypes +libc = ctypes.cdll.LoadLibrary("libc.so.6") +libc.mlockall(3) + +class EvDev: + def __init__(self, path, on_event): + self.f = os.open(path, os.O_RDWR|os.O_NONBLOCK); + self.ev = gobject.io_add_watch(self.f, gobject.IO_IN, self.read) + self.on_event = on_event + self.grabbed = False + self.down_count = 0 + def read(self, x, y): + try: + str = os.read(self.f, 16) + except: + return True + + if len(str) != 16: + return True + (sec,usec,typ,code,value) = struct.unpack_from("IIHHI", str) + if typ == 0x01: + # KEY event + if value == 0: + self.down_count -= 1 + else: + self.down_count += 1 + if self.down_count < 0: + self.down_count = 0 + self.on_event(self.down_count, typ, code, value, sec* 1000 + int(usec/1000)) + return True + def grab(self): + if self.grabbed: + return + #print "grab" + fcntl.ioctl(self.f, EVIOC_GRAB, 1) + self.grabbed = True + def ungrab(self): + if not self.grabbed: + return + #print "release" + fcntl.ioctl(self.f, EVIOC_GRAB, 0) + self.grabbed = False + + +class WinList: + """ + read in a window list - present each as a Task + Allow registering tasks so that when a window appears, we connect it. + """ + def __init__(self): + self.windows = {} + self.tasks = {} + self.tasklist = [] + self.pid = os.getpid() + self.old_windows = None + self.last_reload = 0 + self.winlist = winlist() + gobject.io_add_watch(self.winlist.fd, gobject.IO_IN, self.winlist.events) + self.winlist.on_change(self.refresh) + + def add(self, winid, desk, pid, host, name): + self.windows[winid] = [name, pid] + if self.old_windows and winid in self.old_windows: + self.windows[winid] = [name, pid] + self.old_windows[winid][2:] + p = 'pid:%d' % int(pid) + #print "Looking for ", p + if p in self.tasks: + self.tasks[p](winid) + self.windows[winid].append(self.tasks[p]) + del self.tasks[p] + n = 'name:' + name + if n in self.tasks: + self.tasks[n](winid) + self.windows[winid].append(self.tasks[n]) + del self.tasks[n] + + def remove_old(self): + for winid in self.old_windows: + if not winid in self.windows: + #print "removing",winid + for c in self.old_windows[winid][2:]: + c("") + self.old_windows = None + + def register(self, pid, name, found): + if pid != None: + p = 'pid:%d' % int(pid) + self.tasks[p] = found + if name != None: + n = 'name:' + name + self.tasks[n] = found + + def reload(self): + self.old_windows = self.windows + self.windows = {} + self.tasklist = [] + for w in self.winlist.winfo: + win = self.winlist.winfo[w] + if win.pid == self.pid: + continue + self.add(win, 0, win.pid, '', win.name) + self.tasklist.append(WinTask(win, 0, win.pid, '', win.name)) + self.remove_old() + + togo = [] + for k in self.tasks: + if not self.tasks[k](): + togo.append(k) + for k in togo: + del self.tasks[k] + + return self.tasklist + + + def refresh(self): + self.reload() + global window + if window: + window.refresh() + +ProcessList = [] +class JobCtrl: + """ + Manage processes. + Call to start a process, and get a call back when the process finishes. + + """ + global ProcessList + def __init__(self, cmd, finished = None): + self.finished = finished + if cmd == None: + self._child_created = False + return + self.Popen = Popen(cmd, shell=True, close_fds = True) + self.pid = self.Popen.pid + self.returncode = None + ProcessList.append(self) + + def poll(self): + if self.Popen.poll() != None and self.finished: + self.returncode = self.Popen.returncode + self.finished(self.returncode) + self.finished = None + window.folder_select(window.folder_num) + return self.returncode + + + def poll_all(self): + l = range(len(ProcessList)) + l.reverse() + for i in l: + p = ProcessList[i] + if p.poll() != None: + del ProcessList[i] + + + +class Selector(gtk.DrawingArea): + def __init__(self, names = [], pos = 0, center=False): + gtk.DrawingArea.__init__(self) + + self.on_select = None + self.do_center = center + + self.pixbuf = None + self.width = self.height = 0 + self.need_redraw = True + self.colours = None + self.collist = {} + + self.connect("expose-event", self.redraw) + self.connect("configure-event", self.reconfig) + + self.connect("button_release_event", self.release) + self.connect("button_press_event", self.press) + self.set_events(gtk.gdk.EXPOSURE_MASK + | gtk.gdk.BUTTON_PRESS_MASK + | gtk.gdk.BUTTON_RELEASE_MASK + | gtk.gdk.STRUCTURE_MASK) + + # choose a font + fd = self.get_pango_context().get_font_description() + fd.set_absolute_size(25 * pango.SCALE) + self.fd = fd + self.modify_font(fd) + met = self.get_pango_context().get_metrics(fd) + self.lineheight = (met.get_ascent() + met.get_descent()) / pango.SCALE + self.lineheight *= 1.5 + self.lineheight = int(self.lineheight) + + self.offsets = [] + self.names = names + self.pos = pos + self.top = 0 + self.queue_draw() + + def assign_colour(self, purpose, name): + self.collist[purpose] = name + + def set_list(self, names, pos = 0): + self.names = names + self.pos = pos + self.refresh() + if self.on_select: + self.on_select(pos) + + def reconfig(self, w, ev): + alloc = w.get_allocation() + if not self.pixbuf: + return + if alloc.width != self.width or alloc.height != self.height: + self.pixbuf = None + self.need_redraw = True + + def add_col(self, sym, col): + c = gtk.gdk.color_parse(col) + gc = self.window.new_gc() + gc.set_foreground(self.get_colormap().alloc_color(c)) + self.colours[sym] = gc + + def redraw(self, w, ev): + if self.colours == None: + self.colours = {} + for p in self.collist: + self.add_col(p, self.collist[p]) + self.bg = self.get_style().bg_gc[gtk.STATE_NORMAL] + + if self.need_redraw: + self.draw_buf() + + self.window.draw_drawable(self.bg, self.pixbuf, 0, 0, 0, 0, + self.width, self.height) + + + def draw_buf(self): + self.need_redraw = False + if self.pixbuf == None: + alloc = self.get_allocation() + self.pixbuf = gtk.gdk.Pixmap(self.window, alloc.width, alloc.height) + self.width = alloc.width + self.height = alloc.height + self.pixbuf.draw_rectangle(self.bg, True, 0, 0, + self.width, self.height) + + if not self.names: + return + + lines = int(self.height / self.lineheight) + entries = self.names() + # probably place current entry in the middle + top = self.pos - lines / 2 + if top < 0: + top = 0 + # but try not to leave blank space at the end + if top + lines > entries: + top = entries - lines + # but never have blank space at the top + if top < 0: + top = 0 + self.top = top + offsets = [0] + + for l in range(lines): + + (type, name, other) = self.names(top+l) + #print type, name, other + if type == "end": + break + + offset = offsets[-1] + layout = self.create_pango_layout("") + layout.set_markup(name) + (ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + if ew > self.width: + # never truncate the start + ew = self.width + + height = self.lineheight + #print eh, height + if eh > height: + height = eh + + if l == self.pos - top: + self.pixbuf.draw_rectangle(self.colours['selected'], True, + 0+2, offset, + self.width-4, height) + self.pixbuf.draw_layout(self.colours[type], + (self.width-ew)/2, + offset + (height-eh)/2, + layout) + offsets.append(offset + height) + self.offsets = offsets + + def refresh(self): + #print "refresh" + self.need_redraw = True + self.queue_draw() + # must return False so that timers don't refire + return False + + def press(self,w,ev): + if not self.offsets: + return + row = len(self.offsets) + for i in range(len(self.offsets)): + if ev.y < self.offsets[i]: + row = i-1 + break + + if self.pos != row + self.top: + self.pos = row + self.top + if self.on_select: + self.on_select(self.pos) + + self.refresh() + + def release(self,w,ev): + pass + + +class Task: + """Identifies a particular task that is a member of a folder. + If the task is running, the PID is tracked here too. + + """ + def __init__(self, name): + self.name = name + + def options(self): + #return ["Yes", "No"] + return ["Yes"] + + def copyconfig(self, orig): + pass + + def setgroup(self, group, pos): + self.group = group + self.pos = pos + + + def refresh(self, select): + global window + if not window: + return + if select: + print "REFRESH", window.folder_num, window.folder_pos[window.folder_num], self.group, self.pos + if window.folder_num != self.group: + window.folder_select(self.group) + window.task_select(self.pos) + elif window.folder_pos[window.folder_num] != self.pos: + window.task_select(self.pos) + window.active = False + window.activate() + + gobject.timeout_add(300, window.refresh) + + def set_tasks(self, list, pos): + global window + window.set_tasks(list, pos) + +class CmdTask(Task): + """ + Task subtype for handling normal commands + """ + def __init__(self, line): + fields = line.split(',') + name = fields[0] + Task.__init__(self, name) + self.job = None + self.win_id = None + self.cmd = None + self.winname = None + + if len(fields) > 1: + self.cmd = fields[1] + if len(fields) > 2: + self.winname = fields[2].strip() + + global windowlist + def gotit(winid = None): + if winid: + self.win_id = winid + return True + + windowlist.register(None, self.winname, gotit) + + def options(self): + if self.win_id: + return ["Raise", "Close"] + if self.job: + return ["Kill"] + if self.cmd: + return ["Run"] + return ["--"] + + def event(self, num): + if self.win_id: + if num == 0: + try: + self.win_id.raise_win() + except: + self.win_id = None + + return True + if num == 1: + self.win_id.close_win() + + elif self.job: + if num == 0: + os.kill(self.job.pid, 15) + self.job.poll() + gobject.timeout_add(400, + lambda *a :(JobCtrl(None).poll_all(),window.refresh())) + elif self.cmd: + global windowlist + self.job = JobCtrl(self.cmd, self.finished) + windowlist.register(self.job.pid, self.winname, self.winfound) + print "registered ", self.job.pid, " for ", self.name + return True + return False + + def winfound(self, winid = None): + if winid != None: + #print "task",self.name,"now has winid", winid + self.win_id = winid + return self.job != None + + def finished(self, retcode): + self.job = None + + def info(self): + if self.job: + self.job.poll() + if self.win_id or self.job: + typ = 'active' + elif self.cmd: + typ = 'cmd' + else: + typ = 'void' + return (typ, self.name, self) + + def copyconfig(self, orig): + self.cmd = orig.cmd + self.winname = orig.winname + + +class WmTask(Task): + """ + This is a fake task that simply holds the name of a window + not to show -- i.e. the parsed info from the config file + """ + def __init__(self, line): + self.name = line[1:] + +class WinTask(Task): + """ + Task subtype for handling Windows that have been found + """ + def __init__(self, winid, desk, pid, host, name): + Task.__init__(self, name) + self.win_id = winid + self.pid = int(pid) + + def options(self): + if self.pid > 0: + return ["Raise", "Close", "Kill"] + else: + return ["Raise", "Close"] + + def event(self, num): + if num == 0: + self.win_id.raise_win() + return True + if num == 1: + self.win_id.close_win() + if num == 2: + os.kill(self.pid, 15) + return False + + def info(self): + return ('window', self.name, self) + + +class InternTask(Task): + """ + An InternTask runs an internal command to choose text to display + It may be inactive, so options returns an empty list. + If the name contains a dot, we import the module and just call the + named function. If not, we run internal_$name. + The function takes two argument. A string: + "_name" - return (type, name, self) + "_options" - return list of button strings + button-name - take appropriate action + and this InternTask object. The 'state' array may be manipulated. + """ + + def __init__(self, line, tag = None): + self.state = {} + self.fn = None + f = line.split('(') + p = f[0].split('.') + if not p[0]: + return + + self.tag = tag + self.name = p[-1] + if p[0] != f[0]: + #try: + exec "import " + p[0] + #except: + # self.fn = None + # return + self.fn = eval(line) + else: + self.fn = eval("internal_" + line) + + def info(self): + global current_input + self.current_input = current_input + if self.tag: + t,n = 'cmd', self.tag + else: + t,n = self.fn("_name", self) + return (t,n,self) + + def options(self): + global current_input + self.current_input = current_input + self.optionlist = self.fn("_options", self) + return self.optionlist + + def event(self, num): + global current_input + self.current_input = current_input + return self.fn(num, self) + +class Tasks: + """Holds a number of folders, each with a number of tasks + + Tasks(filename) loads from a file (or directory???) + reload() re-reads the file and makes changes as needed + folders() - array of folder names + tasks(folder) - array of Task objects + + """ + def __init__(self, path): + self.path = path + self.tasks = {}; self.gtype = {} + self.reload() + + def reload(self): + self.orig_tasks = self.tasks + self.orig_types = self.gtype + self.folders = [] + self.tasks = {} + self.gtype = {} + group = "UnSorted" + try: + f = open(self.path) + except: + f = ["[Built-in]", "Exit,(quit),"] + for line in f: + l = line.strip() + if not l: + continue + + if l[0] == '"' or l[0] == '[': + l = l.strip('"[],') + f = l.split('/', 1) + group = f[0] + if len(f) > 1: + group_type = f[1] + else: + group_type = 'cmd' + if not group: + group = 'UnSorted' + if group_type not in ['cmd','wm']: + group_type = 'cmd' + else: + if group_type == 'cmd': + words = l.split(',',1) + word1 = words[1].strip(' ') + arg0 = word1.split(' ',1)[0] + if arg0[0] == '(': + t = InternTask(word1.strip('()'), words[0]) + elif '(' in arg0: + t = InternTask(word1, words[0]) + else: + t = CmdTask(l) + elif group_type == 'wm': + t = WmTask(l) + if not t: + continue + if group not in self.tasks: + self.folders.append(group) + self.tasks[group] = [] + self.gtype[group] = group_type + if group in self.orig_tasks and \ + self.orig_types[group] == self.gtype[group]: + for ot in self.orig_tasks[group]: + if t.name == ot.name: + ot.copyconfig(t) + t = ot + break + self.tasks[group].append(t) + t.setgroup(len(self.folders)-1, len(self.tasks[group])-1) + self.orig_tasks = None + self.orig_types = None + + + def folder_list(self): + return self.get_folder + def get_folder(self, ind = -1): + if ind == -1: + return len(self.folders) + elif ind < len(self.folders): + return ("folder", self.folders[ind], None) + else: + return ("end", "end", None) + + def task_list(self, num): + global windowlist + gtype = self.gtype[self.folders[num]] + if gtype == "wm": + return lambda ind = -1 : self.get_task(ind, windowlist.reload()) + + return lambda ind = -1 : self.get_task(ind, self.tasks[self.folders[num]]) + def get_task(self, ind, tl): + if tl == None: + tl = [] + if ind == -1: + return len(tl) + elif ind < len(tl): + return tl[ind].info() + else: + return ("end", None, None) + +cliptargets = [ (gtk.gdk.SELECTION_TYPE_STRING, 0, 0) ] +class LaunchWindow(gtk.Window): + """ + A window containing a list of folders and a list of entries in the folder + Along the bottom are per-entry buttons. + When a folder is selected, the entires are updated. The last-used entry + in the folder is selected. + When an entry is selected, the buttons are updated. + When a button is pressed, its action is effected. + + One type of action can produce text output. In this case a replacement + display pane is used that is finger-scrollable. It comes with a button + to revert to main display + """ + + def __init__(self, tasks): + gtk.Window.__init__(self) + self.connect("destroy", self.close_application) + self.set_title("Launcher") + self.tasks = tasks + self.active = False + + self.create_ui() + + self.clip = gtk.Clipboard(selection='PRIMARY') + self.cliptext = '' + + + self.folder_list = tasks.folder_list() + self.folder_pos = self.folder_list() * [0] + self.col1.set_list(self.folder_list) + self.set_default_size(480, 640) + self.show() + + def create_ui(self): + v1 = gtk.VBox() + self.add(v1) + v1.show() + + v = gtk.VBox() + v1.add(v) + v.show() + + v.set_property('can-focus', True) + v.grab_focus() + v.add_events(gtk.gdk.KEY_PRESS_MASK) + v.connect('key_press_event', self.keystroke) + self.v = v + + e = gtk.Entry() + v.pack_start(e, expand=False); + e.set_alignment(0.5) + e.connect('changed', self.entry_changed) + e.connect('backspace', self.entry_changed) + e.show() + self.entry = e + self.entry.set_text("") + + h = gtk.HBox() + v.pack_start(h, expand=True, fill=True) + h.show() + + self.col1 = Selector() + self.col2 = Selector(center=True) + self.col1.show() + self.col2.show() + h.pack_start(self.col1) + h.pack_end(self.col2) + + self.col1.on_select = self.folder_select + self.col2.on_select = self.task_select + + self.col1.assign_colour('folder','darkblue') + self.col1.assign_colour('selected','white') + + self.col2.assign_colour('active','blue') + self.col2.assign_colour('cmd','black') + self.col2.assign_colour('selected','white') + self.col2.assign_colour('window','blue') + + + h = gtk.HBox() + v.pack_end(h, expand=False) + h.set_size_request(-1,80) + h.show() + + ctx = self.get_pango_context() + fd = ctx.get_font_description() + fd.set_absolute_size(30*pango.SCALE) + + self.buttons = [] + self.button_names = [] + for bn in range(3): + b = gtk.Button("?") + b.child.modify_font(fd) + b.set_property('can-focus', False) + h.add(b) + b.connect('clicked', self.button_pressed, bn) + self.buttons.append(b) + + fd.set_absolute_size(40*pango.SCALE) + self.entry.modify_font(fd) + + self.main_view = v + + # Now create alternate view with FingerScroll and a button + v = gtk.VBox() + v1.add(v) + f = FingerScroll(); f.show() + v.add(f) + self.text_buffer = f.get_buffer() + b = gtk.Button("Done") + fd.set_absolute_size(30*pango.SCALE) + b.child.modify_font(fd) + b.set_property('can-focus', False) + b.connect('clicked', self.text_done) + v.pack_end(b, expand=False) + + fd = pango.FontDescription('Monospace 10') + fd.set_absolute_size(15*pango.SCALE) + f.modify_font(fd) + self.text_view = v + b.show() + + + def text_done(self,widget): + self.text_view.hide() + self.main_view.show() + + def close_application(self, widget): + gtk.main_quit() + + def checkclip(self): + cl = self.clip.wait_for_text() + if cl == self.cliptext: + return False + self.cliptext = cl + if type(cl) != str: + return False + + while len(cl) > 0 and ord(cl[-1]) >= 127: + cl = cl[0:-1] + if re.match('^ *\+?[-0-9 ()\n]*$', cl): + # looks like a phone number. Remove rubbish. + cl = cl.replace('-', '') + cl = cl.replace('(', '') + cl = cl.replace(')', '') + cl = cl.replace(' ', '') + cl = cl.replace('\n', '') + + if len(self.entry.get_text()) == 0: + self.entry.set_text(cl) + else: + self.entry.insert_text(cl, self.entry.get_position()) + self.entry.set_position(self.entry.get_position() + + len(cl)) + return False + + def entry_changed(self, widget): + if not widget.get_text(): + #widget.hide() + self.v.grab_focus() + else: + widget.show() + if not widget.is_focus(): + widget.grab_focus() + global current_input + current_input = widget.get_text() + self.col2.refresh() + self.task_select(self.col2.pos) + + def keystroke(self, widget, ev): + if not widget.is_focus(): + return + if not ev.string: + # some weird control key - or AUX + return + self.entry.show() + self.entry.grab_focus() + self.entry.event(ev) + + def button_pressed(self, widget, num): + hide = self.task.event(num) + self.folder_select(self.folder_num) + if hide: + self.active = False + + def set_tasks(self, lister, posn, folder_num = -1): + self.folder_num = folder_num + self.get_task = lister + self.col2.set_list(lister, posn) + + def folder_select(self, folder_num): + if folder_num < 0: + self.col1.refresh() + self.col2.refresh() + return + if folder_num < 0 or folder_num >= self.folder_list(): + return + self.col1.pos = folder_num + self.col1.refresh() + self.set_tasks(self.tasks.task_list(folder_num), + self.folder_pos[folder_num], + folder_num) + + def task_select(self, task_num): + if task_num >= self.get_task(): + return + if self.folder_num >= 0: + self.folder_pos[self.folder_num] = task_num + (typ, name, self.task) = self.get_task(task_num) + if self.task == None: + print "folder %d task %d" %(self.folder_num, task_num) + # FIXME how does this happen? what do I do with buttons? + # This can happen if we remember and old task number + # which (For window list) no longer exists. + # Fixed now I think + return + options = self.task.options() + while len(options) < len(self.button_names): + self.button_names.pop() + self.buttons[len(self.button_names)].hide() + for i in range(len(self.button_names)): + if options[i] != self.button_names[i]: + self.button_names[i] = options[i] + self.buttons[i].child.set_text(self.button_names[i]) + while len(options) > len(self.button_names): + p = len(self.button_names) + self.button_names.append(options[p]) + self.buttons[p].child.set_text(self.button_names[p]) + self.buttons[p].show() + + def activate(self): + #self.maximize() + self.text_done(None) + self.refresh() + self.present() + gobject.idle_add(self.checkclip) + if self.active: + self.col1.set_list(self.folder_list, 0) + self.active = True + + def refresh(self): + self.folder_select(self.folder_num) + return False + +class LaunchIcon(gtk.StatusIcon): + def __init__(self): + gtk.StatusIcon.__init__(self) + self.set_from_stock(gtk.STOCK_EXECUTE) + self.connect('activate', activate) + +window = None +def activate(*a): + global window + + JobCtrl(None).poll_all() + window.activate() + +down_at = 0 +def aux_activate(cnt, type, code, value, msec): + if type != 1: + # not a key press + return + if code != 169 and code != 116: + # not the AUX key and not the power key + return + global down_at + if value == 1: + # down press + down_at = msec + #print "down_at", down_at + return + if value == 0: + #print "up at", msec, down_at + if msec - down_at > 250: + # too long - someone else wants this press + return + activate() + +last_tap = 0 +def tap_check(cnt, type, code, value, msec): + global last_tap + if type != 1: + # not a key press + return + if code != 307: + # not BtnX + return + if value != 1: + # not a down press + return + # hack - only require one tap + last_tap = msec - 1 + + if msec - last_tap < 200: + # two taps + last_tap = msec - 400 + global window + if window.active: + window.entry.delete_text(0,-1) + activate() + else: + last_tap = msec + +def internal_quit(arg, obj): + global window + if arg == "_name": + return ('cmd', 'Exit') + if arg == "_options": + return ['quit'] + if arg == 0: + window.close_application(None) + +def internal_time(arg, obj): + global window + if arg == "_name": + if 'next' not in obj.state: + obj.state['next'] = 0 + now = time.time() + next_minute = int(now/60)+1 + if next_minute != obj.state['next']: + gobject.timeout_add(int (((next_minute*60) - now) * 1000), + lambda *a :(window.refresh())) + obj.state['next'] = next_minute + tm = time.strftime("%H:%M", time.localtime(now)) + return ('cmd', ''+tm+'') + if arg == "_options": + return ['Set Timezone', 'wifi'] + if arg == 0: + window.set_tasks(tasklist_tz(), 0) + if arg == 1: + window.set_tasks(tasklist_wifi(), 0) + return None + +def internal_date(arg, obj): + if len(obj.state) == 0: + obj.state['cmd'] = CmdTask('cal,/usr/local/bin/cal,cal') + if arg == "_name": + # no need to schedule a timeout as the 1-minute tick will do it. + + #tm = time.strftime('%d-%b-%Y', time.localtime(time.time())) + tm = time.strftime('%d-%b-%Y', time.localtime(time.time())) + return ('cmd', tm) + if arg == '_options': + return obj.state['cmd'].options() + return obj.state['cmd'].event(arg) + +def internal_tz(zone): + return lambda arg, obj: _internal_tz(arg, obj, zone) + +def _internal_tz(arg, obj, zone): + if arg == '_name': + if 'TZ' in os.environ: + TZ = os.environ['TZ'] + else: + TZ = None + os.environ['TZ'] = zone + time.tzset() + now = time.time() + tm = time.strftime("%d-%b-%Y %H:%M", time.localtime(now)) + + if TZ: + os.environ['TZ'] = TZ + else: + del(os.environ['TZ']) + return ('cmd', ''+tm+"\n"+zone+'') + if arg == '_options': + return [] + return None + +def internal_echo(arg, obj): + if arg == '_name': + global current_input + a = current_input + a = a.replace('&','&') + a = a.replace('<','<') + a = a.replace('>','>') + return ('cmd', a) + if arg == '_options': + return [] + return None + +def internal_calc(arg, obj): + if arg == '_name': + global current_input + try: + n = eval(current_input) + a = '=' + str(n) + except: + if current_input: + a = '= ?' + else: + a = '' + a = a.replace('&','&') + a = a.replace('<','<') + a = a.replace('>','>') + return ('cmd', a) + if arg == '_options': + return [] + return None + +def internal_rotate(arg, obj): + if arg == '_name': + return ('cmd', 'rotate') + if arg == '_options': + return ['normal','left'] + if arg == 0: + Popen(['xrandr', '-o', 'normal'], shell=False, close_fds = True) + return + if arg == 1: + Popen(['xrandr', '-o', 'left'], shell=False, close_fds = True) + return + +def internal_text(cmd): + return lambda arg, obj : _internal_text(arg, cmd, obj) + +def readsome(f, dir, p, b): + l = f.read() + b.insert(b.get_end_iter(), l) + if l == "": + return False + return True + +def child_done(pid, status, arg): + (p, b, w) = arg + fcntl.fcntl(p.stdout, fcntl.F_SETFL, 0) + while readsome(p.stdout, None, p, b): + pass + gobject.source_remove(w) + b.insert(b.get_end_iter(), "-----//-----") + p.stdout.close() + +def _internal_text(arg, cmd, obj): + if arg == '_name': + return ('cmd', cmd) + if arg == '_options': + return ['view'] + if arg == 0: + global window + b = window.text_buffer + b.delete(b.get_start_iter(),b.get_end_iter()) + p = Popen(cmd, shell=True, close_fds = True, stdout=PIPE) + flg = fcntl.fcntl(p.stdout, fcntl.F_GETFL, 0) + fcntl.fcntl(p.stdout, fcntl.F_SETFL, flg | os.O_NONBLOCK) + watch = gobject.io_add_watch(p.stdout, gobject.IO_IN, readsome, p, b) + gobject.child_watch_add(p.pid, child_done, ( p, b, watch )) + window.text_view.show() + window.main_view.hide() + +def internal_file(fname): + # return a function to be used as an internal_* function + # that reads the content of a file + return lambda arg, obj : _internal_file(arg, fname, obj) + +def _internal_file(arg, fname, obj): + if 'dndir' not in obj.state: + try: + d = dnotify.dir(os.path.dirname(fname)) + obj.state['dndir'] = d + obj.state['pending'] = False + except OSError: + obj.state['pending'] = True + obj.state['value'] = '--' + if arg == '_name': + if not obj.state['pending']: + try: + obj.state['dndir'].watch(os.path.basename(fname), + lambda f : _internal_file_notify(f, obj)) + obj.state['pending'] = True + + f = open(fname) + l = f.readline().strip() + f.close() + obj.state['value'] = l + except OSError: + obj.state['value'] = '--' + l = '--' + else: + l = obj.state['value'] + return ('cmd', l) + if arg == '_options': + return [] + return None + +def _internal_file_notify(f, obj): + global window + obj.state['pending'] = False + f.cancel() + # wait a while for changes to the file to stablise + gobject.timeout_add(300, window.refresh) + +def get_task(ind, tl): + if tl == None: + tl = [] + if ind == -1: + return len(tl) + elif ind < len(tl): + return tl[ind].info() + else: + return ("end", None, None) + +def internal_windows(arg, obj): + if arg == '_name': + return "Window List" + if arg == '_options': + return ['open'] + if arg == 0: + global windowlist, window + window.set_tasks(lambda ind = -1 : get_task(ind, windowlist.reload()), 0) + +class tasklist: + def __init__(self): + self.last_refresh = 0 + self.list = [] + self.newlist = [] + self.refresh_time = 60 + self.callback = None + self.refresh_task = 'refresh_list' + self.name = 'Generic List' + + def __call__(self, ind = -1): + if ind <= -1: + if self.last_refresh + self.refresh_time < time.time(): + self.last_refresh = time.time() + self.start_refresh() + return len(self.list) + 1 + if ind == 0: + # The first entry is a simple refresh task + t = InternTask(self.refresh_task, self.name) + t.state['list'] = self + self.callback = t + return t.info() + if ind <= len(self.list): + return tasklist_task(self, ind-1).info() + return ("end", None, None) + + def refresh_cmd(self, cmd): + p = Popen(cmd, shell=True, close_fds=True, stdout=PIPE) + fcntl.fcntl(p.stdout, fcntl.F_SETFL, os.O_NONBLOCK) + watch = gobject.io_add_watch(p.stdout, gobject.IO_IN, self.readsome, p) + gobject.child_watch_add(p.pid, self.child_done, (p, watch)) + + def readsome(self, f, dir, p): + l = f.readline() + if l != "" : + self.readline(l.strip()) + return True + return False + + def child_done(self, pid, status, arg): + (p, watch) = arg + fcntl.fcntl(p.stdout, fcntl.F_SETFL, 0) + while self.readsome(p.stdout, None, p): + pass + gobject.source_remove(watch) + p.stdout.close() + self.readline(None) + self.list = self.newlist + self.newlist = [] + if self.callback: + self.callback.refresh(False) + +class tasklist_task(Task): + """ + A tasklist_task calls into the tasklist to get info required. + """ + def __init__(self, tasklist, entry): + self.list = tasklist + self.entry = entry + def info(self): + t,n = self.list.info(self.entry) + return (t,n,self) + def options(self): + return self.list.options(self.entry) + def event(self, num): + return self.list.event(self.entry, num) + +class tasklist_tz(tasklist): + # Synthesise a list of tasks to represent selection a time zone + # ind==-1 must return the length of the list, other values return tasks + # We can call window.set_folder (or something) to get the list refreshed + # First item is 'TimeZone' with a button to refresh the list + # other items are best 10 timezones. + # We refresh the list when the refresh button is pressed, or when + # len is requested move than 10 minutes after the last refresh. + + def __init__(self): + tasklist.__init__(self) + self.refresh_time = 10*60 + self.name = 'TimeZone' + + def start_refresh(self): + self.refresh_cmd("/root/gpstz --list") + + def readline(self, l): + if l == None: + return + words = l.split() + self.newlist.append(words[1]) + + def info(self, n): + return 'cmd', self.list[n] + def options(self, n): + return ['Set Timezone'] + def event(self, n, ev): + if ev == 0: + Popen("/root/gpstz "+ self.list[n], shell=True, close_fds=True) + + + +def internal_refresh_list(arg, obj): + if arg == '_name': + return "Refresh List" + if arg == '_options': + return ['Refresh'] + if arg == 0: + t = obj.state['list'] + t.start_refresh() + return None + + +class tasklist_wifi(tasklist): + def __init__(self): + tasklist.__init__(self) + self.refresh_time = 60 + self.name = 'Wifi Networks' + + def start_refresh(self): + self.essid = None + self.encrypt = None + self.quality = None + self.refresh_cmd("iwlist eth0 scanning") + + def readline(self, l): + if l == None: + self.read_finished() + return + w = l.split() + if len(w) == 0: + return + if w[0] == 'Cell': + self.read_finished() + return + w0 = w[0] + w = l.split(':') + if w[0] == "ESSID": + id = w[1] + self.essid = id.strip('"') + return + if w[0] == 'Encryption key': + self.encrypt = (w[1] == 'on') + return + w = w0.split('=') + if w[0] == 'Quality': + self.quality = w[1] + return + + def read_finished(self): + if self.essid == None: + self.encrypt = None + self.quality = None + return + if self.quality == None: + self.quality = "0" + c = '' + if self.encrypt: + c = ' XX' + self.newlist.append((self.essid, self.quality, c)) + + def info(self, n): + essid, quality, c = self.list[n] + return 'cmd', ('%s\n%s%s' + % (essid, quality, c)) + def options(self, n): + return ['Configure Wifi'] + def event(self, n, ev): + print "please configure %s"% self.list[n][0] + +def main(args): + global window, windowlist, tasks + global current_input + current_input = '' + windowlist = WinList() + tasks = Tasks(os.getenv('HOME') + "/.launchrc") + i = LaunchIcon() + window = LaunchWindow(tasks) + try: + aux = EvDev("/dev/input/event4", aux_activate) + # may aux button broke so ... + EvDev("/dev/input/event0", aux_activate) + except: + aux = None + try: + EvDev("/dev/input/event3", tap_check) + except: + pass + + gtk.settings_get_default().set_long_property("gtk-cursor-blink", 0, "main") + + gtk.main() + +if __name__ == '__main__': + sys.exit(main(sys.argv)) + diff --git a/launcher/launch_settings.py b/launcher/launch_settings.py new file mode 100644 index 0000000..051a540 --- /dev/null +++ b/launcher/launch_settings.py @@ -0,0 +1,26 @@ +import os, stat + +def alert(cmd, obj): + if len(obj.state) == 0: + try: + obj.state['curr'] = os.readlink("/etc/alert/normal") + except: + obj.state['curr'] = '??' + o = [] + for i in os.listdir("/etc/alert"): + if stat.S_ISDIR(os.lstat("/etc/alert/"+i)[0]): + o.append(i) + obj.state['options'] = o + + + if cmd == '_name': + return ('cmd', 'mode: ' + obj.state['curr']) + if cmd == '_options': + return obj.state['options'] + if cmd >= 0 and cmd < len(obj.state['options']): + o = obj.state['options'][cmd] + os.unlink("/etc/alert/normal") + os.symlink(o, "/etc/alert/normal") + obj.state['curr'] = o + + diff --git a/launcher/wmctrl.py b/launcher/wmctrl.py new file mode 100644 index 0000000..724343b --- /dev/null +++ b/launcher/wmctrl.py @@ -0,0 +1,153 @@ + +# +# manage a list of current windows and allow a selected +# window to be raised. +# I'm using Xlib for this, which doesn't have a built-in event +# mechanism like gtk does in gobject. +# So if you want to make sure property change notify events +# get handled, you need to arrange that read events on +# winlist.fd are passed to winlist.events. +# e.g. gobject.io_add_watch(winlist.fd, gobject.IO_IN, winlist.events) +# + +import Xlib.X +import Xlib.display +import Xlib.protocol.event + +class mywindow: + def __init__(self, win, name, pid, list): + self.win = win + self.name = name + self.pid = pid + self.list = list + + def raise_win(self): + msg = Xlib.protocol.event.ClientMessage(window = self.win, + client_type = self.list.ACTIVE_WINDOW, + data = (32, [0,0,0,0,0]) + ) + msg.send_event = 1 + mask = (Xlib.X.SubstructureRedirectMask | + Xlib.X.SubstructureNotifyMask) + self.list.root.send_event(msg, event_mask = mask) + self.win.map() + self.win.raise_window() + #p = w.query_tree().parent + #if p: + # p.map() + # p.raise_window() + self.list.display.flush() + + def close_win(self): + msg = Xlib.protocol.event.ClientMessage(window = self.win, + client_type = self.list.CLOSE_WINDOW, + data = (32, [0,0,0,0,0]) + ) + msg.send_event = 1 + mask = (Xlib.X.SubstructureRedirectMask | + Xlib.X.SubstructureNotifyMask) + self.list.root.send_event(msg, event_mask = mask) + self.list.display.flush() + +class winlist: + def __init__(self): + self.display = Xlib.display.Display() + self.root = self.display.screen().root + self.winfo = {} + self.windows = () + self.WM_STRUT = self.display.intern_atom('_NET_WM_STRUT') + self.CARDINAL = self.display.intern_atom('CARDINAL') + self.ACTIVE_WINDOW = self.display.intern_atom('_NET_ACTIVE_WINDOW') + self.CLOSE_WINDOW = self.display.intern_atom('_NET_CLOSE_WINDOW') + self.NAME = self.display.intern_atom('WM_NAME') + self.STRING = self.display.intern_atom('STRING') + self.PID = self.display.intern_atom('_NET_WM_PID') + self.LIST = self.display.intern_atom('_NET_CLIENT_LIST_STACKING') + self.WINDOW = self.display.intern_atom('WINDOW') + + self.fd = self.display.fileno() + self.change_handle = None + + self.root.change_attributes(event_mask = Xlib.X.PropertyChangeMask ) + self.get_list() + + + def add_win(self, id): + if id in self.winfo: + return self.winfo[id] + w = self.display.create_resource_object('window', id) + p = w.get_property(self.WM_STRUT, self.CARDINAL, 0, 100) + self.winfo[id] = None + if p: + return None + p = w.get_property(self.NAME, self.STRING, 0, 100) + if p and p.format == 8: + name = p.value + name = name.replace('&','&') + name = name.replace('<','<') + name = name.replace('>','>') + else: + return None + + p = w.get_property(self.PID, self.CARDINAL, 0, 100) + if p and p.format == 32: + pid = p.value[0] + else: + pid = 0 + + self.winfo[id] = mywindow(w, name, pid, self) + return self.winfo[id] + + + def get_list(self): + l = self.root.get_property(self.LIST, self.WINDOW, 0, 100) + windows = [] + for w in l.value: + if self.add_win(w): + windows.append(w) + self.windows = windows + self.clean_winfo() + if self.change_handle: + self.change_handle() + + def clean_winfo(self): + togo = [] + for w in self.winfo: + if w not in self.windows: + togo.append(w) + for w in togo: + del self.winfo[w] + + def events(self, *a): + i = self.display.pending_events() + while i > 0: + event = self.display.next_event() + self.handle_event(event) + i = i - 1 + return True + + def handle_event(self, event): + if event.atom != self.LIST: + return False + self.get_list() + return True + + def top(self, num = 0): + if num > len(self.windows) or num < 0: + return None + return self.winfo[self.windows[-1-num]] + + def on_change(self, func): + self.change_handle = func + + +if __name__ == '__main__': + w = winlist() + for i in w.winfo: + print i, w.winfo[i].name + while 1: + event = w.display.next_event() + if w.handle_event(event): + print "First is", w.top(1).name + w.top(1).raise_win() + diff --git a/launcher/wpa b/launcher/wpa new file mode 100644 index 0000000..d5017fa --- /dev/null +++ b/launcher/wpa @@ -0,0 +1,160 @@ +ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=root + +network={ + ssid="JesusIsHere" + scan_ssid=1 + key_mgmt=NONE +} +network={ + ssid="TorchNet" + scan_ssid=1 + key_mgmt=WPA-PSK + psk="a1b2c3d4e5" +} + +network={ + ssid="Sarah Smith's Network" + scan_ssid=1 + key_mgmt=WPA-PSK + psk="hellomuffin" +} + +network={ + ssid="LINUX" + scan_ssid=1 + key_mgmt=NONE +} + + +2010-11-21 12:36:57 0415836820 +2010-11-25 10:00:01 -call- +2010-11-25 10:00:01 0298924876 +2010-11-26 12:37:56 -call- +2010-11-26 12:37:56 0406022084 +2010-11-27 14:09:57 -call- +2010-11-27 14:09:58 0415836820 +2010-11-27 20:35:13 -call- +2010-11-27 20:35:13 0415836820 +2010-11-28 11:27:11 -call- +2010-11-28 11:27:12 0423939119 +2010-11-28 11:48:38 -call- +2010-11-28 11:48:38 0406022084 +2010-11-28 12:49:14 -call- +2010-11-28 12:49:14 0415836820 +2010-11-28 12:57:50 -call- +2010-11-28 12:57:50 0406022084 +2010-11-28 14:01:15 -call- +2010-11-28 14:01:15 0415836820 +2010-11-28 18:20:18 -call- +2010-11-28 18:20:18 0296624397 +2010-11-30 21:46:11 -call- +2010-12-03 13:13:17 -call- +2010-12-03 13:13:18 0415836820 +2010-12-03 13:18:05 -call- +2010-12-03 13:18:05 0415836820 +2010-12-03 14:33:38 -call- +2010-12-03 14:33:38 0415836820 +2010-12-03 17:01:57 -call- +2010-12-03 17:01:57 0296074529 +2010-12-04 16:52:59 -call- +2010-12-04 16:52:59 0415836820 +2010-12-05 16:15:15 -call- +2010-12-05 16:15:15 0415836820 +2010-12-05 16:22:19 -call- +2010-12-05 16:22:19 0415836820 +2010-12-05 16:25:05 -call- +2010-12-05 16:25:05 0415836820 +2010-12-05 16:28:06 -call- +2010-12-05 16:28:06 0415836820 +2010-12-05 21:29:29 -call- +2010-12-08 16:02:32 -call- +2010-12-09 18:13:19 -call- +2010-12-09 18:13:20 0415836820 +2010-12-10 12:46:22 -call- +2010-12-10 12:46:22 0406022084 +2010-12-10 13:40:01 -call- +2010-12-10 13:40:01 0406022084 +2010-12-10 13:42:52 -call- +2010-12-10 13:42:52 0406022084 +2010-12-10 13:55:35 -call- +2010-12-10 13:55:35 0415836820 +2010-12-10 13:59:09 -call- +2010-12-10 13:59:09 0415836820 +2010-12-10 14:33:20 -call- +2010-12-10 14:33:20 0415836820 +2010-12-10 14:36:05 -call- +2010-12-10 14:36:05 0415836820 +2010-12-10 14:46:15 -call- +2010-12-10 14:46:15 0415836820 +2010-12-10 15:12:16 -call- +2010-12-10 15:12:16 0411084748 +2010-12-10 15:14:04 -call- +2010-12-10 15:14:04 0411084748 +2010-12-10 15:55:42 -call- +2010-12-10 15:55:42 0415836820 +2010-12-10 16:04:01 -call- +2010-12-10 16:04:01 0411084748 +2010-12-10 16:13:52 -call- +2010-12-10 16:13:52 0415836820 +2010-12-11 11:57:01 -call- +2010-12-11 11:57:01 0415836820 +2010-12-14 07:01:42 -call- +2010-12-14 07:01:43 0406387449 +2010-12-14 09:47:47 -call- +2010-12-14 09:47:47 0403204499 +2010-12-14 22:45:06 -call- +2010-12-14 22:45:06 0406387449 +2010-12-15 20:39:51 -call- +2010-12-15 20:39:51 0406387449 +2010-12-17 16:24:17 -call- +2010-12-17 16:24:17 0415836820 +2010-12-17 17:33:08 -call- +2010-12-17 17:33:09 0415836820 +2010-12-17 17:47:17 -call- +2010-12-17 17:47:18 0415836820 +2010-12-17 21:15:20 -call- +2010-12-17 21:15:20 0406387449 +2010-12-18 13:17:59 -call- +2010-12-18 13:17:59 0415836820 +2010-12-18 14:23:59 -call- +2010-12-18 14:24:00 0415836820 +2010-12-19 14:47:29 -call- +2010-12-19 14:47:29 0407628926 +2010-12-19 20:26:35 -call- +2010-12-20 13:57:00 -call- +2010-12-20 14:35:15 -call- +2010-12-20 14:35:15 0415836820 +2010-12-20 15:34:23 -call- +2010-12-20 15:34:23 0415836820 +2010-12-20 15:44:50 -call- +2010-12-20 15:44:51 0415836820 +2010-12-20 19:14:27 -call- +2010-12-20 19:14:27 0415836820 +2010-12-21 11:50:19 -call- +2010-12-21 11:50:20 0415836820 +2010-12-21 13:03:03 -call- +2010-12-21 13:03:03 0406022084 +2010-12-24 17:55:45 -call- +2010-12-24 17:55:46 0415836820 +2010-12-24 18:48:32 -call- +2010-12-24 18:48:32 0265815991 +2010-12-24 18:49:18 -call- +2010-12-24 18:49:18 0265815991 +2010-12-25 18:42:04 -call- +2010-12-25 18:42:04 0398855778 +2010-12-25 19:58:33 -call- +2010-12-26 20:44:24 -call- +2010-12-26 20:44:24 0415836820 +2010-12-27 09:52:03 -call- +2010-12-27 09:52:03 0415836820 +2010-12-27 09:54:30 -call- +2010-12-27 09:54:30 0415836820 +2010-12-27 09:58:30 -call- +2010-12-27 09:58:30 0415836820 +2010-12-27 11:46:37 -call- +2010-12-27 11:46:37 0424041640 +2010-12-29 10:04:46 -call- +2010-12-29 12:18:36 -call- +2010-12-29 12:18:36 0415836820 +2010-12-29 12:19:31 -call- +2010-12-29 12:19:31 0415836820 diff --git a/lib/decode-long-sms.c b/lib/decode-long-sms.c new file mode 100644 index 0000000..43f450a --- /dev/null +++ b/lib/decode-long-sms.c @@ -0,0 +1,45 @@ + +#include +main(int argc, char *argv[]) +{ + + int pos = 0; + char *c; + int carry = 0; + + for (c = argv[1]; *c; c+= 2) { + int b; + char c1, c2; + c1 = c[0]; c2 = c[1]; + if (c1 > '9') + c1 = 10 + (c1-'A'); + else + c1 = c1 - '0'; + + if (c2 > '9') + c2 = 10 + (c2-'A'); + else + c2 = c2 - '0'; + + b = c1*16 + c2; + + if (pos == 0) { + if (carry) { + printf("%c", carry + ((b&1) << 6)); + carry = 0; + } + b = b >> 1; + } else { + b = (b << (pos-1)) | carry; + carry = (b & 0xff80) >> 7; + b &= 0x7f; + } + printf("%c", b); + pos++; + if (pos == 7) + pos = 0; + } + printf("\n"); + exit(0); +} + diff --git a/lib/decode-long-sms.py b/lib/decode-long-sms.py new file mode 100644 index 0000000..a998744 --- /dev/null +++ b/lib/decode-long-sms.py @@ -0,0 +1,25 @@ + +def sms_decode(msg): + pos = 0 + carry = 0 + str = '' + while msg: + c = msg[0:2] + msg = msg[2:] + b = int(c, 16) + + if pos == 0: + if carry: + str += chr(carry + (b&1)*64) + carry = 0 + b /= 2 + else: + b = (b << (pos-1)) | carry + carry = (b & 0xff80) >> 7 + b &= 0x7f + str += chr(b&0x7f) + pos = (pos+1) % 7 + return str + +import sys +print sms_decode(sys.argv[1]) diff --git a/lib/play.py b/lib/play.py new file mode 100644 index 0000000..2c564dd --- /dev/null +++ b/lib/play.py @@ -0,0 +1,133 @@ + +# Python library to play sounds using ALSA from inside a +# glib event loop +# +# We use the 'non-blocking' output routines, write until +# we can write no more, or we hit the stop-latency limit. +# Then set a timer to try again when we estimate the buffer +# will be 3/4 full. +# +# playing can be interrupted at any time - we allow the buffers +# to flush. +# +# Currently only wav files + +import gobject, alsaaudio, time, struct, sys + +class Play(): + def __init__(self, file, latency_ms = 1000, done = None): + # Arrange to play 'file' - which is the name of a .wav file + self.pcm = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK, alsaaudio.PCM_NONBLOCK) + self.latency_ms = latency_ms + self.finished = False + self.done = done + self.setfile(file) + + def setfile(self, file): + # A wav file starts: + # 0-3 "RIFF" + # 4-7 Bytes in rest of file. + # 8-11 "WAVE" + # 12-15 "fmt " + # 16-19 bytes of format + # 20-21 ==1 Microsoft PCM + # 22-23 channels + # 24-27 freq + # 28-31 byte rate + # 32-33 bytes per frame + # 34-35 bits per sample + # 36-39 "data" + # 40-43 number of bytes of data + # 44... actual samples + self.f = open(file) + header = self.f.read(44) + if len(header) != 44: + raise IOError + riff, b1, wave, fmt, b2, format, chan, rate, br, bf, bs, data, b3 = \ + struct.unpack("4si4s 4sihhiihh 4si", header) + + if riff != "RIFF" or wave != "WAVE" or fmt != "fmt " or data != "data": + raise ValueError + if format != 1 or bs != 16: + raise ValueError + else: + self.pcm.setformat(alsaaudio.PCM_FORMAT_S16_LE) + + if chan < 1 or chan > 4: + raise ValueError + else: + self.pcm.setchannels(chan) + + self.pcm.setrate(rate) + self.bytes_per_second = rate * 2 * chan + + # choose the period to be 1/8 of the latency, + # probably need to set an upper bound + frames_per_latency = rate * self.latency_ms / 1000 + self.bytes_per_latency = frames_per_latency * chan * 2; + #self.bytes_per_period = (frames_per_latency / 8) * chan * 2 + self.bytes_per_period = 320 + + self.data = None + + self.pcm.setperiodsize(self.bytes_per_period / chan / 2) + #print "bytes_per_period", self.bytes_per_period + #print "period size", self.bytes_per_period / chan / 2 + + self.start = time.time() + self.loaded = 0 + self.finished = False + self.playsome() + + def playsome(self): + if self.finished: + return + now = time.time() + + self.now = now + pos = int( (time.time() - self.start) * self.bytes_per_second) + buffered = self.loaded - pos + cnt = 0 + data = self.data + while buffered < self.bytes_per_latency + self.bytes_per_period: + if not data: + data = self.f.read(self.bytes_per_period) + if not data: + self.finished = True + self.data = None + if self.done: + self.done() + return + if not self.pcm.write(data): + break + data = None + + cnt += 1 + buffered += self.bytes_per_period + + self.data = data + self.loaded = buffered + pos + + pos = int( (time.time() - self.start) * self.bytes_per_second) + buffered = self.loaded - pos + delay = int(buffered /4 * 1000 / self.bytes_per_second) + print "wrote", cnt, "delay" ,delay + if delay < 20: + self.start += float( 20 - delay) / 1000 + delay = 10 + gobject.timeout_add(delay, self.playsome, priority = gobject.PRIORITY_HIGH) + + +if __name__ == "__main__": + # test code. + # play given wav file in a loop for 20 seconds, then stop + p = None + def done(): + p.setfile(sys.argv[1]) + p = Play(sys.argv[1], 400, done) + c = gobject.main_context_default() + def abort(): + p.finished = True + gobject.timeout_add(20000, abort) + while not p.finished: + c.iteration() diff --git a/lib/pyfakekey.c b/lib/pyfakekey.c new file mode 100644 index 0000000..db662da --- /dev/null +++ b/lib/pyfakekey.c @@ -0,0 +1,20 @@ +#include +#include + + + +static PyMethodDef FakekeyMethods[] = { + ... + {"fakekey", fakekey_class, METH_VARARGS, + "Send synthesised key events to an X client"}, + ... + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + + +PyMODINIT_FUNC +initfakekey(void) +{ + (void) Py_InitModule("fakekey", FakekeyMethods); +} + diff --git a/lib/tapinput.py b/lib/tapinput.py new file mode 100644 index 0000000..2b756a3 --- /dev/null +++ b/lib/tapinput.py @@ -0,0 +1,347 @@ + +# +# experiment with tap input. +# Have a 3x4 array of buttons. +# Enter any symbol by tapping two buttons from the top 3x3 +# Bottom buttons are: mode cancel/delete enter +# mode cycles : upper lower symbol +# cancel is effective after a single tap, delete when no pending tap +# +# The 3x3 keys normally show a 3x3 matrix of what they enable +# When one is tapped, all keys change to show a single image. + +import gtk, pango, gobject + +keymap = {} + +# 4 in each corner, 6 on the sides plus 9 in the middle is 49. +# 26 + 10 leaves 13 for symbols +# 9 most common in middle leaves 15 in the corners (with .) +# digits with + - on two sides, symbols on other two +# e t a o i n s r h l d c u m f p g w y b v k x j q z +# from http://www.deafandblind.com/word_frequency.htm +keymap['lower'] = [ + '01 23 ?@#', + 'bcdfgh ', + '<45>67 {}', + 'jk~lm`np ', + 'aeio urst', + '=;:\\\'"|()', + '[] 89 +-_', + ' qvwxyz', + '!$%^*/&,.' + ] +keymap['UPPER'] = [ + '01 23 ?@#', + 'BCDFGH ', + '<45>67 {}', + 'JK~LM`NP ', + 'AEIO URST', + '=;:\\\'"|()', + '[] 89 +-_', + ' QVWXYZ', + '!$%^*/&,.' + ] +keymap['number'] = [ + '1 ', + ' 2 ', + ' 3 ', + ' 4 ', + ' 5 *0#', + ' 6 ', + ' 7 ', + ' 8 ', + ' 9' + ] + + +class X(gtk.Window): + def __init__(self): + gtk.Window.__init__(self, type=gtk.WINDOW_POPUP) + self.set_default_size(320, 420) + root = gtk.gdk.get_default_root_window() + (x,y,width,height,depth) = root.get_geometry() + x = int((width-320)/2) + y = int((height-420)/2) + self.move(x,y) + + self.dragx = None + self.dragy = None + self.moved = False + + self.button_timeout = None + + self.buttons = [] + v1 = gtk.VBox() + v1.show() + self.add(v1) + + self.entry = gtk.Entry() + self.entry.show() + v1.pack_start(self.entry, expand=False) + + + v = gtk.VBox() + v.show() + v1.add(v) + v.set_homogeneous(True) + + for row in range(3): + h = gtk.HBox() + h.show() + h.set_homogeneous(True) + v.add(h) + bl = [] + for col in range(3): + #b = gtk.Button("%d/%d" %(row, col)) + b = gtk.Button() + b.show() + b.connect('button_press_event', self.press) + b.connect('button_release_event', self.release, row, col) + b.connect('motion_notify_event', self.motion) + b.add_events(gtk.gdk.POINTER_MOTION_MASK| + gtk.gdk.POINTER_MOTION_HINT_MASK) + + h.add(b) + bl.append(b) + self.buttons.append(bl) + + + h = gtk.HBox() + h.show() + h.set_homogeneous(True) + v.add(h) + + b = gtk.Button('mode') + fd = pango.FontDescription('sans 10') + fd.set_absolute_size(30 * pango.SCALE) + b.child.modify_font(fd) + b.show() + b.connect('clicked', self.nextmode) + h.add(b) + self.modebutton = b + + b = gtk.Button(stock=gtk.STOCK_UNDO) + b.show() + b.connect('clicked', self.delete) + h.add(b) + + b = gtk.Button(stock=gtk.STOCK_OK) + b.show() + b.connect('clicked', self.enter) + h.add(b) + + self.show() + self.mode = 'lower' + self.single = False + self.prefix = None + self.size = 0 + self.update_buttons() + self.connect("configure-event", self.update_buttons) + + def update_buttons(self, *a): + alloc = self.buttons[0][0].get_allocation() + w = alloc.width; h = alloc.height + if w > h: + size = h + else: + size = w + size -= 12 + if size <= 10 or size == self.size: + return + self.size = size + + # For each button in 3x3 we need 10 images, + # one for initial state, and one for each of the new states + # So there are two fonts we want. + # First we make the initial images + fd = pango.FontDescription('sans 10') + fd.set_absolute_size(size / 4.5 * pango.SCALE) + self.modify_font(fd) + + bg = self.get_style().bg_gc[gtk.STATE_NORMAL] + fg = self.get_style().fg_gc[gtk.STATE_NORMAL] + red = self.window.new_gc() + red.set_foreground(self.get_colormap().alloc_color(gtk.gdk.color_parse('red'))) + base_images = {} + for mode in keymap.keys(): + base_images[mode] = 9*[None] + for row in range(3): + for col in range(3): + syms = keymap[mode][row*3+col] + pm = gtk.gdk.Pixmap(self.window, size, size) + pm.draw_rectangle(bg, True, 0, 0, size, size) + for r in range(3): + for c in range(3): + sym = syms[r*3+c] + if sym == ' ': + continue + xpos = ((c-col+1)*2+1) + ypos = ((r-row+1)*2+1) + colour = fg + if xpos != xpos%6: + xpos = xpos%6 + colour = red + if ypos != ypos%6: + ypos = ypos%6 + colour = red + layout = self.create_pango_layout(sym) + (ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + pm.draw_layout(colour, + int(xpos*size/6 - ew/2), + int(ypos*size/6 - eh/2), + layout) + im = gtk.Image() + im.set_from_pixmap(pm, None) + base_images[mode][row*3+col] = im + self.base_images = base_images + fd.set_absolute_size(size / 1.5 * pango.SCALE) + self.modify_font(fd) + sup_images = {} + for mode in keymap.keys(): + sup_images[mode] = 9*[None] + for row in range(3): + for col in range(3): + ilist = 9 * [None] + for r in range(3): + for c in range(3): + sym = keymap[mode][r*3+c][row*3+col] + if sym == ' ': + continue + pm = gtk.gdk.Pixmap(self.window, size, size) + pm.draw_rectangle(bg, True, 0, 0, size, size) + layout = self.create_pango_layout(sym) + (ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + pm.draw_layout(fg, + int((size - ew)/2), int((size - eh)/2), + layout) + im = gtk.Image() + im.set_from_pixmap(pm, None) + ilist[r*3+c] = im + sup_images[mode][row*3+col] = ilist + self.sup_images = sup_images + self.set_button_images() + + + def set_button_images(self): + for row in range(3): + for col in range(3): + b = self.buttons[row][col] + if self.prefix == None: + im = self.base_images[self.mode][row*3+col] + else: + im = self.sup_images[self.mode][row*3+col][self.prefix] + if im: + b.set_image(im) + + + def tap(self, widget, ev, row, col): + if row == 3: + self.update_buttons() + self.set_button_images() + return + + if self.prefix == None: + self.prefix = row*3 + col + self.button_timeout = gobject.timeout_add(500, self.do_buttons) + else: + sym = keymap[self.mode][self.prefix][row*3+col] + self.entry.emit("insert-at-cursor", sym) + self.noprefix() + + def press(self, widget, ev): + self.dragx = int(ev.x_root) + self.dragy = int(ev.y_root) + self.startx, self.starty = self.get_position() + + def release(self, widget, ev, row, col): + self.dragx = None + self.dragy = None + if self.moved: + self.moved = False + else: + self.tap(widget, ev, row, col) + def motion(self, widget, ev): + if self.dragx == None: + return + x = int(ev.x_root) + y = int(ev.y_root) + + if abs(x-self.dragx)+abs(y-self.dragy) > 40 or self.moved: + self.move(self.startx+x-self.dragx, + self.starty+y-self.dragy); + self.moved = True + if ev.is_hint: + gtk.gdk.flush() + ev.window.get_pointer() + + + def do_buttons(self): + self.set_button_images() + self.button_timeout = None + return False + + + def nextmode(self, w): + if self.prefix: + return self.noprefix() + if self.mode == 'lower': + self.mode = 'UPPER' + self.single = True + w.child.set_text('Mode') + elif self.mode == 'UPPER' and self.single: + self.single = False + w.child.set_text('MODE') + elif self.mode == 'UPPER' and not self.single: + self.mode = 'number' + w.child.set_text('123') + else: + self.mode = 'lower' + w.child.set_text('mode') + self.set_button_images() + + def delete(self, w): + if self.prefix == None: + self.entry.emit("backspace") + else: + self.noprefix() + + def noprefix(self): + self.prefix = None + + if self.button_timeout: + gobject.source_remove(self.button_timeout) + self.button_timeout = None + else: + self.set_button_images() + + if self.single: + self.mode = 'lower' + self.single = False + self.modebutton.child.set_text('mode') + self.set_button_images() + + def enter(self, w): + if self.prefix == None: + text = self.entry.get_text() + print "Answer is", text + self.entry.set_text('') + root = gtk.gdk.get_default_root_window() + app = root.property_get('_MB_CURRENT_APP_WINDOW') + if app and app[0] == 'WINDOW': + try: + appw = gtk.gdk.window_foreign_new(app[2][0]) + appw.property_change('_INPUT_TEXT', 'STRING', 8, + gtk.gdk.PROP_MODE_REPLACE, text) + except: + pass + gtk.main_quit() + else: + self.noprefix() + + + +x = X() + +gtk.main() + diff --git a/mickeyterm/mickeyterm.py b/mickeyterm/mickeyterm.py new file mode 100755 index 0000000..2ece6d7 --- /dev/null +++ b/mickeyterm/mickeyterm.py @@ -0,0 +1,532 @@ +#!/usr/bin/env python +""" +Mickey's own serial terminal. Based on miniterm.py. + +Additional Features: + * readline support with command completion and history + * org.freesmartphone.GSM.MUX support + * log to file + +(C) 2002-2006 Chris Liechti +(C) 2008 Michael 'Mickey' Lauer + +GPLv2 or later +""" + +__version__ = "2.9.1" + +import sys, os, serial, threading, termios + +def completer( text, state ): + """Return a possible readline completion""" + if state == 0: + line ="" + #line = readline.get_line_buffer() + if " " in line: + allmatches = [ "(No Matches Available for commands.)" ] + else: + if not hasattr( completer, "commands" ): + allmatches = [ "(No matches available yet. Did AT+CLAC yet?)" ] + else: + allmatches = completer.commands + + completer.matches = [ x for x in allmatches if x[:len(text)] == text ] + if len( completer.matches ) > state: + return completer.matches[state] + else: + return None + +commands = """ +AT+CACM +AT+CAMM +AT+CAOC +AT+CBC +AT+CBST +AT+CCFC +AT+CCUG +AT+CCWA +AT+CCWE +AT+CEER +AT+CFUN +AT+CGACT +AT+CGANS +AT+CGATT +AT+CGAUTO +AT+CGCLASS +AT+CGDATA +AT+CGDCONT +AT+CGEREP +AT+CGMI +AT+CGMM +AT+CGMR +AT+CGPADDR +AT+CGQMIN +AT+CGQREQ +AT+CGREG +AT+CGSMS +AT+CGSN +AT+CHLD +AT+CHUP +AT+CIMI +AT+CLAC +AT+CLAE +AT+CLAN +AT+CLCC +AT+CLCK +AT+CLIP +AT+CDIP +AT+CLIR +AT+CLVL +AT+CMEE +AT+CMGC +AT+CMGD +AT+CMGF +AT+CMGL +AT+CMGR +AT+CMGS +AT+CMGW +AT+CMOD +AT+CMSS +AT+CMMS +AT+CMUT +AT+CMUX +AT+CNMA +AT+CNMI +AT+CNUM +AT+COLP +AT+COPN +AT+COPS +AT+CPAS +AT+CPBF +AT+CPBR +AT+CPBS +AT+CPBW +AT+CPIN +AT+CPMS +AT+CPOL +AT+CPUC +AT+CPWD +AT+CR +AT+CRC +AT+CREG +AT+CRES +AT+CRLP +AT+CRSL +AT+CRSM +AT+CSAS +AT+CSCA +AT+CSCB +AT+CSCS +AT+CSDH +AT+CSIM +AT+CSMP +AT+CSMS +AT+CSNS +AT+CSQ +AT%CSQ +AT+CSSN +AT+CSTA +AT+CSVM +AT+CTFR +AT+CUSD +AT+DR +AT+FAP +AT+FBO +AT+FBS +AT+FBU +AT+FCC +AT+FCLASS +AT+FCQ +AT+FCR +AT+FCS +AT+FCT +AT+FDR +AT+FDT +AT+FEA +AT+FFC +AT+FHS +AT+FIE +AT+FIP +AT+FIS +AT+FIT +AT+FKS +AT+FLI +AT+FLO +AT+FLP +AT+FMI +AT+FMM +AT+FMR +AT+FMS +AT+FND +AT+FNR +AT+FNS +AT+FPA +AT+FPI +AT+FPS +AT+FPW +AT+FRQ +AT+FSA +AT+FSP +AT+GCAP +AT+GCI +AT+GMI +AT+GMM +AT+GMR +AT+GSN +AT+ICF +AT+IFC +AT+ILRR +AT+IPR +AT+VTS +AT+WS46 +AT%ALS +AT%ATR +AT%BAND +AT%CACM +AT%CAOC +AT%CCBS +AT%STDR +AT%CGAATT +AT%CGMM +AT%CGREG +AT%CNAP +AT%CPI +AT%COLR +AT%CPRIM +AT%CTV +AT%CUNS +AT%NRG +AT%SATC +AT%SATE +AT%SATR +AT%SATT +AT%SNCNT +AT%VER +AT%CGCLASS +AT%CGPCO +AT%CGPPP +AT%EM +AT%EMET +AT%EMETS +AT%CBHZ +AT%CPHS +AT%CPNUMS +AT%CPALS +AT%CPVWI +AT%CPOPN +AT%CPCFU +AT%CPINF +AT%CPMB +AT%CPRI +AT%DATA +AT%DINF +AT%CLCC +AT%DBGINFO +AT%VTS +AT%CHPL +AT%CREG +AT+CTZR +AT+CTZU +AT%CTZV +AT%CNIV +AT%PVRF +AT%CWUP +AT%DAR +AT+CIND +AT+CMER +AT%CSCN +AT%RDL +AT%RDLB +AT%CSTAT +AT%CPRSM +AT%CHLD +AT%SIMIND +AT%SECP +AT%SECS +AT%CSSN +AT+CCLK +AT%CSSD +AT%COPS +AT%CPMBW +AT%CUST +AT%SATCC +AT%COPN +AT%CGEREP +AT%CUSCFG +AT%CUSDR +AT%CPBS +AT%PBCF +AT%SIMEF +AT%EFRSLT +AT%CMGMDU +AT%CMGL +AT%CMGR +AT@ST +AT@AUL +AT@POFF +AT@RST +AT@SC +AT@BAND +ATA +ATB +AT&C +ATD +AT&D +ATE +ATF +AT&F +ATH +ATI +AT&K +ATL +ATM +ATO +ATP +ATQ +ATS +ATT +ATV +ATW +AT&W +ATX +ATZ +""".strip() +completer.commands = commands.split() + commands.lower().split() + +class Terminal( object ): + def __init__( self, port, baudrate, rtscts, xonxoff, lineending, inputmode=True ): + self.inputmode = inputmode + self.r = None + self.convert = lineending + self.EXITCHARACTER = '\x04' # ctrl+D + self.fd = None + self.serial = serial.Serial( port, baudrate, rtscts=rtscts, xonxoff=xonxoff ) + + def setQuietMode( self, quiet ): + self.quiet = quiet + + def setLogging( self, logging ): + self.logging = logging + if self.logging is not None: + self.ilog = open( "%s/mickeyterm.%d.input" % ( logging, os.getpid() ), "w" ) + self.olog = open( "%s/mickeyterm.%d.output" % ( logging, os.getpid() ), "w" ) + self.alog = open( "%s/mickeyterm.%d.all" % ( logging, os.getpid() ), "w" ) + + def run( self ): + self.prepare() + self.serial.open() + assert self.serial.isOpen(), "can't open serial port" + self.banner( True ) + self.r = threading.Thread( target = self.reader ) + self.r.setDaemon( True ) + self.r.start() + # optional + self.serial.write( "AT+CMEE=2;+CRC=1\r\n" ) + self.writer() + self.banner( False ) + self.serial.close() + self.restore() + + def banner( self, startup ): + if self.quiet: + return + if startup: + print "<----------- Mickey's Term V%s @ %s ----------->" % ( __version__, self.serial.port ) + else: + print "Good Bye." + + def prepare( self ): + if self.inputmode: + import readline + readline.set_completer( completer ) + readline.set_completer_delims( " " ) + readline.parse_and_bind("tab: complete") + self.historyfilename = os.path.expanduser( "~/.mickeyterm_history" ) + try: + readline.read_history_file( self.historyfilename ) + print "read history from", self.historyfilename + except IOError: + readline.clear_history() + + else: + self.fd = sys.stdin.fileno() + self.old = termios.tcgetattr( self.fd ) + new = termios.tcgetattr( self.fd ) + new[3] = new[3] & ~termios.ICANON & ~termios.ECHO & ~termios.ISIG + new[6][termios.VMIN] = 1 + new[6][termios.VTIME] = 0 + termios.tcsetattr( self.fd, termios.TCSANOW, new ) + + def restore( self ): + if self.inputmode: + import readline + try: + readline.write_history_file( self.historyfilename ) + except IOError, e: + print "Could not save history.", repr(e) + else: + termios.tcsetattr( self.fd, termios.TCSAFLUSH, self.old ) + + def writer( self ): + if self.inputmode: + # + # new style + # + while True: + try: + cmdline = raw_input( "" ) + except KeyboardInterrupt: + print "CTRL-C" + continue + except EOFError: + print "CTRL-D" + break + else: + if self.convert == "CRLF": + cmdline += "\r\n" + elif self.convert == "CR": + cmdline += "\r" + elif self.convert == "LF": + cmdline += "\n" + self.serial.write( cmdline ) + if self.logging: + self.ilog.write( cmdline ) + self.alog.write( cmdline ) + else: + # + # old style + # + while True: + c = os.read( self.fd, 1 ) + if c == self.EXITCHARACTER: + break + elif c == '\n': + if self.convert == "CRLF": + self.serial.write('\r\n') + elif self.convert == "CR": + self.serial.write('\r') + elif self.convert == "LF": + self.serial.write('\n') + else: + self.serial.write(c) + if self.logging: + self.ilog.write( c ) + self.alog.write( c ) + + def reader( self ): + while True: + data = self.serial.read() + sys.stdout.write(data) + sys.stdout.flush() + if self.logging: + self.olog.write( data ) + self.alog.write( data ) + + +if __name__ == "__main__": + import optparse + + parser = optparse.OptionParser(usage="""\ +%prog [options] [port [baudrate]] + +Mickey's Terminal Program.""") + + parser.add_option("-p", "--port", dest="port", + help="the port, device path, a portnumber, device name (deprecated option), or MUX (default)", + default="MUX") + + parser.add_option("-b", "--baud", dest="baudrate", action="store", type='int', + help="set baudrate, default 115200", default=115200) + + parser.add_option("", "--parity", dest="parity", action="store", + help="set parity, one of [N, E, O], default=N", default='N') + + if False: + parser.add_option("-e", "--echo", dest="echo", action="store_true", + help="enable local echo (default off)", default=False) + + parser.add_option("", "--rtscts", dest="rtscts", action="store_true", + help="enable RTS/CTS flow control (default off)", default=False) + + parser.add_option("", "--xonxoff", dest="xonxoff", action="store_true", + help="enable software flow control (default off)", default=False) + + parser.add_option("", "--cr", dest="cr", action="store_true", + help="do not send CR+LF, send CR only", default=False) + + parser.add_option("", "--lf", dest="lf", action="store_true", + help="do not send CR+LF, send LF only", default=False) + + if False: + parser.add_option("-D", "--debug", dest="repr_mode", action="count", + help="""debug received data (escape non-printable chars) + --debug can be given multiple times: + 0: just print what is received + 1: escape non-printable characters, do newlines as ususal + 2: escape non-printable characters, newlines too + 3: hex dump everything""", default=0) + + parser.add_option("", "--rts", dest="rts_state", action="store", type='int', + help="set initial RTS line state (possible values: 0, 1)", default=None) + + parser.add_option("", "--dtr", dest="dtr_state", action="store", type='int', + help="set initial DTR line state (possible values: 0, 1)", default=None) + + # behaviour + + parser.add_option("-c", "--char-by-char", dest="charbychar", action="store_true", + help="use character-by-character (traditional mode) instead of line-by-line (default)", + default=False) + + parser.add_option("-l", "--logdir", dest="log", + help="enable logging to files, specifies directory" ) + + parser.add_option("-q", "--quiet", dest="quiet", action="store_true", + help="suppress non error messages", default=False) + + options, args = parser.parse_args() + + if options.cr and options.lf: + parser.error("only one of --cr or --lf can be specified") + else: + if options.cr: + lineending = "CR" + elif options.lf: + lineending = "LF" + else: + lineending = "CRLF" + + port = options.port + baudrate = options.baudrate + if args: + if options.port is not None: + parser.error("no arguments are allowed, options only when --port is given") + port = args.pop(0) + if args: + try: + baudrate = int(args[0]) + except ValueError: + parser.error("baudrate must be a number, not %r" % args[0]) + args.pop(0) + if args: + parser.error("too many arguments") + else: + if port is "MUX": + # try to get portname from MUXer + import dbus + bus = dbus.SystemBus() + oMuxer = bus.get_object( "org.pyneo.muxer", "/org/pyneo/Muxer" ) + iMuxer = dbus.Interface( oMuxer, "org.freesmartphone.GSM.MUX" ) + port = iMuxer.AllocChannel( "mickeyterm.%d" % os.getpid() ) + assert port, "could not get path from muxer. need to supply explicit portname" + + if options.log is not None: + if not os.path.isdir( options.log ): + parser.error("%s not a directory") + + inputmode = not options.charbychar + + t = Terminal( str(port), baudrate, options.rtscts, options.xonxoff, lineending, inputmode ) + t.setQuietMode( options.quiet ) + t.setLogging( options.log ) + t.run() diff --git a/music/music.py b/music/music.py new file mode 100755 index 0000000..0882b2c --- /dev/null +++ b/music/music.py @@ -0,0 +1,852 @@ +#!/usr/bin/env python +# -*- Mode: Python -*- +# vi:si:et:sw=4:sts=4:ts=4 + +import pygtk +pygtk.require('2.0') + +import sys + +import gobject + +import suspend + +import pygst +pygst.require('0.10') +import gst +import gst.interfaces +import gtk + +import urllib +import os +import random +import pango + +class MusicList: + # Allows selecting songs and moving through the list. + # movement can be + # sequential (alpha order) + # random-album (Seq through album, then random next album) + # random (random walk through all) + # + # We store two states. + # 1/ The current song to play. This is in 'album' and 'song' and mode etc. + # 2/ The browse location, in 'dir' and 'pos' + def __init__(self, path): + self.albums = {} + self.dirs = {} + self.names = {} + self.add_path(path) + self.on_change = [] + for a in self.albums: + self.albums[a].sort() + for p in self.dirs: + self.dirs[p].sort() + + self.albumlist = self.albums.keys() + self.albumlist.sort() + + self.path = path + self.dir = "/" + self.pos = 0 + + self.album = None + self.song = None + self.mode = 'seq' + + self.set_dir("") + + def set_dir(self, dir): + self.dir = dir + p = self.path + self.dir + print "p is", p + self.folders = [] + if p in self.dirs: + self.folders = self.dirs[p] + self.songs = [] + if p in self.albums: + self.songs = self.albums[p] + self.pos = 0 + + def set_song(self, song): + # this song is in the current dir, + # update folder and song, and play + print "dir is", self.dir + print self.albumlist + print "xx" + self.album = self.albumlist.index(self.path+self.dir) + self.song = self.albums[self.path+self.dir].index(song) + print "set song", self.album, self.song + self.changed() + + def namecnt(self): + cnt = 0 + if self.dir != "": + cnt = 1 + cnt += len(self.folders) + cnt += len(self.songs) + return cnt + + def getname(self, num): + if self.dir != "": + if num == 0: + return ("parent", "") + num -= 1 + if num < len(self.folders): + return ("folder", self.folders[num]) + num -= len(self.folders) + if num < len(self.songs): + return ("song", self.songs[num]) + return ("end", "unknown") + + def changer(self, func): + self.on_change.append(func) + + def changed(self): + for func in self.on_change: + func() + + def next(self): + # move to the next song + if self.mode == 'seq': + # just return the sequentially next song + while True: + if self.album == None: + self.album = 0 + self.song = 0 + elif self.song == None: + self.song = 0 + else: + self.song += 1 + if len(self.albumlist) == 0: + break + if self.song < len(self.albums[self.albumlist[self.album]]): + break + self.album += 1 + self.song = None + if self.album >= len(self.albumlist): + self.album = None + return False + + self.changed() + return True + + def curr_song(self): + a = self.albumlist[self.album] + s = self.albums[a][self.song] + t = self.names[s] + return (a,s,t) + + def prev(self): + # return the 'previous' song as (path,album,name) + if self.mode == 'seq': + # just return the sequentially previous song + while True: + if self.album == None: + self.album = len(self.albumlist)-1 + self.song = len(self.albums[self.albumlist[self.album]])-1 + elif self.song == None: + self.song = len(self.albums[self.albumlist[self.album]])-1 + else: + self.song -= 1 + if self.song >= 0: + break + self.album -= 1 + self.song = None + if self.album < 0: + self.album = None + return False + self.changed() + return True + + + def add_path(self, path): + try: + n = os.listdir(path) + except: + return + else: + pass + for f in n: + p = os.path.join(path,f) + if os.path.isdir(p): + self.add_path(p) + if os.path.isfile(p) and p[-4:] == ".ogg": + self.addsong(path, f) + + def addsong(self, path, name): + if not path in self.albums: + self.albums[path] = [] + self.add_dir(path) + p = path + n = name + while p and p != "/": + (p, b) = os.path.split(p) + n = n.replace(("- %s -"%b), "-") + if n[-4:] == ".ogg": + n = n[:-4] + self.albums[path].append(name) + self.names[name] = urllib.unquote_plus(n) + + def add_dir(self, path): + (h,t) = os.path.split(path) + if not h in self.dirs: + self.dirs[h] = [] + self.add_dir(h) + self.dirs[h].append(t) + + def title(self, song = None): + if song != None: + return self.names[song] + if self.album == None or self.song == None: + return "Nothing Playing" + return self.names[self.albums[self.albumlist[self.album]][self.song]] + +class GstPlayer: + def __init__(self): + self.playing = False + self.player = gst.element_factory_make("playbin", "player") + self.on_eos = False + + bus = self.player.get_bus() + bus.enable_sync_message_emission() + bus.add_signal_watch() + bus.connect('message', self.on_message) + + def on_message(self, bus, message): + t = message.type + if t == gst.MESSAGE_ERROR: + err, debug = message.parse_error() + print "Error: %s" % err, debug + self.playing = False + if self.on_eos: + self.on_eos() + elif t == gst.MESSAGE_EOS: + self.playing = False + if self.on_eos: + self.on_eos() + + def set_location(self, location): + self.player.set_property('uri', location) + + def set_volume(self, volume): + self.player.set_property('volume', volume / 100.0) + + def query_position(self): + "Returns a (position, duration) tuple" + try: + position, format = self.player.query_position(gst.FORMAT_TIME) + except: + position = gst.CLOCK_TIME_NONE + + try: + duration, format = self.player.query_duration(gst.FORMAT_TIME) + except: + duration = gst.CLOCK_TIME_NONE + + return (position, duration) + + def seek(self, location): + """ + @param location: time to seek to, in nanoseconds + """ + gst.debug("seeking to %r" % location) + event = gst.event_new_seek(1.0, gst.FORMAT_TIME, + gst.SEEK_FLAG_FLUSH | gst.SEEK_FLAG_ACCURATE, + gst.SEEK_TYPE_SET, location, + gst.SEEK_TYPE_NONE, 0) + + res = self.player.send_event(event) + if res: + gst.info("setting new stream time to 0") + self.player.set_new_stream_time(0L) + else: + gst.error("seek to %r failed" % location) + + def pause(self): + gst.info("pausing player") + self.player.set_state(gst.STATE_PAUSED) + self.playing = False + + def play(self): + gst.info("playing player") + self.player.set_state(gst.STATE_PLAYING) + self.playing = True + + def stop(self): + self.player.set_state(gst.STATE_NULL) + self.playing = False + gst.info("stopped player") + + def get_state(self, timeout=1): + return self.player.get_state(timeout=timeout) + + def is_playing(self): + return self.playing + +class TitleWindow(gtk.DrawingArea): + def __init__(self, db): + gtk.DrawingArea.__init__(self) + + self.pixbuf = None + self.width = self.height = 0 + self.need_redraw = True + self.colours = None + self.db = db + + self.pos_stack = [] + + self.connect("expose-event", self.redraw) + self.connect("configure-event", self.reconfig) + + self.connect("button_release_event", self.release) + self.connect("button_press_event", self.press) + self.set_events(gtk.gdk.EXPOSURE_MASK + | gtk.gdk.BUTTON_PRESS_MASK + | gtk.gdk.BUTTON_RELEASE_MASK + | gtk.gdk.STRUCTURE_MASK) + + # choose a font + fd = self.get_pango_context().get_font_description() + fd.set_absolute_size(25 * pango.SCALE) + self.fd = fd + self.modify_font(fd) + met = self.get_pango_context().get_metrics(fd) + self.lineheight = (met.get_ascent() + met.get_descent()) / pango.SCALE + + + self.queue_draw() + + def reconfig(self, w, ev): + alloc = w.get_allocation() + if not self.pixbuf: + return + if alloc.width != self.width or alloc.height != self.height: + self.pixbuf = None + self.need_redraw = True + + def add_col(self, sym, col): + c = gtk.gdk.color_parse(col) + gc = self.window.new_gc() + gc.set_foreground(self.get_colormap().alloc_color(c)) + self.colours[sym] = gc + + def redraw(self, w, ev): + if self.colours == None: + self.colours = {} + self.add_col('song', "blue") + self.add_col('bg', "yellow") + self.add_col('C', "red") + self.add_col('parent', "orange") + self.add_col('folder', "black") + self.add_col('end', "white") + self.add_col('_', "black") + self.bg = self.get_style().bg_gc[gtk.STATE_NORMAL] + + if self.need_redraw: + self.draw_buf() + + self.window.draw_drawable(self.bg, self.pixbuf, 0, 0, 0, 0, + self.width, self.height) + + + def draw_buf(self): + self.need_redraw = False + if self.pixbuf == None: + alloc = self.get_allocation() + self.pixbuf = gtk.gdk.Pixmap(self.window, alloc.width, alloc.height) + self.width = alloc.width + self.height = alloc.height + self.pixbuf.draw_rectangle(self.bg, True, 0, 0, + self.width, self.height) + + lines = int((self.height) / self.lineheight) - 1 + entries = self.db.namecnt() + # probably place current song in the middle + top = self.db.pos - lines / 2 + # but try not to leave blank space at the end + if entries - self.db.pos < lines/2: + top = entries - lines + # but never have blank space at the top + if top < 0: + top = 0 + self.top = top + offset = 0 + for l in range(lines): + (type, name) = self.db.getname(top + l) + if type == "end": + break + if l == self.db.pos - top: + self.fd.set_absolute_size(40 * pango.SCALE) + self.modify_font(self.fd) + if type == "song": + layout = self.create_pango_layout(self.db.title(name)) + elif type == "folder": + layout = self.create_pango_layout(urllib.unquote_plus(name)) + else: + layout = self.create_pango_layout(name) + #(ink, log) = layout.get_pixel_extents() + #(ex,ey,ew,eh) = log + #self.pixbuf.draw_layout(self.colours['X'], (self.width-ew)/2, + #(self.height-eh)/2, + #layout) + if l == self.db.pos - top: + self.pixbuf.draw_rectangle(self.colours['end'], True, + 0, l*self.lineheight, + self.width, self.lineheight*2) + self.pixbuf.draw_layout(self.colours[type], + 0, l * self.lineheight, + layout) + offset = self.lineheight + self.fd.set_absolute_size(25 * pango.SCALE) + self.modify_font(self.fd) + else: + self.pixbuf.draw_layout(self.colours[type], + 0, l * self.lineheight + offset, + layout) + + def refresh(self): + self.need_redraw = True + self.queue_draw() + + def press(self,w,ev): + row = int(ev.y / self.lineheight) + if row > self.db.pos - self.top: + row -= 1 + if self.db.pos != row + self.top: + self.db.pos = row + self.top + else: + (type,name) = self.db.getname(row + self.top) + if type == "parent": + sl = self.db.dir.rindex('/') + self.db.set_dir(self.db.dir[0:sl]) + (t,p) = self.pos_stack.pop() + self.top = t + self.db.pos = p + elif type == "folder": + self.pos_stack.append((self.top, self.db.pos)) + self.db.set_dir(self.db.dir + "/" + name) + elif type == "song": + print "play", self.db.dir+"/"+name + self.db.set_song(name) + + self.refresh() + + def release(self,w,ev): + pass + +class FingerScale(gtk.DrawingArea): + def __init__(self, control): + gtk.DrawingArea.__init__(self) + self.control = control + + self.connect("expose-event", self.redraw) + self.connect("configure-event", self.reconfig) + + self.connect("button_release_event", self.release) + self.connect("button_press_event", self.press) + self.set_events(gtk.gdk.EXPOSURE_MASK + | gtk.gdk.BUTTON_PRESS_MASK + | gtk.gdk.BUTTON_RELEASE_MASK + | gtk.gdk.STRUCTURE_MASK) + + ctx = self.get_pango_context() + fd = ctx.get_font_description() + fd.set_absolute_size(25 * pango.SCALE) + self.modify_font(fd) + met = ctx.get_metrics(fd) + self.lineheight = (met.get_ascent() + met.get_descent()) / pango.SCALE + + def start(self, percent, widget): + a = widget.get_allocation() + alloc = (a.x,a.y,a.width,a.height) + self.homewidget = alloc + self.grab_add() + self.tracking = False + self.show() + self.set(percent) + + def end(self, percent = None): + self.hide() + self.grab_remove() + if percent == None: + percent = self.percent + if self.tracking: + self.control(percent, True) + + def set(self, percent): + self.percent = percent + self.str = self.control(percent) + self.layout = self.create_pango_layout(self.str) + (ink, (ex,ey,ew,eh)) = self.layout.get_pixel_extents() + self.sw = ew + + self.queue_draw() + + def reconfig(self, w, ev): + self.alloc = self.get_allocation() + self.theight = self.alloc.height - self.lineheight + + def redraw(self, area, ev): + self.window.draw_rectangle(self.get_style().bg_gc[gtk.STATE_NORMAL], + True, 0, 0, + self.alloc.width, self.alloc.height) + self.window.draw_rectangle(self.get_style().fg_gc[gtk.STATE_NORMAL], + False, 0, 0, + self.alloc.width-2, self.alloc.height-2) + self.window.draw_layout(self.get_style().fg_gc[gtk.STATE_NORMAL], + int((self.alloc.width - self.sw)/2), + int((self.percent * self.theight / 100)), + self.layout) + + def release(self, c, ev): + if not self.tracking: + self.tracking = True + return + (gx,gy,gw,gh, gd) = ev.window.get_geometry() + (ox,oy) = c.window.get_origin() + y = ev.y_root - oy + + percent = (y - self.lineheight/2) * 100 / self.theight + if percent < 0: + percent = 0 + if percent > 100: + percent = 100 + + if (gx,gy,gw,gh) == self.homewidget: + self.end() + else: + self.set(percent) + + def press(self, c, ev): + pass + def motion(self, c, ev): + if ev.is_hint: + x, y, state = ev.window.get_pointer() + else: + x = ev.x + y = ev.y + a = c.get_allocation() + y -= a.y - self.offset + x = int(x); y = int(y) + if not self.tracking: + if y > ((self.percent * self.theight / 100) + + self.lineheight/2): + self.tracking = True + else: + return + percent = (y - self.lineheight/2) * 100 / self.theight + if percent < 0: + percent = 0 + if percent > 100: + percent = 100 + self.set(percent) + +class PlayerWindow(gtk.Window): + UPDATE_INTERVAL = 500 + def __init__(self, db): + gtk.Window.__init__(self) + self.set_default_size(480, 640) + self.set_title("Music Player") + + self.db = db + + self.volume = 100 + + self.update_id = -1 + self.changed_id = -1 + self.seek_timeout_id = -1 + + self.p_position = gst.CLOCK_TIME_NONE + self.p_duration = gst.CLOCK_TIME_NONE + + self.create_ui() + self.soonid = None + + self.player = GstPlayer() + + self.player.on_eos = self.on_eos + + db.changer(self.new_song) + + suspend.monitor(self.on_suspend, self.on_resume) + + def on_delete_event(): + self.player.stop() + gtk.main_quit() + self.connect('delete-event', lambda *x: on_delete_event()) + + def on_eos(self, *a): + self.player.stop() + if not self.db.next() and not self.db.next(): + return + (d,b,n) = self.db.curr_song() + self.load_file("file://" + urllib.quote(os.path.join(d,b))) + self.player.play() + self.tw.refresh() + #self.play_toggled() + + def on_suspend(self): + self.player.stop() + self.play_button.remove(self.play_button.child) + self.play_button.add(self.play_image) + return True + + def on_resume(self): + pass + + def load_file(self, location): + self.player.set_location(location) + + def create_ui(self): + + isize = gtk.icon_size_register("big",120,120) + vbox = gtk.VBox(); vbox.show() + self.add(vbox) + + hbox = gtk.HBox(); hbox.show() + vbox.pack_start(hbox, expand=False) + + fd = pango.FontDescription("sans 10") + fd.set_absolute_size(25 * pango.SCALE) + b = gtk.Button("Seek"); b.show() + b.add_events(gtk.gdk.POINTER_MOTION_MASK|gtk.gdk.POINTER_MOTION_HINT_MASK) + b.child.modify_font(fd) + b.connect('button_press_event', self.grab_seek) + b.connect('button_release_event', self.release_seek) + hbox.add(b) + + b = gtk.Button("Volume"); b.show() + b.add_events(gtk.gdk.POINTER_MOTION_MASK|gtk.gdk.POINTER_MOTION_HINT_MASK) + b.child.modify_font(fd) + b.connect('button_press_event', self.grab_volume) + b.connect('button_release_event', self.release_volume) + hbox.add(b) + hbox.set_homogeneous(True); hbox.set_size_request(-1,70) + + hbox = gtk.HBox(); hbox.show() + vbox.pack_end(hbox, fill=False, expand=False) + # three button, prev, play/pause, next + + image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_REWIND, + isize) + image.show() + button = gtk.Button() + button.add(image) + button.show() + hbox.pack_start(button) + button.set_focus_on_click(False) + button.connect('clicked', lambda *args: self.prev_song()) + + + image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_FORWARD, + isize) + image.show() + button = gtk.Button() + button.add(image) + button.show() + hbox.pack_end(button) + button.connect('clicked', lambda *args: self.next_song()) + + image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PAUSE, + isize) + image.show() + button = gtk.Button() + button.show() + hbox.pack_end(button) + self.pause_image = image + image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PLAY, + isize) + image.show() + self.play_image = image + self.play_button = button + button.add(image) + button.connect('clicked', lambda *args: self.play_toggled()) + + + self.dirlabel = gtk.Label(""); self.dirlabel.show() + vbox.pack_start(self.dirlabel, expand=False) + fd = self.dirlabel.get_pango_context().get_font_description() + fd.set_absolute_size(25 * pango.SCALE) + self.dirlabel.modify_font(fd) + + self.dirlabel.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse('magenta')) + self.dirlabel.set_property('ellipsize', pango.ELLIPSIZE_START) + + self.songlabel = gtk.Label("No Song Playing"); self.songlabel.show() + vbox.pack_end(self.songlabel, expand=False) + self.db.changer(lambda : self.songlabel.set_text(self.db.title())) + + self.songlabel.modify_font(fd) + self.songlabel.set_property('ellipsize', pango.ELLIPSIZE_MIDDLE) + self.songlabel.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse('magenta')) + + h = gtk.HBox(); h.show() + self.volumer = FingerScale(self.control_volume) + h.add(self.volumer) + self.tw = TitleWindow(self.db); self.tw.show() + h.add(self.tw) + self.seeker = FingerScale(self.control_seek) + h.add(self.seeker) + + vbox.pack_end(h, padding=5) + + def play_toggled(self): + self.play_button.remove(self.play_button.child) + if self.player.is_playing(): + self.player.pause() + self.play_button.add(self.play_image) + else: + self.player.play() + #if self.update_id == -1: + # self.update_id = gobject.timeout_add(self.UPDATE_INTERVAL, + # self.update_scale_cb) + self.play_button.add(self.pause_image) + + def soon_play(self, d,b): + # play d/b in 40msec if nothing else is suggested + self.player.stop() + if self.soonid != None: + gobject.source_remove(self.soonid) + self.soonfile = "file://" + urllib.quote(os.path.join(d,b)) + self.soonid = gobject.timeout_add(40, self.soon) + def soon(self): + self.soonid = None + self.load_file(self.soonfile) + self.player.stop() + self.play_toggled() + + def next_song(self): + if self.player.is_playing(): + self.player.stop() + if not self.db.next(): + self.db.next() + + def prev_song(self): + if self.player.is_playing(): + pos,dur = self.player.query_position() + self.player.stop() + if pos > 2*1000*1000*1000: + # 2 billion nanoseconds + self.player.seek(0) + self.player.play() + return + if not self.db.prev(): + self.db.prev() + + + def new_song(self): + (d,b,n) = self.db.curr_song() + self.tw.refresh() + self.dirlabel.set_text(urllib.unquote_plus(d)) + self.soon_play(d,b) + + def scale_format_value_cb(self, scale, value): + if self.p_duration == -1: + real = 0 + else: + real = value * self.p_duration / 100 + + seconds = real / gst.SECOND + + return "%02d:%02d" % (seconds / 60, seconds % 60) + + def scale_button_press_cb(self, widget, event): + # see seek.c:start_seek + gst.debug('starting seek') + + self.play_button.set_sensitive(False) + self.was_playing = self.player.is_playing() + if self.was_playing: + self.player.pause() + + # don't timeout-update position during seek + if self.update_id != -1: + gobject.source_remove(self.update_id) + self.update_id = -1 + + # make sure we get changed notifies + if self.changed_id == -1: + self.changed_id = self.hscale.connect('value-changed', + self.scale_value_changed_cb) + + def scale_value_changed_cb(self, scale): + # see seek.c:seek_cb + real = long(scale.get_value() * self.p_duration / 100) # in ns + gst.debug('value changed, perform seek to %r' % real) + self.player.seek(real) + # allow for a preroll + self.player.get_state(timeout=50*gst.MSECOND) # 50 ms + + def scale_button_release_cb(self, widget, event): + # see seek.cstop_seek + widget.disconnect(self.changed_id) + self.changed_id = -1 + + self.play_button.set_sensitive(True) + if self.seek_timeout_id != -1: + gobject.source_remove(self.seek_timeout_id) + self.seek_timeout_id = -1 + else: + gst.debug('released slider, setting back to playing') + if self.was_playing: + self.player.play() + + if self.update_id != -1: + self.error('Had a previous update timeout id') + else: + self.update_id = gobject.timeout_add(self.UPDATE_INTERVAL, + self.update_scale_cb) + + def update_scale_cb(self): + self.p_position, self.p_duration = self.player.query_position() + if self.p_position != gst.CLOCK_TIME_NONE: + value = self.p_position * 100.0 / self.p_duration + self.adjustment.set_value(value) + + return True + + def grab_seek(self, w, *a): + self.p_position, self.p_duration = self.player.query_position() + percent = self.p_position * 100 / self.p_duration + self.seeker.start(percent, w) + def release_seek(self, *a): + self.seeker.grab_remove() + self.seeker.hide() + def control_seek(self, percent, commit = False): + # return "string" + pos = percent * self.p_duration / 100 + seconds = pos / gst.SECOND + str = "%02d:%02d" % (seconds / 60, seconds % 60) + if commit: + self.player.seek(pos) + return str + + def grab_volume(self, w, *a): + a = w.get_allocation() + self.volumer.start(self.volume, w) + def release_volume(self, *a): + self.volumer.grab_remove() + self.volumer.hide() + def control_volume(self, percent, commit = False): + self.volume = percent + self.player.set_volume(percent) + str = "%d%%" % percent + return str + +def main(args): + + # Need to register our derived widget types for implicit event + # handlers to get called. + + gobject.type_register(PlayerWindow) + + db = MusicList("/home/music/ogg") + w = PlayerWindow(db) + w.show() + + w.on_eos() + gtk.main() + +if __name__ == '__main__': + sys.exit(main(sys.argv)) diff --git a/music/notes b/music/notes new file mode 100644 index 0000000..2c6598f --- /dev/null +++ b/music/notes @@ -0,0 +1,28 @@ + +Simple music player, using python,gtk,gst. + +Find music files in a directory tree. +Any directory that contains at least one music file is an 'album'. +Other directories are just collections. + +So we scan the directory tree looking for music files. +When found, we add to table: + album[dirpath] += song +if that is first song, add elements of dirpath to + tree[dir] += member + +Then sort them all + +-------------------- +Issue: What to display in song list? + + We sometimes want to display whatever we are browsing - directories or songs. + We sometimes want to display whatever we are playing - songs. + When shuffling, we want to show what is really the next song, so not + just the current album. + + or not... + + The main display could just be for browsing. + There is one line below to show 'current song' + click on 'current song' and it find it in the browser. \ No newline at end of file diff --git a/music/properties.py b/music/properties.py new file mode 100644 index 0000000..56d4c32 --- /dev/null +++ b/music/properties.py @@ -0,0 +1,40 @@ + +import gtk + +class RootProp(): + def __init__(self): + self.root = gtk.gdk.get_default_root_window() + + def setstr(self, name, val): + self.root.property_change(name, "STRING", 8, + gtk.gdk.PROP_MODE_REPLACE, val) + + def getstr(self, name): + (type, format, value) = self.root.property_get(name) + if type != "STRING" or format != 8: + return None + return value + + def watchstr(self, name, fn): + m = self.root.get_events() + self.root.set_events(m | gtk.gdk.PROPERTY_CHANGE_MASK) + self.root.add_filter(self.gotev, True) + + def gotev(self, ev, tr): + print ev, dir(ev) + print ev.type, ev.get_state() + if ev.type == gtk.gdk.PROPERTY_NOTIFY: + print ev.atom + else: + print ev.type + + ev2 = gtk.gdk.event_get() + print "and", ev2.type + return gtk.gdk.FILTER_CONTINUE + +def ping(*a): + print 'ping' + +a= RootProp() +a.watchstr('song', ping) +gtk.main() diff --git a/netchoose/mdbus.py b/netchoose/mdbus.py new file mode 100644 index 0000000..ac7c6ed --- /dev/null +++ b/netchoose/mdbus.py @@ -0,0 +1,431 @@ +#!/usr/bin/env python +""" +Mickey's own dbus introspection utility. + +(C) 2008 Michael 'Mickey' Lauer + +GPLv2 or later +""" + +__version__ = "0.9.9" + +from xml.parsers.expat import ExpatError, ParserCreate +from dbus.exceptions import IntrospectionParserException + +#----------------------------------------------------------------------------# +class _Parser(object): +#----------------------------------------------------------------------------# +# Copyright (C) 2003, 2004, 2005, 2006 Red Hat Inc. +# Copyright (C) 2003 David Zeuthen +# Copyright (C) 2004 Rob Taylor +# Copyright (C) 2005, 2006 Collabora Ltd. +# Copyright (C) 2007 John (J5) Palmieri +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies +# of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + __slots__ = ('map', + 'in_iface', + 'in_method', + 'in_signal', + 'in_property', + 'property_access', + 'in_sig', + 'out_sig', + 'node_level', + 'in_signal') + def __init__(self): + self.map = {'child_nodes':[],'interfaces':{}} + self.in_iface = '' + self.in_method = '' + self.in_signal = '' + self.in_property = '' + self.property_access = '' + self.in_sig = [] + self.out_sig = [] + self.node_level = 0 + + def parse(self, data): + parser = ParserCreate('UTF-8', ' ') + parser.buffer_text = True + parser.StartElementHandler = self.StartElementHandler + parser.EndElementHandler = self.EndElementHandler + parser.Parse(data) + return self.map + + def StartElementHandler(self, name, attributes): + if name == 'node': + self.node_level += 1 + if self.node_level == 2: + self.map['child_nodes'].append(attributes['name']) + elif not self.in_iface: + if (not self.in_method and name == 'interface'): + self.in_iface = attributes['name'] + else: + if (not self.in_method and name == 'method'): + self.in_method = attributes['name'] + elif (self.in_method and name == 'arg'): + arg_type = attributes['type'] + arg_name = attributes.get('name', None) + if attributes.get('direction', 'in') == 'in': + self.in_sig.append({'name': arg_name, 'type': arg_type}) + if attributes.get('direction', 'out') == 'out': + self.out_sig.append({'name': arg_name, 'type': arg_type}) + elif (not self.in_signal and name == 'signal'): + self.in_signal = attributes['name'] + elif (self.in_signal and name == 'arg'): + arg_type = attributes['type'] + arg_name = attributes.get('name', None) + + if attributes.get('direction', 'in') == 'in': + self.in_sig.append({'name': arg_name, 'type': arg_type}) + elif (not self.in_property and name == 'property'): + prop_type = attributes['type'] + prop_name = attributes['name'] + + self.in_property = prop_name + self.in_sig.append({'name': prop_name, 'type': prop_type}) + self.property_access = attributes['access'] + + + def EndElementHandler(self, name): + if name == 'node': + self.node_level -= 1 + elif self.in_iface: + if (not self.in_method and name == 'interface'): + self.in_iface = '' + elif (self.in_method and name == 'method'): + if not self.map['interfaces'].has_key(self.in_iface): + self.map['interfaces'][self.in_iface]={'methods':{}, 'signals':{}, 'properties':{}} + + if self.map['interfaces'][self.in_iface]['methods'].has_key(self.in_method): + print "ERROR: Some clever service is trying to be cute and has the same method name in the same interface" + else: + self.map['interfaces'][self.in_iface]['methods'][self.in_method] = (self.in_sig, self.out_sig) + + self.in_method = '' + self.in_sig = [] + self.out_sig = [] + elif (self.in_signal and name == 'signal'): + if not self.map['interfaces'].has_key(self.in_iface): + self.map['interfaces'][self.in_iface]={'methods':{}, 'signals':{}, 'properties':{}} + + if self.map['interfaces'][self.in_iface]['signals'].has_key(self.in_signal): + print "ERROR: Some clever service is trying to be cute and has the same signal name in the same interface" + else: + self.map['interfaces'][self.in_iface]['signals'][self.in_signal] = (self.in_sig,) + + self.in_signal = '' + self.in_sig = [] + self.out_sig = [] + elif (self.in_property and name == 'property'): + if not self.map['interfaces'].has_key(self.in_iface): + self.map['interfaces'][self.in_iface]={'methods':{}, 'signals':{}, 'properties':{}} + + if self.map['interfaces'][self.in_iface]['properties'].has_key(self.in_property): + print "ERROR: Some clever service is trying to be cute and has the same property name in the same interface" + else: + self.map['interfaces'][self.in_iface]['properties'][self.in_property] = (self.in_sig, self.property_access) + + self.in_property = '' + self.in_sig = [] + self.out_sig = [] + self.property_access = '' + +#----------------------------------------------------------------------------# +def process_introspection_data(data): +#----------------------------------------------------------------------------# + """Return a structure mapping all of the elements from the introspect data + to python types TODO: document this structure + + :Parameters: + `data` : str + The introspection XML. Must be an 8-bit string of UTF-8. + """ + try: + return _Parser().parse(data) + except Exception, e: + raise IntrospectionParserException('%s: %s' % (e.__class__, e)) + +#----------------------------------------------------------------------------# +class Commands( object ): +#----------------------------------------------------------------------------# + """ + Implementing the dbus introspection / interaction. + """ + def __init__( self, bus ): + if mode == "listen": + self._setupMainloop() + self.bus = bus() + self.busname = None + self.objpath = None + self.rinterface = None + + def listBusNames( self ): + names = self.bus.list_names()[:] + names.sort() + for n in names: + print n + + def listObjects( self, busname ): + self._listChildren( busname, '/' ) + + def listMethods( self, busname, objname ): + obj = self._tryObject( busname, objname ) + if obj is not None: + data = process_introspection_data( obj.Introspect() ) + for name, interface in data["interfaces"].iteritems(): + self._listInterface( name, interface["signals"], interface["methods"], interface["properties"] ) + + def callMethod( self, busname, objname, methodname, parameters=[] ): + obj = self._tryObject( busname, objname ) + if obj is not None: + + if '.' in methodname: + # if we have a fully qualified methodname, use an Interface + ifacename = '.'.join( methodname.split( '.' )[:-1] ) + methodname = methodname.split( '.' )[-1] + iface = dbus.Interface( obj, ifacename ) + method = getattr( iface, methodname ) + else: + method = getattr( obj, methodname.split( '.' )[-1] ) + + try: + result = method( *parameters ) + except dbus.DBusException, e: + print "%s: %s failed: %s" % ( objname, methodname, e.get_dbus_name() ) + except TypeError, e: + pass # python will emit its own error here + else: + print "%s: %s -> " % ( objname, methodname ), + if result is not None: + self._prettyPrint( result ) + else: + print + + def monitorBus( self ): + self._runMainloop() + + def monitorService( self, busname ): + self.busname = busname + self._runMainloop() + + def monitorObject( self, busname, objname ): + self.busname = busname + self.objpath = objname + self._runMainloop() + + # + # command mode + # + + def _listChildren( self, busname, objname ): + fail = objname is '/' + obj = self._tryObject( busname, objname, fail ) + print objname + if obj is not None: + data = process_introspection_data( obj.Introspect() ) + for o in data["child_nodes"]: + newname = "%s/%s" % ( objname, o ) + newname = newname.replace( "//", "/" ) + self._listChildren( busname, newname ) + + def _tryObject( self, busname, objname, fail=True ): + try: + obj = self.bus.get_object( busname, objname ) + except ( dbus.DBusException, ValueError ): + if fail: + if busname in self.bus.list_names(): + print "Object name not found" + else: + print "Service name not found" + sys.exit( -1 ) + else: + return None + else: + return obj + + def _parameter( self, type_, name ): + return "%s:%s" % ( type_, name ) + + def _signature( self, parameters ): + string = "( " + for p in parameters[0]: + string += self._parameter( p["type"], p["name"] ) + string += ", " + if len( string ) == 2: + return "()" + else: + return string[:-2] + " )" + + def _listInterface( self, name, signals, methods, properties ): + methodnames = methods.keys() + methodnames.sort() + for mname in methodnames: + signature = self._signature( methods[mname] ) + print "[METHOD] %s.%s%s" % ( name, mname, signature ) + + signalnames = signals.keys() + signalnames.sort() + for mname in signalnames: + signature = self._signature( signals[mname] ) + print "[SIGNAL] %s.%s%s" % ( name, mname, signature ) + + propertynames = properties.keys() + propertynames.sort() + for mname in propertynames: + signature = self._signature( properties[mname] ) + print "[PROPERTY] %s.%s%s" % ( name, mname, signature ) + + def _prettyPrint( self, result ): + # FIXME pretty printing... + print result + + # + # listening mode + # + + def _setupMainloop( self ): + import gobject + import dbus.mainloop.glib + dbus.mainloop.glib.DBusGMainLoop( set_as_default=True ) + self.mainloop = gobject.MainLoop() + gobject.idle_add( self._setupListener ) + + def _runMainloop( self ): + try: + b = self.bus.__class__.__name__ + bname = self.busname or "all" + oname = self.objpath or "all" + print "listening for signals on %s from service '%s', object '%s'..." % ( b, bname, oname ) + self.mainloop.run() + except KeyboardInterrupt: + self.mainloop.quit() + sys.exit( 0 ) + + def _setupListener( self ): + self.bus.add_signal_receiver( + self._signalHandler, + None, + None, + self.busname, + self.objpath, + sender_keyword = "sender", + destination_keyword = "destination", + interface_keyword = "interface", + member_keyword = "member", + path_keyword = "path" ) + return False # don't call me again + + def _signalHandler( self, *args, **kwargs ): + timestamp = time.strftime("%Y%m%d.%H%M.%S") if timestamps else "" + print "%s [SIGNAL] %s.%s from %s %s" % ( timestamp, kwargs["interface"], kwargs["member"], kwargs["sender"], kwargs["path"] ) + self._prettyPrint( args ) + +#----------------------------------------------------------------------------# +if __name__ == "__main__": +#----------------------------------------------------------------------------# + import gobject + import dbus + import sys + import time + + argv = sys.argv[::-1] + execname = argv.pop() + + if ( "-h" in argv ) or ( "--help" in argv ): + print "Usage: %s [-s] [-l] [ busname [ objectpath [ methodname [ parameters... ] ] ] ]" % ( sys.argv[0] ) + sys.exit( 0 ) + + bus = dbus.SessionBus + mode = "command" + timestamps = False + escape = False + + # run through all arguments and check whether we got '-s' somewhere + if "-s" in argv: + bus = dbus.SystemBus + argv.remove( "-s" ) + + # run through all arguments and check whether we got '-l' somewhere + if "-l" in argv: + mode = "listen" + argv.remove( "-l" ) + + # run through all arguments and check whether we got '-t' somewhere + if "-t" in argv: + timestamps = True + argv.remove( "-t" ) + + # run through all arguments and check whether we got '-e' somewhere + if "-e" in argv: + escape = True + argv.remove( "-e" ) + + c = Commands( bus ) + + if len( argv ) == 0: + if mode == "command": + c.listBusNames() + else: + c.monitorBus() + + elif len( argv ) == 1: + busname = argv.pop() + if mode == "command": + c.listObjects( busname ) + else: + c.monitorService( busname ) + + elif len( argv ) == 2: + busname = argv.pop() + objname = argv.pop() + if mode == "command": + c.listMethods( busname, objname ) + else: + c.monitorObject( busname, objname ) + + elif len( argv ) == 3: + busname = argv.pop() + objname = argv.pop() + methodname = argv.pop() + c.callMethod( busname, objname, methodname ) + + else: + busname = argv.pop() + objname = argv.pop() + methodname = argv.pop() + parameters = [] + + while argv: + try: + string = argv.pop() + parameter = eval( string ) + except NameError: # treat as string + parameter = eval( '"""%s"""' % string ) + if escape: + parameter = parameter.replace( '.r', '\r' ) + parameter = parameter.replace( '.n', '\n' ) + parameters.append( parameter ) + except ( SyntaxError, ValueError, AttributeError ): + print "Error while evaluating '%s'" % string + sys.exit( -1 ) + else: + parameters.append( parameter ) + + c.callMethod( busname, objname, methodname, parameters ) diff --git a/netchoose/netchoose.py b/netchoose/netchoose.py new file mode 100755 index 0000000..8feb760 --- /dev/null +++ b/netchoose/netchoose.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python + +import pygtk +import gtk +import os + +import gobject +import dbus +import sys +import time +import mdbus + +class NetChooser: + def __init__(self): + window = gtk.Window(gtk.WINDOW_TOPLEVEL) + window.connect("destroy", self.close_application) + window.set_title("NetChooser") + + # vertical stack of stuff. + vb = gtk.VBox() + window.add(vb) + vb.show() + + ## GPRS: row of bits + hb = gtk.HBox() + vb.add(hb) + hb.show() + + ### GPRS toggle button + tb = gtk.ToggleButton("GPRS") + tb.connect("toggled", self.gprs_set) + tb.show() + ### AP name entry + ap = gtk.Entry(16) + ap.show() + + hb.add(tb) + hb.add(ap) + + ## WLAN: row of stuff + hb = gtk.HBox() + vb.add(hb) + hb.show() + + ### WLAN toggle button + tb = gtk.ToggleButton("WLAN") + tb.connect("toggled", self.wlan_set) + tb.show() + ### Acces point dropdown + ap = gtk.combo_box_entry_new_text() + ap.child.connect("changed", self.wlan_ap) + ap.show() + + hb.add(tb) + hb.add(ap) + + window.show() + + def close_application(self, widget): + gtk.main_quit() + + + def gprs_set(self, widget): + if widget.get_active(): + # start GPRS + c = Commands(dbus.SystemBus) + c.callMethod("org.freesmartphone.frameworkd", + "/org/freesmartphone/GSM/Device", + "org.freesmartphone.GSM.PDP.ActivateContext", + [ "vfinternet.au", "x", "x"]) + else: + # stop GPRS + c = Commands(dbus.SystemBus) + c.callMethod("org.freesmartphone.frameworkd", + "/org/freesmartphone/GSM/Device", + "org.freesmartphone.GSM.PDP.DeactivateContext") + return + def wlan_set(self, widget): + return + def wlan_ap(self, widget): + return + +def main(): + gtk.main() + return 0 +if __name__ == "__main__": + NetChooser() + main() + diff --git a/sms/contact.py b/sms/contact.py new file mode 100644 index 0000000..0dea474 --- /dev/null +++ b/sms/contact.py @@ -0,0 +1,21 @@ + +# +# Contacts are stored in a file, one per line, with ':' separated +# fields. If a field can have a list, it is comma separated. +# entries in a list can have a 'tag=' prefix. +# We can have references to other entries, so each entry has an ID +# Fields are: +# id +# Family Name +# Given Name +# groups - list +# references - list +# PO Box +# Address +# Address extension +# Suburb/town +# postcode +# County +# phone numbers - list +# modify date + diff --git a/sms/exesms b/sms/exesms new file mode 100644 index 0000000..7929411 --- /dev/null +++ b/sms/exesms @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +import urllib, sys, os + +def make_url(sender,recipient,mesg): + if recipient[0] == '+': + recipient = recipient[1:] + elif recipient[0:2] != '04': + print "Invalid SMS address: " + recipient + sys.exit(1) + + return "https://www.exetel.com.au/sendsms/api_sms.php?username=0293169905&password=birtwhistle&mobilenumber=%s&message=%s&sender=%s&messagetype=Text" % ( + recipient, + urllib.quote(mesg), + sender + ) + + +def send(sender, recipient, mesg): + try: + f = urllib.urlopen(make_url(sender,recipient, mesg)) + except: + rv = 2 + print "Cannot connect: " + sys.exc_value.strerror + else: + rv = 0 + for l in f: + l = l.strip() + if not l: + continue + f = l.split('|') + if len(f) == 5: + if f[0] != '1': + rv = 1 + m = f[4] + if m[-4:] == '
': + m = m[0:-4] + print m, + else: + rv = 1 + print l, + print + return rv + +os.system("/bin/sh /root/pppon") +ec = send(sys.argv[1], sys.argv[2], sys.argv[3]) +sys.exit(ec) + diff --git a/sms/notes b/sms/notes new file mode 100644 index 0000000..23446a1 --- /dev/null +++ b/sms/notes @@ -0,0 +1,290 @@ + +AT+CFUN=1 # turn on. =0 to turn off?? +AT+COPS # connect to GSM network +AT+COPS? # get status and carrier +AT+COPS=? # get list of providers + +COPS: (2,"vodafone AU","voda AU","50503"),(3,"YES OPTUS","Optus","50502"),(3,"Telstra Mobile","Telstra","50501") + p=re.compile('^\+COPS: (\((\d+),"([^"]*)","([^"]*)","([^"]*)"\),)*$') + +AT%SLEEP=2 # disable deep sleep to avoid some bug. + +AT+CMGF=1 # enable text mode for SMS + + +# PIN +AT+CPIN? +AT+CPIN="XXXX" + +AT+CPWD=fac,old,new fac=PS SC AB P2 ??? + + AB = 1234 + +ATE0 - no echo + +AT+CSQ # signal quality +AT+CREG? # are we registered?? (0,1)==at home, (0,5) == roaming +AT+CREG=2 # get regular updates of location : LAC and CELLID in hex + +AT+CIMI # get imi number + +AT+CPAS # activity status?? + 0 == nothing + 3 == incoming call + 4 == on call + 5 == ??? no connected?? + + +ATA - answer call - +CRING: VOICE is received + Get 'OK' is there was nothing to answer any more + NO CARRIER when other end hangs up + +AT+CLIP=1 enables calling number + +CLIP: "0403463349",129,,,,0 + +ATDnumber; makes a voice call. +get NO CARRIER on hangup. +Can tell if answered with CPAS (==4) + + +ATH - hangup or AT+CHUPA + +AT+CUSD=1,"number" # sends special request, reply is asyn + +CUSD: 2 ..... + e.g. *61# - divert on no answer. + + +AT+CMEE=2 verbose errors +# SMS + +AT+CMGS="phonenumber" +> text +> text +> ctrl-Z + # send a text message + +AT+CMGL="ALL" or "REC UNREAD" etc to view all SMS messages + last number is byte count + +AT+CMGR=N read message N +AT+CMGD=N delete message N +# GPRS +AT+CGDCONT=1,"IP","AU internet" # or whatever +ATD*99# + + +# new messages: + +AT+CNMI: (0-2),(0-3),(0,2),(0,1),(0,1) + (0-2) 1 to send is possible + (0-3) sms incoming: 1 == just index, 2 == message + (0,2) ditto for cell broadcast + (0,1) sms status report + (0,1) flush or clear any buffered messages +AT+CNMI=1,2,2,0,1 + +AT+CSCB=? + request cell broadcast be collected + +Cell broadcast looks like ++CBM: 2000,50,1,1,1 +Eastlakes + +or in packet mode ++CBM: 88 +062000320111C2373DECCE37148D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D100 +^^ 6 letters + ^^ 20 == ?? + ^^ 00 + ^^32 port '50' is 'Cell Name' + ^^01 == ?? + +Remainder is encoded as 7 data,, 'Botany\r\n\r\r\r....\n' +But there is a leading \b ?? + ++CBM: 88 +07D000320111C5F09CCE0EAFCBF386A2D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D100 +^^ 7 letters + D000 + 32 + 01 + \bEastlakes\r\n\r\r\r....\n + + +AT%EM=2,1 - check Serving Cell INfo +AT%EM=2,3 - check neighbours + +AT%EM=2,1 + +%EM: 102,39,39,39,49,28232,15,0,1,0,0,0,0,0,0,2215,0,0,2,255 + ^^ ^^ cell ^^ location + strength +OK +AT%EM=2,3 + +%EM: 6 +96,88,93,572,622,612 +17,30,32,1,1,-3 +17,30,32,-3,-3,-7 +19,32,34,22,22,18 strength?? +17,35,50,9,32,38 +28237,22793,22791,28237,22796,22798 <--- cell +2215,2215,2215,2215,2215,2215 <--- location +695457,2517437,2517437,2461758,644848,644848 +3888,944,948,2424,3380,3380 +0,0,0,0,0,0 +0,0,0,0,0,0 +2,2,2,2,2,2 +7,7,7,7,7,7 +0,0,0,2,2,2 +0,0,0,0,0,0 +0,0,0,23,23,23 + +AT%EM=2,4 + +%EM: 4,20,505,003,-1687800052 + + 505 is country + 003 is carrier + +OK +AT+CIMI + +505038240084403 + + + + + +AT%N0187 # maybe cancel echo ?? + + +AT+VTS=01234 - tone generation + +---------------------------------------------- + +Seem to have 4 channels. + +1 must be reserved for pppd +1 for management +1 for SMS sending? +1 for monitor + +Management: + Start muxer and connect + turn on device + attempt to register. On failure, get list of available networks. + Continue to check every 10 minutes while not suspended. + If not registerred. leave + + + +How do I get these??? ++CMS ERROR: 322 + ++CMS ERROR: memory full + +I did + at+CMGR=? + +then they spontaneously appeared. + + +OK + +current date time +> at+cclk? +> +> +CCLK: "0/1/1,0:0:9" +> +> OK +> at+cclk="09/04/01,14:30:00+00" +> +> OK +> at+cclk? +> +> +CCLK: "9/4/1,14:30:3" +> +This is not set automatically :-( + + +call volume level + +at+clvl=230 + +Command: AT+COPS?, +Response: +COPS: (,[,[,]]),¡Ä, (,[,[,]]) + +Command: AT+COPS=? +Response: +COPS: , long , short , numeric , + +Response: +CME ERROR: +Command: AT+COPS=,[,[,]] +Response: OK | +CME ERROR + +Description: Get/set current GSM/UMTS network operator, list available operators. This can be used to change for example access type and switch network. + + + + 0. Automatic network selection ( ignored) + 1. Manual network selection, must be present, is optional. + 2. Deregister from network. + 3. Set + + 0. Long alphanumeric string + 1. Short alphanumeric string + 2. Numeric ID + + +String (based on ) that identifies the operator. + + + + 0. Unknown + 1. Available + 2. Current + 3. Forbidden + + Network access type + + 0. GSM + 1. Compact GSM + 2. UTRAN + 3. GSM with EGPRS + 4. UTRAN with HSDPA + 5. UTRAN with HSUPA + 6. UTRAN with HSDPA and HSU + +----------------------------------- +ATH +AT+CUSD=0 +ATH +AT+CUSD=0,"*100#",15 + +reply: ++CUSD: 1,"Try Again +1.Your Balance +2.Voucher Top-Up",15 +AT+CUSD=1,"1" + +OK ++CUSD: 0,"Your bal is $18.18 &expires on 11/01/2011. Your Magic Top Up 22c rate applies until 10/02/2010. You've got 100 FREE texts with 100 to use before 10/02/2010.",15 + +OK + + +So when sending: + 0 - start new interchange + 1 - follow up message +When receiving + 0 - no reply possible + 1 - waiting for reply + + +So: If number matches + [*#].*# +Then set button to "SEND" rather than "CALL" and us CUSD +Display reply in message area with "cancel" button. +If reply is wanted, also have "reply" button diff --git a/sms/sendsms.py b/sms/sendsms.py new file mode 100644 index 0000000..7f6d528 --- /dev/null +++ b/sms/sendsms.py @@ -0,0 +1,1595 @@ +#!/usr/bin/env python + +# Create/edit/send/display/search SMS messages. +# Two main displays: Create and display +# Create: +# Allow entry of recipient and text of SMS message and allow basic editting +# When entering recipient, text box can show address matches for selection +# Bottom buttons are "Select".. +# When entering text, if there is no text, buttom buttons are: +# "Browse", "Close" +# If these is some text, bottom buttons are: +# "Send", Save" +# +# Display: +# We usually display a list of messages which can be selected from +# There is a 'search' box to restrict message to those with a string +# Options for selected message are: +# Delete Reply View Open(for draft)/Forward(for non-draft) +# In View mode, the whole text is displayed and the 'View' button becomes "Index" +# or "Show List" or "ReadIt" +# General options are: +# New Config List +# New goes to Edit +# +# Delete becomes Undelete and can undelete a whole stack. +# Delete can become undelete without deleting be press-and-hold +# +# +# Messages are sent using a separate program. e.g. sms-gsm +# Different recipients can use different programs based on flag in address book. +# Somehow senders can be configured. +# e.g. sms-exetel needs username, password, sender strings. +# press-and-hold on the send button allows a sender to be selected. +# +# +# Send an SMS message using some backend. + +# +# +# TODO: +# 'del' to return to 'list' view +# top buttons: del, view/list, new/open/reply +# so can only reply when viewing whole message +# Bottom: +# all: sent recv +# send: all draft +# recv: all new +# draft: all sent +# new: all recv +# DONE handle newline chars in summary +# DONE cope properly when the month changes. +# switch-to-'new' on 'expose' +# 'draft' button becomes 'cancel' when all is empty +# DONE better display of name/number of destination +# jump to list mode when change 'list' +# 'open' becomes 'reply' when current message was received. +# new message becomes non-new when replied to +# '' button doesn't select, but just makes choice. +# 'new' becomes 'select' when has been pressed. +# DONE Start in 'read', preferrably 'new' +# DONE always report status from send +# DONE draft/new/recv/sent/all - 5 groups +# DONE allow scrolling through list +# DONE + prefix to work +# DONE compose as 'GSM' or 'EXE' send +# DONE somehow do addressbook lookup for compose +# DONE addressbook lookup for display +# On 'send' move to 'sent' (not draft) and display list +# When open 'draft', delete from drafts... or later.. +# When 'reply' to new message, make it not 'new' +# +# get 'cut' to work from phone number entry. +# how to configure sender... +# need to select 'number only' mode for entry +# need drop-down of common numbers +# DONE text wrapping +# punctuation +# faster text input!!! +# DONE status message of transmission +# DONE maybe go to 'past messages' on send - need to go somewhere +# cut from other sources?? +# DONE scroll if message is too long! +# +# DONE reread sms file when changing view +# Don't add drafts that have not been changed... or +# When opening a draft, delete it... or replace when re-add +# DONE when sending a message, store - as draft if send failed +# DONE show the 'send' status somewhere +# DONE add a 'new' button from 'list' to 'send' +# Need 'reply' button.. Make 'open' show 'reply' when 'to' me. +# Scroll when near top or bottom +# hide status line when not needed. +# searching mesg list +# 'folder' view - by month or day +# highlight 'new' and 'draft' messages in different colour +# support 'sent' and 'received' distinction +# when return from viewing a 'new' message, clear the 'new' status +# enable starting in 'listing/New' mode + +import gtk, pango +import sys, time, os, re +import struct +from subprocess import Popen, PIPE +from storesms import SMSstore, SMSmesg +import dnotify + +########################################################### +# Writing recognistion code +import math + + +def LoadDict(dict): + # Upper case. + # Where they are like lowercase, we either double + # the last stroke (L, J, I) or draw backwards (S, Z, X) + # U V are a special case + + dict.add('A', "R(4)6,8") + dict.add('B', "R(4)6,4.R(7)1,6") + dict.add('B', "R(4)6,4.L(4)2,8.R(7)1,6") + dict.add('B', "S(6)7,1.R(4)6,4.R(7)0,6") + dict.add('C', "R(4)8,2") + dict.add('D', "R(4)6,6") + dict.add('E', "L(1)2,8.L(7)2,8") + # double the stem for F + dict.add('F', "L(4)2,6.S(3)7,1") + dict.add('F', "S(1)5,3.S(3)1,7.S(3)7,1") + + dict.add('G', "L(4)2,5.S(8)1,7") + dict.add('G', "L(4)2,5.R(8)6,8") + # FIXME I need better straight-curve alignment + dict.add('H', "S(3)1,7.R(7)6,8.S(5)7,1") + dict.add('H', "L(3)0,5.R(7)6,8.S(5)7,1") + # capital I is down/up + dict.add('I', "S(4)1,7.S(4)7,1") + + # Capital J has a left/right tail + dict.add('J', "R(4)1,6.S(7)3,5") + + dict.add('K', "L(4)0,2.R(4)6,6.L(4)2,8") + + # Capital L, like J, doubles the foot + dict.add('L', "L(4)0,8.S(7)4,3") + + dict.add('M', "R(3)6,5.R(5)3,8") + dict.add('M', "R(3)6,5.L(1)0,2.R(5)3,8") + + dict.add('N', "R(3)6,8.L(5)0,2") + + # Capital O is CW, but can be CCW in special dict + dict.add('O', "R(4)1,1", bot='0') + + dict.add('P', "R(4)6,3") + dict.add('Q', "R(4)7,7.S(8)0,8") + + dict.add('R', "R(4)6,4.S(8)0,8") + + # S is drawn bottom to top. + dict.add('S', "L(7)6,1.R(1)7,2") + + # Double the stem for capital T + dict.add('T', "R(4)0,8.S(5)7,1") + + # U is L to R, V is R to L for now + dict.add('U', "L(4)0,2") + dict.add('V', "R(4)2,0") + + dict.add('W', "R(5)2,3.L(7)8,6.R(3)5,0") + dict.add('W', "R(5)2,3.R(3)5,0") + + dict.add('X', "R(4)6,0") + + dict.add('Y',"L(1)0,2.R(5)4,6.S(5)6,2") + dict.add('Y',"L(1)0,2.S(5)2,7.S(5)7,2") + + dict.add('Z', "R(4)8,2.L(4)6,0") + + # Lower case + dict.add('a', "L(4)2,2.L(5)1,7") + dict.add('a', "L(4)2,2.L(5)0,8") + dict.add('a', "L(4)2,2.S(5)0,8") + dict.add('b', "S(3)1,7.R(7)6,3") + dict.add('c', "L(4)2,8", top='C') + dict.add('d', "L(4)5,2.S(5)1,7") + dict.add('d', "L(4)5,2.L(5)0,8") + dict.add('e', "S(4)3,5.L(4)5,8") + dict.add('e', "L(4)3,8") + dict.add('f', "L(4)2,6", top='F') + dict.add('f', "S(1)5,3.S(3)1,7", top='F') + dict.add('g', "L(1)2,2.R(4)1,6") + dict.add('h', "S(3)1,7.R(7)6,8") + dict.add('h', "L(3)0,5.R(7)6,8") + dict.add('i', "S(4)1,7", top='I', bot='1') + dict.add('j', "R(4)1,6", top='J') + dict.add('k', "L(3)0,5.L(7)2,8") + dict.add('k', "L(4)0,5.R(7)6,6.L(7)1,8") + dict.add('l', "L(4)0,8", top='L') + dict.add('l', "S(3)1,7.S(7)3,5", top='L') + dict.add('m', "S(3)1,7.R(3)6,8.R(5)6,8") + dict.add('m', "L(3)0,2.R(3)6,8.R(5)6,8") + dict.add('n', "S(3)1,7.R(4)6,8") + dict.add('o', "L(4)1,1", top='O', bot='0') + dict.add('p', "S(3)1,7.R(4)6,3") + dict.add('q', "L(1)2,2.L(5)1,5") + dict.add('q', "L(1)2,2.S(5)1,7.R(8)6,2") + dict.add('q', "L(1)2,2.S(5)1,7.S(5)1,7") + # FIXME this double 1,7 is due to a gentle where the + # second looks like a line because it is narrow.?? + dict.add('r', "S(3)1,7.R(4)6,2") + dict.add('s', "L(1)2,7.R(7)1,6", top='S', bot='5') + dict.add('t', "R(4)0,8", top='T', bot='7') + dict.add('t', "S(1)3,5.S(5)1,7", top='T', bot='7') + dict.add('u', "L(4)0,2.S(5)1,7") + dict.add('v', "L(4)0,2.L(2)0,2") + dict.add('w', "L(3)0,2.L(5)0,2", top='W') + dict.add('w', "L(3)0,5.R(7)6,8.L(5)3,2", top='W') + dict.add('w', "L(3)0,5.L(5)3,2", top='W') + dict.add('x', "L(4)0,6", top='X') + dict.add('y', "L(1)0,2.R(5)4,6", top='Y') # if curved + dict.add('y', "L(1)0,2.S(5)2,7", top='Y') + dict.add('z', "R(4)0,6.L(4)2,8", top='Z', bot='2') + + # Digits + dict.add('0', "L(4)7,7") + dict.add('0', "R(4)7,7") + dict.add('1', "S(4)7,1") + dict.add('2', "R(4)0,6.S(7)3,5") + dict.add('2', "R(4)3,6.L(4)2,8") + dict.add('3', "R(1)0,6.R(7)1,6") + dict.add('4', "L(4)7,5") + dict.add('5', "L(1)2,6.R(7)0,3") + dict.add('5', "L(1)2,6.L(4)0,8.R(7)0,3") + dict.add('6', "L(4)2,3") + dict.add('7', "S(1)3,5.R(4)1,6") + dict.add('7', "R(4)0,6") + dict.add('7', "R(4)0,7") + dict.add('8', "L(4)2,8.R(4)4,2.L(3)6,1") + dict.add('8', "L(1)2,8.R(7)2,0.L(1)6,1") + dict.add('8', "L(0)2,6.R(7)0,1.L(2)6,0") + dict.add('8', "R(4)2,6.L(4)4,2.R(5)8,1") + dict.add('9', "L(1)2,2.S(5)1,7") + + dict.add(' ', "S(4)3,5") + dict.add('', "S(4)5,3") + dict.add('-', "S(4)3,5.S(4)5,3") + dict.add('_', "S(4)3,5.S(4)5,3.S(4)3,5") + dict.add("", "S(4)5,3.S(3)3,5") + dict.add("","S(4)3,5.S(5)5,3") + dict.add("", "S(4)7,1.S(1)1,7") # "" + dict.add("","S(4)1,7.S(7)7,1") # "" + dict.add("", "S(4)2,6") + + +class DictSegment: + # Each segment has for elements: + # direction: Right Straight Left (R=cw, L=ccw) + # location: 0-8. + # start: 0-8 + # finish: 0-8 + # Segments match if there difference at each element + # is 0, 1, or 3 (RSL coded as 012) + # A difference of 1 required both to be same / 3 + # On a match, return number of 0s + # On non-match, return -1 + def __init__(self, str): + # D(L)S,R + # 0123456 + self.e = [0,0,0,0] + if len(str) != 7: + raise ValueError + if str[1] != '(' or str[3] != ')' or str[5] != ',': + raise ValueError + if str[0] == 'R': + self.e[0] = 0 + elif str[0] == 'L': + self.e[0] = 2 + elif str[0] == 'S': + self.e[0] = 1 + else: + raise ValueError + + self.e[1] = int(str[2]) + self.e[2] = int(str[4]) + self.e[3] = int(str[6]) + + def match(self, other): + cnt = 0 + for i in range(0,4): + diff = abs(self.e[i] - other.e[i]) + if diff == 0: + cnt += 1 + elif diff == 3: + pass + elif diff == 1 and (self.e[i]/3 == other.e[i]/3): + pass + else: + return -1 + return cnt + +class DictPattern: + # A Dict Pattern is a list of segments. + # A parsed pattern matches a dict pattern if + # the are the same nubmer of segments and they + # all match. The value of the match is the sum + # of the individual matches. + # A DictPattern is printers as segments joined by periods. + # + def __init__(self, str): + self.segs = map(DictSegment, str.split(".")) + def match(self,other): + if len(self.segs) != len(other.segs): + return -1 + cnt = 0 + for i in range(0,len(self.segs)): + m = self.segs[i].match(other.segs[i]) + if m < 0: + return m + cnt += m + return cnt + + +class Dictionary: + # The dictionary hold all the pattern for symbols and + # performs lookup + # Each pattern in the directionary can be associated + # with 3 symbols. One when drawing in middle of screen, + # one for top of screen, one for bottom. + # Often these will all be the same. + # This allows e.g. s and S to have the same pattern in different + # location on the touchscreen. + # A match requires a unique entry with a match that is better + # than any other entry. + # + def __init__(self): + self.dict = [] + def add(self, sym, pat, top = None, bot = None): + if top == None: top = sym + if bot == None: bot = sym + self.dict.append((DictPattern(pat), sym, top, bot)) + + def _match(self, p): + max = -1 + val = None + for (ptn, sym, top, bot) in self.dict: + cnt = ptn.match(p) + if cnt > max: + max = cnt + val = (sym, top, bot) + elif cnt == max: + val = None + return val + + def match(self, str, pos = "mid"): + p = DictPattern(str) + m = self._match(p) + if m == None: + return m + (mid, top, bot) = self._match(p) + if pos == "top": return top + if pos == "bot": return bot + return mid + + +class Point: + # This represents a point in the path and all the points leading + # up to it. It allows us to find the direction and curvature from + # one point to another + # We store x,y, and sum/cnt of points so far + def __init__(self,x,y) : + self.xsum = x + self.ysum = y + self.x = x + self.y = y + self.cnt = 1 + + def copy(self): + n = Point(0,0) + n.xsum = self.xsum + n.ysum = self.ysum + n.x = self.x + n.y = self.y + n.cnt = self.cnt + return n + + def add(self,x,y): + if self.x == x and self.y == y: + return + self.x = x + self.y = y + self.xsum += x + self.ysum += y + self.cnt += 1 + + def xlen(self,p): + return abs(self.x - p.x) + def ylen(self,p): + return abs(self.y - p.y) + def sqlen(self,p): + x = self.x - p.x + y = self.y - p.y + return x*x + y*y + + def xdir(self,p): + if self.x > p.x: + return 1 + if self.x < p.x: + return -1 + return 0 + def ydir(self,p): + if self.y > p.y: + return 1 + if self.y < p.y: + return -1 + return 0 + def curve(self,p): + if self.cnt == p.cnt: + return 0 + x1 = p.x ; y1 = p.y + (x2,y2) = self.meanpoint(p) + x3 = self.x; y3 = self.y + + curve = (y3-y1)*(x2-x1) - (y2-y1)*(x3-x1) + curve = curve * 100 / ((y3-y1)*(y3-y1) + + (x3-x1)*(x3-x1)) + if curve > 6: + return 1 + if curve < -6: + return -1 + return 0 + + def Vcurve(self,p): + if self.cnt == p.cnt: + return 0 + x1 = p.x ; y1 = p.y + (x2,y2) = self.meanpoint(p) + x3 = self.x; y3 = self.y + + curve = (y3-y1)*(x2-x1) - (y2-y1)*(x3-x1) + curve = curve * 100 / ((y3-y1)*(y3-y1) + + (x3-x1)*(x3-x1)) + return curve + + def meanpoint(self,p): + x = (self.xsum - p.xsum) / (self.cnt - p.cnt) + y = (self.ysum - p.ysum) / (self.cnt - p.cnt) + return (x,y) + + def is_sharp(self,A,C): + # Measure the cosine at self between A and C + # as A and C could be curve, we take the mean point on + # self.A and self.C as the points to find cosine between + (ax,ay) = self.meanpoint(A) + (cx,cy) = self.meanpoint(C) + a = ax-self.x; b=ay-self.y + c = cx-self.x; d=cy-self.y + x = a*c + b*d + y = a*d - b*c + h = math.sqrt(x*x+y*y) + if h > 0: + cs = x*1000/h + else: + cs = 0 + return (cs > 900) + +class BBox: + # a BBox records min/max x/y of some Points and + # can subsequently report row, column, pos of each point + # can also locate one bbox in another + + def __init__(self, p): + self.minx = p.x + self.maxx = p.x + self.miny = p.y + self.maxy = p.y + + def width(self): + return self.maxx - self.minx + def height(self): + return self.maxy - self.miny + + def add(self, p): + if p.x > self.maxx: + self.maxx = p.x + if p.x < self.minx: + self.minx = p.x + + if p.y > self.maxy: + self.maxy = p.y + if p.y < self.miny: + self.miny = p.y + def finish(self, div = 3): + # if aspect ratio is bad, we adjust max/min accordingly + # before setting [xy][12]. We don't change self.min/max + # as they are used to place stroke in bigger bbox. + # Normally divisions are at 1/3 and 2/3. They can be moved + # by setting div e.g. 2 = 1/2 and 1/2 + (minx,miny,maxx,maxy) = (self.minx,self.miny,self.maxx,self.maxy) + if (maxx - minx) * 3 < (maxy - miny) * 2: + # too narrow + mid = int((maxx + minx)/2) + halfwidth = int ((maxy - miny)/3) + minx = mid - halfwidth + maxx = mid + halfwidth + if (maxy - miny) * 3 < (maxx - minx) * 2: + # too wide + mid = int((maxy + miny)/2) + halfheight = int ((maxx - minx)/3) + miny = mid - halfheight + maxy = mid + halfheight + + div1 = div - 1 + self.x1 = int((div1*minx + maxx)/div) + self.x2 = int((minx + div1*maxx)/div) + self.y1 = int((div1*miny + maxy)/div) + self.y2 = int((miny + div1*maxy)/div) + + def row(self, p): + # 0, 1, 2 - top to bottom + if p.y <= self.y1: + return 0 + if p.y < self.y2: + return 1 + return 2 + def col(self, p): + if p.x <= self.x1: + return 0 + if p.x < self.x2: + return 1 + return 2 + def box(self, p): + # 0 to 9 + return self.row(p) * 3 + self.col(p) + + def relpos(self,b): + # b is a box within self. find location 0-8 + if b.maxx < self.x2 and b.minx < self.x1: + x = 0 + elif b.minx > self.x1 and b.maxx > self.x2: + x = 2 + else: + x = 1 + if b.maxy < self.y2 and b.miny < self.y1: + y = 0 + elif b.miny > self.y1 and b.maxy > self.y2: + y = 2 + else: + y = 1 + return y*3 + x + + +def different(*args): + cur = 0 + for i in args: + if cur != 0 and i != 0 and cur != i: + return True + if cur == 0: + cur = i + return False + +def maxcurve(*args): + for i in args: + if i != 0: + return i + return 0 + +class PPath: + # a PPath refines a list of x,y points into a list of Points + # The Points mark out segments which end at significant Points + # such as inflections and reversals. + + def __init__(self, x,y): + + self.start = Point(x,y) + self.mid = Point(x,y) + self.curr = Point(x,y) + self.list = [ self.start ] + + def add(self, x, y): + self.curr.add(x,y) + + if ( (abs(self.mid.xdir(self.start) - self.curr.xdir(self.mid)) == 2) or + (abs(self.mid.ydir(self.start) - self.curr.ydir(self.mid)) == 2) or + (abs(self.curr.Vcurve(self.start))+2 < abs(self.mid.Vcurve(self.start)))): + pass + else: + self.mid = self.curr.copy() + + if self.curr.xlen(self.mid) > 4 or self.curr.ylen(self.mid) > 4: + self.start = self.mid.copy() + self.list.append(self.start) + self.mid = self.curr.copy() + + def close(self): + self.list.append(self.curr) + + def get_sectlist(self): + if len(self.list) <= 2: + return [[0,self.list]] + l = [] + A = self.list[0] + B = self.list[1] + s = [A,B] + curcurve = B.curve(A) + for C in self.list[2:]: + cabc = C.curve(A) + cab = B.curve(A) + cbc = C.curve(B) + if B.is_sharp(A,C) and not different(cabc, cab, cbc, curcurve): + # B is too pointy, must break here + l.append([curcurve, s]) + s = [B, C] + curcurve = cbc + elif not different(cabc, cab, cbc, curcurve): + # all happy + s.append(C) + if curcurve == 0: + curcurve = maxcurve(cab, cbc, cabc) + elif not different(cabc, cab, cbc) : + # gentle inflection along AB + # was: AB goes in old and new section + # now: AB only in old section, but curcurve + # preseved. + l.append([curcurve,s]) + s = [A, B, C] + curcurve =maxcurve(cab, cbc, cabc) + else: + # Change of direction at B + l.append([curcurve,s]) + s = [B, C] + curcurve = cbc + + A = B + B = C + l.append([curcurve,s]) + + return l + + def remove_shorts(self, bbox): + # in self.list, if a point is close to the previous point, + # remove it. + if len(self.list) <= 2: + return + w = bbox.width()/10 + h = bbox.height()/10 + n = [self.list[0]] + leng = w*h*2*2 + for p in self.list[1:]: + l = p.sqlen(n[-1]) + if l > leng: + n.append(p) + self.list = n + + def text(self): + # OK, we have a list of points with curvature between. + # want to divide this into sections. + # for each 3 consectutive points ABC curve of ABC and AB and BC + # If all the same, they are all in a section. + # If not B starts a new section and the old ends on B or C... + BB = BBox(self.list[0]) + for p in self.list: + BB.add(p) + BB.finish() + self.bbox = BB + self.remove_shorts(BB) + sectlist = self.get_sectlist() + t = "" + for c, s in sectlist: + if c > 0: + dr = "R" # clockwise is to the Right + elif c < 0: + dr = "L" # counterclockwise to the Left + else: + dr = "S" # straight + bb = BBox(s[0]) + for p in s: + bb.add(p) + bb.finish() + # If all points are in some row or column, then + # line is S + rwdiff = False; cldiff = False + rw = bb.row(s[0]); cl=bb.col(s[0]) + for p in s: + if bb.row(p) != rw: rwdiff = True + if bb.col(p) != cl: cldiff = True + if not rwdiff or not cldiff: dr = "S" + + t1 = dr + t1 += "(%d)" % BB.relpos(bb) + t1 += "%d,%d" % (bb.box(s[0]), bb.box(s[-1])) + t += t1 + '.' + return t[:-1] + + +class text_input: + def __init__(self, page, callout): + + self.page = page + self.callout = callout + self.colour = None + self.line = None + self.dict = Dictionary() + self.active = True + LoadDict(self.dict) + + page.connect("button_press_event", self.press) + page.connect("button_release_event", self.release) + page.connect("motion_notify_event", self.motion) + page.set_events(page.get_events() + | gtk.gdk.BUTTON_PRESS_MASK + | gtk.gdk.BUTTON_RELEASE_MASK + | gtk.gdk.POINTER_MOTION_MASK + | gtk.gdk.POINTER_MOTION_HINT_MASK) + + def set_colour(self, col): + self.colour = col + + def press(self, c, ev): + if not self.active: + return + # Start a new line + self.line = [ [int(ev.x), int(ev.y)] ] + if not ev.send_event: + self.page.stop_emission('button_press_event') + return + def release(self, c, ev): + if self.line == None: + return + if len(self.line) == 1: + self.callout('click', ev) + self.line = None + return + + sym = self.getsym() + if sym: + self.callout('sym', sym) + self.callout('redraw', None) + self.line = None + return + + def motion(self, c, ev): + if self.line: + if ev.is_hint: + x, y, state = ev.window.get_pointer() + else: + x = ev.x + y = ev.y + x = int(x) + y = int(y) + prev = self.line[-1] + if abs(prev[0] - x) < 10 and abs(prev[1] - y) < 10: + return + if self.colour: + c.window.draw_line(self.colour, prev[0],prev[1],x,y) + self.line.append([x,y]) + return + + def getsym(self): + alloc = self.page.get_allocation() + pagebb = BBox(Point(0,0)) + pagebb.add(Point(alloc.width, alloc.height)) + pagebb.finish(div = 2) + + p = PPath(self.line[1][0], self.line[1][1]) + for pp in self.line[1:]: + p.add(pp[0], pp[1]) + p.close() + patn = p.text() + pos = pagebb.relpos(p.bbox) + tpos = "mid" + if pos < 3: + tpos = "top" + if pos >= 6: + tpos = "bot" + sym = self.dict.match(patn, tpos) + if sym == None: + print "Failed to match pattern:", patn + return sym + + + + + +######################################################################## + + + +class FingerText(gtk.TextView): + def __init__(self): + gtk.TextView.__init__(self) + self.set_wrap_mode(gtk.WRAP_WORD_CHAR) + self.exphan = self.connect('expose-event', self.config) + self.input = text_input(self, self.stylus) + + def config(self, *a): + self.disconnect(self.exphan) + c = gtk.gdk.color_parse('red') + gc = self.window.new_gc() + gc.set_foreground(self.get_colormap().alloc_color(c)) + #gc.set_line_attributes(2, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_ROUND) + gc.set_subwindow(gtk.gdk.INCLUDE_INFERIORS) + self.input.set_colour(gc) + + def stylus(self, cmd, info): + if cmd == "sym": + tl = self.get_toplevel() + w = tl.get_focus() + if w == None: + w = self + ev = gtk.gdk.Event(gtk.gdk.KEY_PRESS) + ev.window = w.window + if info == '': + ev.keyval = 65288 + ev.hardware_keycode = 22 + else: + (ev.keyval,) = struct.unpack_from("b", info) + w.emit('key_press_event', ev) + #self.get_buffer().insert_at_cursor(info) + if cmd == 'click': + self.grab_focus() + if not info.send_event: + info.send_event = True + ev2 = gtk.gdk.Event(gtk.gdk.BUTTON_PRESS) + ev2.send_event = True + ev2.window = info.window + ev2.time = info.time + ev2.x = info.x + ev2.y = info.y + ev2.button = info.button + self.emit('button_press_event', ev2) + self.emit('button_release_event', info) + if cmd == 'redraw': + self.queue_draw() + + def insert_at_cursor(self, text): + self.get_buffer().insert_at_cursor(text) + +class FingerEntry(gtk.Entry): + def __init__(self): + gtk.Entry.__init__(self) + + def insert_at_cursor(self, text): + c = self.get_property('cursor-position') + t = self.get_text() + t = t[0:c]+text+t[c:] + self.set_text(t) + +class SMSlist(gtk.DrawingArea): + def __init__(self, getlist): + gtk.DrawingArea.__init__(self) + self.pixbuf = None + self.width = self.height = 0 + self.need_redraw = True + self.colours = None + self.collist = {} + self.get_list = getlist + + self.connect("expose-event", self.redraw) + self.connect("configure-event", self.reconfig) + + self.connect("button_release_event", self.release) + self.connect("button_press_event", self.press) + self.set_events(gtk.gdk.EXPOSURE_MASK + | gtk.gdk.BUTTON_PRESS_MASK + | gtk.gdk.BUTTON_RELEASE_MASK + | gtk.gdk.STRUCTURE_MASK) + + # choose a font + fd = pango.FontDescription('sans 10') + fd.set_absolute_size(25 * pango.SCALE) + self.font = fd + met = self.get_pango_context().get_metrics(fd) + self.lineheight = (met.get_ascent() + met.get_descent()) / pango.SCALE + fd = pango.FontDescription('sans 5') + fd.set_absolute_size(15 * pango.SCALE) + self.smallfont = fd + self.selected = 0 + self.top = 0 + self.book = None + + self.smslist = [] + + self.queue_draw() + + + def set_book(self, book): + self.book = book + + def lines(self): + alloc = self.get_allocation() + lines = alloc.height / self.lineheight + return lines + + def reset_list(self): + self.selected = 0 + self.smslist = None + self.size_requested = 0 + self.refresh() + + def refresh(self): + self.need_redraw = True + self.queue_draw() + + def assign_colour(self, purpose, name): + self.collist[purpose] = name + + def reconfig(self, w, ev): + alloc = w.get_allocation() + if not self.pixbuf: + return + if alloc.width != self.width or alloc.height != self.height: + self.pixbuf = None + self.need_redraw = True + + def add_col(self, sym, col): + c = gtk.gdk.color_parse(col) + gc = self.window.new_gc() + gc.set_foreground(self.get_colormap().alloc_color(c)) + self.colours[sym] = gc + + def redraw(self, w, ev): + if self.colours == None: + self.colours = {} + for p in self.collist: + self.add_col(p, self.collist[p]) + self.bg = self.get_style().bg_gc[gtk.STATE_NORMAL] + + if self.need_redraw: + self.draw_buf() + + self.window.draw_drawable(self.bg, self.pixbuf, 0, 0, 0, 0, + self.width, self.height) + + def draw_buf(self): + self.need_redraw = False + if self.pixbuf == None: + alloc = self.get_allocation() + self.pixbuf = gtk.gdk.Pixmap(self.window, alloc.width, alloc.height) + self.width = alloc.width + self.height = alloc.height + self.pixbuf.draw_rectangle(self.bg, True, 0, 0, + self.width, self.height) + + if self.top > self.selected: + self.top = 0 + max = self.lines() + if self.smslist == None or \ + (self.top + max > len(self.smslist) and self.size_requested < self.top + max): + self.size_requested = self.top + max + self.smslist = self.get_list(self.top + max) + for i in range(len(self.smslist)): + if i < self.top: + continue + if i > self.top + max: + break + if i == self.selected: + col = self.colours['bg-selected'] + else: + col = self.colours['bg-%d'%(i%2)] + + self.pixbuf.draw_rectangle(col, + True, 0, (i-self.top)*self.lineheight, + self.width, self.lineheight) + self.draw_sms(self.smslist[i], (i - self.top) * self.lineheight) + + + def draw_sms(self, sms, yoff): + + self.modify_font(self.smallfont) + tm = time.strftime("%Y-%m-%d %H:%M:%S", sms.time[0:6]+(0,0,0)) + then = time.mktime(sms.time[0:6]+(0,0,-1)) + now = time.time() + if now > then: + diff = now - then + if diff < 99: + delta = "%02d sec ago" % diff + elif diff < 99*60: + delta = "%02d min ago" % (diff/60) + elif diff < 48*60*60: + delta = "%02dh%02dm ago" % ((diff/60/60), (diff/60)%60) + else: + delta = tm[0:10] + tm = delta + tm[10:] + + l = self.create_pango_layout(tm) + self.pixbuf.draw_layout(self.colours['time'], + 0, yoff, l) + co = sms.correspondent + if self.book: + cor = book_name(self.book, co) + if cor: + co = cor[0] + if sms.source == 'LOCAL': + col = self.colours['recipient'] + co = 'To ' + co + else: + col = self.colours['sender'] + co = 'From '+co + l = self.create_pango_layout(co) + self.pixbuf.draw_layout(col, + 0, yoff + self.lineheight/2, l) + self.modify_font(self.font) + t = sms.text.replace("\n", " ") + t = t.replace("\n", " ") + l = self.create_pango_layout(t) + if sms.state in ['DRAFT', 'NEW']: + col = self.colours['mesg-new'] + else: + col = self.colours['mesg'] + self.pixbuf.draw_layout(col, + 180, yoff, l) + + def press(self,w,ev): + row = int(ev.y / self.lineheight) + self.selected = self.top + row + if self.selected >= len(self.smslist): + self.selected = len(self.smslist) - 1 + if self.selected < 0: + self.selected = 0 + + l = self.lines() + self.top += row - l / 2 + if self.top >= len(self.smslist) - l: + self.top = len(self.smslist) - l + 1 + if self.top < 0: + self.top = 0 + + self.refresh() + + def release(self,w,ev): + pass + +def load_book(file): + try: + f = open(file) + except: + f = open('/home/neilb/home/mobile-numbers-jan-08') + rv = [] + for l in f: + x = l.split(';') + rv.append([x[0],x[1]]) + rv.sort(lambda x,y: cmp(x[0],y[0])) + return rv + +def book_lookup(book, name, num): + st=[]; mid=[] + for l in book: + if name.lower() == l[0][0:len(name)].lower(): + st.append(l) + elif l[0].lower().find(name.lower()) >= 0: + mid.append(l) + st += mid + if len(st) == 0: + return [None, None] + if num >= len(st): + num = -1 + return st[num] + +def book_parse(book, name): + if not book: + return None + cnt = 0 + while len(name) and name[-1] == '.': + cnt += 1 + name = name[0:-1] + return book_lookup(book, name, cnt) + + + +def book_name(book, num): + if len(num) < 8: + return None + for ad in book: + if len(ad[1]) >= 8 and num[-8:] == ad[1][-8:]: + return ad + return None + +def book_speed(book, sym): + i = book_lookup(book, sym, 0) + if i[0] == None or i[0] != sym: + return None + j = book_lookup(book, i[1], 0) + if j[0] == None: + return (i[1], i[0]) + return (j[1], j[0]) + +def name_lookup(book, str): + # We need to report + # - a number - to dial + # - optionally a name that is associated with that number + # - optionally a new name to save the number as + # The name is normally alpha, but can be a single digit for + # speed-dial + # Dots following a name allow us to stop through multiple matches. + # So input can be: + # A single symbol. + # This is a speed dial. It maps to name, then number + # A string of >1 digits + # This is a literal number, we look up name if we can + # A string of dots + # This is a look up against recent incoming calls + # We look up name in phone book + # A string starting with alpha, possibly ending with dots + # This is a regular lookup in the phone book + # A number followed by a string + # This provides the string as a new name for saving + # A string of dots followed by a string + # This also provides the string as a newname + # An alpha string, with dots, followed by '+'then a single symbol + # This saves the match as a speed dial + # + # We return a triple of (number,oldname,newname) + if re.match('^[A-Za-z0-9]$', str): + # Speed dial lookup + s = book_speed(book, str) + if s: + return (s[0], s[1], None) + return None + m = re.match('^(\+?\d+)([A-Za-z][A-Za-z0-9 ]*)?$', str) + if m: + # Number and possible newname + s = book_name(book, m.group(1)) + if s: + return (m.group(1), s[0], m.group(2)) + else: + return (m.group(1), None, m.group(2)) + m = re.match('^([A-Za-z][A-Za-z0-9 ]*)(\.*)(\+[A-Za-z0-9])?$', str) + if m: + # name and dots + speed = None + if m.group(3): + speed = m.group(3)[1] + i = book_lookup(book, m.group(1), len(m.group(2))) + if i[0]: + return (i[1], i[0], speed) + return None + +class SendSMS(gtk.Window): + def __init__(self, store): + gtk.Window.__init__(self) + self.set_default_size(480,640) + self.set_title("SendSMS") + self.store = store + self.connect('destroy', self.close_win) + + self.selecting = False + self.viewing = False + self.book = None + self.create_ui() + + self.show() + self.reload_book = True + self.number = None + self.cutbuffer = None + + d = dnotify.dir(store.dirname) + self.watcher = d.watch('newmesg', lambda f : self.got_new()) + + self.connect('property-notify-event', self.newprop) + self.add_events(gtk.gdk.PROPERTY_CHANGE_MASK) + def newprop(self, w, ev): + if ev.atom == '_INPUT_TEXT': + str = self.window.property_get('_INPUT_TEXT') + self.numentry.set_text(str[2]) + + def close_win(self, *a): + # FIXME save draft + gtk.main_quit() + + def create_ui(self): + + fd = pango.FontDescription("sans 10") + fd.set_absolute_size(25*pango.SCALE) + self.button_font = fd + v = gtk.VBox() ;v.show() ; self.add(v) + + self.sender = self.send_ui() + v.add(self.sender) + self.sender.hide() + + self.listing = self.list_ui() + v.add(self.listing) + self.listing.show() + + self.book = load_book("/media/card/address-book") + self.listview.set_book(self.book) + + self.rotate_list(self, target='All') + + def send_ui(self): + v = gtk.VBox() + main = v + + h = gtk.HBox() + h.show() + v.pack_start(h, expand=False) + l = gtk.Label('To:') + l.modify_font(self.button_font) + l.show() + h.pack_start(l, expand=False) + + self.numentry = FingerEntry() + h.pack_start(self.numentry) + self.numentry.modify_font(self.button_font) + self.numentry.show() + self.numentry.connect('changed', self.update_to); + + h = gtk.HBox() + l = gtk.Label('') + l.modify_font(self.button_font) + l.show() + h.pack_start(l) + h.show() + v.pack_start(h, expand=False) + h = gtk.HBox() + self.to_label = l + l = gtk.Label('0 chars') + l.modify_font(self.button_font) + l.show() + self.cnt_label = l + h.pack_end(l) + h.show() + v.pack_start(h, expand=False) + + h = gtk.HBox() + h.set_size_request(-1,80) + h.set_homogeneous(True) + h.show() + v.pack_start(h, expand=False) + + self.add_button(h, 'select', self.select) + self.add_button(h, 'clear', self.clear) + self.add_button(h, 'paste', self.paste) + + self.message = FingerText() + self.message.show() + self.message.modify_font(self.button_font) + sw = gtk.ScrolledWindow() ; sw.show() + sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + #v.add(self.message) + v.add(sw) + sw.add(self.message) + self.message.get_buffer().connect('changed', self.buff_changed) + + h = gtk.HBox() + h.set_size_request(-1,80) + h.set_homogeneous(True) + h.show() + v.pack_end(h, expand=False) + + self.add_button(h, 'Send GSM', self.send, 'GSM') + self.draft_button = self.add_button(h, 'Draft', self.draft) + self.add_button(h, 'Send EXE', self.send, 'EXE') + + return main + + def list_ui(self): + v = gtk.VBox() ; main = v + + h = gtk.HBox() ; h.show() + h.set_size_request(-1,80) + h.set_homogeneous(True) + v.pack_start(h, expand = False) + self.add_button(h, 'Del', self.delete) + self.view_button = self.add_button(h, 'View', self.view) + self.reply = self.add_button(h, 'New', self.open) + + h = gtk.HBox() ; h.show() + h.set_size_request(-1,80) + h.set_homogeneous(True) + v.pack_end(h, expand=False) + self.buttonA = self.add_button(h, 'Sent', self.rotate_list, 'A') + self.buttonB = self.add_button(h, 'Recv', self.rotate_list, 'B') + + + self.last_response = gtk.Label('') + v.pack_end(self.last_response, expand = False) + + h = gtk.HBox() ; h.show() + v.pack_start(h, expand=False) + b = gtk.Button("clr") ; b.show() + b.connect('clicked', self.clear_search) + h.pack_end(b, expand=False) + l = gtk.Label('search:') ; l.show() + h.pack_start(l, expand=False) + + e = gtk.Entry() ; e.show() + self.search_entry = e + h.pack_start(e) + + self.listview = SMSlist(self.load_list) + self.listview.show() + self.listview.assign_colour('time', 'blue') + self.listview.assign_colour('sender', 'red') + self.listview.assign_colour('recipient', 'black') + self.listview.assign_colour('mesg', 'black') + self.listview.assign_colour('mesg-new', 'red') + self.listview.assign_colour('bg-0', 'yellow') + self.listview.assign_colour('bg-1', 'pink') + self.listview.assign_colour('bg-selected', 'white') + + v.add(self.listview) + + self.singleview = gtk.TextView() + self.singleview.modify_font(self.button_font) + self.singleview.show() + self.singleview.set_wrap_mode(gtk.WRAP_WORD_CHAR) + sw = gtk.ScrolledWindow() + sw.add(self.singleview) + sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + sw.hide() + v.add(sw) + self.singlescroll = sw + + + main.show() + return main + + def add_button(self, parent, label, func, *args): + b = gtk.Button(label) + b.child.modify_font(self.button_font) + b.connect('clicked', func, *args) + b.set_property('can-focus', False) + parent.add(b) + b.show() + return b + + def update_to(self, w): + n = w.get_text() + if n == '': + self.reload_book = True + self.to_label.set_text('') + else: + if self.reload_book: + self.reload_book = False + self.book = load_book("/media/card/address-book") + self.listview.set_book(self.book) + e = name_lookup(self.book, n) + if e and e[1]: + self.to_label.set_text(e[1] + + ' '+ + e[0]) + self.number = e[0] + else: + self.to_label.set_text('??') + self.number = n + self.buff_changed(None) + + def buff_changed(self, w): + if self.numentry.get_text() == '' and self.message.get_buffer().get_property('text') == '': + self.draft_button.child.set_text('Cancel') + else: + self.draft_button.child.set_text('SaveDraft') + l = len(self.message.get_buffer().get_property('text')) + if l <= 160: + m = 1 + else: + m = (l+152)/153 + self.cnt_label.set_text('%d chars / %d msgs' % (l, m)) + + def select(self, w, *a): + if not self.selecting: + self.message.input.active = False + w.child.set_text('Cut') + self.selecting = True + else: + self.message.input.active = True + w.child.set_text('Select') + self.selecting = False + b = self.message.get_buffer() + bound = b.get_selection_bounds() + if bound: + (s,e) = bound + t = b.get_text(s,e) + self.cutbuffer = t + b.delete_selection(True, True) + + def clear(self, *a): + w = self.get_toplevel().get_focus() + if w == None: + w = self.message + if w == self.message: + self.cutbuffer = self.message.get_buffer().get_property('text') + b = self.message.get_buffer() + b.set_text('') + else: + self.cutbuffer = w.get_text() + w.set_text('') + + + def paste(self, *a): + w = self.get_toplevel().get_focus() + if w == None: + w = self.message + if self.cutbuffer: + w.insert_at_cursor(self.cutbuffer) + pass + def send(self, w, style): + sender = '0403463349' + recipient = self.number + mesg = self.message.get_buffer().get_property('text') + if not mesg or not recipient: + return + try: + if style == 'EXE': + p = Popen(['exesms', sender, recipient, mesg], stdout = PIPE) + else: + p = Popen(['gsm-sms', sender, recipient, mesg], stdout = PIPE) + except: + rv = 1 + line = 'Fork Failed' + else: + line = 'no response' + rv = p.wait() + for l in p.stdout: + if l: + line = l + + s = SMSmesg(to = recipient, text = mesg) + + if rv or line[0:2] != 'OK': + s.state = 'DRAFT' + target = 'Draft' + else: + target = 'All' + self.store.store(s) + self.last_response.set_text('Mess Send: '+ line.strip()) + self.last_response.show() + + self.sender.hide() + self.listing.show() + self.rotate_list(target=target) + + def draft(self, *a): + sender = '0403463349' + recipient = self.numentry.get_text() + if recipient: + rl = [recipient] + else: + rl = [] + mesg = self.message.get_buffer().get_property('text') + if mesg: + s = SMSmesg(to = recipient, text = mesg, state = 'DRAFT') + self.store.store(s) + self.sender.hide() + self.listing.show() + self.rotate_list(target='Draft') + def config(self, *a): + pass + def delete(self, *a): + if len(self.listview.smslist ) < 1: + return + s = self.listview.smslist[self.listview.selected] + self.store.delete(s) + sel = self.listview.selected + self.rotate_list(target=self.display_list) + self.listview.selected = sel + if self.viewing: + self.view(self.view_button) + + def view(self, w, *a): + if self.viewing: + w.child.set_text('View') + self.viewing = False + self.singlescroll.hide() + self.listview.show() + if self.listview.smslist and len(self.listview.smslist ) >= 1: + s = self.listview.smslist[self.listview.selected] + if s.state == 'NEW': + self.store.setstate(s, None) + if self.display_list == 'New': + self.rotate_list(target='New') + self.reply.child.set_text('New') + else: + if not self.listview.smslist or len(self.listview.smslist ) < 1: + return + s = self.listview.smslist[self.listview.selected] + w.child.set_text('List') + self.viewing = True + self.last_response.hide() + self.listview.hide() + if self.book: + n = book_name(self.book, s.correspondent) + if n and n[0]: + n = n[0] + ' ['+s.correspondent+']' + else: + n = s.correspondent + else: + n = s.correspondent + if s.source == 'LOCAL': + t = 'To: ' + n + '\n' + else: + t = 'From: %s (%s)\n' % (n, s.source) + tm = time.strftime('%d%b%Y %H:%M:%S', s.time[0:6]+(0,0,0)) + t += 'Time: ' + tm + '\n' + t += '\n' + t += s.text + self.singleview.get_buffer().set_text(t) + self.singlescroll.show() + + if s.source == 'LOCAL': + self.reply.child.set_text('Open') + else: + self.reply.child.set_text('Reply') + + def open(self, *a): + if self.viewing: + if len(self.listview.smslist) < 1: + return + s = self.listview.smslist[self.listview.selected] + if s.state == 'NEW': + self.store.setstate(s, None) + + self.numentry.set_text(s.correspondent) + self.message.get_buffer().set_text(s.text) + self.draft_button.child.set_text('SaveDraft') + else: + self.numentry.set_text('') + self.message.get_buffer().set_text('') + self.draft_button.child.set_text('Cancel') + self.listing.hide() + self.sender.show() + + def load_list(self, lines): + now = time.time() + l = [] + target = self.display_list + patn = self.search_entry.get_text() + #print 'pattern is', patn + if target == 'New': + (now, l) = self.store.lookup(now, 'NEW') + elif target == 'Draft': + (now, l) = self.store.lookup(now, 'DRAFT') + else: + if lines == 0: lines = 20 + while now and len(l) < lines: + (now, l2) = self.store.lookup(now) + for e in l2: + if patn and patn not in e.correspondent: + continue + if target == 'All': + l.append(e) + elif target == 'Sent' and e.source == 'LOCAL': + l.append(e) + elif target == 'Recv' and e.source != 'LOCAL': + l.append(e) + return l + + def rotate_list(self, w=None, ev=None, which = None, target=None): + # lists are: + # All, Recv, New, Sent, Draft + # When one is current, two others can be selected + + if target == None: + if w == None: + target = self.display_list + else: + target = w.child.get_text() + + if target == 'All': + self.buttonA.child.set_text('Sent') + self.buttonB.child.set_text('Recv') + if target == 'Sent': + self.buttonA.child.set_text('All') + self.buttonB.child.set_text('Draft') + if target == 'Draft': + self.buttonA.child.set_text('All') + self.buttonB.child.set_text('Sent') + if target == 'Recv': + self.buttonA.child.set_text('All') + self.buttonB.child.set_text('New') + if target == 'New': + self.buttonA.child.set_text('All') + self.buttonB.child.set_text('Recv') + + self.display_list = target + self.listview.reset_list() + + def clear_search(self, *a): + pass + + def got_new(self): + self.rotate_list(self, target = 'New') + +def main(args): + for p in ['/media/card','/media/disk','/var/tmp']: + if os.path.exists(p): + pth = p + break + w = SendSMS(SMSstore(pth+'/SMS')) + gtk.settings_get_default().set_long_property("gtk-cursor-blink", 0, "main") + + gtk.main() + +if __name__ == '__main__': + main(sys.argv) diff --git a/sms/storesms.py b/sms/storesms.py new file mode 100644 index 0000000..3d3e3b1 --- /dev/null +++ b/sms/storesms.py @@ -0,0 +1,483 @@ +# +# FIXME +# - trim newmesg and draft when possible. +# - remove old multipart files +# +# Store SMS messages is a bunch of files, one per month. +# Each message is stored on one line with space separated . +# URL encoding (%XX) is used to quote white space, unprintables etc +# We store 5 fields: +# - time stamp that we first saw the message. This is in UTC. +# This is the primary key. If a second message is seen in the same second, +# we quietly add 1 to the second. +# - Source, one of 'LOCAL' for locally composed, 'GSM' for recieved via GSM +# or maybe 'EMAIL' if received via email?? +# - Time message was sent, Localtime with -TZ. For GSM messages this comes with the +# message. For 'LOCAL' it might be '-', or will be the time we succeeded +# in sending. +# time is stored as a tupple (Y m d H M S Z) where Z is timezone in multiples +# of 15 minutes. +# - The correspondent: sender if GSM, recipient if LOCAL, or '-' if not sent. +# This might be a comma-separated list of recipients. +# - The text of the message +# +# Times are formatted %Y%m%d-%H%M%S and local time has a GSM TZ suffix. +# GSM TZ is from +48 to -48 in units of 15 minutes. (0 is +00) +# +# We never modify a message once it has been stored. +# If we have a draft that we edit and send, we delete the draft and +# create a new sent-message +# If we forward a message, we will then have two copies. +# +# New messages are not distinguished by a flag (which would have to be cleared) +# but by being in a separate list of new messages. +# We havea list of 'new' messages and a list of 'draft' messages. +# +# Multi-part messages are accumulated as they are received. The quoted message +# contains text for each part of the message. +# e.g. <1><2>nd%20so%20no.....<3> +# if we only have part 2 of 3. +# For each incomplete message there is a file (like 'draft' and 'newmesg') named +# for the message which provides an index to each incomplete message. +# It will be named e.g. 'multipart-1C' when 1C is the message id. +# +# This module defines 2 classes: +# SMSmesg +# This holds a message and so has timestamp, source, time, correspondent +# and text fields. These are decoded. +# SMSmesg also has 'state' which can be one of "NEW", "DRAFT" or None +# Finally it might have a 'ref' and a 'part' which is a tuple (this,max) +# This is only used when storing the message to link it up with +# a partner +# +# SMSstore +# This represents a collection of messages in a directory (one file per month) +# and provides lists of 'NEW' and 'DRAFT' messages. +# Operations: +# store(SMSmesg, NEW|DRAFT|) -> None +# stores the message and sets the timestamp +# lookup(latest-time, NEW|DRAFT|ALL) -> (earlytime, [SMSmesg]) +# collects a list of messages in reverse time order with times no later +# than 'latest-time'. Only consider NEW or DRAFT or ALL messages. +# The list may not be complete (typically one month at a time are returnned) +# If you want more, call again with 'earlytime' as 'latest-time'). +# delete(SMSmesg) +# delete the given message (based on the timestamp only) +# setstate(SMSmesg, NEW|DRAFT|None) +# update the 'new' and 'draft' lists or container, or not container, this +# message. +# +# + +import os, fcntl, re, time, urllib + +def umktime(tm): + # like time.mktime, but tm is UTC + # So we want a 't' where + # time.gmtime(t)[0:6] == tm[0:6] + estimate = time.mktime(tm) - time.timezone + t2 = time.gmtime(estimate) + while t2[0:6] < tm[0:6]: + estimate += 15*60 + t2 = time.gmtime(estimate) + while t2[0:6] > tm[0:6]: + estimate -= 15*60 + t2 = time.gmtime(estimate) + return estimate + +def parse_time(strg): + return int(umktime(time.strptime(strg, "%Y%m%d-%H%M%S"))) +def parse_ltime(strg): + z = strg[-3:] + return time.strptime(strg[:-3], "%Y%m%d-%H%M%S")[0:6] + (int(z),) +def format_time(t): + return time.strftime("%Y%m%d-%H%M%S", time.gmtime(t)) +def format_ltime(tm): + return time.strftime("%Y%m%d-%H%M%S", tm[0:6]+(0,0,0)) + ("%+03d" % tm[6]) + + +class SMSmesg: + def __init__(self, **a): + if len(a) == 1 and 'line' in a: + # line read from a file, with 5 fields. + # stamp, source, time, correspondent, text + line = a['line'].split() + self.stamp = parse_time(line[0]) + self.source = line[1] + self.time = parse_ltime(line[2]) + self.correspondents = [] + for c in line[3].split(','): + if c != '-': + self.correspondents.append(urllib.unquote(c)) + self.set_corresponent() + self.state = None + + self.parts = None + txt = line[4] + if txt[0] != '<': + self.text = urllib.unquote(txt) + return + # multipart: <1>text...<2>text...<3><4> + m = re.findall('<(\d+)>([^<]*)', txt) + parts = [] + for (pos, strg) in m: + p = int(pos) + while len(parts) < p: + parts.append(None) + if strg: + parts[p-1] = urllib.unquote(strg) + self.parts = parts + self.reduce_parts() + else: + self.stamp = int(time.time()) + self.source = None + lt = time.localtime() + z = time.timezone/15/60 + if lt[8] == 1: + z -= 4 + self.time = time.localtime()[0:6] + (z,) + self.correspondents = [] + self.text = "" + self.state = None + self.ref = None + self.parts = None + part = None + for k in a: + if k == 'stamp': + self.stamp = a[k] + elif k == 'source': + self.source = a[k] + elif k == 'time': + # time can be a GSM string: 09/02/09,09:56:28+44 (ymd,HMS+z) + # or a tuple (y,m,d,H,M,S,z) + if type(a[k]) == str: + t = a[k][:-3] + z = a[k][-3:] + tm = time.strptime(t, "%y/%m/%d,%H:%M:%S") + self.time = tm[0:6] + (int(z),) + elif k == 'to' or k == 'sender': + if self.source == None: + if k == 'to': + self.source = 'LOCAL' + if k == 'sender': + self.source = 'GSM' + self.correspondents = [ a[k] ] + elif k == 'correspondents': + self.correspondents = a[k] + elif k == 'text': + self.text = a[k] + elif k == 'state': + self.state = a[k] + elif k == 'ref': + if a[k] != None: + self.ref = a[k] + elif k == 'part': + if a[k]: + part = a[k] + else: + raise ValueError + if self.source == None: + self.source = 'LOCAL' + if part: + print 'part', part[0], part[1] + self.parts = [None for x in range(part[1])] + self.parts[part[0]-1] = self.text + self.reduce_parts() + self.set_corresponent() + + self.month_re = re.compile("^[0-9]{6}$") + + def reduce_parts(self): + def reduce_pair(a,b): + if b == None: + b = "...part of message missing..." + if a == None: + return b + return a+b + self.text = reduce(reduce_pair, self.parts) + + + def set_corresponent(self): + if len(self.correspondents) == 1: + self.correspondent = self.correspondents[0] + elif len(self.correspondents) == 0: + self.correspondent = "Unsent" + else: + self.correspondent = "Multiple" + + def format(self): + fmt = "%s %s %s %s " % (format_time(self.stamp), self.source, + format_ltime(self.time), + self.format_correspondents()) + if not self.parts: + return fmt + urllib.quote(self.text) + + for i in range(len(self.parts)): + fmt += ("<%d>" % (i+1)) + urllib.quote(self.parts[i]) if self.parts[i] else "" + return fmt + + def format_correspondents(self): + r = "" + for i in self.correspondents: + if i: + r += ',' + urllib.quote(i) + if r: + return r[1:] + else: + return '-' + + +class SMSstore: + def __init__(self, dir): + self.month_re = re.compile("^[0-9]{6}$") + self.cached_month = None + self.dirname = dir + # find message files + self.set_files() + self.drafts = self.load_list('draft') + self.newmesg = self.load_list('newmesg') + + def load_list(self, name, update = None, *args): + + l = [] + try: + f = open(self.dirname + '/' + name, 'r+') + except IOError: + return l + + if update: + fcntl.lockf(f, fcntl.LOCK_EX) + for ln in f: + l.append(parse_time(ln.strip())) + l.sort() + l.reverse() + + if update and update(l, *args): + f2 = open(self.dirname + '/' + name + '.new', 'w') + for t in l: + f2.write(format_time(t)+"\n") + f2.close() + os.rename(self.dirname + '/' + name + '.new', + self.dirname + '/' + name) + f.close() + return l + + def load_month(self, f): + # load the messages from f, which is open for read + rv = {} + for l in f: + l.strip() + m = SMSmesg(line=l) + rv[m.stamp] = m + if m.stamp in self.drafts: + m.state = 'DRAFT' + elif m.stamp in self.newmesg: + m.state = 'NEW' + return rv + + def store_month(self, l, m): + dm = self.dirname + '/' + m + f = open(dm+'.new', 'w') + for s in l: + f.write(l[s].format() + "\n") + f.close() + os.rename(dm+'.new', dm) + if not m in self.files: + self.files.append(m) + self.files.sort() + self.files.reverse() + if self.cached_month == m: + self.cache = l + + def store(self, sms): + orig = None + if sms.ref != None: + # This is part of a multipart. + # If there already exists part of this + # merge them together + # + times = self.load_list('multipart-' + sms.ref) + if len(times) == 1: + orig = self.load(times[0]) + if orig and orig.parts: + for i in range(len(sms.parts)): + if sms.parts[i] == None and i < len(orig.parts): + sms.parts[i] = orig.parts[i] + else: + orig = None + + m = time.strftime("%Y%m", time.gmtime(sms.stamp)) + try: + f = open(self.dirname + '/' + m, "r+") + except: + f = open(self.dirname + '/' + m, "w+") + complete = True + if sms.ref != None: + for i in sms.parts: + if i == None: + complete = False + if complete: + sms.reduce_parts() + sms.parts = None + + fcntl.lockf(f, fcntl.LOCK_EX) + l = self.load_month(f) + while sms.stamp in l: + sms.stamp += 1 + l[sms.stamp] = sms + self.store_month(l, m); + f.close() + + if orig: + self.delete(orig) + if sms.ref != None: + if complete: + try: + os.unlink(self.dirname + '/multipart-' + sms.ref) + except: + pass + elif orig: + def replacewith(l, tm): + while len(l): + l.pop() + l.append(tm) + return True + self.load_list('multipart-' + sms.ref, replacewith, sms.stamp) + else: + f = open(self.dirname +'/multipart-' + sms.ref, 'w') + fcntl.lockf(f, fcntl.LOCK_EX) + f.write(format_time(sms.stamp) + '\n') + f.close() + + if sms.state == 'NEW' or sms.state == 'DRAFT': + s = 'newmesg' + if sms.state == 'DRAFT': + s = 'draft' + f = open(self.dirname +'/' + s, 'a') + fcntl.lockf(f, fcntl.LOCK_EX) + f.write(format_time(sms.stamp) + '\n') + f.close() + elif sms.state != None: + raise ValueError + + def set_files(self): + self.files = [] + for f in os.listdir(self.dirname): + if self.month_re.match(f): + self.files.append(f) + self.files.sort() + self.files.reverse() + + def lookup(self, lasttime = None, state = None): + if lasttime == None: + lasttime = int(time.time()) + if state == None: + return self.getmesgs(lasttime) + if state == 'DRAFT': + self.drafts = self.load_list('draft') + times = self.drafts + elif state == 'NEW': + self.newmesg = self.load_list('newmesg') + times = self.newmesg + else: + raise ValueError + + self.set_files() + self.cached_month = None + self.cache = None + rv = [] + for t in times: + if t > lasttime: + continue + s = self.load(t) + if s: + s.state = state + rv.append(s) + return(0, rv) + + def getmesgs(self, last): + rv = [] + for m in self.files: + t = parse_time(m + '01-000000') + if t > last: + continue + mon = self.load_month(open(self.dirname + '/' + m)) + for mt in mon: + if mt <= last: + rv.append(mon[mt]) + if rv: + rv.sort(cmp = lambda x,y:cmp(y.stamp, x.stamp)) + return (t-1, rv) + return (0, []) + + def load(self, t): + m = time.strftime("%Y%m", time.gmtime(t)) + if not m in self.files: + return None + if self.cached_month != m: + self.cached_month = m + self.cache = self.load_month(open(self.dirname + '/' + m)) + if t in self.cache: + return self.cache[t] + return None + + def delete(self, msg): + if isinstance(msg, SMSmesg): + tm = msg.stamp + else: + tm = msg + m = time.strftime("%Y%m", time.gmtime(tm)) + try: + f = open(self.dirname + '/' + m, "r+") + except: + return + + fcntl.lockf(f, fcntl.LOCK_EX) + l = self.load_month(f) + if tm in l: + del l[tm] + self.store_month(l, m); + f.close() + + def del1(l, tm): + if tm in l: + l.remove(tm) + return True + return False + + self.drafts = self.load_list('draft', del1, tm) + self.newmesg = self.load_list('newmesg', del1, tm) + + def setstate(self, msg, state): + tm = msg.stamp + + def del1(l, tm): + if tm in l: + l.remove(tm) + return True + return False + + if tm in self.drafts and state != 'DRAFT': + self.drafts = self.load_list('draft', del1, tm) + if tm in self.newmesg and state != 'NEW': + self.newmesg = self.load_list('newmesg', del1, tm) + + if tm not in self.drafts and state == 'DRAFT': + f = open(self.dirname +'/draft', 'a') + fcntl.lockf(f, fcntl.LOCK_EX) + f.write(format_time(sms.stamp) + '\n') + f.close() + self.drafts.append(tm) + self.drafts.sort() + self.drafts.reverse() + + if tm not in self.newmesg and state == 'NEW': + f = open(self.dirname +'/newmesg', 'a') + fcntl.lockf(f, fcntl.LOCK_EX) + f.write(format_time(sms.stamp) + '\n') + f.close() + self.newmesg.append(tm) + self.newmesg.sort() + self.newmesg.reverse() + + diff --git a/sms/test.py b/sms/test.py new file mode 100644 index 0000000..bacfd5e --- /dev/null +++ b/sms/test.py @@ -0,0 +1,33 @@ + +import os, time, sys +from storesms import SMSstore, SMSmesg + + +try: + os.mkdir("/tmp/sms") +except: + pass +st = SMSstore("/tmp/sms") + +if len(sys.argv) == 2 and sys.argv[1][0] == '-': + (next, l) = st.lookup(time.time(), sys.argv[1][1:]) + print next + for m in l: + print m.format() + +elif len(sys.argv) > 1: + m = SMSmesg(time.time(), + "0403463349", + ["0415836820"], + sys.argv[1] + ) + if len(sys.argv) > 2: + st.store(m, sys.argv[2]) + else: + st.store(m) +else: + (next, l) = st.lookup(time.time()) + print next + for m in l: + print m.format() + diff --git a/sounds/formats.h b/sounds/formats.h new file mode 100644 index 0000000..b5314f9 --- /dev/null +++ b/sounds/formats.h @@ -0,0 +1,127 @@ +#ifndef FORMATS_H +#define FORMATS_H 1 + +#include +#include + +/* Definitions for .VOC files */ + +#define VOC_MAGIC_STRING "Creative Voice File\x1A" +#define VOC_ACTUAL_VERSION 0x010A +#define VOC_SAMPLESIZE 8 + +#define VOC_MODE_MONO 0 +#define VOC_MODE_STEREO 1 + +#define VOC_DATALEN(bp) ((u_long)(bp->datalen) | \ + ((u_long)(bp->datalen_m) << 8) | \ + ((u_long)(bp->datalen_h) << 16) ) + +typedef struct voc_header { + u_char magic[20]; /* must be MAGIC_STRING */ + u_short headerlen; /* Headerlength, should be 0x1A */ + u_short version; /* VOC-file version */ + u_short coded_ver; /* 0x1233-version */ +} VocHeader; + +typedef struct voc_blocktype { + u_char type; + u_char datalen; /* low-byte */ + u_char datalen_m; /* medium-byte */ + u_char datalen_h; /* high-byte */ +} VocBlockType; + +typedef struct voc_voice_data { + u_char tc; + u_char pack; +} VocVoiceData; + +typedef struct voc_ext_block { + u_short tc; + u_char pack; + u_char mode; +} VocExtBlock; + +/* Definitions for Microsoft WAVE format */ + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define COMPOSE_ID(a,b,c,d) ((a) | ((b)<<8) | ((c)<<16) | ((d)<<24)) +#define LE_SHORT(v) (v) +#define LE_INT(v) (v) +#define BE_SHORT(v) bswap_16(v) +#define BE_INT(v) bswap_32(v) +#elif __BYTE_ORDER == __BIG_ENDIAN +#define COMPOSE_ID(a,b,c,d) ((d) | ((c)<<8) | ((b)<<16) | ((a)<<24)) +#define LE_SHORT(v) bswap_16(v) +#define LE_INT(v) bswap_32(v) +#define BE_SHORT(v) (v) +#define BE_INT(v) (v) +#else +#error "Wrong endian" +#endif + +#define WAV_RIFF COMPOSE_ID('R','I','F','F') +#define WAV_WAVE COMPOSE_ID('W','A','V','E') +#define WAV_FMT COMPOSE_ID('f','m','t',' ') +#define WAV_DATA COMPOSE_ID('d','a','t','a') + +/* WAVE fmt block constants from Microsoft mmreg.h header */ +#define WAV_FMT_PCM 0x0001 +#define WAV_FMT_IEEE_FLOAT 0x0003 +#define WAV_FMT_DOLBY_AC3_SPDIF 0x0092 +#define WAV_FMT_EXTENSIBLE 0xfffe + +/* Used with WAV_FMT_EXTENSIBLE format */ +#define WAV_GUID_TAG "\x00\x00\x00\x00\x10\x00\x80\x00\x00\xAA\x00\x38\x9B\x71" + +/* it's in chunks like .voc and AMIGA iff, but my source say there + are in only in this combination, so I combined them in one header; + it works on all WAVE-file I have + */ +typedef struct { + u_int magic; /* 'RIFF' */ + u_int length; /* filelen */ + u_int type; /* 'WAVE' */ +} WaveHeader; + +typedef struct { + u_short format; /* see WAV_FMT_* */ + u_short channels; + u_int sample_fq; /* frequence of sample */ + u_int byte_p_sec; + u_short byte_p_spl; /* samplesize; 1 or 2 bytes */ + u_short bit_p_spl; /* 8, 12 or 16 bit */ +} WaveFmtBody; + +typedef struct { + WaveFmtBody format; + u_short ext_size; + u_short bit_p_spl; + u_int channel_mask; + u_short guid_format; /* WAV_FMT_* */ + u_char guid_tag[14]; /* WAV_GUID_TAG */ +} WaveFmtExtensibleBody; + +typedef struct { + u_int type; /* 'data' */ + u_int length; /* samplecount */ +} WaveChunkHeader; + +/* Definitions for Sparc .au header */ + +#define AU_MAGIC COMPOSE_ID('.','s','n','d') + +#define AU_FMT_ULAW 1 +#define AU_FMT_LIN8 2 +#define AU_FMT_LIN16 3 + +typedef struct au_header { + u_int magic; /* '.snd' */ + u_int hdr_size; /* size of header (min 24) */ + u_int data_size; /* size of data */ + u_int encoding; /* see to AU_FMT_XXXX */ + u_int sample_rate; /* sample rate */ + u_int channels; /* number of channels (voices) */ +} AuHeader; + +#endif /* FORMATS */ diff --git a/sounds/sound.c b/sounds/sound.c new file mode 100644 index 0000000..01d5122 --- /dev/null +++ b/sounds/sound.c @@ -0,0 +1,1440 @@ +/* + * + * This is a daemon that waits for sound files to appear in a particular + * directory, and when they do, it plays them. + * Files can be WAV or OGG VORBIS + * If there are multiple files, the lexically first is played + * If a file has a suffix of -NNNNNNN, then play starts that many + * milliseconds in to the file. + * When a file disappear, play stops. + * When the end of the sound is reached the file (typically a link) is removed. + * However an empty file is treated as containing infinite silence, so + * it is never removed. + * When a new file appears which is lexically earlier than the one being + * played, the played file is suspended until the earlier files are finished + * with. + * The current-play position (in milliseconds) is written to a file + * with the same name as the sound file, but with a leading period. + * + * Expected use is that various alert tones are added to the directory with + * early names, and a music file can be added with a later name for general + * listening. + * + * Contains code from: aplay.c - plays and records + * Copyright (c) by Jaroslav Kysela + * Based on vplay program by Michael Beck + * + * + * This program 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 2 of the License, or + * (at your option) any later version. + * + * This program 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "aconfig.h" +#include "gettext.h" +#include "formats.h" +#include "version.h" + +#ifndef LLONG_MAX +#define LLONG_MAX 9223372036854775807LL +#endif + +#define DEFAULT_FORMAT SND_PCM_FORMAT_U8 +#define DEFAULT_SPEED 8000 + +#define FORMAT_DEFAULT -1 +#define FORMAT_RAW 0 +#define FORMAT_VOC 1 +#define FORMAT_WAVE 2 +#define FORMAT_AU 3 + +/* global data */ + +static snd_pcm_sframes_t (*readi_func)(snd_pcm_t *handle, void *buffer, snd_pcm_uframes_t size); +static snd_pcm_sframes_t (*writei_func)(snd_pcm_t *handle, const void *buffer, snd_pcm_uframes_t size); +static snd_pcm_sframes_t (*readn_func)(snd_pcm_t *handle, void **bufs, snd_pcm_uframes_t size); +static snd_pcm_sframes_t (*writen_func)(snd_pcm_t *handle, void **bufs, snd_pcm_uframes_t size); + +static char *command; +static snd_pcm_t *handle; +static struct { + snd_pcm_format_t format; + unsigned int channels; + unsigned int rate; +} hwparams, rhwparams; +static int quiet_mode = 0; +static int file_type = FORMAT_DEFAULT; +static int open_mode = 0; +static snd_pcm_stream_t stream = SND_PCM_STREAM_PLAYBACK; +static int mmap_flag = 0; +static int interleaved = 1; +static int nonblock = 0; +static u_char *audiobuf = NULL; +static snd_pcm_uframes_t chunk_size = 0; +static unsigned period_time = 0; +static unsigned buffer_time = 0; +static snd_pcm_uframes_t period_frames = 0; +static snd_pcm_uframes_t buffer_frames = 0; +static int avail_min = -1; +static int start_delay = 0; +static int stop_delay = 0; +static int monotonic = 0; +static int verbose = 0; +static int buffer_pos = 0; +static size_t bits_per_sample, bits_per_frame; +static size_t chunk_bytes; +static int test_position = 0; +static int test_coef = 8; +static int test_nowait = 0; +static snd_output_t *log; + +static int fd = -1; +static off64_t pbrec_count = LLONG_MAX, fdcount; +static int vocmajor, vocminor; + +/* needed prototypes */ + +static void playback(char *filename); + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +#define error(...) do {\ + fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \ + fprintf(stderr, __VA_ARGS__); \ + putc('\n', stderr); \ +} while (0) +#else +#define error(args...) do {\ + fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \ + fprintf(stderr, ##args); \ + putc('\n', stderr); \ +} while (0) +#endif + +static void device_list(void) +{ + snd_ctl_t *handle; + int card, err, dev, idx; + snd_ctl_card_info_t *info; + snd_pcm_info_t *pcminfo; + snd_ctl_card_info_alloca(&info); + snd_pcm_info_alloca(&pcminfo); + + card = -1; + if (snd_card_next(&card) < 0 || card < 0) { + error(_("no soundcards found...")); + return; + } + printf(_("**** List of %s Hardware Devices ****\n"), + snd_pcm_stream_name(stream)); + while (card >= 0) { + char name[32]; + sprintf(name, "hw:%d", card); + if ((err = snd_ctl_open(&handle, name, 0)) < 0) { + error("control open (%i): %s", card, snd_strerror(err)); + goto next_card; + } + if ((err = snd_ctl_card_info(handle, info)) < 0) { + error("control hardware info (%i): %s", card, snd_strerror(err)); + snd_ctl_close(handle); + goto next_card; + } + dev = -1; + while (1) { + unsigned int count; + if (snd_ctl_pcm_next_device(handle, &dev)<0) + error("snd_ctl_pcm_next_device"); + if (dev < 0) + break; + snd_pcm_info_set_device(pcminfo, dev); + snd_pcm_info_set_subdevice(pcminfo, 0); + snd_pcm_info_set_stream(pcminfo, stream); + if ((err = snd_ctl_pcm_info(handle, pcminfo)) < 0) { + if (err != -ENOENT) + error("control digital audio info (%i): %s", card, snd_strerror(err)); + continue; + } + printf(_("card %i: %s [%s], device %i: %s [%s]\n"), + card, snd_ctl_card_info_get_id(info), snd_ctl_card_info_get_name(info), + dev, + snd_pcm_info_get_id(pcminfo), + snd_pcm_info_get_name(pcminfo)); + count = snd_pcm_info_get_subdevices_count(pcminfo); + printf( _(" Subdevices: %i/%i\n"), + snd_pcm_info_get_subdevices_avail(pcminfo), count); + for (idx = 0; idx < (int)count; idx++) { + snd_pcm_info_set_subdevice(pcminfo, idx); + if ((err = snd_ctl_pcm_info(handle, pcminfo)) < 0) { + error("control digital audio playback info (%i): %s", card, snd_strerror(err)); + } else { + printf(_(" Subdevice #%i: %s\n"), + idx, snd_pcm_info_get_subdevice_name(pcminfo)); + } + } + } + snd_ctl_close(handle); + next_card: + if (snd_card_next(&card) < 0) { + error("snd_card_next"); + break; + } + } +} + +static void pcm_list(void) +{ + void **hints, **n; + char *name, *descr, *descr1, *io; + const char *filter; + + if (snd_device_name_hint(-1, "pcm", &hints) < 0) + return; + n = hints; + filter = "Output"; + while (*n != NULL) { + name = snd_device_name_get_hint(*n, "NAME"); + descr = snd_device_name_get_hint(*n, "DESC"); + io = snd_device_name_get_hint(*n, "IOID"); + if (io != NULL && strcmp(io, filter) != 0) + goto __end; + printf("%s\n", name); + if ((descr1 = descr) != NULL) { + printf(" "); + while (*descr1) { + if (*descr1 == '\n') + printf("\n "); + else + putchar(*descr1); + descr1++; + } + putchar('\n'); + } + __end: + if (name != NULL) + free(name); + if (descr != NULL) + free(descr); + if (io != NULL) + free(io); + n++; + } + snd_device_name_free_hint(hints); +} + +static void version(void) +{ + printf("%s: version " SND_UTIL_VERSION_STR " by Jaroslav Kysela \n", command); +} + +static void signal_handler(int sig) +{ + if (verbose==2) + putchar('\n'); + if (!quiet_mode) + fprintf(stderr, _("Aborted by signal %s...\n"), strsignal(sig)); + if (fd > 1) { + close(fd); + fd = -1; + } + if (handle && sig != SIGABRT) { + snd_pcm_close(handle); + handle = NULL; + } + exit(EXIT_FAILURE); +} + +enum { + OPT_VERSION = 1, + OPT_PERIOD_SIZE, + OPT_BUFFER_SIZE, + OPT_DISABLE_RESAMPLE, + OPT_DISABLE_CHANNELS, + OPT_DISABLE_FORMAT, + OPT_DISABLE_SOFTVOL, + OPT_TEST_POSITION, + OPT_TEST_COEF, + OPT_TEST_NOWAIT +}; + +int main(int argc, char *argv[]) +{ + int option_index; + static const char short_options[] = ""; + static const struct option long_options[] = { + {0, 0, 0, 0} + }; + char *pcm_name = "default"; + int tmp, err, c; + int do_device_list = 0, do_pcm_list = 0; + snd_pcm_info_t *info; + + snd_pcm_info_alloca(&info); + + err = snd_output_stdio_attach(&log, stderr, 0); + assert(err >= 0); + + command = argv[0]; + file_type = FORMAT_DEFAULT; + + stream = SND_PCM_STREAM_PLAYBACK; + command = "aplay"; + + chunk_size = -1; + rhwparams.format = DEFAULT_FORMAT; + rhwparams.rate = DEFAULT_SPEED; + rhwparams.channels = 1; + + while ((c = getopt_long(argc, argv, short_options, long_options, &option_index)) != -1) { + switch (c) { + case 'h': + usage(command); + return 0; + case OPT_VERSION: + version(); + return 0; + case 'l': + do_device_list = 1; + break; + case 'L': + do_pcm_list = 1; + break; + case 'D': + pcm_name = optarg; + break; + case 'q': + quiet_mode = 1; + break; + case 't': + if (strcasecmp(optarg, "raw") == 0) + file_type = FORMAT_RAW; + else if (strcasecmp(optarg, "voc") == 0) + file_type = FORMAT_VOC; + else if (strcasecmp(optarg, "wav") == 0) + file_type = FORMAT_WAVE; + else if (strcasecmp(optarg, "au") == 0 || strcasecmp(optarg, "sparc") == 0) + file_type = FORMAT_AU; + else { + error(_("unrecognized file format %s"), optarg); + return 1; + } + break; + case 'c': + rhwparams.channels = strtol(optarg, NULL, 0); + if (rhwparams.channels < 1 || rhwparams.channels > 32) { + error(_("value %i for channels is invalid"), rhwparams.channels); + return 1; + } + break; + case 'f': + if (strcasecmp(optarg, "cd") == 0 || strcasecmp(optarg, "cdr") == 0) { + if (strcasecmp(optarg, "cdr") == 0) + rhwparams.format = SND_PCM_FORMAT_S16_BE; + else + rhwparams.format = file_type == FORMAT_AU ? SND_PCM_FORMAT_S16_BE : SND_PCM_FORMAT_S16_LE; + rhwparams.rate = 44100; + rhwparams.channels = 2; + } else if (strcasecmp(optarg, "dat") == 0) { + rhwparams.format = file_type == FORMAT_AU ? SND_PCM_FORMAT_S16_BE : SND_PCM_FORMAT_S16_LE; + rhwparams.rate = 48000; + rhwparams.channels = 2; + } else { + rhwparams.format = snd_pcm_format_value(optarg); + if (rhwparams.format == SND_PCM_FORMAT_UNKNOWN) { + error(_("wrong extended format '%s'"), optarg); + exit(EXIT_FAILURE); + } + } + break; + case 'r': + tmp = strtol(optarg, NULL, 0); + if (tmp < 300) + tmp *= 1000; + rhwparams.rate = tmp; + if (tmp < 2000 || tmp > 192000) { + error(_("bad speed value %i"), tmp); + return 1; + } + break; + case 'N': + nonblock = 1; + open_mode |= SND_PCM_NONBLOCK; + break; + case 'F': + period_time = strtol(optarg, NULL, 0); + break; + case 'B': + buffer_time = strtol(optarg, NULL, 0); + break; + case OPT_PERIOD_SIZE: + period_frames = strtol(optarg, NULL, 0); + break; + case OPT_BUFFER_SIZE: + buffer_frames = strtol(optarg, NULL, 0); + break; + case 'A': + avail_min = strtol(optarg, NULL, 0); + break; + case 'R': + start_delay = strtol(optarg, NULL, 0); + break; + case 'T': + stop_delay = strtol(optarg, NULL, 0); + break; + case 'M': + mmap_flag = 1; + break; + case 'I': + interleaved = 0; + break; + case 'P': + stream = SND_PCM_STREAM_PLAYBACK; + command = "aplay"; + break; + case OPT_DISABLE_RESAMPLE: + open_mode |= SND_PCM_NO_AUTO_RESAMPLE; + break; + case OPT_DISABLE_CHANNELS: + open_mode |= SND_PCM_NO_AUTO_CHANNELS; + break; + case OPT_DISABLE_FORMAT: + open_mode |= SND_PCM_NO_AUTO_FORMAT; + break; + case OPT_DISABLE_SOFTVOL: + open_mode |= SND_PCM_NO_SOFTVOL; + break; + case OPT_TEST_POSITION: + test_position = 1; + break; + case OPT_TEST_COEF: + test_coef = strtol(optarg, NULL, 0); + if (test_coef < 1) + test_coef = 1; + break; + case OPT_TEST_NOWAIT: + test_nowait = 1; + break; + default: + fprintf(stderr, _("Try `%s --help' for more information.\n"), command); + return 1; + } + } + + if (do_device_list) { + if (do_pcm_list) pcm_list(); + device_list(); + goto __end; + } else if (do_pcm_list) { + pcm_list(); + goto __end; + } + + err = snd_pcm_open(&handle, pcm_name, stream, open_mode); + if (err < 0) { + error(_("audio open error: %s"), snd_strerror(err)); + return 1; + } + + if ((err = snd_pcm_info(handle, info)) < 0) { + error(_("info error: %s"), snd_strerror(err)); + return 1; + } + + if (nonblock) { + err = snd_pcm_nonblock(handle, 1); + if (err < 0) { + error(_("nonblock setting error: %s"), snd_strerror(err)); + return 1; + } + } + + chunk_size = 1024; + hwparams = rhwparams; + + audiobuf = (u_char *)malloc(1024); + if (audiobuf == NULL) { + error(_("not enough memory")); + return 1; + } + + if (mmap_flag) { + writei_func = snd_pcm_mmap_writei; + readi_func = snd_pcm_mmap_readi; + writen_func = snd_pcm_mmap_writen; + readn_func = snd_pcm_mmap_readn; + } else { + writei_func = snd_pcm_writei; + readi_func = snd_pcm_readi; + writen_func = snd_pcm_writen; + readn_func = snd_pcm_readn; + } + + + signal(SIGINT, signal_handler); + signal(SIGTERM, signal_handler); + signal(SIGABRT, signal_handler); + playback(argv[optind++]); + snd_pcm_close(handle); + free(audiobuf); + __end: + snd_output_close(log); + snd_config_update_free_global(); + return EXIT_SUCCESS; +} + +/* + * Safe read (for pipes) + */ + +static ssize_t safe_read(int fd, void *buf, size_t count) +{ + ssize_t result = 0, res; + + while (count > 0) { + if ((res = read(fd, buf, count)) == 0) + break; + if (res < 0) + return result > 0 ? result : res; + count -= res; + result += res; + buf = (char *)buf + res; + } + return result; +} + + +/* + * helper for test_wavefile + */ + +static size_t test_wavefile_read(int fd, u_char *buffer, size_t *size, size_t reqsize, int line) +{ + if (*size >= reqsize) + return *size; + if ((size_t)safe_read(fd, buffer + *size, reqsize - *size) != reqsize - *size) { + error(_("read error (called from line %i)"), line); + exit(EXIT_FAILURE); + } + return *size = reqsize; +} + +#define check_wavefile_space(buffer, len, blimit) \ + if (len > blimit) { \ + blimit = len; \ + if ((buffer = realloc(buffer, blimit)) == NULL) { \ + error(_("not enough memory")); \ + exit(EXIT_FAILURE); \ + } \ + } + +/* + * test, if it's a .WAV file, > 0 if ok (and set the speed, stereo etc.) + * == 0 if not + * Value returned is bytes to be discarded. + */ +static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size) +{ + WaveHeader *h = (WaveHeader *)_buffer; + u_char *buffer = NULL; + size_t blimit = 0; + WaveFmtBody *f; + WaveChunkHeader *c; + u_int type, len; + + if (size < sizeof(WaveHeader)) + return -1; + if (h->magic != WAV_RIFF || h->type != WAV_WAVE) + return -1; + if (size > sizeof(WaveHeader)) { + check_wavefile_space(buffer, size - sizeof(WaveHeader), blimit); + memcpy(buffer, _buffer + sizeof(WaveHeader), size - sizeof(WaveHeader)); + } + size -= sizeof(WaveHeader); + while (1) { + check_wavefile_space(buffer, sizeof(WaveChunkHeader), blimit); + test_wavefile_read(fd, buffer, &size, sizeof(WaveChunkHeader), __LINE__); + c = (WaveChunkHeader*)buffer; + type = c->type; + len = LE_INT(c->length); + len += len % 2; + if (size > sizeof(WaveChunkHeader)) + memmove(buffer, buffer + sizeof(WaveChunkHeader), size - sizeof(WaveChunkHeader)); + size -= sizeof(WaveChunkHeader); + if (type == WAV_FMT) + break; + check_wavefile_space(buffer, len, blimit); + test_wavefile_read(fd, buffer, &size, len, __LINE__); + if (size > len) + memmove(buffer, buffer + len, size - len); + size -= len; + } + + if (len < sizeof(WaveFmtBody)) { + error(_("unknown length of 'fmt ' chunk (read %u, should be %u at least)"), + len, (u_int)sizeof(WaveFmtBody)); + exit(EXIT_FAILURE); + } + check_wavefile_space(buffer, len, blimit); + test_wavefile_read(fd, buffer, &size, len, __LINE__); + f = (WaveFmtBody*) buffer; + if (LE_SHORT(f->format) == WAV_FMT_EXTENSIBLE) { + WaveFmtExtensibleBody *fe = (WaveFmtExtensibleBody*)buffer; + if (len < sizeof(WaveFmtExtensibleBody)) { + error(_("unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"), + len, (u_int)sizeof(WaveFmtExtensibleBody)); + exit(EXIT_FAILURE); + } + if (memcmp(fe->guid_tag, WAV_GUID_TAG, 14) != 0) { + error(_("wrong format tag in extensible 'fmt ' chunk")); + exit(EXIT_FAILURE); + } + f->format = fe->guid_format; + } + if (LE_SHORT(f->format) != WAV_FMT_PCM && + LE_SHORT(f->format) != WAV_FMT_IEEE_FLOAT) { + error(_("can't play WAVE-file format 0x%04x which is not PCM or FLOAT encoded"), LE_SHORT(f->format)); + exit(EXIT_FAILURE); + } + if (LE_SHORT(f->channels) < 1) { + error(_("can't play WAVE-files with %d tracks"), LE_SHORT(f->channels)); + exit(EXIT_FAILURE); + } + hwparams.channels = LE_SHORT(f->channels); + switch (LE_SHORT(f->bit_p_spl)) { + case 8: + if (hwparams.format != DEFAULT_FORMAT && + hwparams.format != SND_PCM_FORMAT_U8) + fprintf(stderr, _("Warning: format is changed to U8\n")); + hwparams.format = SND_PCM_FORMAT_U8; + break; + case 16: + if (hwparams.format != DEFAULT_FORMAT && + hwparams.format != SND_PCM_FORMAT_S16_LE) + fprintf(stderr, _("Warning: format is changed to S16_LE\n")); + hwparams.format = SND_PCM_FORMAT_S16_LE; + break; + case 24: + switch (LE_SHORT(f->byte_p_spl) / hwparams.channels) { + case 3: + if (hwparams.format != DEFAULT_FORMAT && + hwparams.format != SND_PCM_FORMAT_S24_3LE) + fprintf(stderr, _("Warning: format is changed to S24_3LE\n")); + hwparams.format = SND_PCM_FORMAT_S24_3LE; + break; + case 4: + if (hwparams.format != DEFAULT_FORMAT && + hwparams.format != SND_PCM_FORMAT_S24_LE) + fprintf(stderr, _("Warning: format is changed to S24_LE\n")); + hwparams.format = SND_PCM_FORMAT_S24_LE; + break; + default: + error(_(" can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"), + LE_SHORT(f->bit_p_spl), LE_SHORT(f->byte_p_spl), hwparams.channels); + exit(EXIT_FAILURE); + } + break; + case 32: + if (LE_SHORT(f->format) == WAV_FMT_PCM) + hwparams.format = SND_PCM_FORMAT_S32_LE; + else if (LE_SHORT(f->format) == WAV_FMT_IEEE_FLOAT) + hwparams.format = SND_PCM_FORMAT_FLOAT_LE; + break; + default: + error(_(" can't play WAVE-files with sample %d bits wide"), + LE_SHORT(f->bit_p_spl)); + exit(EXIT_FAILURE); + } + hwparams.rate = LE_INT(f->sample_fq); + + if (size > len) + memmove(buffer, buffer + len, size - len); + size -= len; + + while (1) { + u_int type, len; + + check_wavefile_space(buffer, sizeof(WaveChunkHeader), blimit); + test_wavefile_read(fd, buffer, &size, sizeof(WaveChunkHeader), __LINE__); + c = (WaveChunkHeader*)buffer; + type = c->type; + len = LE_INT(c->length); + if (size > sizeof(WaveChunkHeader)) + memmove(buffer, buffer + sizeof(WaveChunkHeader), size - sizeof(WaveChunkHeader)); + size -= sizeof(WaveChunkHeader); + if (type == WAV_DATA) { + if (len < pbrec_count && len < 0x7ffffffe) + pbrec_count = len; + if (size > 0) + memcpy(_buffer, buffer, size); + free(buffer); + return size; + } + len += len % 2; + check_wavefile_space(buffer, len, blimit); + test_wavefile_read(fd, buffer, &size, len, __LINE__); + if (size > len) + memmove(buffer, buffer + len, size - len); + size -= len; + } + + /* shouldn't be reached */ + return -1; +} + + +static void set_params(void) +{ + snd_pcm_hw_params_t *params; + snd_pcm_sw_params_t *swparams; + snd_pcm_uframes_t buffer_size; + int err; + size_t n; + unsigned int rate; + snd_pcm_uframes_t start_threshold, stop_threshold; + snd_pcm_hw_params_alloca(¶ms); + snd_pcm_sw_params_alloca(&swparams); + err = snd_pcm_hw_params_any(handle, params); + if (err < 0) { + error(_("Broken configuration for this PCM: no configurations available")); + exit(EXIT_FAILURE); + } + if (mmap_flag) { + snd_pcm_access_mask_t *mask = alloca(snd_pcm_access_mask_sizeof()); + snd_pcm_access_mask_none(mask); + snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_INTERLEAVED); + snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_NONINTERLEAVED); + snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_COMPLEX); + err = snd_pcm_hw_params_set_access_mask(handle, params, mask); + } else if (interleaved) + err = snd_pcm_hw_params_set_access(handle, params, + SND_PCM_ACCESS_RW_INTERLEAVED); + else + err = snd_pcm_hw_params_set_access(handle, params, + SND_PCM_ACCESS_RW_NONINTERLEAVED); + if (err < 0) { + error(_("Access type not available")); + exit(EXIT_FAILURE); + } + err = snd_pcm_hw_params_set_format(handle, params, hwparams.format); + if (err < 0) { + error(_("Sample format non available")); + exit(EXIT_FAILURE); + } + err = snd_pcm_hw_params_set_channels(handle, params, hwparams.channels); + if (err < 0) { + error(_("Channels count non available")); + exit(EXIT_FAILURE); + } + +#if 0 + err = snd_pcm_hw_params_set_periods_min(handle, params, 2); + assert(err >= 0); +#endif + rate = hwparams.rate; + err = snd_pcm_hw_params_set_rate_near(handle, params, &hwparams.rate, 0); + assert(err >= 0); + if ((float)rate * 1.05 < hwparams.rate || (float)rate * 0.95 > hwparams.rate) { + if (!quiet_mode) { + char plugex[64]; + const char *pcmname = snd_pcm_name(handle); + fprintf(stderr, _("Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"), rate, hwparams.rate); + if (! pcmname || strchr(snd_pcm_name(handle), ':')) + *plugex = 0; + else + snprintf(plugex, sizeof(plugex), "(-Dplug:%s)", + snd_pcm_name(handle)); + fprintf(stderr, _(" please, try the plug plugin %s\n"), + plugex); + } + } + rate = hwparams.rate; + if (buffer_time == 0 && buffer_frames == 0) { + err = snd_pcm_hw_params_get_buffer_time_max(params, + &buffer_time, 0); + assert(err >= 0); + if (buffer_time > 500000) + buffer_time = 500000; + } + if (period_time == 0 && period_frames == 0) { + if (buffer_time > 0) + period_time = buffer_time / 4; + else + period_frames = buffer_frames / 4; + } + if (period_time > 0) + err = snd_pcm_hw_params_set_period_time_near(handle, params, + &period_time, 0); + else + err = snd_pcm_hw_params_set_period_size_near(handle, params, + &period_frames, 0); + assert(err >= 0); + if (buffer_time > 0) { + err = snd_pcm_hw_params_set_buffer_time_near(handle, params, + &buffer_time, 0); + } else { + err = snd_pcm_hw_params_set_buffer_size_near(handle, params, + &buffer_frames); + } + assert(err >= 0); + monotonic = snd_pcm_hw_params_is_monotonic(params); + err = snd_pcm_hw_params(handle, params); + if (err < 0) { + error(_("Unable to install hw params:")); + snd_pcm_hw_params_dump(params, log); + exit(EXIT_FAILURE); + } + snd_pcm_hw_params_get_period_size(params, &chunk_size, 0); + snd_pcm_hw_params_get_buffer_size(params, &buffer_size); + if (chunk_size == buffer_size) { + error(_("Can't use period equal to buffer size (%lu == %lu)"), + chunk_size, buffer_size); + exit(EXIT_FAILURE); + } + snd_pcm_sw_params_current(handle, swparams); + if (avail_min < 0) + n = chunk_size; + else + n = (double) rate * avail_min / 1000000; + err = snd_pcm_sw_params_set_avail_min(handle, swparams, n); + + /* round up to closest transfer boundary */ + n = buffer_size; + if (start_delay <= 0) { + start_threshold = n + (double) rate * start_delay / 1000000; + } else + start_threshold = (double) rate * start_delay / 1000000; + if (start_threshold < 1) + start_threshold = 1; + if (start_threshold > n) + start_threshold = n; + err = snd_pcm_sw_params_set_start_threshold(handle, swparams, start_threshold); + assert(err >= 0); + if (stop_delay <= 0) + stop_threshold = buffer_size + (double) rate * stop_delay / 1000000; + else + stop_threshold = (double) rate * stop_delay / 1000000; + err = snd_pcm_sw_params_set_stop_threshold(handle, swparams, stop_threshold); + assert(err >= 0); + + if (snd_pcm_sw_params(handle, swparams) < 0) { + error(_("unable to install sw params:")); + snd_pcm_sw_params_dump(swparams, log); + exit(EXIT_FAILURE); + } + + if (verbose) + snd_pcm_dump(handle, log); + + bits_per_sample = snd_pcm_format_physical_width(hwparams.format); + bits_per_frame = bits_per_sample * hwparams.channels; + chunk_bytes = chunk_size * bits_per_frame / 8; + audiobuf = realloc(audiobuf, chunk_bytes); + if (audiobuf == NULL) { + error(_("not enough memory")); + exit(EXIT_FAILURE); + } + // fprintf(stderr, "real chunk_size = %i, frags = %i, total = %i\n", chunk_size, setup.buf.block.frags, setup.buf.block.frags * chunk_size); + + + /* show mmap buffer arragment */ + if (mmap_flag && verbose) { + const snd_pcm_channel_area_t *areas; + snd_pcm_uframes_t offset; + int i; + err = snd_pcm_mmap_begin(handle, &areas, &offset, &chunk_size); + if (err < 0) { + error("snd_pcm_mmap_begin problem: %s", snd_strerror(err)); + exit(EXIT_FAILURE); + } + for (i = 0; i < hwparams.channels; i++) + fprintf(stderr, "mmap_area[%i] = %p,%u,%u (%u)\n", i, areas[i].addr, areas[i].first, areas[i].step, snd_pcm_format_physical_width(hwparams.format)); + /* not required, but for sure */ + snd_pcm_mmap_commit(handle, offset, 0); + } + + buffer_frames = buffer_size; /* for position test */ +} + +#ifndef timersub +#define timersub(a, b, result) \ +do { \ + (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ + (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ + if ((result)->tv_usec < 0) { \ + --(result)->tv_sec; \ + (result)->tv_usec += 1000000; \ + } \ +} while (0) +#endif + +#ifndef timermsub +#define timermsub(a, b, result) \ +do { \ + (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ + (result)->tv_nsec = (a)->tv_nsec - (b)->tv_nsec; \ + if ((result)->tv_nsec < 0) { \ + --(result)->tv_sec; \ + (result)->tv_nsec += 1000000000L; \ + } \ +} while (0) +#endif + +/* I/O error handler */ +static void xrun(void) +{ + snd_pcm_status_t *status; + int res; + + snd_pcm_status_alloca(&status); + if ((res = snd_pcm_status(handle, status))<0) { + error(_("status error: %s"), snd_strerror(res)); + exit(EXIT_FAILURE); + } + if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN) { + if (monotonic) { +#ifdef HAVE_CLOCK_GETTIME + struct timespec now, diff, tstamp; + clock_gettime(CLOCK_MONOTONIC, &now); + snd_pcm_status_get_trigger_htstamp(status, &tstamp); + timermsub(&now, &tstamp, &diff); + fprintf(stderr, _("%s!!! (at least %.3f ms long)\n"), + stream == SND_PCM_STREAM_PLAYBACK ? _("underrun") : _("overrun"), + diff.tv_sec * 1000 + diff.tv_nsec / 10000000.0); +#else + fprintf(stderr, "%s !!!\n", _("underrun")); +#endif + } else { + struct timeval now, diff, tstamp; + gettimeofday(&now, 0); + snd_pcm_status_get_trigger_tstamp(status, &tstamp); + timersub(&now, &tstamp, &diff); + fprintf(stderr, _("%s!!! (at least %.3f ms long)\n"), + stream == SND_PCM_STREAM_PLAYBACK ? _("underrun") : _("overrun"), + diff.tv_sec * 1000 + diff.tv_usec / 1000.0); + } + if (verbose) { + fprintf(stderr, _("Status:\n")); + snd_pcm_status_dump(status, log); + } + if ((res = snd_pcm_prepare(handle))<0) { + error(_("xrun: prepare error: %s"), snd_strerror(res)); + exit(EXIT_FAILURE); + } + return; /* ok, data should be accepted again */ + } if (snd_pcm_status_get_state(status) == SND_PCM_STATE_DRAINING) { + if (verbose) { + fprintf(stderr, _("Status(DRAINING):\n")); + snd_pcm_status_dump(status, log); + } + } + if (verbose) { + fprintf(stderr, _("Status(R/W):\n")); + snd_pcm_status_dump(status, log); + } + error(_("read/write error, state = %s"), snd_pcm_state_name(snd_pcm_status_get_state(status))); + exit(EXIT_FAILURE); +} + +/* I/O suspend handler */ +static void suspend(void) +{ + int res; + + if (!quiet_mode) + fprintf(stderr, _("Suspended. Trying resume. ")); fflush(stderr); + while ((res = snd_pcm_resume(handle)) == -EAGAIN) + sleep(1); /* wait until suspend flag is released */ + if (res < 0) { + if (!quiet_mode) + fprintf(stderr, _("Failed. Restarting stream. ")); fflush(stderr); + if ((res = snd_pcm_prepare(handle)) < 0) { + error(_("suspend: prepare error: %s"), snd_strerror(res)); + exit(EXIT_FAILURE); + } + } + if (!quiet_mode) + fprintf(stderr, _("Done.\n")); +} + + + + +static void do_test_position(void) +{ + static long counter = 0; + static time_t tmr = -1; + time_t now; + static float availsum, delaysum, samples; + static snd_pcm_sframes_t maxavail, maxdelay; + static snd_pcm_sframes_t minavail, mindelay; + static snd_pcm_sframes_t badavail = 0, baddelay = 0; + snd_pcm_sframes_t outofrange; + snd_pcm_sframes_t avail, delay; + int err; + + err = snd_pcm_avail_delay(handle, &avail, &delay); + if (err < 0) + return; + outofrange = (test_coef * (snd_pcm_sframes_t)buffer_frames) / 2; + if (avail > outofrange || avail < -outofrange || + delay > outofrange || delay < -outofrange) { + badavail = avail; baddelay = delay; + availsum = delaysum = samples = 0; + maxavail = maxdelay = 0; + minavail = mindelay = buffer_frames * 16; + fprintf(stderr, _("Suspicious buffer position (%li total): " + "avail = %li, delay = %li, buffer = %li\n"), + ++counter, (long)avail, (long)delay, (long)buffer_frames); + } else if (verbose) { + time(&now); + if (tmr == (time_t) -1) { + tmr = now; + availsum = delaysum = samples = 0; + maxavail = maxdelay = 0; + minavail = mindelay = buffer_frames * 16; + } + if (avail > maxavail) + maxavail = avail; + if (delay > maxdelay) + maxdelay = delay; + if (avail < minavail) + minavail = avail; + if (delay < mindelay) + mindelay = delay; + availsum += avail; + delaysum += delay; + samples++; + if (avail != 0 && now != tmr) { + fprintf(stderr, "BUFPOS: avg%li/%li " + "min%li/%li max%li/%li (%li) (%li:%li/%li)\n", + (long)(availsum / samples), + (long)(delaysum / samples), + (long)minavail, (long)mindelay, + (long)maxavail, (long)maxdelay, + (long)buffer_frames, + counter, badavail, baddelay); + tmr = now; + } + } +} + +/* + * write function + */ + +static ssize_t pcm_write(u_char *data, size_t count) +{ + ssize_t r; + ssize_t result = 0; + + if (count < chunk_size) { + snd_pcm_format_set_silence(hwparams.format, data + count * bits_per_frame / 8, (chunk_size - count) * hwparams.channels); + count = chunk_size; + } + while (count > 0) { + if (test_position) + do_test_position(); + r = writei_func(handle, data, count); + if (test_position) + do_test_position(); + if (r == -EAGAIN || (r >= 0 && (size_t)r < count)) { + if (!test_nowait) + snd_pcm_wait(handle, 1000); + } else if (r == -EPIPE) { + xrun(); + } else if (r == -ESTRPIPE) { + suspend(); + } else if (r < 0) { + error(_("write error: %s"), snd_strerror(r)); + exit(EXIT_FAILURE); + } + if (r > 0) { + result += r; + count -= r; + data += r * bits_per_frame / 8; + } + } + return result; +} + + +/* playing raw data */ + +static void playback_go(int fd, size_t loaded, off64_t count, int rtype, char *name) +{ + int l, r; + off64_t written = 0; + off64_t c; + + set_params(); + + while (loaded > chunk_bytes && written < count) { + if (pcm_write(audiobuf + written, chunk_size) <= 0) + return; + written += chunk_bytes; + loaded -= chunk_bytes; + } + if (written > 0 && loaded > 0) + memmove(audiobuf, audiobuf + written, loaded); + + l = loaded; + while (written < count) { + do { + c = count - written; + if (c > chunk_bytes) + c = chunk_bytes; + c -= l; + + if (c == 0) + break; + r = safe_read(fd, audiobuf + l, c); + if (r < 0) { + perror(name); + exit(EXIT_FAILURE); + } + fdcount += r; + if (r == 0) + break; + l += r; + } while ((size_t)l < chunk_bytes); + l = l * 8 / bits_per_frame; + r = pcm_write(audiobuf, l); + if (r != l) + break; + r = r * bits_per_frame / 8; + written += r; + l = 0; + } + snd_pcm_nonblock(handle, 0); + snd_pcm_drain(handle); + snd_pcm_nonblock(handle, nonblock); +} + + +/* + * let's play it + */ + +static void playback(char *name) +{ + int ofs; + size_t dta; + ssize_t dtawave; + + pbrec_count = LLONG_MAX; + fdcount = 0; + if ((fd = open64(name, O_RDONLY, 0)) == -1) { + perror(name); + exit(EXIT_FAILURE); + } + /* read bytes for WAVE-header */ + if ((dtawave = test_wavefile(fd, audiobuf, dta)) >= 0) { + playback_go(fd, dtawave, pbrec_count, FORMAT_WAVE, name); + } + close(fd); +} + +struct sound { + int fd; + int empty; + struct list_head list; + int seen; + char *name; + int ino; + long posn; + int format; /* FORMAT_WAVE or FORMAT_OGG */ + char buf[1024]; + int bytes, bytes_used; + int eof; + + int chunk_size; + int chunk_bytes; + +}; + +int dir_changed = 1; + +int handle_change(int sig) +{ + dir_changed = 1; + return 0; +} + +static void raw_read(struct sound *s) +{ + /* if there are bytes in the buffer but not at the start, + * copy them down. + * then try to fill the buffer. + * Set ->eof as appropriate + */ + if (s->bytes_used && + s->bytes_used < s->bytes) + memmove(s->buf, s->buf+s->bytes_used, s->bytes - s->bytes_used); + s->bytes -= s->bytes_used; + s->bytes = 0; + while (s->bytes < sizeof(s->buf) && !s->eof) { + int n = read(s->fd, s->buf+s->bytes, sizeof(s->buf) - s->bytes); + if (n <= 0) + s->eof = 1; + else + s->bytes += n; + } +} + +int parse_wave(struct sound *s) +{ + WaveHeader *h = (WaveHeader *)s->buf; + WaveChunkHeader *c; + WaveFmtBody *f; + int n; + + if (s->bytes < sizeof(WaveHeader)) + return 0; + if (h->magic != WAV_RIFF || h->type != WAV_WAVE) + return 0; + s->bytes_used = sizeof(WaveHeader); + raw_read(s); + while (1) { + n = 0; + c = (WaveChunkHeader*) s->buf; + len = LE_INT(c->length); + len += len % 2; + n += sizeof(WaveChunkHeader); + if (c->type == WAV_FMT) + break; + n += len; + s->bytes_used = n; + raw_read(s); + } + if (len < sizeof(WaveFmtBody)) + return 0; + f = (WaveFmtBody*)s->buf; + +} + +void play_some(snd_pcm_t *handle, struct sound *sound) +{ + if (!handle || !sound) + return; + + switch(sound->format) { + case FORMAT_WAVE: + read_wave(sound); + break; + default: + sound->eof = 1; + } + if (sound->bytes > sound->chunk_bytes || sound->eof) { + r = pcm_write(sound->buf, + sound->bytes > sound->chunk_bytes + ? sound->chunk_bytes: + : sound->bytes); + sound->bytes_used = r; + } +} + + +struct sound *open_sound(char *name, int ino) +{ + char path[200]; + int fd; + struct sound *s; + char *eos; + strcpy(path, "/var/run/sound"); + strcat(path, name); + fd = open(path, O_RDONLY); + if (fd < 0) + return NULL; + s = malloc(sizeof(*s)); + if (!s) + return NULL; + s->fd = fd; + s->empty = 0; + s->seen = 0; + s->name = strdup(name); + s->ino = ino; + s->posn = 0; + s->bytes = s->bytes_used = 0; + + if (lseek(fd, 0L, 2) == 0) { + close(fd); + s->fd = -1; + s->empty = 1; + return s; + } + /* check for millisecond suffix */ + eos = name + strlen(name); + while (eos > name && is_digit(eos[-1])) + eos--; + if (eos > name && eos[-1] == '-' && eos[0]) + s->posn = atol(eos); + /* Read header and set parameters */ + + raw_read(s); + if (parse_wave(s)) + s->format = FORMAT_WAVE; + else + s->format = FORMAT_UNKNOWN; + + if (s->posn) + switch(s->format) { + case FORMAT_WAVE: + seek_wave(s, s->posn); + } + + return s; + + fail: + close(s->fd); + free(s->name); + free(s); + return NULL; +} + + +struct list_head *find_match(struct list_head *list, + char *name, int ino, + int *matched) +{ + /* If name/ino is found in list, return it and set + * matched. + * else return previous entry (Which might be head) + * and clear matched. + */ + struct list_head *rv = list; + struct sound *s; + + *matched = 0; + list_for_each_entry(s, list, list) { + int c = strcmp(s->name, name); + if (c > 0) + /* we have gone beyond */ + break; + rv = &s->list; + if (c == 0) { + if (s->ino == ino) + *matched = 1; + break; + } + } + return rv; +} + +void scan_dir(int fd, struct list_head *soundqueue) +{ + DIR *dir; + struct dirent *de; + struct sound *match; + + list_for_each_entry(match, soundqueue, list) + match->seen = 0; + + lseek(fd, 0, 0); + dir = fdopendir(dup(fd)); + while ((de = readdir(dir)) != NULL) { + struct list_head *match; + struct sound *new; + int matched = 0; + if (de->d_ino == 0 || + de->d_name[0] == '.') + continue; + + match = find_match(soundqueue, de->d_name, de->d_ino, &matched); + if (matched) { + match->seen = 1; + continue; + } + new = open_sound(de->d_name, de->d_ino); + if (! new) + continue; + list_add(&new->list, match); + } + closedir(dir); + + list_for_each_entry_safe(match, pos, soundqueue, list) + if (!match->seen) { + list_del(&match->list); + close_sound(match); + } +} + +int main(int argc, char *argv[]) +{ + int dfd; + struct sound *last = NULL; + struct list_head *soundqueue; + snd_pcm_t *handle = NULL; + + INIT_LIST_HEAD(&soundqueue); + + mkdir("/var/run/sound"); + dfd = open("/var/run/sound", O_RDONLY|O_DIRECTORY); + if (dfd < 0) { + fprintf(stderr, "sound: Cannot open /var/run/sound\n"); + exit(1); + } + signal(SIGIO, handle_change); + + while (1) { + sigblock(IOmask); + if (dir_changed) { + fcntl(dfd, F_NOTIFY, DN_CREATE|DN_DELETE|DN_RENAME); + dir_changed = 0; + scan_dir(dfd, &soundqueue); + } + + if (list_empty(&soundqueue)) + sigsuspend(empty_mask); + else { + struct sound *next = list_entry(soundqueue.next, + struct sound, list); + if (next != last) { + if (handle == NULL) + open_dev(&handle); + else { + snd_pcm_nonblock(handle, 0); + snd_pcm_drain(handle); + snd_pcm_nonblock(handle, nonblock); + } + set_params(handle, next); + last = next; + } + if (next->empty) { + sigsuspend(empty_mask); + continue; + } + playsome(handle, next); + } + sigunblock(IOmask); + } + exit(0); +} diff --git a/sounds/sounds.py b/sounds/sounds.py new file mode 100644 index 0000000..d1f0013 --- /dev/null +++ b/sounds/sounds.py @@ -0,0 +1,263 @@ +#!/usr/bin/env python +# +# This is a sound playing daemon for the freerunner. +# It watches the directory "/var/run/sound" and when a file appears +# there-in, it gets played. +# Currently the file must be a WAV file with 16 bit little-endian PCM encoding. +# +# Files can (and should) have priorities being leading digits. +# If there are multiple files, the one with the lowest number is played. +# +# Files normally appear via the creation of symlinks. +# When the file is removed, the playing stops. When a new file of higher +# priority appears, the current file is suspended. When the higher +# priority file is removed, the lower priority one resumes. +# +# When a file finishes playing it can do one of several thing: +# - the file can be removed (R) +# - the file can be replayed (P) +# - the player can stop and wait (W) +# If the file has a timestamp (on symlink) that has changed since +# play started, it is treated as a new file by 'W'. +# An empty file produces silence. +# +# File names should start with 1 or more leading digits (if there are +# no digits the effective priority is infinite). These form a number +# which is the reverse of priority, so a small number is played first. +# This a numerical sequence will be played in order. After these +# digits should be an R, P, or W. If none of these are present, R is +# assumed. +# +# The player can be stopped by creating a symlink from '0P-silence' to +# '/dev/null'. +# +# When a file is suspending, the position in the file, in microseconds +# is written to a new file with name formed by putting a '.' at the +# start of the file name. Maybe this is continuously updated... +# + + +import alsaaudio, time, struct, sys, os, signal, fcntl + +class PlayFile(): + def __init__(self, file, pcm): + # Arrange to play file through pcm + # Every time .play is called, we play some of the file + # If something else gets played, .resume must be called + # before .play is called again + self.pcm = pcm + self.filename = file + self.posfile = os.path.join(os.path.dirname(file), + '.'+os.path.basename(file)) + self.loadfile(file) + self.update() + + def loadfile(self, file): + # A wav file starts: + # 0-3 "RIFF" + # 4-7 Bytes in rest of file. + # 8-11 "WAVE" + # 12-15 "fmt " + # 16-19 bytes of format + # 20-21 ==1 Microsoft PCM + # 22-23 channels + # 24-27 freq + # 28-31 byte rate + # 32-33 bytes per frame + # 34-35 bits per sample + # 36-39 "data" + # 40-43 number of bytes of data + # 44... actual samples + self.pos = 0 + self.rate = 8000 + self.channels = 1 + self.bytes = 2 + self.format = alsaaudio.PCM_FORMAT_S16_LE + try: + self.f = open(file) + except IOError: + self.f = None + return + header = self.f.read(44) + if len(header) == 0: + # silence + return + if len(header) != 44: + raise IOError + riff, b1, wave, fmt, b2, format, chan, rate, br, bf, bs, data, b3 = \ + struct.unpack("4si4s 4sihhiihh 4si", header) + + if riff != "RIFF" or wave != "WAVE" or fmt != "fmt " or data != "data": + raise ValueError + if format == 1 and bs == 16: + self.format = alsaaudio.PCM_FORMAT_S16_LE + self.bytes = 2 + elif format == 1 and bs == 8: + self.format = alsaaudio.PCM_FORMAT_U8 + self.bytes = 1 + else: + raise ValueError + + if chan < 1 or chan > 4: + raise ValueError + else: + self.channels = chan + + self.rate = rate + self.finished = False + self.pos = 0; + self.resume() + + def resume(self): + try: + self.pcm.setformat(self.format) + self.pcm.setchannels(self.channels) + self.pcm.setrate(self.rate) + self.pcm.setperiodsize(640 / self.channels / self.bytes) + except: + pass + + def update(self): + f = open(self.posfile, 'w') + f.write("%d\n" % int(self.pos*1000000 / self.rate)) + + def play(self): + # play for at least 100ms + start = time.time() + if not self.f: + return False + while time.time() < start + 0.1: + data = self.f.read(640) + if not data: + self.finished = True + try: + os.unlink(self.posfile) + except OSError: + pass + return False + if len(data) % (self.channels * self.bytes) == 0: + self.pcm.write(data) + if len(data) != 640: + self.pcm.write(chr(0) * (640 - len(data))) + self.pos += len(data) / self.channels / self.bytes + self.update() + return True + + +class DirWatch: + def __init__(self, dirname): + self.mtime = 0 + self.dirname = dirname + self.name = '' + self.disp = '' + + def ping(self, *a): + signalled = True + + def choose(self, wait=False): + mtime = os.stat(self.dirname).st_mtime + if self.mtime == mtime: + if not wait: + return self.name, self.disp + # wait until it might have changed, using dnotify + f = os.open(self.dirname, 0) + signalled = False + signal.signal(signal.SIGIO, self.ping) + fcntl.fcntl(f, fcntl.F_NOTIFY, (fcntl.DN_MODIFY|fcntl.DN_RENAME| + fcntl.DN_CREATE|fcntl.DN_DELETE)) + mtime = os.stat(self.dirname).st_mtime + while not signalled and mtime == self.mtime: + signal.pause() + mtime = os.stat(self.dirname).st_mtime + os.close(f) + + # Better check again + self.mtime = mtime + min = None + disp = None + name = None + for n in os.listdir(self.dirname): + if n[0] == '.': + continue + (num,d) = self.parse(n) + if name == None: + name, disp, min = n, d, num + elif num == min: + if n > name: + name, disp = n, d + elif num == None: + pass + elif min == None or num < min: + name, disp, min = n, d, num + if name == None: + return name, None + self.name = os.path.join(self.dirname, name) + if disp != 'R' and disp != 'P': + disp = 'W' + self.disp = disp + return self.name, disp + + def parse(self, name): + n = '' + while name[0].isdigit(): + n += name[0] + name = name[1:] + disp = name[0] + if name[0] not in 'PRW': + disp = 'W' + + if n: + num = int(n) + else: + num = None + return num, disp + +def main(): + os.nice(-20) + dn = '/var/run/sound' + if not os.path.exists(dn): + os.mkdir(dn) + d = DirWatch(dn) + stack = [] + + current = None + disp = None + waiting = False + + while True: + newname, newdisp = d.choose(current == None or waiting) + if current and current.filename == newname: + if current.play(): + continue + if disp == 'R': + os.unlink(current.filename) + current = None + continue + if disp == 'P': + time.sleep(0.1) + current.loadfile(current.filename) + continue + waiting = True + continue + waiting = False + # need new... + if current and not os.path.exists(current.filename): + current = None + + if current == None and len(stack) > 0: + current, disp = stack.pop() + current.resume() + continue + + if current: + stack.append((current,disp)) + + if newname == None: + continue + + pcm = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK) + current = PlayFile(newname, pcm) + del pcm + disp = newdisp + +main() diff --git a/test/autocon.c b/test/autocon.c new file mode 100644 index 0000000..e1722cd --- /dev/null +++ b/test/autocon.c @@ -0,0 +1,60 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +main(int argc, char *argv[]) +{ + int fd; + struct ifreq ifr; + int err; + char *dev; + char cmdbuf[1000]; + char pbuf[1500]; + int n; + + fd = open("/dev/net/tun", O_RDWR); + if (fd < 0) { + perror("tun"); + exit(1); + } + + memset(&ifr, 0, sizeof(ifr)); + + ifr.ifr_flags = IFF_TUN; + err = ioctl(fd, TUNSETIFF, &ifr); + if (err < 0) { + perror("TUNSETIFF"); + exit(1); + } + + dev = ifr.ifr_name; + + printf("dev = %s\n", dev); + + sprintf(cmdbuf, "ifconfig %s 10.255.255.254 pointopoint 10.255.255.253", dev); + system(cmdbuf); + + sprintf(cmdbuf, "route add -net 0.0.0.0/1 gw 10.255.255.254 dev %s", dev); + system(cmdbuf); + sprintf(cmdbuf, "route add -net 128.0.0.0/1 gw 10.255.255.254 dev %s", dev); + system(cmdbuf); + + n = read(fd, pbuf, sizeof(pbuf)); + printf("read got %d\n", n); + + system(cmdbuf); + + system("ifconfig wlan0 192.168.1.70"); + system(" iptables -A POSTROUTING -t nat -j MASQUERADE -s 10.255.255.254"); + write(fd, pbuf, n); + while (1) { + n = read(fd, pbuf, sizeof(pbuf)); + printf("read got %d\n", n); + } +} diff --git a/test/clock.py b/test/clock.py new file mode 100644 index 0000000..d57d6f8 --- /dev/null +++ b/test/clock.py @@ -0,0 +1,36 @@ + + +import gtk, pango + +w = gtk.Window(gtk.WINDOW) +w.set_size_request(16,16) +w.realize() +w.window.property_change('_XEMBED_INFO', '_XEMBED_INFO', 32, gtk.gdk.PROP_MODE_REPLACE, [1,1]) +fd = pango.FontDescription('sans 10') +fd.set_absolute_size(25*pango.SCALE) +w.modify_font(fd) +layout = w.create_pango_layout("88:88") +(ink, (ex,ey,ew,eh)) = layout.get_pixel_extents() + +pm = gtk.gdk.Pixmap(w.window, ew,eh) +pm.draw_rectangle(w.get_style().bg_gc[gtk.STATE_NORMAL], + True, 0, 0, ew, eh) +pm.draw_layout(w.get_style().fg_gc[gtk.STATE_NORMAL], + 0,0,layout) +w.set_size_request(ew,eh) + + +w.show() + +def redraw(a,b): + print "event", b + w.window.draw_rectangle(w.get_style().bg_gc[gtk.STATE_NORMAL], + True, 0, 0, ew, eh) + w.window.draw_layout(w.get_style().fg_gc[gtk.STATE_NORMAL], + 0,0,layout) + + +w.connect('expose-event', redraw) +w.connect('configure-event', redraw) +gtk.main() + diff --git a/test/fake-test.c b/test/fake-test.c new file mode 100644 index 0000000..4527d44 --- /dev/null +++ b/test/fake-test.c @@ -0,0 +1,31 @@ + +#include + +#include + +main(int argc, char *argv[]) +{ + Display *d; + FakeKey *f; + int a; + char *c; + + d = XOpenDisplay(NULL); + + f = fakekey_init(d); + + for (a=1; a' : "greater", + '?' : "question", + '@' : "at", + '[' : "bracketleft", + ']' : "bracketright", + '\\' : "backslash", + '^' : "asciicircum", + '_' : "underscore", + '`' : "grave", + '{' : "braceleft", + '|' : "bar", + '}' : "braceright", + '~' : "asciitilde" + } + + +def get_keysym(ch) : + keysym = Xlib.XK.string_to_keysym(ch) + if keysym == 0 : + # Unfortunately, although this works to get the correct keysym + # i.e. keysym for '#' is returned as "numbersign" + # the subsequent display.keysym_to_keycode("numbersign") is 0. + keysym = Xlib.XK.string_to_keysym(special_X_keysyms[ch]) + return keysym + +def is_shifted(ch) : + if ch.isupper() : + return True + if "~!@#$%^&*()_+{}|:\"<>?".find(ch) >= 0 : + return True + return False + +def char_to_keycode(ch) : + keysym = get_keysym(ch) + keycode = display.keysym_to_keycode(keysym) + if keycode == 0 : + print "Sorry, can't map", ch + + if (is_shifted(ch)) : + shift_mask = Xlib.X.ShiftMask + else : + shift_mask = 0 + + return keycode, shift_mask + +def send_string(str) : + for ch in str : + #print "sending", ch, "=", display.keysym_to_keycode(Xlib.XK.string_to_keysym(ch)) + keycode, shift_mask = char_to_keycode(ch) + if (UseXTest) : + #print "Trying fake_input of", ch, ", shift_mask is", shift_mask + if shift_mask != 0 : + Xlib.ext.xtest.fake_input(display, Xlib.X.KeyPress, 50) + Xlib.ext.xtest.fake_input(display, Xlib.X.KeyPress, keycode) + Xlib.ext.xtest.fake_input(display, Xlib.X.KeyRelease, keycode) + if shift_mask != 0 : + Xlib.ext.xtest.fake_input(display, Xlib.X.KeyRelease, 50) + else : + event = Xlib.protocol.event.KeyPress( + time = int(time.time()), + root = display.screen().root, + window = window, + same_screen = 0, child = Xlib.X.NONE, + root_x = 0, root_y = 0, event_x = 0, event_y = 0, + state = shift_mask, + detail = keycode + ) + window.send_event(event, propagate = True) + event = Xlib.protocol.event.KeyRelease( + time = int(time.time()), + root = display.screen().root, + window = window, + same_screen = 0, child = Xlib.X.NONE, + root_x = 0, root_y = 0, event_x = 0, event_y = 0, + state = shift_mask, + detail = keycode + ) + window.send_event(event, propagate = True) + +for argp in range(1, len(sys.argv)) : + send_string(sys.argv[argp]) + display.sync() diff --git a/test/reflash b/test/reflash new file mode 100644 index 0000000..7902438 --- /dev/null +++ b/test/reflash @@ -0,0 +1,5 @@ + +cd /home/git/dfu-util +./src/dfu-util -a rootfs --device 1d50:5119 -D /home/neilb/Desktop/FSO/*jffs* +./src/dfu-util -a kernel --device 1d50:5119 -D /home/neilb/Desktop/FSO/uImag* +#./src/dfu-util --device 1d50:5119 --reset diff --git a/test/status.py b/test/status.py new file mode 100644 index 0000000..0e39c4c --- /dev/null +++ b/test/status.py @@ -0,0 +1,51 @@ + +import sys +import pygtk +import gtk +import os +import gobject + +capfile = "/sys/class/power_supply/battery/capacity" +curlimfile = "/sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-mbc/usb_curlim" +chgfile = "/sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-mbc/chgmode" +currfile = "/sys/class/power_supply/battery/current_now" +filename = "/media/card/panel-plugin/pixmaps/battery_%03d.png" +filename_charging = "/media/card/panel-plugin/pixmaps/battery_%03d_charging_%d.png" + +def file_text(name): + try: + f = open(name) + except: + return "" + t = f.read() + return t.strip() +def file_num(name): + try: + i = int(file_text(name)) + except: + i = 0 + return i + +def setfile(icon): + cap = file_num(capfile) + capr = int((cap+5)/10)*10 + curr = file_num(currfile) + lim = file_num(curlimfile) + if curr >= 0 or lim == 0: + f = filename % capr + else: + f = filename_charging % (capr, lim) + print f + i.set_from_file(f) + +def update(): + global i + setfile(i) + to = gobject.timeout_add(30*1000, update) + +i = gtk.StatusIcon() +setfile(i) +i.set_visible(True) +to = gobject.timeout_add(30*1000, update) + +gtk.main() diff --git a/test/test.py b/test/test.py new file mode 100644 index 0000000..06477d3 --- /dev/null +++ b/test/test.py @@ -0,0 +1,49 @@ + +import sys +import pygtk +import gtk +import os +import gobject + +capfile = "/sys/class/power_supply/battery/capacity" +curlimfile = "/sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-mbc/usb_curlim" +chgfile = "/sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-mbc/chgmode" +currfile = "/sys/class/power_supply/battery/current_now" +filename = "/tmp/pixmaps/battery_%03d.png" +filename_charging = "/media/card/panel-plugin/pixmaps/battery_%03d_charging_%d.png" + +def file_text(name): + try: + f = open(name) + except: + return "" + t = f.read() + return t.strip() +def file_num(name): + try: + i = int(file_text(name)) + except: + i = 0 + return i + +def setfile(icon, capr): + curr = 1 + lim = 0 + if curr >= 0 or lim == 0: + f = filename % capr + else: + f = filename_charging % (capr, lim) + print f + i.set_from_file(f) + +def update(): + global i + setfile(i, 0) + to = gobject.timeout_add(30*1000, update) + +i = gtk.StatusIcon() +setfile(i,100) +i.set_visible(True) +to = gobject.timeout_add(10*1000, update) + +gtk.main() diff --git a/test/test1.py b/test/test1.py new file mode 100644 index 0000000..0f2f17a --- /dev/null +++ b/test/test1.py @@ -0,0 +1,35 @@ + +# experiment with clip board +# We define a clip board "test" +# We set it to 'waiting' and whenever anyone else sets it, +# we collect the value and reset to 'waiting' + +import gtk +import pygtk +import gobject +targets = [ (gtk.gdk.SELECTION_TYPE_STRING, 0, 0) ] + +def getdata(clipb, sel, info, data): + print "sending" + sel.set_text("waiting") + +def cleardatadelay(clipb, data): + print 'cleardel' + gobject.timeout_add(2000, lambda : cleardata(clipb, data)) + +def cleardata(clipb, data): + a = clipb.wait_for_text() + print "Got ", a + clipb.set_with_data(targets, getdata, cleardatadelay, None) + +cb = gtk.Clipboard(selection='PRIMARY') + +def set(): + global cb + print "set" + cb.set_with_data(targets, getdata, cleardatadelay, None) + +gobject.idle_add(set) + +gtk.main() + diff --git a/test/test2.py b/test/test2.py new file mode 100644 index 0000000..015be97 --- /dev/null +++ b/test/test2.py @@ -0,0 +1,29 @@ + +# get the value from clipboard "test", then set a new value + +import gtk +import pygtk +import sys +import gobject + +targets = [ (gtk.gdk.SELECTION_TYPE_STRING, 0, 0) ] + +def getdata(clipb, sel, info, data): + a = sys.argv[1] + print "sending", a + sel.set_text(a) + +def cleardata(clipb, data): + print "clear" + gtk.main_quit() + +cb = gtk.Clipboard(selection='PRIMARY') + +def set(): + global cb + print "set" + cb.set_with_data(targets, getdata, cleardata, None) + +gobject.idle_add(set) +gtk.main() + diff --git a/test/wkalrm.c b/test/wkalrm.c new file mode 100644 index 0000000..89add78 --- /dev/null +++ b/test/wkalrm.c @@ -0,0 +1,244 @@ +/* + * wkalrm.c - Use the RTC alarm to wake us up + * + * Copyright (C) 2008 by OpenMoko, Inc. + * Written by Werner Almesberger + * All Rights Reserved + * + * This program 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 2 of the License, or + * (at your option) any later version. + */ + + +#include +#include +#include +#include +#include +#include +#include +#include + + +#define DEFAULT_RTC "/dev/rtc0" + + +static const char *device = DEFAULT_RTC; +static int fd; + + +/* ----- Low-level wrappers ------------------------------------------------ */ + + +static void read_alarm(struct rtc_wkalrm *alarm) +{ + int res; + + res = ioctl(fd, RTC_WKALM_RD, alarm); + if (res < 0) { + perror("ioctl(RTC_WKALM_RD)"); + exit(1); + } +} + + +static void read_time(struct rtc_time *tm) +{ + int res; + + res = ioctl(fd, RTC_RD_TIME, tm); + if (res < 0) { + perror("ioctl(RTC_RD_TIME)"); + exit(1); + } +} + + +static void write_alarm(const struct rtc_wkalrm *alarm) +{ + int res; + + res = ioctl(fd, RTC_WKALM_SET, alarm); + if (res < 0) { + perror("ioctl(RTC_WKALM_SET)"); + exit(1); + } +} + + +/* ----- Date conversions -------------------------------------------------- */ + + +static void show_alarm(void) +{ + struct rtc_wkalrm alarm; + struct rtc_time tm; + + read_time(&tm); + printf("time is %02d:%02d:%02d %04d-%02d-%02d\n", + tm.tm_hour, tm.tm_min, tm.tm_sec, + tm.tm_year+1900, tm.tm_mon+1, + tm.tm_mday); + + + read_alarm(&alarm); + if (!alarm.enabled) + printf("alarm disabled%s\n", + alarm.pending ? " (pending)" : ""); + else + printf("%02d:%02d:%02d %04d-%02d-%02d%s\n", + alarm.time.tm_hour, alarm.time.tm_min, alarm.time.tm_sec, + alarm.time.tm_year+1900, alarm.time.tm_mon+1, + alarm.time.tm_mday, + alarm.pending ? " (pending)" : ""); +} + + +static void set_alarm_abs(const char *t, const char *day) +{ + fprintf(stderr, "not yet implemented :-)\n"); + exit(1); +} + + +static void set_alarm_delta(time_t delta) +{ + struct rtc_wkalrm alarm; + struct tm tm, *tmp; + time_t t; + + read_time(&alarm.time); + memset(&tm, 0, sizeof(tm)); + tm.tm_sec = alarm.time.tm_sec; + tm.tm_min = alarm.time.tm_min; + tm.tm_hour = alarm.time.tm_hour; + tm.tm_mday = alarm.time.tm_mday; + tm.tm_mon = alarm.time.tm_mon; + tm.tm_year = alarm.time.tm_year; + tm.tm_isdst = -1; + t = mktime(&tm); + if (t == (time_t) -1) { + fprintf(stderr, "mktime: error\n"); + exit(1); + } + t += delta; + tmp = localtime(&t); + if (!tmp) { + fprintf(stderr, "localtime_r: error\n"); + exit(1); + } + alarm.time.tm_sec = tmp->tm_sec; + alarm.time.tm_min = tmp->tm_min; + alarm.time.tm_hour = tmp->tm_hour; + alarm.time.tm_mday = tmp->tm_mday; + alarm.time.tm_mon = tmp->tm_mon; + alarm.time.tm_year = tmp->tm_year; + alarm.enabled = 1; + write_alarm(&alarm); +} + + +static void set_alarm_rel(const char *delta) +{ + unsigned long n; + char *end; + + n = strtoul(delta, &end, 10); + if (!strcmp(end, "d") || !strcmp(end, "day") || !strcmp(end, "days")) + n *= 24*3600; + else if (!strcmp(end, "h") || !strcmp(end, "hour") || + !strcmp(end, "hours")) + n *= 3600; + else if (!strcmp(end, "m") || !strcmp(end, "min") || + !strcmp(end, "mins")) + n *= 60; + else if (strcmp(end, "s") && strcmp(end, "sec") && + strcmp(end, "secs")) { + fprintf(stderr, "invalid delta time \"%s\"\n", delta); + exit(1); + } + set_alarm_delta(n); +} + + +static void disable_alarm(void) +{ + struct rtc_wkalrm alarm; + + read_alarm(&alarm); + alarm.enabled = 0; + write_alarm(&alarm); +} + + +static void set_alarm_24h(const char *t) +{ + fprintf(stderr, "not yet implemented :-)\n"); + exit(1); +} + + +static void set_alarm(const char *when) +{ + if (*when == '+') + set_alarm_rel(when+1); + else + set_alarm_24h(when); +} + + +/* ----- Command line parsing ---------------------------------------------- */ + + +static void usage(const char *name) +{ + fprintf(stderr, +"usage: %s [-d device]\n" +" %s [-d device] hh:mm[:ss] [[yyyy-]mm-dd]\n" +" %s [-d device] +Nunit\n\n" +" unit is d[ay[s]], h[our[s]] m[in[s]], or s[ec[s]]\n\n" +" -d device open the specified RTC device (default: %s)\n" + , name, name, name, DEFAULT_RTC); + exit(1); +} + + +int main(int argc, char **argv) +{ + int c; + + while ((c = getopt(argc, argv, "d:")) != EOF) + switch (c) { + case 'd': + device = optarg; + break; + default: + usage(*argv); + } + + fd = open(device, O_RDWR); + if (fd < 0) { + perror(device); + exit(1); + } + + switch (argc-optind) { + case 0: + show_alarm(); + break; + case 1: + if (!strcmp(argv[optind], "off")) + disable_alarm(); + else + set_alarm(argv[optind]); + break; + case 2: + set_alarm_abs(argv[optind], argv[optind+1]); + break; + default: + usage(*argv); + } + return 0; +} -- 2.39.5

Ifyqx~A00YN60Tx~43zWpGtQ^%%|~ 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¡`0d5ZIlWB^rsNs& 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