handsfree-audio: Add Manager registration

Adds the initial implementation of new experimental Handsfree Audio
Manager interface. This patch adds the interface registration and
the declaration of it's methods.
This commit is contained in:
Claudio Takahasi 2013-02-20 18:55:45 -03:00 committed by Denis Kenzior
parent 57a44e8d23
commit 850c1811fc
3 changed files with 86 additions and 1 deletions

View File

@ -507,7 +507,8 @@ src_ofonod_SOURCES = $(gdbus_sources) $(builtin_sources) src/ofono.ver \
src/gnssagent.c src/gnssagent.h \
src/cdma-smsutil.h src/cdma-smsutil.c \
src/cdma-sms.c src/private-network.c src/cdma-netreg.c \
src/cdma-provision.c src/handsfree.c
src/cdma-provision.c src/handsfree.c \
src/handsfree-audio.c
src_ofonod_LDADD = $(builtin_libadd) @GLIB_LIBS@ @DBUS_LIBS@ -ldl

81
src/handsfree-audio.c Normal file
View File

@ -0,0 +1,81 @@
/*
*
* oFono - Open Source Telephony
*
* Copyright (C) 2013 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <errno.h>
#include <stdio.h>
#include <gdbus.h>
#include "ofono.h"
#define HFP_AUDIO_MANAGER_INTERFACE OFONO_SERVICE ".HandsfreeAudioManager"
static DBusMessage *am_get_cards(DBusConnection *conn,
DBusMessage *msg, void *user_data)
{
return __ofono_error_not_implemented(msg);
}
static DBusMessage *am_agent_register(DBusConnection *conn,
DBusMessage *msg, void *user_data)
{
return __ofono_error_not_implemented(msg);
}
static DBusMessage *am_agent_unregister(DBusConnection *conn,
DBusMessage *msg, void *user_data)
{
return __ofono_error_not_implemented(msg);
}
static const GDBusMethodTable am_methods[] = {
{ GDBUS_METHOD("GetCards",
NULL, GDBUS_ARGS({"cards", "a{oa{sv}}"}),
am_get_cards) } ,
{ GDBUS_METHOD("Register",
GDBUS_ARGS({"path", "o"}, {"codecs", "ay"}), NULL,
am_agent_register) },
{ GDBUS_METHOD("Unregister",
GDBUS_ARGS({"path", "o"}), NULL,
am_agent_unregister) },
{ }
};
int __ofono_handsfree_audio_manager_init(void)
{
if (!g_dbus_register_interface(ofono_dbus_get_connection(),
"/", HFP_AUDIO_MANAGER_INTERFACE,
am_methods, NULL, NULL, NULL, NULL)) {
return -EIO;
}
return 0;
}
void __ofono_handsfree_audio_manager_cleanup(void)
{
g_dbus_unregister_interface(ofono_dbus_get_connection(), "/",
HFP_AUDIO_MANAGER_INTERFACE);
}

View File

@ -30,6 +30,9 @@ void __ofono_exit(void);
int __ofono_manager_init(void);
void __ofono_manager_cleanup(void);
int __ofono_handsfree_audio_manager_init(void);
void __ofono_handsfree_audio_manager_cleanup(void);
void __ofono_modem_shutdown(void);
#include <ofono/log.h>