#!/usr/bin/python
import dbus
import dbus.glib
import gobject
import time
import os
import sys

class UI:
    def __init__(self, loop):
        self.loop = loop

        bus = dbus.SystemBus()
        self.gsm_device_obj = bus.get_object("org.freesmartphone.ogsmd", "/org/freesmartphone/GSM/Device")
        self.gsm_device_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Device')
        self.gsm_sim_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.SIM')
        self.gsm_network_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Network')
        self.gsm_call_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Call')
        self.gsm_debug_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Debug')
        
        prev_cmd = ""
        while True:
            try:
                cmd = raw_input()
            except:
                break
            if cmd in ["quit", "exit"]:
                break
            if prev_cmd != "" and cmd == "":
                cmd = prev_cmd
            prev_cmd = cmd
            cmd += "\r\n"
            try:
                print("sending %s" % repr(cmd))
                ret = self.gsm_debug_iface.DebugCommand(cmd)
                print(repr(ret))
                for r in ret:
                    print("%s" % r)
            except:
                print("failed, got exception")
        self.loop.quit()
if __name__ == "__main__":
    loop = gobject.MainLoop()
    UI(loop)
    loop.run()
