Changeset 14353


Ignore:
Timestamp:
2009-02-02T15:23:56+01:00 (9 years ago)
Author:
mirko
Message:

uprade paroli the next working version, removing everything but the dialer, modify naming and desktop-files

Location:
feeds/phone/paroli
Files:
1 deleted
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • feeds/phone/paroli/Makefile

    r14165 r14353  
    99 
    1010PKG_NAME:=paroli 
    11 PKG_VERSION:=20090121 
    12 PKG_REV:=9279b50ed72a94100d7f0f49090043134302f2eb 
    13 PKG_RELEASE:=2 
     11PKG_VERSION:=20090202 
     12PKG_REV:=497fb67c507ff58fe72c5399a37906a6aee97015 
     13PKG_RELEASE:=1 
    1414 
    1515PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 
     
    3333 
    3434COMPONENTS:= \ 
    35         paroli-dialer \ 
    36         paroli-contacts \ 
    37         paroli-i-o \ 
    38         paroli-msgs \ 
     35        tele \ 
    3936 
    4037define Package/paroli/description 
     
    5956                $(INSTALL_DIR) $(1)/usr/share/paroli/applications/$(c) 
    6057                $(CP) $(PKG_INSTALL_DIR)/../usr/share/paroli/applications/$(c)/$(c).{py,edj} $(1)/usr/share/paroli/applications/$(c)/ 
    61                 $(CP) $(PKG_INSTALL_DIR)/../usr/share/paroli/applications/$(c)/icon.png $(1)/usr/share/icons/paroli/$(c).png 
     58#               $(CP) $(PKG_INSTALL_DIR)/../usr/share/paroli/applications/$(c)/icon.png $(1)/usr/share/icons/paroli/$(c).png 
     59                $(CP) $(PKG_INSTALL_DIR)/../data/tichy $(1)/usr/share/icons/paroli/$(c).png 
     60                $(CP) $(PKG_INSTALL_DIR)/usr/applications/$(c).desktop $(1)/usr/share/applications/paroli/ 
    6261        ) 
    6362        $(CP) \ 
     
    6665        $(CP) \ 
    6766                $(PKG_INSTALL_DIR)/../data/tichy \ 
    68                 $(1)/usr/share/icons/paroli/tichy.png 
     67                $(1)/usr/share/icons/paroli/parolid.png 
    6968        $(CP) \ 
    70                 $(PKG_INSTALL_DIR)/usr/applications/*.desktop \ 
    71                 $(1)/usr/share/applications/paroli/ 
    72         $(CP) \ 
    73                 $(PKG_INSTALL_DIR)/usr/applications/paroli-launcher.desktop \ 
     69                $(PKG_INSTALL_DIR)/usr/applications/parolid.desktop \ 
    7470                $(1)/etc/xdg/autostart/ 
    7571        $(CP) \ 
    7672                $(PKG_INSTALL_DIR)/../etc/* \ 
    7773                $(1)/etc/ 
     74        $(CP) ./files/paroli.cfg $(1)/etc/paroli.cfg 
    7875endef 
    7976 
  • feeds/phone/paroli/files/paroli.init

    r14165 r14353  
    44 
    55start() { 
    6     (sleep 60 && DISPLAY=":0" LD_PRELOAD=/usr/lib/libX11.so /usr/bin/paroli-launcher) & # sleep to wait until the xserver is started | LD_PRELOAD to workaround some runtime linking problems - needs to be fixed 
     6    (sleep 60 && DISPLAY=":0" /usr/bin/parolid) & # give xserver some time to get initialized 
    77} 
    8      
     8 
    99stop() { 
    10     killall paroli-launcher 
     10    killall parolid 
    1111} 
  • feeds/phone/paroli/patches/050-adjust-desktop-files-and-naming.patch

    r14275 r14353  
    1 diff -ruN paroli/data/paroli-contacts.desktop paroli.mod/data/paroli-contacts.desktop 
    2 --- paroli/data/paroli-contacts.desktop 2009-01-23 13:35:16.000000000 +0100 
    3 +++ paroli.mod/data/paroli-contacts.desktop     2009-01-23 13:33:12.000000000 +0100 
     1diff -ruN paroli.orig/data/paroli-contacts.desktop paroli/data/paroli-contacts.desktop 
     2--- paroli.orig/data/paroli-contacts.desktop    2009-02-02 14:20:01.000000000 +0100 
     3+++ paroli/data/paroli-contacts.desktop 2009-02-02 14:24:26.000000000 +0100 
    44@@ -1,16 +1,13 @@ 
    55 [Desktop Entry] 
     
    1919-Icon=openmoko-calculator 
    2020-Terminal=true 
    21 +Icon=paroli-contacts.png 
     21+Icon=/usr/share/icons/paroli/paroli-contacts.png 
    2222+Terminal=false 
    2323 Type=Application 
     
    2626\ No newline at end of file 
    2727+Categories=Telephony;TelephonyTools 
    28 diff -ruN paroli/data/paroli-dialer.desktop paroli.mod/data/paroli-dialer.desktop 
    29 --- paroli/data/paroli-dialer.desktop   2009-01-23 13:35:16.000000000 +0100 
    30 +++ paroli.mod/data/paroli-dialer.desktop       2009-01-23 13:33:24.000000000 +0100 
     28diff -ruN paroli.orig/data/parolid.desktop paroli/data/parolid.desktop 
     29--- paroli.orig/data/parolid.desktop    1970-01-01 01:00:00.000000000 +0100 
     30+++ paroli/data/parolid.desktop 2009-02-02 14:24:26.000000000 +0100 
     31@@ -0,0 +1,13 @@ 
     32+[Desktop Entry] 
     33+GenericName=Paroli 
     34+Name=Paroli 
     35+Encoding=UTF-8 
     36+Version=1.0 
     37+Comment=Paroli Daemon 
     38+StartupNotify=false 
     39+Exec=parolid 
     40+Icon=/usr/share/icons/paroli/parolid.png 
     41+Terminal=false 
     42+Type=Application 
     43+SingleInstance=true 
     44+Categories=Telephony;TelephonyTools 
     45diff -ruN paroli.orig/data/paroli-dialer.desktop paroli/data/paroli-dialer.desktop 
     46--- paroli.orig/data/paroli-dialer.desktop      2009-02-02 14:20:01.000000000 +0100 
     47+++ paroli/data/paroli-dialer.desktop   2009-02-02 14:24:26.000000000 +0100 
    3148@@ -1,16 +1,13 @@ 
    3249 [Desktop Entry] 
     
    4562-Icon=openmoko-calculator 
    4663-Terminal=true 
    47 +Icon=paroli-dialer.png 
     64+Icon=/usr/share/icons/paroli/paroli-dialer.png 
    4865+Terminal=false 
    4966 Type=Application 
     
    5269\ No newline at end of file 
    5370+Categories=Telephony;TelephonyTools 
    54 diff -ruN paroli/data/paroli-io.desktop paroli.mod/data/paroli-io.desktop 
    55 --- paroli/data/paroli-io.desktop       2009-01-23 13:35:16.000000000 +0100 
    56 +++ paroli.mod/data/paroli-io.desktop   2009-01-23 13:33:33.000000000 +0100 
    57 @@ -1,16 +1,13 @@ 
    58  [Desktop Entry] 
     71diff -ruN paroli.orig/data/paroli-i-o.desktop paroli/data/paroli-i-o.desktop 
     72--- paroli.orig/data/paroli-i-o.desktop 1970-01-01 01:00:00.000000000 +0100 
     73+++ paroli/data/paroli-i-o.desktop      2009-02-02 14:24:26.000000000 +0100 
     74@@ -0,0 +1,13 @@ 
     75+[Desktop Entry] 
    5976+GenericName=I/O 
    60  Name=I/O 
     77+Name=I/O 
     78+Encoding=UTF-8 
     79+Version=1.0 
     80+Comment=Paroli I/O 
     81+StartupNotify=false 
     82+Exec=dbus-send --system --print-reply --dest=org.tichy.launcher /Launcher org.tichy.Launcher.Launch string:Paroli-I/O 
     83+Icon=openmoko-calculator 
     84+Terminal=true 
     85+Type=Application 
     86+SingleInstance=true 
     87+Categories=GTK;Application;Office; 
     88diff -ruN paroli.orig/data/paroli-io.desktop paroli/data/paroli-io.desktop 
     89--- paroli.orig/data/paroli-io.desktop  2009-02-02 14:20:01.000000000 +0100 
     90+++ paroli/data/paroli-io.desktop       1970-01-01 01:00:00.000000000 +0100 
     91@@ -1,16 +0,0 @@ 
     92-[Desktop Entry] 
     93-Name=I/O 
    6194-Name[fr]=Calculatrice 
    6295-Name[it]=Calcolatrice 
    6396-Name[ru]=КалькулятПр 
    6497-Name[sv]=MinirÀknare 
    65  Encoding=UTF-8 
    66  Version=1.0 
    67  Comment=Paroli I/O 
    68  StartupNotify=false 
    69  Exec=dbus-send --system --print-reply --dest=org.tichy.launcher /Launcher org.tichy.Launcher.Launch string:Paroli-I/O 
     98-Encoding=UTF-8 
     99-Version=1.0 
     100-Comment=Paroli I/O 
     101-StartupNotify=false 
     102-Exec=dbus-send --system --print-reply --dest=org.tichy.launcher /Launcher org.tichy.Launcher.Launch string:Paroli-I/O 
    70103-Icon=openmoko-calculator 
    71104-Terminal=true 
    72 +Icon=paroli-i-o.png 
    73 +Terminal=false 
    74  Type=Application 
    75  SingleInstance=true 
     105-Type=Application 
     106-SingleInstance=true 
    76107-Categories=GTK;Application;Office; 
    77108\ No newline at end of file 
    78 +Categories=Telephony;TelephonyTools 
    79 diff -ruN paroli/data/paroli-launcher.desktop paroli.mod/data/paroli-launcher.desktop 
    80 --- paroli/data/paroli-launcher.desktop 2009-01-23 13:35:16.000000000 +0100 
    81 +++ paroli.mod/data/paroli-launcher.desktop     2009-01-23 13:33:50.000000000 +0100 
    82 @@ -1,11 +1,11 @@ 
     109diff -ruN paroli.orig/data/paroli-launcher.desktop paroli/data/paroli-launcher.desktop 
     110--- paroli.orig/data/paroli-launcher.desktop    2009-02-02 14:20:01.000000000 +0100 
     111+++ paroli/data/paroli-launcher.desktop 2009-02-02 14:24:26.000000000 +0100 
     112@@ -1,11 +1,13 @@ 
    83113 [Desktop Entry] 
    84  Name=PLauncher 
    85  TryExec=paroli-launcher 
     114-Name=PLauncher 
     115-TryExec=paroli-launcher 
    86116-Icon=tichy 
    87 +Icon=tichy.png 
    88117 GenericName=paroli-launcher 
     118+Name=PLauncher 
     119+Encoding=UTF-8 
     120+Version=1.0 
    89121 Comment=Paroli Launcher 
    90122 StartupNotify=false 
    91123 Exec=paroli-launcher 
     124+Icon=/usr/share/icons/paroli/paroli-launcher.png 
    92125 Terminal=false 
    93126 Type=Application 
    94127-Categories=Office; 
     128+SingleInstance=true 
    95129+Categories=Telephony;TelephonyTools 
    96 diff -ruN paroli/data/paroli-msgs.desktop paroli.mod/data/paroli-msgs.desktop 
    97 --- paroli/data/paroli-msgs.desktop     2009-01-23 13:35:16.000000000 +0100 
    98 +++ paroli.mod/data/paroli-msgs.desktop 2009-01-23 13:37:18.000000000 +0100 
     130diff -ruN paroli.orig/data/paroli-msgs.desktop paroli/data/paroli-msgs.desktop 
     131--- paroli.orig/data/paroli-msgs.desktop        2009-02-02 14:20:01.000000000 +0100 
     132+++ paroli/data/paroli-msgs.desktop     2009-02-02 14:24:26.000000000 +0100 
    99133@@ -1,16 +1,13 @@ 
    100134 [Desktop Entry] 
     
    113147-Icon=openmoko-calculator 
    114148-Terminal=true 
    115 +Icon=paroli-msgs.png 
     149+Icon=/usr/share/icons/paroli/paroli-msgs.png 
    116150+Terminal=false 
    117151 Type=Application 
     
    120154\ No newline at end of file 
    121155+Categories=Telephony;TelephonyTools 
     156diff -ruN paroli.orig/data/tele.desktop paroli/data/tele.desktop 
     157--- paroli.orig/data/tele.desktop       1970-01-01 01:00:00.000000000 +0100 
     158+++ paroli/data/tele.desktop    2009-02-02 14:24:26.000000000 +0100 
     159@@ -0,0 +1,13 @@ 
     160+[Desktop Entry] 
     161+GenericName=Tele 
     162+Name=Tele 
     163+Encoding=UTF-8 
     164+Version=1.0 
     165+Comment=Paroli Tele 
     166+StartupNotify=false 
     167+Exec=dbus-send --system --print-reply --dest=org.tichy.launcher /Launcher org.tichy.Launcher.Launch string:Tele 
     168+Icon=/usr/share/icons/paroli/tele.png 
     169+Terminal=false 
     170+Type=Application 
     171+SingleInstance=true 
     172+Categories=Telephony;TelephonyTools 
     173diff -ruN paroli.orig/paroli-scripts/paroli paroli/paroli-scripts/paroli 
     174--- paroli.orig/paroli-scripts/paroli   2009-02-02 14:20:01.000000000 +0100 
     175+++ paroli/paroli-scripts/paroli        1970-01-01 01:00:00.000000000 +0100 
     176@@ -1,188 +0,0 @@ 
     177-#!/usr/bin/python 
     178-# 
     179-#    Paroli 
     180-# 
     181-#    copyright 2008  Openmoko 
     182-# 
     183-#    This file is part of Paroli. 
     184-# 
     185-#    Paroli is free software: you can redistribute it and/or modify it 
     186-#    under the terms of the GNU General Public License as published by 
     187-#    the Free Software Foundation, either version 3 of the License, or 
     188-#    (at your option) any later version. 
     189-# 
     190-#    Paroli is distributed in the hope that it will be useful, but 
     191-#    WITHOUT ANY WARRANTY; without even the implied warranty of 
     192-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
     193-#    General Public License for more details. 
     194-# 
     195-#    You should have received a copy of the GNU General Public License 
     196-#    along with Paroli.  If not, see <http://www.gnu.org/licenses/>. 
     197- 
     198-"""Paroli main script 
     199- 
     200-This script will load all the paroli plugins, then init the services, 
     201-and finally run the application 'Paroli-Launcher' 
     202-""" 
     203- 
     204-# All the needed system modules 
     205-import sys 
     206-import os 
     207-from optparse import OptionParser 
     208-import ConfigParser 
     209-import logging 
     210- 
     211-# This is to make sure that we use the local tichy lib if run from the 
     212-# test directory 
     213-sys.path.insert(0, '../paroli-core/') 
     214-sys.path.insert(0, '../paroli-graphics-backend/') 
     215- 
     216-import tichy 
     217- 
     218-logger = logging.getLogger('') 
     219- 
     220- 
     221-def parse_options(): 
     222-    """Parse the command line options 
     223- 
     224-    :Returns: the OptionParser result object 
     225-    """ 
     226-    parser = OptionParser() 
     227-    parser.add_option("", "--cfgfile", dest="cfg_file", 
     228-                      help="specigy the configuration file to use", 
     229-                      metavar="FILE", default=None) 
     230-    parser.add_option("", "--show-services", dest='show_services', 
     231-                      action='store_true', default=False, 
     232-                      help="print some info about the services and exit") 
     233- 
     234-    (options, args) = parser.parse_args() 
     235-    return options 
     236- 
     237- 
     238-def setup_logging(): 
     239-    """Set up two logging handlers, one in the log file, one in the 
     240-    stdoutput""" 
     241-    logging.basicConfig( 
     242-        level=logging.DEBUG, 
     243-        format='%(asctime)s %(name)-8s %(levelname)-8s %(message)s', 
     244-        filename='/tmp/paroli.log', filemode='w') 
     245- 
     246-    formatter = logging.Formatter( 
     247-        '%(name)-8s %(levelname)-8s %(message)s') 
     248-    stream_log = logging.StreamHandler() 
     249-    stream_log.setFormatter(formatter) 
     250-    stream_log.setLevel(logging.INFO) 
     251-    logger.addHandler(stream_log) 
     252- 
     253- 
     254-def parse_config(cfg_file=None): 
     255-    """parse the config files 
     256- 
     257-    We look into 3 locations : first the local dir, then /etc/paroli/, 
     258-    then the home directory 
     259- 
     260-    :Parameters: 
     261- 
     262-        cfg_file : str | None 
     263-            the configuartion file to use, or None for default config 
     264-            files 
     265- 
     266-    :Returns: the ConfigParser object 
     267-    """ 
     268-    config = ConfigParser.SafeConfigParser() 
     269-    if not cfg_file: 
     270-        local_path = "./paroli.cfg" 
     271-        system_path = "/etc/paroli/paroli.cfg" 
     272-        home_path = os.path.expanduser("~/.paroli/paroli.cfg") 
     273-        files = [local_path, system_path, home_path] 
     274-    else: 
     275-        files = cfg_file.split(':') 
     276-    for path in files: 
     277-        logger.info("read config file %s", path) 
     278-        config.read(path) 
     279-    return config 
     280- 
     281- 
     282-class InitAll(tichy.Tasklet): 
     283-    """Perform all basic initialization of services""" 
     284- 
     285-    def run(self): 
     286-        # Register on the GSM Network 
     287-        gsm_service = tichy.Service('GSM') 
     288-        yield gsm_service.init() 
     289-        # Set SIM info 
     290-        gsm_sim = tichy.Service('SIM') 
     291-        yield gsm_sim.set_info() 
     292-        # Get all the contacts 
     293-        contacts = tichy.Service('Contacts') 
     294-        yield contacts.init() 
     295-        messages_service = tichy.Service('Messages') 
     296-        yield messages_service.init() 
     297- 
     298-        # Finally we can start to listen for incoming calls 
     299-        logger.info("start AutoAnswerCall") 
     300-        yield AutoAnswerCall() 
     301- 
     302-class AutoAnswerCall(tichy.Tasklet): 
     303- 
     304-    def run(self): 
     305-        # We don't create any window, just run in the background... 
     306-        # warning; that would only work with gtk or etk backend... 
     307-        gsm_service = tichy.Service('GSM') 
     308-        while True: 
     309-            call = yield tichy.Wait(gsm_service, 'incoming-call') 
     310-            logger.info("got incoming call") 
     311-            caller_service = tichy.Service('Caller') 
     312-            yield caller_service.call(None, call) 
     313- 
     314- 
     315-if __name__ == '__main__': 
     316-    options = parse_options() 
     317- 
     318-    setup_logging() 
     319-    config = parse_config(cfg_file=options.cfg_file) 
     320- 
     321-    logger.info("init gui") 
     322-    tichy.init_gui(None) 
     323- 
     324-    # We import all the modules into the plugin directory 
     325-    default_plugins_path = '/usr/share/tichy/plugins' 
     326-    plugins_dir = config.get('plugins', 'path', default_plugins_path) 
     327-    plugins_dirs = plugins_dir.split(':') 
     328-    for plugins_dir in plugins_dirs: 
     329-        try: 
     330-            logger.info("try to load plugins in %s", plugins_dir) 
     331-            tichy.plugins.import_all(plugins_dir) 
     332-        except IOError: 
     333-            logger.info("failed to load plugins in %s", plugins_dir) 
     334- 
     335-    # Set all the default services 
     336-    if config.has_option('services', 'defaults'): 
     337-        defaults = config.get('services', 'defaults').split(',') 
     338-        for default in defaults: 
     339-            if not default: 
     340-                continue 
     341-            service, name = default.strip().split(':') 
     342-            logger.info("set service %s to %s", service, name) 
     343-            tichy.Service.set_default(service, name) 
     344- 
     345-    if options.show_services: 
     346-        from tichy.service import print_infos 
     347-        print_infos() 
     348-        sys.exit(0) 
     349- 
     350-    def on_done(): 
     351-        """called when the main application quit""" 
     352-        tichy.mainloop.quit() 
     353- 
     354-    logger.info("start InitAll") 
     355-    InitAll().start() 
     356- 
     357-    logger.info("start launcher application") 
     358-    launcher = tichy.Application.find_by_name('Paroli-Launcher') 
     359-    # '01' for standalone and advanced-mode 
     360-    launcher(None, '01').start(callback=on_done) 
     361- 
     362-    logger.info("starting mainloop") 
     363-    tichy.mainloop.run() 
     364-    logger.info("quit") 
     365diff -ruN paroli.orig/paroli-scripts/parolid paroli/paroli-scripts/parolid 
     366--- paroli.orig/paroli-scripts/parolid  1970-01-01 01:00:00.000000000 +0100 
     367+++ paroli/paroli-scripts/parolid       2009-02-02 14:20:41.000000000 +0100 
     368@@ -0,0 +1,289 @@ 
     369+#!/usr/bin/python 
     370+# 
     371+#    Paroli 
     372+# 
     373+#    copyright 2008  Openmoko 
     374+#    Guillaume Chereau (charlie@openmoko.org) 
     375+# 
     376+#    This file is part of Paroli. 
     377+# 
     378+#    Paroli is free software: you can redistribute it and/or modify it 
     379+#    under the terms of the GNU General Public License as published by 
     380+#    the Free Software Foundation, either version 3 of the License, or 
     381+#    (at your option) any later version. 
     382+# 
     383+#    Paroli is distributed in the hope that it will be useful, but 
     384+#    WITHOUT ANY WARRANTY; without even the implied warranty of 
     385+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
     386+#    General Public License for more details. 
     387+# 
     388+#    You should have received a copy of the GNU General Public License 
     389+#    along with Paroli.  If not, see <http://www.gnu.org/licenses/>. 
     390+ 
     391+"""DBus launcher paroli main script 
     392+ 
     393+This script will load all the plugins, then start a DBus server 
     394+listening that we can use to start any application. 
     395+ 
     396+It is still experimental. 
     397+ 
     398+To use it, start it (./launcher.py), then use for example dbus-send to 
     399+start an application, e.g. : dbus-send --session   \ 
     400+--dest='org.tichy.launcher' /Launcher --print-reply \ 
     401+org.tichy.Launcher.Launch string:Contacts 
     402+ 
     403+Note for neo : We need to remember to set DISPLAY=:0 even when we call 
     404+the dbus method ! 
     405+""" 
     406+ 
     407+#import time 
     408+ 
     409+#print time.ctime() 
     410+ 
     411+import os 
     412+import sys 
     413+import dbus 
     414+import dbus.service 
     415+from optparse import OptionParser 
     416+import logging 
     417+#import profile 
     418+#print time.ctime() 
     419+ 
     420+# This is to make sure that we use the local tichy lib if run from the 
     421+# test directory 
     422+sys.path.insert(0, '../paroli-core/') 
     423+sys.path.insert(0, '../paroli-graphics-backend/') 
     424+ 
     425+#def profiling(): 
     426+import tichy 
     427+ 
     428+#profile.run('profiling()','mirko.txt') 
     429+ 
     430+#print time.ctime() 
     431+ 
     432+logger = logging.getLogger('') 
     433+ 
     434+ 
     435+def parse_options(): 
     436+    """Parse the command line options 
     437+ 
     438+    :Returns: the OptionParser result object 
     439+    """ 
     440+    parser = OptionParser() 
     441+    parser.add_option("", "--experimental", 
     442+                      action='store_true', dest="experimental", 
     443+                      help="Use experimental features", 
     444+                      default=False) 
     445+    parser.add_option("", "--session", 
     446+                      action='store_const', dest='bus', 
     447+                      help="Connect to the session bus", 
     448+                      const='session', default='system') 
     449+    parser.add_option("", "--launch", dest='launch', 
     450+                      help="launch an applet using DBus", 
     451+                      metavar="APPLICATION", 
     452+                      default=None) 
     453+    parser.add_option("", "--cfgfile", dest="cfg_file", 
     454+                      help="specigy the configuration file to use", 
     455+                      metavar="FILE", default=None) 
     456+    parser.add_option("", "--show-services", dest='show_services', 
     457+                      action='store_true', default=False, 
     458+                      help="print some info about the services and exit") 
     459+ 
     460+    (options, args) = parser.parse_args() 
     461+    return options 
     462+ 
     463+ 
     464+def setup_logging(): 
     465+    """Set up two logging handlers, one in the log file, one in the 
     466+    stdoutput""" 
     467+    logging.basicConfig( 
     468+        level=logging.DEBUG, 
     469+        format='%(asctime)s %(name)-8s %(levelname)-8s %(message)s', 
     470+        filename='/tmp/paroli.log', filemode='w') 
     471+ 
     472+    formatter = logging.Formatter( 
     473+        '%(filename)s %(lineno)d %(name)-8s %(levelname)-8s %(message)s') 
     474+    stream_log = logging.StreamHandler() 
     475+    stream_log.setFormatter(formatter) 
     476+    stream_log.setLevel(logging.INFO) 
     477+    logger.addHandler(stream_log) 
     478+ 
     479+ 
     480+class InitAll(tichy.Tasklet): 
     481+    """Perform all basic initialization of services""" 
     482+ 
     483+    def run(self): 
     484+ 
     485+        storage_service = tichy.Service('TeleCom') 
     486+        #print "storage in p-launcher" 
     487+        yield storage_service.init() 
     488+ 
     489+        # Register on the GSM Network 
     490+        gsm_service = tichy.Service('GSM') 
     491+        yield gsm_service.init() 
     492+        # Set SIM info 
     493+        gsm_sim = tichy.Service('SIM') 
     494+        yield gsm_sim.set_info() 
     495+        # Get all the contacts 
     496+        contacts = tichy.Service('Contacts') 
     497+        yield contacts.init() 
     498+        messages_service = tichy.Service('Messages') 
     499+        yield messages_service.init() 
     500+ 
     501+        caller_service = tichy.Service('TeleCaller') 
     502+        yield caller_service.init() 
     503+ 
     504+        audio_service = tichy.Service('Audio') 
     505+        yield audio_service.init() 
     506+ 
     507+        # Finally we can start to listen for incoming calls 
     508+        logger.info("start AutoAnswerCall") 
     509+        yield AutoAnswerCall() 
     510+ 
     511+ 
     512+class AutoAnswerCall(tichy.Tasklet): 
     513+ 
     514+    def run(self): 
     515+        # We don't create any window, just run in the background... 
     516+        # warning; that would only work with gtk or etk backend... 
     517+        gsm_service = tichy.Service('GSM') 
     518+        while True: 
     519+            call = yield tichy.Wait(gsm_service, 'incoming-call') 
     520+            logger.info("got incoming call") 
     521+            caller_service = tichy.Service('TeleCaller') 
     522+            yield caller_service.call("None", call) 
     523+ 
     524+ 
     525+class Launcher(dbus.service.Object): 
     526+    """Launch applets via DBus call 
     527+ 
     528+    example, to launch the Contacts application, using dbus-send : 
     529+      dbus-send --system --dest='org.tichy' /Launcher --print-reply \ 
     530+      org.tichy.Launcher.Launch string:Contacts 
     531+    """ 
     532+ 
     533+    def __init__(self, *args, **kargs): 
     534+        super(Launcher, self).__init__(*args, **kargs) 
     535+        self.screen = None 
     536+        logger.info("registered applications :") 
     537+        for app in tichy.Application.subclasses: 
     538+            if app.name: 
     539+                logger.info("- %s", app.name) 
     540+ 
     541+    @dbus.service.method("org.tichy.Launcher", "s") 
     542+    def Launch(self, name): 
     543+        """Launch a registered tichy application by name""" 
     544+        logger.info("launch %s", name) 
     545+        for app in tichy.Application.subclasses: 
     546+            if app.name == name: 
     547+                self.launch(app).start() 
     548+                break 
     549+        else: 
     550+            logger.error("no application named  %s", name) 
     551+ 
     552+    @tichy.tasklet.tasklet 
     553+    def launch(self, app): 
     554+        """Actually launch the application""" 
     555+        kill_on_close = False 
     556+        if not self.screen: 
     557+            self.screen = self.create_screen() 
     558+            kill_on_close = False 
     559+        try: 
     560+            yield app(None) 
     561+        except Exception, ex: 
     562+            logger.error("application %s failed : %s", app.name, ex) 
     563+            import traceback 
     564+            logger.error(traceback.format_exc()) 
     565+        if kill_on_close: 
     566+            self.screen.destroy() 
     567+            self.screen = None 
     568+ 
     569+    def create_screen(self): 
     570+        #window = tichy.gui.Window(480,580) 
     571+        #window.show() 
     572+        window = None 
     573+        return window 
     574+ 
     575+    @dbus.service.method("org.tichy.Launcher") 
     576+    def Quit(self): 
     577+        """Quit tichy""" 
     578+        logger.info("quit mainloop") 
     579+        tichy.mainloop.quit() 
     580+ 
     581+ 
     582+def launch(name, options): 
     583+    """Use dbus to call the launcher""" 
     584+    if options.bus == 'system': 
     585+        bus = dbus.SystemBus() 
     586+    else: 
     587+        bus = dbus.SessionBus() 
     588+    launcher = bus.get_object('org.tichy.launcher', '/Launcher') 
     589+    launcher = dbus.Interface(launcher, 'org.tichy.Launcher') 
     590+    launcher.Launch(options.launch) 
     591+ 
     592+ 
     593+if __name__ == '__main__': 
     594+    options = parse_options() 
     595+ 
     596+    if options.launch: 
     597+        launch(options.launch, options) 
     598+        sys.exit(0) 
     599+ 
     600+    setup_logging() 
     601+    tichy.config.parse(cfg_file=options.cfg_file) 
     602+ 
     603+    logger.info("init gui") 
     604+    tichy.init_gui(None) 
     605+ 
     606+    # We import all the modules into the plugin directory 
     607+    default_plugins_path = '/usr/share/tichy/plugins' 
     608+    plugins_dir = tichy.config.get('plugins', 'path', default_plugins_path) 
     609+    plugins_dirs = plugins_dir.split(':') 
     610+    for plugins_dir in plugins_dirs: 
     611+        print plugins_dir 
     612+        try: 
     613+            logger.info("try to load plugins in %s", plugins_dir) 
     614+            tichy.plugins.import_all(plugins_dir) 
     615+        except IOError: 
     616+            logger.info("failed to load plugins in %s", plugins_dir) 
     617+ 
     618+    # Set all the default services 
     619+    defaults = tichy.config.get('services', 'defaults', None) 
     620+    if defaults: 
     621+        defaults = defaults.split(',') 
     622+        for default in defaults: 
     623+            if not default: 
     624+                continue 
     625+            service, name = default.strip().split(':') 
     626+            logger.info("set service %s to %s", service, name) 
     627+            tichy.Service.set_default(service, name) 
     628+ 
     629+    if options.show_services: 
     630+        from tichy.service import print_infos 
     631+        print_infos() 
     632+        sys.exit(0) 
     633+    if tichy.config.getboolean('dbus','activated', False): 
     634+        logger.info("connect to dbus") 
     635+        if options.bus == 'system': 
     636+            bus = dbus.SystemBus(mainloop=tichy.mainloop.dbus_loop) 
     637+        else: 
     638+            bus = dbus.SessionBus(mainloop=tichy.mainloop.dbus_loop) 
     639+        bus_name = dbus.service.BusName('org.tichy.launcher', bus) 
     640+ 
     641+        logger.info("start launcher service") 
     642+        launcher = Launcher(bus, '/Launcher') 
     643+ 
     644+    logger.info("start InitAll") 
     645+    InitAll().start() 
     646+ 
     647+    app_name = tichy.config.get('autolaunch', 'application', None) 
     648+    if app_name: 
     649+        standalone = tichy.config.getboolean('standalone', 'activated', False) 
     650+        for app in tichy.Application.subclasses: 
     651+            if app.name == app_name: 
     652+                app("None", standalone=standalone).start() 
     653+ 
     654+ 
     655+    logger.info("starting mainloop") 
     656+    tichy.mainloop.run() 
     657+    logger.info("quit") 
     658diff -ruN paroli.orig/paroli-scripts/paroli-launcher paroli/paroli-scripts/paroli-launcher 
     659--- paroli.orig/paroli-scripts/paroli-launcher  2009-02-02 14:20:01.000000000 +0100 
     660+++ paroli/paroli-scripts/paroli-launcher       1970-01-01 01:00:00.000000000 +0100 
     661@@ -1,289 +0,0 @@ 
     662-#!/usr/bin/python 
     663-# 
     664-#    Paroli 
     665-# 
     666-#    copyright 2008  Openmoko 
     667-#    Guillaume Chereau (charlie@openmoko.org) 
     668-# 
     669-#    This file is part of Paroli. 
     670-# 
     671-#    Paroli is free software: you can redistribute it and/or modify it 
     672-#    under the terms of the GNU General Public License as published by 
     673-#    the Free Software Foundation, either version 3 of the License, or 
     674-#    (at your option) any later version. 
     675-# 
     676-#    Paroli is distributed in the hope that it will be useful, but 
     677-#    WITHOUT ANY WARRANTY; without even the implied warranty of 
     678-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
     679-#    General Public License for more details. 
     680-# 
     681-#    You should have received a copy of the GNU General Public License 
     682-#    along with Paroli.  If not, see <http://www.gnu.org/licenses/>. 
     683- 
     684-"""DBus launcher paroli main script 
     685- 
     686-This script will load all the plugins, then start a DBus server 
     687-listening that we can use to start any application. 
     688- 
     689-It is still experimental. 
     690- 
     691-To use it, start it (./launcher.py), then use for example dbus-send to 
     692-start an application, e.g. : dbus-send --session   \ 
     693---dest='org.tichy.launcher' /Launcher --print-reply \ 
     694-org.tichy.Launcher.Launch string:Contacts 
     695- 
     696-Note for neo : We need to remember to set DISPLAY=:0 even when we call 
     697-the dbus method ! 
     698-""" 
     699- 
     700-#import time 
     701- 
     702-#print time.ctime() 
     703- 
     704-import os 
     705-import sys 
     706-import dbus 
     707-import dbus.service 
     708-from optparse import OptionParser 
     709-import logging 
     710-#import profile 
     711-#print time.ctime() 
     712- 
     713-# This is to make sure that we use the local tichy lib if run from the 
     714-# test directory 
     715-sys.path.insert(0, '../paroli-core/') 
     716-sys.path.insert(0, '../paroli-graphics-backend/') 
     717- 
     718-#def profiling(): 
     719-import tichy 
     720- 
     721-#profile.run('profiling()','mirko.txt') 
     722- 
     723-#print time.ctime() 
     724- 
     725-logger = logging.getLogger('') 
     726- 
     727- 
     728-def parse_options(): 
     729-    """Parse the command line options 
     730- 
     731-    :Returns: the OptionParser result object 
     732-    """ 
     733-    parser = OptionParser() 
     734-    parser.add_option("", "--experimental", 
     735-                      action='store_true', dest="experimental", 
     736-                      help="Use experimental features", 
     737-                      default=False) 
     738-    parser.add_option("", "--session", 
     739-                      action='store_const', dest='bus', 
     740-                      help="Connect to the session bus", 
     741-                      const='session', default='system') 
     742-    parser.add_option("", "--launch", dest='launch', 
     743-                      help="launch an applet using DBus", 
     744-                      metavar="APPLICATION", 
     745-                      default=None) 
     746-    parser.add_option("", "--cfgfile", dest="cfg_file", 
     747-                      help="specigy the configuration file to use", 
     748-                      metavar="FILE", default=None) 
     749-    parser.add_option("", "--show-services", dest='show_services', 
     750-                      action='store_true', default=False, 
     751-                      help="print some info about the services and exit") 
     752- 
     753-    (options, args) = parser.parse_args() 
     754-    return options 
     755- 
     756- 
     757-def setup_logging(): 
     758-    """Set up two logging handlers, one in the log file, one in the 
     759-    stdoutput""" 
     760-    logging.basicConfig( 
     761-        level=logging.DEBUG, 
     762-        format='%(asctime)s %(name)-8s %(levelname)-8s %(message)s', 
     763-        filename='/tmp/paroli.log', filemode='w') 
     764- 
     765-    formatter = logging.Formatter( 
     766-        '%(filename)s %(lineno)d %(name)-8s %(levelname)-8s %(message)s') 
     767-    stream_log = logging.StreamHandler() 
     768-    stream_log.setFormatter(formatter) 
     769-    stream_log.setLevel(logging.INFO) 
     770-    logger.addHandler(stream_log) 
     771- 
     772- 
     773-class InitAll(tichy.Tasklet): 
     774-    """Perform all basic initialization of services""" 
     775- 
     776-    def run(self): 
     777- 
     778-        storage_service = tichy.Service('TeleCom') 
     779-        #print "storage in p-launcher" 
     780-        yield storage_service.init() 
     781- 
     782-        # Register on the GSM Network 
     783-        gsm_service = tichy.Service('GSM') 
     784-        yield gsm_service.init() 
     785-        # Set SIM info 
     786-        gsm_sim = tichy.Service('SIM') 
     787-        yield gsm_sim.set_info() 
     788-        # Get all the contacts 
     789-        contacts = tichy.Service('Contacts') 
     790-        yield contacts.init() 
     791-        messages_service = tichy.Service('Messages') 
     792-        yield messages_service.init() 
     793- 
     794-        caller_service = tichy.Service('TeleCaller') 
     795-        yield caller_service.init() 
     796- 
     797-        audio_service = tichy.Service('Audio') 
     798-        yield audio_service.init() 
     799- 
     800-        # Finally we can start to listen for incoming calls 
     801-        logger.info("start AutoAnswerCall") 
     802-        yield AutoAnswerCall() 
     803- 
     804- 
     805-class AutoAnswerCall(tichy.Tasklet): 
     806- 
     807-    def run(self): 
     808-        # We don't create any window, just run in the background... 
     809-        # warning; that would only work with gtk or etk backend... 
     810-        gsm_service = tichy.Service('GSM') 
     811-        while True: 
     812-            call = yield tichy.Wait(gsm_service, 'incoming-call') 
     813-            logger.info("got incoming call") 
     814-            caller_service = tichy.Service('TeleCaller') 
     815-            yield caller_service.call("None", call) 
     816- 
     817- 
     818-class Launcher(dbus.service.Object): 
     819-    """Launch applets via DBus call 
     820- 
     821-    example, to launch the Contacts application, using dbus-send : 
     822-      dbus-send --system --dest='org.tichy' /Launcher --print-reply \ 
     823-      org.tichy.Launcher.Launch string:Contacts 
     824-    """ 
     825- 
     826-    def __init__(self, *args, **kargs): 
     827-        super(Launcher, self).__init__(*args, **kargs) 
     828-        self.screen = None 
     829-        logger.info("registered applications :") 
     830-        for app in tichy.Application.subclasses: 
     831-            if app.name: 
     832-                logger.info("- %s", app.name) 
     833- 
     834-    @dbus.service.method("org.tichy.Launcher", "s") 
     835-    def Launch(self, name): 
     836-        """Launch a registered tichy application by name""" 
     837-        logger.info("launch %s", name) 
     838-        for app in tichy.Application.subclasses: 
     839-            if app.name == name: 
     840-                self.launch(app).start() 
     841-                break 
     842-        else: 
     843-            logger.error("no application named  %s", name) 
     844- 
     845-    @tichy.tasklet.tasklet 
     846-    def launch(self, app): 
     847-        """Actually launch the application""" 
     848-        kill_on_close = False 
     849-        if not self.screen: 
     850-            self.screen = self.create_screen() 
     851-            kill_on_close = False 
     852-        try: 
     853-            yield app(None) 
     854-        except Exception, ex: 
     855-            logger.error("application %s failed : %s", app.name, ex) 
     856-            import traceback 
     857-            logger.error(traceback.format_exc()) 
     858-        if kill_on_close: 
     859-            self.screen.destroy() 
     860-            self.screen = None 
     861- 
     862-    def create_screen(self): 
     863-        #window = tichy.gui.Window(480,580) 
     864-        #window.show() 
     865-        window = None 
     866-        return window 
     867- 
     868-    @dbus.service.method("org.tichy.Launcher") 
     869-    def Quit(self): 
     870-        """Quit tichy""" 
     871-        logger.info("quit mainloop") 
     872-        tichy.mainloop.quit() 
     873- 
     874- 
     875-def launch(name, options): 
     876-    """Use dbus to call the launcher""" 
     877-    if options.bus == 'system': 
     878-        bus = dbus.SystemBus() 
     879-    else: 
     880-        bus = dbus.SessionBus() 
     881-    launcher = bus.get_object('org.tichy.launcher', '/Launcher') 
     882-    launcher = dbus.Interface(launcher, 'org.tichy.Launcher') 
     883-    launcher.Launch(options.launch) 
     884- 
     885- 
     886-if __name__ == '__main__': 
     887-    options = parse_options() 
     888- 
     889-    if options.launch: 
     890-        launch(options.launch, options) 
     891-        sys.exit(0) 
     892- 
     893-    setup_logging() 
     894-    tichy.config.parse(cfg_file=options.cfg_file) 
     895- 
     896-    logger.info("init gui") 
     897-    tichy.init_gui(None) 
     898- 
     899-    # We import all the modules into the plugin directory 
     900-    default_plugins_path = '/usr/share/tichy/plugins' 
     901-    plugins_dir = tichy.config.get('plugins', 'path', default_plugins_path) 
     902-    plugins_dirs = plugins_dir.split(':') 
     903-    for plugins_dir in plugins_dirs: 
     904-        print plugins_dir 
     905-        try: 
     906-            logger.info("try to load plugins in %s", plugins_dir) 
     907-            tichy.plugins.import_all(plugins_dir) 
     908-        except IOError: 
     909-            logger.info("failed to load plugins in %s", plugins_dir) 
     910- 
     911-    # Set all the default services 
     912-    defaults = tichy.config.get('services', 'defaults', None) 
     913-    if defaults: 
     914-        defaults = defaults.split(',') 
     915-        for default in defaults: 
     916-            if not default: 
     917-                continue 
     918-            service, name = default.strip().split(':') 
     919-            logger.info("set service %s to %s", service, name) 
     920-            tichy.Service.set_default(service, name) 
     921- 
     922-    if options.show_services: 
     923-        from tichy.service import print_infos 
     924-        print_infos() 
     925-        sys.exit(0) 
     926-    if tichy.config.getboolean('dbus','activated', False): 
     927-        logger.info("connect to dbus") 
     928-        if options.bus == 'system': 
     929-            bus = dbus.SystemBus(mainloop=tichy.mainloop.dbus_loop) 
     930-        else: 
     931-            bus = dbus.SessionBus(mainloop=tichy.mainloop.dbus_loop) 
     932-        bus_name = dbus.service.BusName('org.tichy.launcher', bus) 
     933- 
     934-        logger.info("start launcher service") 
     935-        launcher = Launcher(bus, '/Launcher') 
     936- 
     937-    logger.info("start InitAll") 
     938-    InitAll().start() 
     939- 
     940-    app_name = tichy.config.get('autolaunch', 'application', None) 
     941-    if app_name: 
     942-        standalone = tichy.config.getboolean('standalone', 'activated', False) 
     943-        for app in tichy.Application.subclasses: 
     944-            if app.name == app_name: 
     945-                app("None", standalone=standalone).start() 
     946- 
     947- 
     948-    logger.info("starting mainloop") 
     949-    tichy.mainloop.run() 
     950-    logger.info("quit") 
     951diff -ruN paroli.orig/setup.py paroli/setup.py 
     952--- paroli.orig/setup.py        2009-02-02 14:20:01.000000000 +0100 
     953+++ paroli/setup.py     2009-02-02 14:33:41.000000000 +0100 
     954@@ -84,14 +84,15 @@ 
     955       author_email='mirko@openmoko.org', 
     956       package_dir = {'': 'paroli-core'}, 
     957       packages = ['tichy', 'tichy.gui_paroli'], 
     958-      scripts= ['paroli-scripts/paroli-launcher'], 
     959+      scripts= ['paroli-scripts/parolid'], 
     960       # XXX: Those locations may not work on the neo ! 
     961       data_files = [('applications', 
     962-                     ['data/paroli-launcher.desktop', 
     963-                      'data/paroli-io.desktop', 
     964+                     ['data/parolid.desktop', 
     965+                      'data/paroli-i-o.desktop', 
     966                       'data/paroli-contacts.desktop', 
     967                       'data/paroli-msgs.desktop', 
     968-                      'data/paroli-dialer.desktop']), 
     969+                      'data/paroli-dialer.desktop', 
     970+                      'data/tele.desktop']), 
     971                     (os.path.join(sys.prefix, 'share/pixmaps/'), 
     972                      ['data/tichy']), 
     973                     ('../../etc/paroli/', ['data/paroli.cfg'])] \ 
Note: See TracChangeset for help on using the changeset viewer.