disable DeleteAllSms

git-svn-id: http://www.neo1973-germany.de/svn@228 46df4e5c-bc4e-4628-a0fc-830ba316316d
This commit is contained in:
fgau 2009-01-07 19:18:36 +00:00
parent ee5c243203
commit 34ce50a97c
5 changed files with 449 additions and 11 deletions

51
epydial/audio_screen.py Normal file
View file

@ -0,0 +1,51 @@
#!/usr/bin/env python2.5
# -*- coding: utf-8 -*-
__author__ = "Soeren Apel (abraxa@dar-clan.de), Frank Gau (fgau@gau-net.de), Thomas Gstaedner (thomas (a) gstaedtner (.) net)"
__version__ = "prototype"
__copyright__ = "Copyright (c) 2008"
__license__ = "GPL3"
from epydial import *
class AudioScreen(EdjeGroup):
toggle = 0
def __init__(self, screen_manager):
EdjeGroup.__init__(self, screen_manager, AUDIO_SCREEN_NAME)
PyneoController.get_mp3_tags()
def register_pyneo_callbacks(self):
PyneoController.register_callback("on_get_mp3_tags", self.on_get_mp3_tags)
def on_get_mp3_tags(self, status):
self.part_text_set("mp3_tags", "artist: %s<br>album: %s<br>title: %s" % (status['artist'], status['album'], status['title']))
@edje.decorators.signal_callback("music_player_send", "*")
def on_edje_signal_audio_screen_triggered(self, emission, source):
# if source == "button_play_pause":
# self.signal_emit("button_play_pause", " ")
# PyneoController.pause_music()
# PyneoController.show_dialer_screen()
if source == "play_pause":
if self.toggle == 0:
self.signal_emit("key1", "")
PyneoController.play_music()
self.toggle = 1
elif self.toggle == 1:
self.signal_emit("key2", "")
PyneoController.pause_music()
self.toggle = 0
PyneoController.get_mp3_tags()
if source == "stop":
self.signal_emit("key2", "")
PyneoController.pause_music()
self.toggle = 0
PyneoController.stop_music()
PyneoController.get_mp3_tags()
if source == "track_right":
PyneoController.next_music()
PyneoController.get_mp3_tags()
if source == "track_left":
PyneoController.previous_music()
PyneoController.get_mp3_tags()
print 'source: ', source

View file

