home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / lib / python2.4 / site-packages / serpentine / services.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2006-08-31  |  4.2 KB  |  105 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import dbus
  5. import nautilusburn
  6. import mastering
  7. SERVICE_DOMAIN = 'de.berlios.Serpentine'
  8. OBJECT_DOMAIN = '/de/berlios/Serpentine'
  9.  
  10. class Manager(dbus.Object):
  11.     '''Provides services for Serpentine. It launches all needed services.
  12. \tIt registers the de.berlios.Serpentine.Manager, 
  13. \tde.berlios.Serpentine.Playlist and de.berlios.Serpentine.Recorder
  14. \tinterfaces.
  15. \t'''
  16.     
  17.     def __init__(self, service, serpentine_object):
  18.         dbus.Object.__init__(self, OBJECT_DOMAIN + '/Manager', service, [
  19.             self.Quit,
  20.             self.RecordPlaylist])
  21.         self._Manager__serp = serpentine_object
  22.         self._Manager__playlist = Playlist(OBJECT_DOMAIN + '/Playlist', self.serpentine.masterer.source)
  23.         self._Manager__update_drives()
  24.  
  25.     
  26.     def __update_drives(self):
  27.         self._Manager__drives = { }
  28.         for dev in nautilusburn.get_drives_list(True):
  29.             device = dev.get_device()
  30.             self._Manager__drives[device] = Recorder(serpentine_object, device)
  31.         
  32.  
  33.     serpentine = property((lambda self: self._Manager__serp))
  34.     playlist = property((lambda self: self._Manager__playlist))
  35.     
  36.     def Quit(self, message):
  37.         self.serpentine.quit()
  38.  
  39.     
  40.     def RecordPlaylist(self, message):
  41.         self.serpentine.burn()
  42.  
  43.  
  44.  
  45. class Playlist(dbus.Object):
  46.     '''Represents the serpentine storage.'''
  47.     
  48.     def __init__(self, domain, service, music_list):
  49.         dbus.Object.__init__(self, domain, service, [
  50.             self.Clear,
  51.             self.Remove,
  52.             self.Add])
  53.         self._Playlist__music_list = music_list
  54.  
  55.     music_list = property((lambda self: self._Playlist__music_list))
  56.     
  57.     def Clear(self, message):
  58.         self.music_list.clear()
  59.  
  60.     
  61.     def Remove(self, message, music):
  62.         for music in self.music_list:
  63.             if music['location'] == music:
  64.                 music_list.remove(music)
  65.                 return None
  66.                 continue
  67.         
  68.  
  69.     
  70.     def Add(self, message, music):
  71.         hints = {
  72.             'location': music }
  73.         add_oper = mastering.AddFile(self.music_list, hints)
  74.         add_oper.start()
  75.  
  76.  
  77.  
  78. class AudioRecorder(dbus.Object):
  79.     '''Represents a recorder that can write audio tracks directly.'''
  80.     
  81.     def __init__(self, domain, device):
  82.         if device.startswith('/'):
  83.             name = device[1:].replacewith('/', '.')
  84.         
  85.         dbus.Object.__init__(self, domain + '/' + name, 'de.berlios.Serpentine.AudioRecorder', [
  86.             self.WriteFiles,
  87.             self.IsRecording,
  88.             self.GetDevice])
  89.         self._AudioRecorder__device = device
  90.  
  91.     device = property((lambda self: self._AudioRecorder__device))
  92.     
  93.     def WriteFiles(self, message, files):
  94.         return 'There is no multiple drives preference yet.'
  95.  
  96.     
  97.     def IsRecording(self, message):
  98.         return self.device in self.serpentine.recording
  99.  
  100.     
  101.     def GetDevice(self, message):
  102.         return self.device
  103.  
  104.  
  105.