diff options
author | amartin <olpc@xo-00-CE-12.localdomain> | 2007-06-25 21:51:33 (GMT) |
---|---|---|
committer | amartin <olpc@xo-00-CE-12.localdomain> | 2007-06-25 21:51:33 (GMT) |
commit | ccb46f528e1e6719d93f136c000d2f6927e0c724 (patch) | |
tree | 4e776ada3b268349432fbab4f96a1f935d367c8d /miniTamTam | |
parent | 28185285179f3e3579514e1122d80fa5288f8927 (diff) |
network
Diffstat (limited to 'miniTamTam')
-rw-r--r-- | miniTamTam/miniTamTamMain.py | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/miniTamTam/miniTamTamMain.py b/miniTamTam/miniTamTamMain.py index 466ecf2..412fbeb 100644 --- a/miniTamTam/miniTamTamMain.py +++ b/miniTamTam/miniTamTamMain.py @@ -7,6 +7,8 @@ import random import time import xdrlib +from gettext import gettext as _gettext + from types import * from math import sqrt from Util.NoteDB import PARAMETER @@ -40,6 +42,7 @@ class miniTamTamMain(SubActivity): def __init__(self, activity, set_mode): SubActivity.__init__(self, set_mode) + self.activity = activity self.set_border_width(Config.MAIN_WINDOW_PADDING) @@ -105,12 +108,27 @@ class miniTamTamMain(SubActivity): self.packer = xdrlib.Packer() self.unpacker = xdrlib.Unpacker("") + #-- handle forced networking --------------------------------------- if self.network.isHost(): self.updateSync() self.syncTimeout = gobject.timeout_add( 1000, self.updateSync ) elif self.network.isPeer(): self.sendTempoQuery() self.syncTimeout = gobject.timeout_add( 1000, self.updateSync ) + #------------------------------------------------------------------- + + + if os.path.isfile("FORCE_SHARE"): # HOST + r = random.random() + print "::::: Sharing as TamTam%f :::::" % r + self.activity.set_title(_gettext("TamTam%f" % r)) + self.activity.connect( "shared", self.shared ) + self.activity.share() + elif self.activity._shared_activity: # PEER + self.activity._shared_activity.connect( "buddy-joined", self.buddy_joined ) + self.activity._shared_activity.connect( "buddy-left", self.buddy_left ) + self.activity.connect( "joined", self.joinedTEMP ) + self.network.setMode( Net.MD_WAIT ) def drawSliders( self ): mainSliderBox = RoundHBox(fillcolor = Config.PANEL_COLOR, bordercolor = Config.PANEL_BCK_COLOR, radius = Config.PANEL_RADIUS) @@ -507,9 +525,7 @@ class miniTamTamMain(SubActivity): self.csnd.loopClear() def onDestroy( self ): - #this gets called when the whole app is being destroyed - #QUESTION is this called before or after onDeactivate() - pass + self.network.shutdown() def scale(self, input,input_min,input_max,output_min,output_max): range_input = input_max - input_min @@ -536,6 +552,35 @@ class miniTamTamMain(SubActivity): #----------------------------------------------------------------------- # Network + #-- Activity ----------------------------------------------------------- + + def shared( self, activity ): + if Config.DEBUG: print "miniTamTam:: successfully shared, start host mode" + self.activity._shared_activity.connect( "buddy-joined", self.buddy_joined ) + self.activity._shared_activity.connect( "buddy-left", self.buddy_left ) + self.network.setMode( Net.MD_HOST ) + + def joinedTEMP( self, activity ): + print "miniTamTam:: joined activity!!" + for buddy in self.activity._shared_activity.get_joined_buddies(): + print buddy.props.ip4_address + + def buddy_joined( self, activity, buddy ): + print "buddy joined " + str(buddy) + print buddy.props.ip4_address + if self.network.isHost(): + if buddy.props.ip4_address: + self.network.introducePeer( buddy.props.ip4_address ) + else: + print "miniTamTam:: new buddy does not have an ip4_address!!" + + def buddy_left( self, activity, buddy): + print "buddy left" + + #def joined( self, activity ): + # if Config.DEBUG: print "miniTamTam:: successfully joined, wait for host" + # self.net.waitForHost() + #-- Senders ------------------------------------------------------------ def sendSyncQuery( self ): |