Package elisa :: Package plugins :: Package bad :: Package dvd :: Module dvd_activity
[hide private]
[frames] | no frames]

Source Code for Module elisa.plugins.bad.dvd.dvd_activity

  1  # -*- coding: utf-8 -*- 
  2  # Elisa - Home multimedia server 
  3  # Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com). 
  4  # All rights reserved. 
  5  # 
  6  # This file is available under one of two license agreements. 
  7  # 
  8  # This file is licensed under the GPL version 3. 
  9  # See "LICENSE.GPL" in the root of this distribution including a special 
 10  # exception to use Elisa with Fluendo's plugins. 
 11  # 
 12  # The GPL part of Elisa is also available under a commercial licensing 
 13  # agreement from Fluendo. 
 14  # See "LICENSE.Elisa" in the root directory of this distribution package 
 15  # for details on that license. 
 16   
 17   
 18  __maintainer__ = 'Lionel Martin <lionel@fluendo.com>' 
 19   
 20   
 21  from elisa.core import common 
 22  from elisa.core.media_uri import MediaUri 
 23  from elisa.core import plugin_registry 
 24   
 25  from elisa.extern.translation import gettexter, N_ 
 26  T_ = gettexter('elisa-dvd') 
 27   
 28   
 29  try: 
 30      from dvd_player import * 
 31      FLUENDO_DVD_INSTALLED = True 
 32  except: 
 33      FLUENDO_DVD_INSTALLED = False 
 34   
 35  MenuActivity = plugin_registry.get_component_class('base:menu_activity') 
 36   
37 -class DvdActivity(MenuActivity):
38 39 menu_name = T_(N_("DVD")) 40 menu_icon_name = "dvd" 41 media_types = ["video",] 42 43 config_doc = {'dvd_uri': 'uri of the dvd. must be file:///* or dvd://'} 44 45 default_config = {'dvd_uri': 'dvd://'} 46 47
48 - def initialize(self):
49 MenuActivity.initialize(self) 50 self.root_menu = None
51
52 - def _get_dvd_menu(self):
53 registry = common.application.plugin_registry 54 dvd_uri = MediaUri(self.config.get('dvd_uri', 'dvd://')) 55 56 root_menu = MenuActivity._create_menu_model(self, 57 self.menu_name, 58 self.menu_icon_name) 59 60 play = self._create_menu_model(T_(N_("play DVD")), "dvd_play") 61 menu = self._create_menu_model(T_(N_("Display menu")), "dvd_menu") 62 eject = self._create_menu_model(T_(N_("Eject")), "dvd_eject") 63 64 65 action = registry.create_component('base:play_action') 66 action.player_model = self.dvd_player_model 67 action.uri = dvd_uri 68 play.activate_action = action 69 70 71 action = registry.create_component('dvd:menu_action') 72 action.player_model = self.dvd_player_model 73 action.uri = dvd_uri 74 menu.activate_action = action 75 76 action = registry.create_component('base:eject_action') 77 action.uri = dvd_uri 78 action.player_model = self.dvd_player_model 79 eject.activate_action = action 80 81 root_menu.append(play) 82 root_menu.append(menu) 83 root_menu.append(eject) 84 root_menu.has_children = True 85 return root_menu
86 87
88 - def _get_empty_menu(self):
89 root_menu = MenuActivity._create_menu_model(self, 90 self.menu_name, 91 self.menu_icon_name) 92 93 empty = self._create_menu_model(T_(N_("no player installed")), "empty") 94 root_menu.has_children = True 95 96 root_menu.append(empty) 97 return root_menu
98 99
100 - def get_model(self):
101 if not self.root_menu: 102 if FLUENDO_DVD_INSTALLED: 103 self.root_menu = self._get_dvd_menu() 104 else: 105 self.root_menu = self._get_empty_menu() 106 self.root_menu.activity = self 107 return self.root_menu
108