skeleton appman.c (cdbus)

This commit is contained in:
Nedko Arnaudov 2023-12-09 16:19:35 +02:00
parent 5c958ba00d
commit 4aae8c3be9
5 changed files with 125 additions and 4 deletions

View File

@ -27,3 +27,12 @@ doxdoc:
mkdir -vp build
doxygen doc/Doxyfile
cp doc/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js build/doxout/html/
.PHONY: cdbus_regenerate
cdbus_regenerate: appman_defs.c
# force regenerate (so cdbus-codegen changes apply)
.PHONY: appman_defs.c
appman_defs.c: org.ladish.applicationmanager.xml
cat org.ladish.applicationmanager.xml | cdbus-codegen jpl_appman > appman_defs.c

41
appman.c Normal file
View File

@ -0,0 +1,41 @@
/* -*- Mode: C ; c-basic-offset: 2 -*- */
/*
* SPDX-FileCopyrightText: Copyright © 2023 Nedko Arnaudov
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include <cdbus/cdbus.h>
void jpl_appman_cdbus_applicationIds_dbus(struct cdbus_method_call * call_ptr)
{
}
void jpl_appman_cdbus_get_dbus(struct cdbus_method_call * call_ptr)
{
}
void jpl_appman_cdbus_startApplication_dbus(struct cdbus_method_call * call_ptr)
{
}
void jpl_appman_cdbus_stopApplication2_dbus(struct cdbus_method_call * call_ptr)
{
}
void jpl_appman_cdbus_startApplicationOpenUrl_dbus(struct cdbus_method_call * call_ptr)
{
}
void jpl_appman_cdbus_stopApplication_dbus(struct cdbus_method_call * call_ptr)
{
}
void jpl_appman_cdbus_stopAllApplications_dbus(struct cdbus_method_call * call_ptr)
{
}
void jpl_appman_cdbus_stopAllApplications2_dbus(struct cdbus_method_call * call_ptr)
{
}
#include "appman_defs.c"

69
appman_defs.c Normal file
View File

@ -0,0 +1,69 @@
CDBUS_SIGNAL_ARGS_BEGIN(applicationWasActivated, "")
CDBUS_SIGNAL_ARG_DESCRIBE("id", "s", "")
CDBUS_SIGNAL_ARG_DESCRIBE("aliasId", "s", "")
CDBUS_SIGNAL_ARGS_END
CDBUS_SIGNAL_ARGS_BEGIN(countChanged, "")
CDBUS_SIGNAL_ARGS_END
CDBUS_SIGNAL_ARGS_BEGIN(applicationAdded, "")
CDBUS_SIGNAL_ARG_DESCRIBE("id", "s", "")
CDBUS_SIGNAL_ARGS_END
CDBUS_SIGNAL_ARGS_BEGIN(applicationAboutToBeRemoved, "")
CDBUS_SIGNAL_ARG_DESCRIBE("id", "s", "")
CDBUS_SIGNAL_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(applicationIds, "")
CDBUS_METHOD_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(get, "")
CDBUS_METHOD_ARG_DESCRIBE_IN("id", "s", "")
CDBUS_METHOD_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(startApplicationOpenUrl, "")
CDBUS_METHOD_ARG_DESCRIBE_IN("id", "s", "")
CDBUS_METHOD_ARG_DESCRIBE_IN("documentUrl", "s", "")
CDBUS_METHOD_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(startApplication, "")
CDBUS_METHOD_ARG_DESCRIBE_IN("id", "s", "")
CDBUS_METHOD_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(stopApplication2, "")
CDBUS_METHOD_ARG_DESCRIBE_IN("id", "s", "")
CDBUS_METHOD_ARG_DESCRIBE_IN("forceKill", "b", "")
CDBUS_METHOD_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(stopApplication, "")
CDBUS_METHOD_ARG_DESCRIBE_IN("id", "s", "")
CDBUS_METHOD_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(stopAllApplications, "")
CDBUS_METHOD_ARGS_END
CDBUS_METHOD_ARGS_BEGIN(stopAllApplications2, "")
CDBUS_METHOD_ARG_DESCRIBE_IN("forceKill", "b", "")
CDBUS_METHOD_ARGS_END
CDBUS_METHODS_BEGIN
CDBUS_METHOD_DESCRIBE(applicationIds, jpl_appman_cdbus_applicationIds_dbus)
CDBUS_METHOD_DESCRIBE(get, jpl_appman_cdbus_get_dbus)
CDBUS_METHOD_DESCRIBE(startApplicationOpenUrl, jpl_appman_cdbus_startApplicationOpenUrl_dbus)
CDBUS_METHOD_DESCRIBE(startApplication, jpl_appman_cdbus_startApplication_dbus)
CDBUS_METHOD_DESCRIBE(stopApplication2, jpl_appman_cdbus_stopApplication2_dbus)
CDBUS_METHOD_DESCRIBE(stopApplication, jpl_appman_cdbus_stopApplication_dbus)
CDBUS_METHOD_DESCRIBE(stopAllApplications, jpl_appman_cdbus_stopAllApplications_dbus)
CDBUS_METHOD_DESCRIBE(stopAllApplications2, jpl_appman_cdbus_stopAllApplications2_dbus)
CDBUS_METHODS_END
CDBUS_SIGNALS_BEGIN
CDBUS_SIGNAL_DESCRIBE(applicationWasActivated)
CDBUS_SIGNAL_DESCRIBE(countChanged)
CDBUS_SIGNAL_DESCRIBE(applicationAdded)
CDBUS_SIGNAL_DESCRIBE(applicationAboutToBeRemoved)
CDBUS_SIGNALS_END
#define JPL_APPMAN_CDBUS_IFACE_ORG_LADISH_APPLICATIONMANAGER0 "org.ladish.ApplicationManager0"
CDBUS_INTERFACE_DEFAULT_HANDLER_METHODS_AND_SIGNALS(jpl_appman_cdbus_interface_org_ladish_ApplicationManager0, JPL_APPMAN_CDBUS_IFACE_ORG_LADISH_APPLICATIONMANAGER0)

View File

@ -46,7 +46,7 @@
<!-- <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QtAM::UnixFdMap"/> -->
<!-- <arg name="documentUrl" type="s" direction="in"/> -->
<!-- </method> -->
<method name="startApplication">
<method name="startApplicationOpenUrl">
<arg type="b" direction="out"/>
<arg name="id" type="s" direction="in"/>
<arg name="documentUrl" type="s" direction="in"/>
@ -74,7 +74,7 @@
<!-- <arg name="id" type="s" direction="in"/> -->
<!-- <arg name="debugWrapper" type="s" direction="in"/> -->
<!-- </method> -->
<method name="stopApplication">
<method name="stopApplication2">
<arg name="id" type="s" direction="in"/>
<arg name="forceKill" type="b" direction="in"/>
</method>
@ -83,7 +83,7 @@
</method>
<method name="stopAllApplications">
</method>
<method name="stopAllApplications">
<method name="stopAllApplications2">
<arg name="forceKill" type="b" direction="in"/>
</method>
<!-- <method name="openUrl"> -->

View File

@ -88,6 +88,7 @@ def configure(conf):
conf.check_cfg(package='libevent', mandatory=True, args='--cflags --libs')
conf.check_cfg(package='liblo', mandatory=True, args='--cflags --libs')
conf.check_cfg(package='dbus-1', mandatory=False, args='--cflags --libs')
conf.check_cfg(package='cdbus-1', mandatory=False, args='--cflags --libs')
if Options.options.mandir:
conf.env['MANDIR'] = Options.options.mandir
@ -166,10 +167,11 @@ def build(bld):
prog = bld(features=['c', 'cprogram'])
prog.source = [
'main.c',
'appman.c',
]
prog.includes = '.' # config.h, gitverson.h include path
prog.target = 'jpl'
prog.use = ['LIBEVENT', 'LIBLO', 'DBUS-1']
prog.use = ['LIBEVENT', 'LIBLO', 'DBUS-1', 'CDBUS-1']
prog.defines = ["HAVE_CONFIG_H"]
# install man pages