Ejemplo n.º 1
0
def build(object_name, c_type):
	ipc = genipc.parse_xml('../src/ipc.xml')

	Indenter.printline('/* This code is automatically generated from foobar. Do not edit. */')
	Indenter.printline()
	Indenter.printline("#include <xmmsc/xmmsv.h>")

	for object in ipc.objects:
		if object.name == object_name:
			for method in object.methods:
				emit_method_define_code(object, method, c_type)

			Indenter.printline()
			Indenter.printline('static void')
			Indenter.printline('xmms_%s_register_ipc_commands (xmms_object_t *%s_object)' % (object.name, object.name))
			Indenter.enter('{')

			Indenter.printline('xmms_ipc_object_register (%i, %s_object);' % (object.id, object.name))
			Indenter.printline()

			for method in object.methods:
				emit_method_add_code(object, method)

			Indenter.printline()

			for broadcast in object.broadcasts:
				Indenter.printline('xmms_ipc_broadcast_register (%s_object, %i);' % (object.name, broadcast.id))

			Indenter.printline()

			for signal in object.signals:
				Indenter.printline('xmms_ipc_signal_register (%s_object, %i);' % (object.name, signal.id))

			Indenter.leave('}')

			Indenter.printline()
			Indenter.printline('static void')
			Indenter.printline('xmms_%s_unregister_ipc_commands (void)' % object.name)
			Indenter.enter('{')

			for broadcast in object.broadcasts:
				Indenter.printline('xmms_ipc_broadcast_unregister (%i);' % broadcast.id)

			Indenter.printline()

			for signal in object.signals:
				Indenter.printline('xmms_ipc_signal_unregister (%i);' % signal.id)

			Indenter.printline()
			Indenter.printline('xmms_ipc_object_unregister (%i);' % object.id)
			Indenter.leave('}')
Ejemplo n.º 2
0
def build(object_name, c_type):
	ipc = genipc.parse_xml('../src/ipc.xml')

	Indenter.printline('/* This code is automatically generated from foobar. Do not edit. */')
	Indenter.printline()
	Indenter.printline("#include <xmmsc/xmmsv.h>")

	for object in ipc.objects:
		if object.name == object_name:
			for method in object.methods:
				emit_method_define_code(object, method, c_type)

			Indenter.printline()
			Indenter.printline('static void')
			Indenter.printline('xmms_%s_register_ipc_commands (xmms_object_t *%s_object)' % (object.name, object.name))
			Indenter.enter('{')

			Indenter.printline('xmms_ipc_object_register (%s, %s_object);' % (_enum_value(object.id), object.name))
			Indenter.printline()

			for method in object.methods:
				emit_method_add_code(object, method)

			Indenter.printline()

			for broadcast in object.broadcasts:
				Indenter.printline('xmms_ipc_broadcast_register (%s_object, %s);' % (object.name, _enum_value(broadcast.id)))

			Indenter.printline()

			for signal in object.signals:
				Indenter.printline('xmms_ipc_signal_register (%s_object, %s);' % (object.name, _enum_value(signal.id)))

			Indenter.leave('}')

			Indenter.printline()
			Indenter.printline('static void')
			Indenter.printline('xmms_%s_unregister_ipc_commands (void)' % object.name)
			Indenter.enter('{')

			for broadcast in object.broadcasts:
				Indenter.printline('xmms_ipc_broadcast_unregister (%s);' % _enum_value(broadcast.id))

			Indenter.printline()

			for signal in object.signals:
				Indenter.printline('xmms_ipc_signal_unregister (%s);' % _enum_value(signal.id))

			Indenter.printline()
			Indenter.printline('xmms_ipc_object_unregister (%s);' % _enum_value(object.id))
			Indenter.leave('}')
Ejemplo n.º 3
0
def build():
    ipc = genipc.parse_xml('../src/ipc.xml')

    print(HEADER_PROLOG)
    print('')

    for n, c in ipc.constants.items():
        define_constant(c)
    print('')

    for n, e in ipc.enums.items():
        build_enum(e, ipc.enums)

    print('')
    print(HEADER_EPILOG)
Ejemplo n.º 4
0
def build():
	ipc = genipc.parse_xml('../src/ipc.xml')

	print(HEADER_PROLOG)
	print('')

	for n, c in ipc.constants.items():
		define_constant(c)
	print('')

	for n, e in ipc.enums.items():
		build_enum(e, ipc.enums)

	print('')
	print(HEADER_EPILOG)
Ejemplo n.º 5
0
    if arguments:
        Indenter.printline()

    Indenter.printline("message = new xmmsclient.Message()")

    if not name_prefix:
        Indenter.printline("message.object_id = @object_id")
        Indenter.printline("message.command_id = %i" % method.id)
        s = ", ".join(a.name for a in arguments)
        Indenter.printline("message.args = [%s]" % s)
    elif name_prefix == "signal_":
        Indenter.printline("message.object_id = 0")
        Indenter.printline("message.command_id = 32")
        Indenter.printline("message.args = [%i]" % method.id)
    elif name_prefix == "broadcast_":
        Indenter.printline("message.object_id = 0")
        Indenter.printline("message.command_id = 33")
        Indenter.printline("message.args = [%i]" % method.id)

    Indenter.printline()

    if name_prefix == "signal_":
        Indenter.printline("return @client.send_signal_message message, %i" % method.id)
    else:
        Indenter.printline("return @client.send_message message")
    Indenter.leave("")
    Indenter.printline()

ipc = genipc.parse_xml(sys.argv[1])
build(ipc)
Ejemplo n.º 6
0
    if arguments:
        Indenter.printline()

    Indenter.printline("message = new xmmsclient.Message()")

    if not name_prefix:
        Indenter.printline("message.object_id = @object_id")
        Indenter.printline("message.command_id = %i" % method.id)
        s = ", ".join(a.name for a in arguments)
        Indenter.printline("message.args = [%s]" % s)
    elif name_prefix == "signal_":
        Indenter.printline("message.object_id = 0")
        Indenter.printline("message.command_id = 32")
        Indenter.printline("message.args = [%i]" % method.id)
    elif name_prefix == "broadcast_":
        Indenter.printline("message.object_id = 0")
        Indenter.printline("message.command_id = 33")
        Indenter.printline("message.args = [%i]" % method.id)

    Indenter.printline()

    if name_prefix == "signal_":
        Indenter.printline("return @client.send_signal_message message, %i" % method.id)
    else:
        Indenter.printline("return @client.send_message message")
    Indenter.leave("")
    Indenter.printline()

ipc = genipc.parse_xml(sys.argv[1])
build(ipc)