#!/usr/bin/env python import sys from omniORB import CORBA import YalpInterfaces, CosNaming, YalpInterfaces__POA import medialist import media import playlist class Corba(object): def __init__(self, win, c): self.win = win self.c = c self.orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID) self.obj = self.orb.resolve_initial_references("NameService") self.root_context = self.obj._narrow(CosNaming.NamingContextExt) if self.root_context is None: print "Failed to narrow the root naming context" sys.exit(1) self.name = ("YALP_Server") try: self.obj = self.root_context.resolve_str(self.name) except CosNaming.NamingContext.NotFound, ex: print "Name not found", ex sys.exit(1) self.blubb = self.obj._narrow(YalpInterfaces.ServerControlInterface) if self.blubb is None: print "obj ref is not an dbsfeditf::dependency" sys.exit(1) def corba_search(self,searchentry): mlist = [] mlist.append (YalpInterfaces.VIDEO) mlist.append (YalpInterfaces.SOUND) deps = self.blubb.search(searchentry, mlist) m = medialist.Medialist(self.win, self.c) video = playlist.Selection(self.win, self.c) for dep in deps[0]: current = media.Media(dep, video, self.blubb, self.win, self.c) m.add_media(current)