@ -0,0 +1,346 @@
// audio_screen.edc
// this is a theme for epydial, a pyneo dialer and more
data {
item: "author" "thomasg [thomas (a) gstaedtner (.) net] , fgau (fgau@gau-net.de)";
item: "version" "prototype";
item: "name" "epydial_blackwhite";
}
fonts {
font: "Vera.ttf" "Vera";
font: "VeraBd.ttf" "VeraBd";
}
images {
image: "bg.png" COMP;
image: "play.png" COMP;
image: "pause.png" COMP;
image: "track_left.png" COMP;
image: "track_right.png" COMP;
image: "stop.png" COMP;
}
color_classes {
color_class {
name: "unvisible";
color: 0 0 0 0;
color2: 128 128 128 255;
color3: 128 128 128 255;
}
color_class {
name: "button_inactive";
color: 255 255 255 128;
color2: 128 128 128 255;
color3: 128 128 128 255;;
}
color_class {
name: "scale";
color: 255 255 255 64;
color2: 0 0 0 255;
color3: 0 0 0 255;
}
}
styles {
style {
name: "textblock_style";
base: "font=Vera font_size=20 align=left valign=top color=#fff";
tag: "h1" "+ font_size=28";
tag: "/h1" "- \n";
tag: "p" "+";
tag: "/p" "- \n";
tag: "em" "+ style=underline underline_color=#000A underline2_color=#0005";
tag: "/em" "-";
tag: "br" "\n";
tag: "c1" "+ color=#fff";
tag: "/c1" "-";
tag: "c2" "+ color=#f3f";
tag: "/c2" "-";
}
}
#define key(n, x, y)\
part {\
name: n;\
type: IMAGE;\
description {\
image {\
normal: n".png";\
}\
rel1 {\
to: pad;\
relative: (x+1)/4-1/8 (y+1)/5-1/10;\
offset: -50 -50;\
}\
rel2 {\
to: pad;\
relative: (x+1)/4-1/8 (y+1)/5-1/10;\
offset: 50 50;\
}\
}\
}\
program { \
name: "button_"n"_signal_emit"; \
signal: "mouse,down,*"; \
source: n; \
action: SIGNAL_EMIT "music_player_send" n; \
} \
#define key_play_pause(n, n1, n2, x, y)\
part {\
name: n;\
type: IMAGE;\
description {\
state: "default" 0; \
image {\
normal: n1".png";\
}\
rel1 {\
to: pad;\
relative: (x+1)/4-1/8 (y+1)/5-1/10;\
offset: -50 -50;\
}\
rel2 {\
to: pad;\
relative: (x+1)/4-1/8 (y+1)/5-1/10;\
offset: 50 50;\
}\
}\
description {\
state: "default" 1; \
image {\
normal: n2".png";\
}\
rel1 {\
to: pad;\
relative: (x+1)/4-1/8 (y+1)/5-1/10;\
offset: -50 -50;\
}\
rel2 {\
to: pad;\
relative: (x+1)/4-1/8 (y+1)/5-1/10;\
offset: 50 50;\
}\
}\
}\
program { \
name: "button_"n"_signal_emit"; \
signal: "mouse,down,*"; \
source: n; \
action: SIGNAL_EMIT "music_player_send" n; \
} \
program { \
name: "press_key1"; \
signal: "key1"; \
action: STATE_SET "default" 1; \
target: n; \
} \
program { \
name: "press_key2"; \
signal: "key2"; \
action: STATE_SET "default" 0; \
target: n; \
} \
#define HBAR(barname, bordercolor, borderwidth, rel1x, rel1y, rel2x, rel2y, left_right_offset) \
part { \
name: "description_"barname; \
type: TEXT; \
mouse_events: 0; \
description { \
color_class: bordercolor; \
rel1 { relative: rel1x rel1y; }; \
rel2 { relative: rel2x rel2y; }; \
text { \
text: barname; \
font: "VeraBd"; \
size: 16; \
} \
} \
} \
part { \
name: "button_left_bg_"barname; \
type: RECT; \
description { \
state: "default" 0; \
color_class: "unvisible"; \
rel1 { relative: rel1x rel1y; offset: 0 0; }; \
rel2 { relative: rel2x/4 rel2y; offset: 0 0; }; \
} \
description { \
state: "default" 0.5; \
inherit: "default" 0; \
color_class: "unvisible"; \
rel1.offset: 0 -5; \
rel2.offset: 0 5; \
} \
description { \
state: "default" 1; \
inherit: "default" 0; \
} \
} \
part { \
name: "button_right_bg_"barname; \
type: RECT; \
description { \
state: "default" 0; \
color_class: "unvisible"; \
rel1 { relative: 1-rel2x/4 rel1y; offset: 0 0; }; \
rel2 { relative: rel2x rel2y; offset: 0 0; }; \
} \
description { \
state: "default" 0.5; \
inherit: "default" 0; \
color_class: "unvisible"; \
rel1.offset: 0 -5; \
rel2.offset: 0 5; \
} \
description { \
state: "default" 1; \
inherit: "default" 0; \
} \
} \
part { \
name: "button_left_"barname; \
type: TEXT; \
mouse_events: 0; \
description { \
state: "default" 0; \
color_class: bordercolor; \
rel1 { to: "button_left_bg_"barname; relative: 0 0; }; \
rel2 { to: "button_left_bg_"barname; relative: 1 1; }; \
text { \
text: "-"; \
font: "VeraBd"; \
size: 52; \
fit: 1 1; \
} \
} \
} \
part { \
name: "button_right_"barname; \
type: TEXT; \
mouse_events: 0; \
description { \
state: "default" 0; \
color_class: bordercolor; \
rel1 { to: "button_right_bg_"barname; relative: 0 0; }; \
rel2 { to: "button_right_bg_"barname; relative: 1 1; }; \
text { \
text: "+"; \
font: "VeraBd"; \
size: 52; \
fit: 1 1; \
} \
} \
} \
part { \
name: "scale_fg_"barname; \
type: RECT; \
mouse_events: 0; \
description { \
color_class: scale; \
rel1 { relative: rel2x/4 (rel1y+((rel2y-rel1y)/4)); }; \
rel2 { relative: 1-rel2x/4 (rel2y-((rel2y-rel1y)/4)); }; \
} \
} \
program { \
name: "button_left_bg_"barname"_animation"; \
signal: "mouse,down,*"; \
source: "button_left_bg_"barname; \
action: STATE_SET "default" 0.5; \
target: "button_left_bg_"barname; \
} \
program { \
name: "button_left_bg_"barname"_animation_end"; \
signal: "mouse,up,*"; \
source: "button_left_bg_"barname; \
action: STATE_SET "default" 1; \
target: "button_left_bg_"barname; \
transition: DECELERATE 0.1; \
} \
program { \
name: "button_right_bg_"barname"_animation"; \
signal: "mouse,down,*"; \
source: "button_right_bg_"barname; \
action: STATE_SET "default" 0.5; \
target: "button_right_bg_"barname; \
} \
program { \
name: "button_right_bg_"barname"_animation_end"; \
signal: "mouse,up,*"; \
source: "button_right_bg_"barname; \
action: STATE_SET "default" 1; \
target: "button_right_bg_"barname; \
transition: DECELERATE 0.1; \
} \
collections {
group {
name: "pyneo/audio/screen";
min: 100 100;
max: 800 800;
parts {
part {
name: "background";
type: IMAGE;
mouse_events: 0;
description {
state: "default" 0;
rel1 { relative: 0 0; offset: 0 0; };
rel2 { relative: 1 1; offset: 0 0; };
image { normal: "bg.png"; };
}
}
part {
name: "headline";
type: TEXT;
description {
state: "default" 0;
color_class: "button_inactive";
rel1 { relative: 1/20 1/20; }
rel2 { relative: 19/20 3/20; }
text {
text: "music";
size: 20;
font: "VeraBd";
fit: 1 1;
}
}
}
part {
name: "mp3_tags";
type: TEXTBLOCK;
mouse_events: 0;
description {
color_class: "button_inactive";
align: 0.5 0.5;
fixed: 1 1;
rel1 { relative: 0 4/20; }
rel2 { relative: 1 7/20; }
text {
text: "";
style: "textblock_style";
}
}
}
part {
name: "pad";
type: RECT;
description {
visible: 0;
rel1 { relative: 0.0 1.0; offset: 25 -125; }
rel2 { relative: 1.0 1.0; offset: -25 -25; }
}
}
key("track_left", 0, 2)
key("stop", 1, 2)
key_play_pause("play_pause", "play", "pause", 2, 2)
key("track_right", 3, 2)
HBAR("volume", button_inactive, 1, 0, 46/70, 1, 56/70, 10);
}
}
}

