Example #1
0
def main():
    init_logging()
    if len(sys.argv) < 2:
        sys.exit(show_help())
    if "-h" in sys.argv or "--help" in sys.argv:
        while "-h" in sys.argv:
            sys.argv.remove("-h")
        while "--help" in sys.argv:
            sys.argv.remove("--help")
        sys.exit(
            show_help(
                sys.argv[1].replace("-", "_") if len(sys.argv) > 1 else None))
    if "-v" in sys.argv:
        while "-v" in sys.argv:
            sys.argv.remove("-v")
        set_logging_level(True, True)
    else:
        set_logging_level(False, False)
    try:
        command = globals()["cmd_" + sys.argv[1].replace("-", "_")]
    except:
        print >> sys.stderr, "Unknown command: %s" % (sys.argv[1], )
        sys.exit(show_help(out=sys.stderr))

    try:
        sys.exit(command(sys.argv[0], sys.argv[2:]))
    except KeyboardInterrupt:
        sys.exit(0)
    except InvalidArguments:
        print >> sys.stderr, "Invalid arguments"
        print >> sys.stderr, ""
        show_help(sys.argv[1], out=sys.stderr)
        sys.exit(1)
Example #2
0
def main():
	init_logging()
	if len(sys.argv) < 2:
		sys.exit(show_help())
	if "-h" in sys.argv or "--help" in sys.argv:
		while "-h" in sys.argv:
			sys.argv.remove("-h")
		while "--help" in sys.argv:
			sys.argv.remove("--help")
		sys.exit(show_help(sys.argv[1].replace("-", "_") if len(sys.argv) > 1 else None))
	if "-v" in sys.argv:
		while "-v" in sys.argv:
			sys.argv.remove("-v")
		set_logging_level(True, True)
	else:
		set_logging_level(False, False)
	try:
		command = globals()["cmd_" + sys.argv[1].replace("-", "_")]
	except:
		print >>sys.stderr, "Unknown command: %s" % (sys.argv[1], )
		sys.exit(show_help(out=sys.stderr))
	
	try:
		sys.exit(command(sys.argv[0], sys.argv[2:]))
	except KeyboardInterrupt:
		sys.exit(0)
	except InvalidArguments:
		print >>sys.stderr, "Invalid arguments"
		print >>sys.stderr, ""
		show_help(sys.argv[1], out=sys.stderr)
		sys.exit(1)
Example #3
0
    from scc.scripts import InvalidArguments
    from scc.tools import init_logging, set_logging_level

    try:
        path = args[0]
        dev = evdev.InputDevice(path)
    except IndexError:
        raise InvalidArguments()
    except Exception, e:
        print >> sys.stderr, "Failed to open device:", str(e)
        return 2

    c = EvdevController(None, dev, None, {})
    caps = dev.capabilities(verbose=False)
    print "Buttons:", " ".join([str(x) for x in caps.get(ecodes.EV_KEY, [])])
    print "Axes:", " ".join(
        [str(axis) for (axis, trash) in caps.get(ecodes.EV_ABS, [])])
    print "Ready"
    sys.stdout.flush()
    for event in dev.read_loop():
        c.test_input(event)
    return 0


if __name__ == "__main__":
    """ Called when executed as script """
    from scc.tools import init_logging, set_logging_level
    init_logging()
    set_logging_level(True, True)
    sys.exit(evdevdrv_test(sys.argv[1:]))
Example #4
0
                self._window.update_labels()
                self._window.redraw_background()

    def run(self):
        on_wayland = "WAYLAND_DISPLAY" in os.environ or not isinstance(
            Gdk.Display.get_default(), GdkX11.X11Display)
        if on_wayland:
            log.error("Cannot run on Wayland")
            self.exit_code = 8
            return
        self.daemon = DaemonManager()
        self.config = Config()
        self._check_colorconfig_change()
        self.daemon.connect('alive', self.on_daemon_connected)
        self.daemon.connect('dead', self.on_daemon_died)
        self.daemon.connect('profile-changed', self.on_profile_changed)
        self.daemon.connect('reconfigured', self.on_daemon_reconfigured)
        self.daemon.connect('unknown-msg', self.on_unknown_message)
        self.mainloop.run()


if __name__ == "__main__":
    from scc.tools import init_logging, set_logging_level
    from scc.paths import get_share_path
    init_logging(suffix=" OSD")
    set_logging_level('debug' in sys.argv, 'debug' in sys.argv)

    d = OSDDaemon()
    d.run()
    sys.exit(d.get_exit_code())
				self._window.quit()
				self._window = None
		else:
			log.warning("Unknown command from daemon: '%s'", message)
	
	
	def run(self):
		self.daemon = DaemonManager()
		self.daemon.connect('dead', self.on_daemon_died)
		self.daemon.connect('alive', self.on_daemon_connected)
		self.daemon.connect('unknown-msg', self.on_unknown_message)
		self.mainloop.run()


def split(s):
	lex = shlex.shlex(s, posix=True)
	lex.escapedquotes = '"\''
	lex.whitespace_split = True
	return list(lex)


