All pastes #752223 Raw Edit

Miscellany

public text v1 · immutable
#752223 ·published 2007-10-28 04:51 UTC
rendered paste body
import rb
import rhythmdb

class MyPlugin(rb.Plugin):
	sources = []

	def __init__(self):
		rb.Plugin.__init__(self)

	def activate(self, shell):
		self.cs_id = shell.props.removable_media_manager.connect("create-source", self.create_source)
		self.shell = shell

	def deactivate(self, shell):
		shell.props.removable_media_manager.disconnect(self.cs_id)
		del self.cs_id
		del self.shell

		for s in self.sources:
			s.delete_thyself()
		sources = []

	def create_source(self, manager, volume):
		# determine whether this is something we can handle
		is_valid_device = True

		if is_valid_device:
			entry_type = self.shell.db.entry_register_type("MyRemovableDevice:" + volume.get_device_path())
			source = gobject.new (MyRemovableSource, shell=self.shell, volume=volume, source_group=rb.SOURCE_GROUP_DEVICES, entry_type=entry_type)
			self.sources.append(source)
			return source
		else:
			return None

class MyRemovableSource(rb.RemovableMediaSource):
	def __init__(self, *args, **kwargs):
		rb.RemovableMediaSource(self, *args, **kwargs)

gobject.type_register(MyRemovableSource)