View file

@ -152,6 +152,11 @@ class DialerScreen(EdjeGroup):
self.text = [] self.text = []
self.part_text_set("numberdisplay_text", "".join(self.text)) self.part_text_set("numberdisplay_text", "".join(self.text))
PyneoController.show_sms_screen() PyneoController.show_sms_screen()
elif source == "dial" and ''.join(self.text) == "9":
print '--- Audio Screen'
self.text = []
self.part_text_set("numberdisplay_text", "".join(self.text))
PyneoController.show_audio_screen()
elif source == "dial": elif source == "dial":
PyneoController.show_incall_screen('outgoing') PyneoController.show_incall_screen('outgoing')
PyneoController.gsm_dial("".join(self.text)) PyneoController.gsm_dial("".join(self.text))

View file

@ -21,6 +21,7 @@ PIX_FILE_PATH = "/media/card/hon/"
TRACK_FILE_PATH = "/media/card/track/" TRACK_FILE_PATH = "/media/card/track/"
DB_FILE_PATH = "data/db/my.sqlite" DB_FILE_PATH = "data/db/my.sqlite"
PIX_WEATHER_FILE_PATH = "data/themes_data/blackwhite/images/stardock_weather/" PIX_WEATHER_FILE_PATH = "data/themes_data/blackwhite/images/stardock_weather/"
MP3_FILE_PATH = "/media/card/mp3/"
DIALER_SCREEN_NAME = "pyneo/dialer/main" DIALER_SCREEN_NAME = "pyneo/dialer/main"
INCALL_SCREEN_NAME = "pyneo/dialer/incall" INCALL_SCREEN_NAME = "pyneo/dialer/incall"
@ -33,6 +34,7 @@ CONTACTS_SCREEN_NAME = "pyneo/contacts/screen"
SMS_SCREEN_NAME = "pyneo/sms/screen" SMS_SCREEN_NAME = "pyneo/sms/screen"
SMS_DETAIL_SCREEN_NAME = "pyneo/sms/detail" SMS_DETAIL_SCREEN_NAME = "pyneo/sms/detail"
WEATHER_SCREEN_NAME = "pyneo/weather/screen" WEATHER_SCREEN_NAME = "pyneo/weather/screen"
AUDIO_SCREEN_NAME = "pyneo/audio/screen"
from datetime import datetime from datetime import datetime
from dbus import SystemBus from dbus import SystemBus
@ -88,6 +90,8 @@ class PyneoController(object):
pwr = None pwr = None
gps = None gps = None
hon = None hon = None
mp3 = None
mp3_music = None
gsm_wireless = None gsm_wireless = None
gsm_keyring = None gsm_keyring = None
gsm_sms = None gsm_sms = None
@ -132,6 +136,7 @@ class PyneoController(object):
class_.gps = object_by_url('dbus:///org/pyneo/GpsLocation') class_.gps = object_by_url('dbus:///org/pyneo/GpsLocation')
class_.hon = object_by_url('dbus:///org/pyneo/HotOrNot') class_.hon = object_by_url('dbus:///org/pyneo/HotOrNot')
class_.hon_hotornot = object_by_url(class_.hon.GetDevice('hotornot', dbus_interface=DIN_POWERED)) class_.hon_hotornot = object_by_url(class_.hon.GetDevice('hotornot', dbus_interface=DIN_POWERED))
class_.mp3 = object_by_url('dbus:///org/pyneo/Player')
class_.call_type = 'nix' class_.call_type = 'nix'
class_.brightness_value = 60 class_.brightness_value = 60
class_.call = None class_.call = None
@ -360,8 +365,8 @@ class PyneoController(object):
@classmethod @classmethod
def show_dialer_screen(class_): def show_dialer_screen(class_):
# class_.pwr.SetBrightness(class_.brightness_value, dbus_interface=DIN_POWER) class_.pwr.SetBrightness(class_.brightness_value, dbus_interface=DIN_POWER)
# class_.pwr.GetStatus(dbus_interface=DIN_POWERED) class_.pwr.GetStatus(dbus_interface=DIN_POWERED)
class_.notify_callbacks("show_dialer_screen") class_.notify_callbacks("show_dialer_screen")
@classmethod @classmethod
@ -415,24 +420,18 @@ class PyneoController(object):
def CallStatus(newmap): def CallStatus(newmap):
newmap = dedbusmap(newmap) newmap = dedbusmap(newmap)
print '---', 'CallStatus' print '---', 'CallStatus'
# for n, v in newmap.items():
# print '\t', n, ':', v
def CallRing(newmap): def CallRing(newmap):
newmap = dedbusmap(newmap) newmap = dedbusmap(newmap)
class_.notify_callbacks("gsm_phone_ringing") class_.notify_callbacks("gsm_phone_ringing")
if newmap['number']: class_.notify_callbacks("gsm_number_display", newmap['number']) if newmap['number']: class_.notify_callbacks("gsm_number_display", newmap['number'])
print '---', 'CallRing' print '---', 'CallRing'
# for n, v in newmap.items():
# print '\t', n, ':', v
def CallEnd(newmap): def CallEnd(newmap):
class_.notify_callbacks("gsm_phone_call_end") class_.notify_callbacks("gsm_phone_call_end")
os.system('alsactl -f /usr/share/openmoko/scenarios/stereoout.state restore') os.system('alsactl -f /usr/share/openmoko/scenarios/stereoout.state restore')
newmap = dedbusmap(newmap) newmap = dedbusmap(newmap)
print '---', 'CallEnd' print '---', 'CallEnd'
# for n, v in newmap.items():
# print '\t', n, ':', v
if class_.call: if class_.call:
class_.call = None class_.call = None
while class_.callsigs: while class_.callsigs:
@ -463,7 +462,7 @@ class PyneoController(object):
content = dedbusmap(sm.GetContent()) content = dedbusmap(sm.GetContent())
InsertSms('REC UNREAD', content['from_msisdn'], content['time'], content['text'].encode('utf-8')) InsertSms('REC UNREAD', content['from_msisdn'], content['time'], content['text'].encode('utf-8'))
print '--- NEW SMS:', content['from_msisdn'], content['time'], content['text'].encode('utf-8') print '--- NEW SMS:', content['from_msisdn'], content['time'], content['text'].encode('utf-8')
class_.gsm_sms.DeleteAll(dbus_interface=DIN_STORAGE) # class_.gsm_sms.DeleteAll(dbus_interface=DIN_STORAGE)
@classmethod @classmethod
def first_check_new_sms(class_): def first_check_new_sms(class_):
@ -482,7 +481,7 @@ class PyneoController(object):
InsertSms('REC UNREAD', content['from_msisdn'], content['time'], content['text'].encode('utf-8')) InsertSms('REC UNREAD', content['from_msisdn'], content['time'], content['text'].encode('utf-8'))
except: except:
print '--- NULL new sms' print '--- NULL new sms'
class_.gsm_sms.DeleteAll(dbus_interface=DIN_STORAGE) # class_.gsm_sms.DeleteAll(dbus_interface=DIN_STORAGE)
@classmethod @classmethod
def show_sms_screen(class_): def show_sms_screen(class_):
@ -504,6 +503,37 @@ class PyneoController(object):
def vibrate_stop(class_): def vibrate_stop(class_):
class_.pwr.Vibrate(0, 0, 0, dbus_interface=DIN_POWER) class_.pwr.Vibrate(0, 0, 0, dbus_interface=DIN_POWER)
@classmethod
def show_audio_screen(class_):
class_.notify_callbacks("show_audio_screen")
@classmethod
def play_music(class_):
class_.mp3.Play(dbus_interface='org.pyneo.Music')
@classmethod
def stop_music(class_):
class_.mp3.Stop(dbus_interface='org.pyneo.Music')
@classmethod
def pause_music(class_):
class_.mp3.Pause(dbus_interface='org.pyneo.Music')
@classmethod
def next_music(class_):
class_.mp3.Next(dbus_interface='org.pyneo.Music')
@classmethod
def previous_music(class_):
class_.mp3.Previous(dbus_interface='org.pyneo.Music')
@classmethod
def set_playlist_from_dir(class_):
class_.mp3.SetPlaylistFromDir(MP3_FILE_PATH, dbus_interface='org.pyneo.Music')
@classmethod
def get_mp3_tags(class_):
class_.notify_callbacks("on_get_mp3_tags", class_.mp3.GetStatus(dbus_interface='org.pyneo.Music'))
from dialer_screen import * from dialer_screen import *
from incall_screen import * from incall_screen import *
@ -516,6 +546,7 @@ from contacts_screen import *
from sms_screen import * from sms_screen import *
from sms_detail import * from sms_detail import *
from weather_screen import * from weather_screen import *
from audio_screen import *
class Dialer(object): class Dialer(object):
screens = None screens = None
@ -543,6 +574,7 @@ class Dialer(object):
PyneoController.register_callback("show_sms_screen", self.on_sms_screen) PyneoController.register_callback("show_sms_screen", self.on_sms_screen)
PyneoController.register_callback("show_sms_screen_detail", self.on_sms_screen_detail) PyneoController.register_callback("show_sms_screen_detail", self.on_sms_screen_detail)
PyneoController.register_callback("show_weather_screen", self.on_weather_screen) PyneoController.register_callback("show_weather_screen", self.on_weather_screen)
PyneoController.register_callback("show_audio_screen", self.on_audio_screen)
# Initialize the D-Bus interface to pyneo # Initialize the D-Bus interface to pyneo
dbus_ml = e_dbus.DBusEcoreMainLoop() dbus_ml = e_dbus.DBusEcoreMainLoop()
@ -555,6 +587,7 @@ class Dialer(object):
self.init_screen(GSM_STATUS_SCREEN_NAME, GsmStatusScreen(self)) self.init_screen(GSM_STATUS_SCREEN_NAME, GsmStatusScreen(self))
self.init_screen(GPS_STATUS_SCREEN_NAME, GpsStatusScreen(self)) self.init_screen(GPS_STATUS_SCREEN_NAME, GpsStatusScreen(self))
PyneoController.set_playlist_from_dir()
PyneoController.power_up_gsm() PyneoController.power_up_gsm()
PyneoController.get_gsm_keyring() PyneoController.get_gsm_keyring()
@ -621,6 +654,9 @@ class Dialer(object):
self.init_screen(WEATHER_SCREEN_NAME, WeatherScreen(self)) self.init_screen(WEATHER_SCREEN_NAME, WeatherScreen(self))
self.show_screen(WEATHER_SCREEN_NAME) self.show_screen(WEATHER_SCREEN_NAME)
def on_audio_screen(self):
self.init_screen(AUDIO_SCREEN_NAME, AudioScreen(self))
self.show_screen(AUDIO_SCREEN_NAME)
class EvasCanvas(object): class EvasCanvas(object):
def __init__(self, fullscreen, engine_name): def __init__(self, fullscreen, engine_name):

View file

@ -5,7 +5,7 @@ __version__ = "prototype"
__copyright__ = "Copyright (c) 2008" __copyright__ = "Copyright (c) 2008"
__license__ = "GPL3" __license__ = "GPL3"
ZIP_CODE = 'GMXX0007' #GMXX0007 Berlin, GMXX0049 Hamburg ZIP_CODE = 'GMXX0049' #GMXX0007 Berlin, GMXX0049 Hamburg
TEMP_UNIT = 'c' TEMP_UNIT = 'c'
WEATHER_URL = 'http://xml.weather.yahoo.com/forecastrss?p=%s&u=%s' WEATHER_URL = 'http://xml.weather.yahoo.com/forecastrss?p=%s&u=%s'