[Python] Winamp Steuerung für Eventghost und NotifyPro (iPhone)
Mit NotifyPro (aus Cydia, Gejailbreaktes iPhone mit iOS 3.x bis 4.01 vorausgesetzt) ist es möglich SMS, Pushnachrichten und Anrufinformationen (wie eingehnder Anruf, abgelehnter Anruf etc..) an Eventghost zu senden.
Mit diesem Python Script für Eventghost wird bei eingehenden Anrufen die Musik von Winamp pausiert und nach dem Gespräch automatisch wieder fortgesetzt, außerdem wird bei eingehenden Anrufen ein Ton abgespielt und es wird ein OSD angezeigt.
Bei Eventghost muss das Plugin "Webserver" aktiviert sein. Damit der Webserver läuft, muss ein Verzeichnis angelegt werden indem man eine datei namens "empty" (ohne Dateiendung) anlegt. Dann muss das Verzeichnis bei den Webserver-Einstellungen angegeben werden. Bei NotifyPro wählt man Eventghost aus und trägt dort die IP des Pcs und den Port des Webservers ein. Danach muss das Springboard neugestartet werden. In Eventghost legt man nun ein neues Makro an, in dem Makro wird ein neues Event mit der bezeichnung "HTTP.*" angelegt. Danach folgendes Python Script noch anlegen.
Mit diesem Python Script für Eventghost wird bei eingehenden Anrufen die Musik von Winamp pausiert und nach dem Gespräch automatisch wieder fortgesetzt, außerdem wird bei eingehenden Anrufen ein Ton abgespielt und es wird ein OSD angezeigt.
Bei Eventghost muss das Plugin "Webserver" aktiviert sein. Damit der Webserver läuft, muss ein Verzeichnis angelegt werden indem man eine datei namens "empty" (ohne Dateiendung) anlegt. Dann muss das Verzeichnis bei den Webserver-Einstellungen angegeben werden. Bei NotifyPro wählt man Eventghost aus und trägt dort die IP des Pcs und den Port des Webservers ein. Danach muss das Springboard neugestartet werden. In Eventghost legt man nun ein neues Makro an, in dem Makro wird ein neues Event mit der bezeichnung "HTTP.*" angelegt. Danach folgendes Python Script noch anlegen.
## Winamp CallHandler für NotifyPro
## 2010 by webmaster-power.de
## webmaster@webmaster-power.de
########################################
import time
from win32gui import FindWindow
from win32api import SendMessage
WM_COMMAND = 0x0111
WM_USER = 0x400
WA_PAUSE = 40046 # Pause/Unpause button
hwnd_winamp = FindWindow('Winamp v1.x', None)
iStatus = SendMessage(hwnd_winamp,WM_USER,0,104,)
iVolume = SendMessage(hwnd_winamp,WM_USER,-666,122,)
event = eg.event.suffix
eventpart = event.split('::')
#### Configurations ##########################
PlaySounds = False
OnlyWhenSilent = False
OSDNotify = True
SMSNotify = True
CallNotify = True
SoundCallIncoming = 'C:\CallIncoming.wav'
SoundSMSIncoming = 'C:\SMSIncoming.wav'
iVolumeLow = 20
########################################
def PlaySound(Type):
if PlaySounds == True:
if OnlyWhenSilent == True and eventpart[1] == "Silent":
eg.plugins.System.PlaySound(Type, 1)
elif OnlyWhenSilent != True and eventpart[1] == "Ring" or eventpart[1] == "Silent":
eg.plugins.System.PlaySound(Type, 1)
def ShowOSD(OSDType):
if OSDNotify == True:
if OSDType == "SMS" and SMSNotify == True:
eg.plugins.EventGhost.ShowOSD(eg.Utils.time.strftime('%H:%M:%S') + " - SMS\r\n" + eventpart[3] + "\r\n" + eventpart[4], None, (255, 255, 255), (0, 0, 0), 1, (20, 20),1, 10.0)
elif OSDType == "Eingehender Anruf" or OSDType == "Ausgehender Anruf" and CallNotify == True:
eg.plugins.EventGhost.ShowOSD(eg.Utils.time.strftime('%H:%M:%S') + " - " + CallType + "\r\n" + eventpart[3], None, (255, 255, 255), (0, 0, 0), 1, (20, 20),1, 25.0)
if (eventpart[2] == 'CallIncoming'):
CallType = 'Eingehender Anruf'
if (iStatus == 1):
eg.globals.WinampSoundVolume = iVolume
print eg.Utils.time.strftime('%H:%M:%S') + " - Eingehender Anruf"
print eventpart[3]
print "Musiklautstaerke verringern"
SendMessage(hwnd_winamp,WM_USER,iVolumeLow,122,)
else:
print eg.Utils.time.strftime('%H:%M:%S') + " - Eingehender Anruf"
print eventpart[3]
PlaySound(SoundCallIncoming)
ShowOSD(CallType)
elif (eventpart[2] == 'CallAccept'):
CallType = 'Anruf angenommen'
if (iStatus == 1):
eg.globals.WinampPaused = 1
print eg.Utils.time.strftime('%H:%M:%S') + " - Anruf angenommen"
print eventpart[3]
print "Pausiere Winamp"
SendMessage(hwnd_winamp,WM_COMMAND,WA_PAUSE,)
else:
eg.globals.WinampPaused = 0
print eg.Utils.time.strftime('%H:%M:%S') + " - Anruf angenommen"
print eventpart[3]
elif (eventpart[2] == 'CallDeclined'):
CallType = 'Anruf abgelehnt'
if (iStatus == 1):
print eg.Utils.time.strftime('%H:%M:%S') + " - Anruf abgelehnt"
print eventpart[3]
print "Musiklautstaerke erhoehen"
SendMessage(hwnd_winamp,WM_USER,eg.globals.WinampSoundVolume,122,)
else:
print eg.Utils.time.strftime('%H:%M:%S') + " - Anruf abgelehnt"
print eventpart[3]
elif (eventpart[2] == 'CallEnd'):
CallType = 'Anruf beendet'
if (iStatus != 1 and eg.globals.WinampPaused == 1):
eg.globals.WinampPaused = 0
print eg.Utils.time.strftime('%H:%M:%S') + " - Anruf beendet"
print eventpart[3]
print "Musikwiedergabe fortsetzen"
SendMessage(hwnd_winamp,WM_COMMAND,WA_PAUSE,)
SendMessage(hwnd_winamp,WM_USER,eg.globals.WinampSoundVolume,122,)
else:
print eg.Utils.time.strftime('%H:%M:%S') + " - Anruf beendet"
print eventpart[3]
elif (eventpart[2] == 'CallDialed'):
CallType = 'Ausgehender Anruf'
if (iStatus == 1):
eg.globals.WinampSoundVolume = iVolume
print eg.Utils.time.strftime('%H:%M:%S') + " - Ausgehender Anruf"
print eventpart[3]
print "Musiklautstaerke verringern"
SendMessage(hwnd_winamp,WM_USER,iVolumeLow,122,)
else:
print eg.Utils.time.strftime('%H:%M:%S') + " - Ausgehender Anruf"
print eventpart[3]
ShowOSD(CallType)
elif (eventpart[2] == 'SMS'):
CallType = 'SMS'
print eg.Utils.time.strftime('%H:%M:%S') + " - SMS"
print eventpart[3]
print eventpart[4]
PlaySound(SoundSMSIncoming)
ShowOSD(CallType)