if __name__ == "__main__":
	from scc.tools import init_logging, set_logging_level
	from scc.paths import get_share_path
	init_logging()
	set_logging_level('debug' in sys.argv, 'debug' in sys.argv)
	
	d = OSDDaemon()
	d.run()
	sys.exit(d.get_exit_code())
Example #6
0
	def do_local_options(self, trash, lo):
		set_logging_level(lo.contains("verbose"), lo.contains("debug") )
		return -1
Example #7
0
			print tup
	
	dev = HIDRaw(open(filename, "w+b"))
	driver = Driver(FakeDaemon(), {})
	c = TestSC(driver, None, dev)
	c.configure()
	c.flush()
	while True:
		c._input()
		print { x[0]: getattr(c._state, x[0]) for x in c._state._fields_ }

_drv = None


def init(daemon, config):
	""" Registers hotplug callback for controller dongle """

	# if not (HAVE_EVDEV and config["drivers"].get("evdevdrv")):
	# 	log.warning("Evdev driver is not enabled, Steam Controller over Bluetooth support cannot be enabled.")
	# 	return False
	_drv = Driver(daemon, config)
	return True


if __name__ == "__main__":
	""" Called when executed as script """
	from scc.tools import init_logging, set_logging_level
	init_logging()
	set_logging_level(True, True)
	sys.exit(hidraw_test(sys.argv[1]))
Example #8
0
	def do_local_options(self, trash, lo):
		set_logging_level(lo.contains("verbose"), lo.contains("debug") )
		self.osd_mode = lo.contains("osd")
		return -1
Example #9
0
class OSDWindow(Gtk.Window):
    # TODO: Configurable css
    CSS = """
		#osd-message, #osd-menu, #osd-keyboard {
			background-color: black;
			border: 6px lime double;
		}
		
		#osd-area {
			background-color: lime;
		}
		
		#osd-label {
			color: lime;
			border: none;
			font-size: xx-large;
			margin: 15px 15px 15px 15px;
		}
		
		#osd-menu {
			padding: 7px 7px 7px 7px;
		}
		
		#osd-keyboard-container {
			padding: 6px 6px 6px 6px;
		}
		
		#osd-menu-item, #osd-menu-item-selected, #osd-menu-dummy {
			color: #00E000;
			border-radius: 0;
			font-size: x-large;
			background-image: none;
			background-color: black;
			margin: 0px 0px 2px 0px;
		}
		
		#osd-menu-item {
			border: 1px #004000 solid;
		}
		
		#osd-menu-separator {
			color: #109010;
			font-size: large;
			background-image: none;
			background-color: black;
			margin: 5px 0px 0px 0px;
			padding: 0px 0px 0px 0px;
		}
		
		#osd-menu-item-selected {
			color: #00FF00;
			background-color: #000070;
			border: 1px #00FF00 solid;
		}
		
		#osd-menu-cursor, #osd-keyboard-cursor {
		}
	"""
    EPILOG = ""

    def __init__(self, wmclass):
        Gtk.Window.__init__(self)
        OSDWindow._apply_css()

        self.argparser = argparse.ArgumentParser(
            description=__doc__,
            formatter_class=argparse.RawDescriptionHelpFormatter,
            epilog=self.EPILOG)
        self._add_arguments()
        self.exit_code = -1
        self.position = (20, -20)
        self.mainloop = None
        self.set_name(wmclass)
        self.set_wmclass(wmclass, wmclass)
        self.set_decorated(False)
        self.stick()
        self.set_skip_taskbar_hint(True)
        self.set_skip_pager_hint(True)
        self.set_keep_above(True)
        self.set_type_hint(Gdk.WindowTypeHint.NOTIFICATION)

    @staticmethod
    def _apply_css():
        css = Gtk.CssProvider()
        css.load_from_data(str(OSDWindow.CSS))
        Gtk.StyleContext.add_provider_for_screen(
            Gdk.Screen.get_default(), css, Gtk.STYLE_PROVIDER_PRIORITY_USER)

    def _add_arguments(self):
        """ Should be overriden AND called by child class """
        self.argparser.add_argument(
            '-x',
            type=int,
            metavar="pixels",
            default=20,
            help="""horizontal position in pixels, from left side of screen.
			Use negative value to specify as distance from right side (default: 20)""")
        self.argparser.add_argument(
            '-y',
            type=int,
            metavar="pixels",
            default=-20,
            help="""vertical position in pixels, from top side of screen.
			Use negative value to specify as distance from bottom side (default: -20)"""
        )
        self.argparser.add_argument('-d',
                                    action='store_true',
                                    help="""display debug messages""")

    def parse_argumets(self, argv):
        """ Returns True on success """
        try:
            self.args = self.argparser.parse_args(argv[1:])
        except BaseException, e:  # Includes SystemExit
            return False
        del self.argparser
        self.position = (self.args.x, self.args.y)
        if self.args.d:
            set_logging_level(True, True)
        return True