Пример #1
0
class SweepGui(xbmcgui.WindowXMLDialog):
    def __init__(self, *_args, **kwargs):
        self.sock = SocketCom("server")
        self.rec = SocketCom("sweep")

        self.channel = kwargs["channel"]
        self.count = kwargs["count"]

        result = self.sock.call_func("get", "eq_channel")
        if result is None: return

        self.eqid, self.name, _ = (result)

        self.rec.start_func_server(self)

    def onInit(self):
        self.prog1 = self.getControl(1900)
        self.prog2 = self.getControl(1901)
        self.prog1.setPercent(0.1)
        self.prog2.setPercent(0.1)
        #self.getControl(101).setLabel("%s - %s" % (self.name, tr(32410)))

        self.sock.call_func("play", "sweep", [self.count, self.channel])

    @staticmethod
    def on_sound_play(nr):
        log("on_sound_play %s" % nr)

    def on_sound_stop(self):
        log("on_sound_stop")
        self.rec.stop_server()
        self.close()

    def on_chunk_play(self, c_nr, c_size, c_cnt, c_total):
        self.prog1.setPercent(c_cnt * 100 / (c_total - 1))
        self.prog2.setPercent(c_nr * 100 / (c_size - 1))

    def end_gui(self):
        self.sock.call_func("stop", "tone")
        self.sock.call_func("stop", "pulseplayer")
        self.rec.stop_server()
        self.close()

    def onAction(self, action):
        #OK pressed
        if action.getId() in [7, 100]:
            self.end_gui()

        #Cancel
        if action.getId() in [92, 10]:
            self.end_gui()
Пример #2
0
class PaMonitor( xbmc.Monitor ):
	def __init__( self ):
		#strat process
		xbmc.Monitor.__init__( self )
		xbmc.log("eq: start PulesEqualizer service",xbmc.LOGDEBUG)

		self.server_sock = SocketCom("kodi")
		if not self.server_sock.is_server_running():
			self.server_sock.start_func_server(self)
		else: self.server_sock = None

		launcher = Launcher("menu")
		launcher.start()

		self.sock = SocketCom("server")

		ps = PulseService()
		ps.start()

		self.sock.call_func("set","device",[self.get_device()])

		while not self.abortRequested():
			if self.waitForAbort( 10 ):
				break

		launcher.stop()

		ps.stop()
		if self.server_sock:
			self.server_sock.stop_server()

	@staticmethod
	def get_device():
		device = ""
		r_dict = json.loads(xbmc.executeJSONRPC('{"jsonrpc":"2.0", "method":"Settings.GetSettings", "params":{ "filter": {"section":"system", "category":"audio"}}, "id":1}'))
		for s in r_dict["result"]["settings"]:
			if s["id"] == "audiooutput.audiodevice":
				device = s["value"]
				break
		return device

	def on_device_get(self):
		result = self.get_device()
		xbmc.log("eq: kodi service: on_device_get %s" % result,xbmc.LOGDEBUG)
		return result

	@staticmethod
	def on_player_get():
		r_dict = json.loads(xbmc.executeJSONRPC('{"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":0}'))
		try: return r_dict["result"]
		except Exception: return None

	@staticmethod
	def on_log_write(message, level):
		xbmc.log(message, level)

	def on_service_up(self):
		self.sock.call_func("set","device",[self.get_device()])

	def onNotification( self, _sender, method, _data ):
		target,func = method.lower().replace("on","").split(".")
		if target in ["system", "player"]:
			self.sock.call_func(func, target)