summaryrefslogtreecommitdiff
path: root/exampleCode/player/dbushandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'exampleCode/player/dbushandler.cpp')
-rw-r--r--exampleCode/player/dbushandler.cpp742
1 files changed, 0 insertions, 742 deletions
diff --git a/exampleCode/player/dbushandler.cpp b/exampleCode/player/dbushandler.cpp
deleted file mode 100644
index 1e8cd80..0000000
--- a/exampleCode/player/dbushandler.cpp
+++ /dev/null
@@ -1,742 +0,0 @@
-/**
- * Copyright (C) 2012, BMW AG
- *
- *
- * \copyright
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, version 2
- * of the License.
-
- * 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- *
- * \author Christian Mueller, christian.ei.mueller@bmw.de BMW 2011,2012
- *
- *
- */
-#include "dbushandler.h"
-#include <stdio.h>
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <dbus/dbus.h>
-#include <glib.h>
-#include <stdint.h>
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-#include <pthread.h>
-
-DBusMessage* DbusHandler::msg;
-DBusMessageIter DbusHandler::args;
-DBusConnection* DbusHandler::conn;
-DBusError DbusHandler::err;
-DBusPendingCall* DbusHandler::pending;
-gboolean DbusHandler:: ret;
-dbus_uint16_t DbusHandler::result;
-GMainLoop* DbusHandler::mainloop;
-
-DbusHandler::DbusHandler()
-{
- dbus_error_init(&err);
- conn = dbus_bus_get(DBUS_BUS_SESSION, &err);
- if (!conn)
- printf("did not get connection error %s", err.message);
- pthread_t thread1;
- int threadid;
- threadid = pthread_create(&thread1,NULL,DbusHandler::Initialize,(void*)this);
-}
-
- DBusHandlerResult DbusHandler::signal_filter(DBusConnection *c, DBusMessage *message, void *user_data)
-{
- fprintf(stderr,"entered into signal_filter\n");
-
- // s_userdata * tempUserdata=static_cast<s_userdata *>(user_data);
- // GMainLoop *loop = tempUserdata->Tempmainloop;
- DbusHandler * tempHandler=static_cast<DbusHandler *>(user_data);
- DBusMessageIter args,args1;
- dbus_uint16_t sink;
-
-
- fprintf(stderr,"received: member %s\n",dbus_message_get_member(message));
-
- if (dbus_message_is_signal(message, "org.genivi.audiomanager", "VolumeChanged"))
- {
- dbus_int16_t Vol;
- fprintf(stderr,"Message customized received\n");
- if (!dbus_message_iter_init(message, &args))
- fprintf(stderr, "VolumeChanged :Message Has No Parameters\n");
- else
- dbus_message_iter_get_basic(&args, &sink);
- if (!dbus_message_iter_next(&args))
- fprintf(stderr, "VolumeChanged :Message has too few arguments!\n");
- else
- dbus_message_iter_get_basic(&args, &Vol);
- emit tempHandler->Volumechanged(sink,Vol);
- fprintf(stderr,"Got Signal with value %d ,%d\n", sink, Vol);
- return DBUS_HANDLER_RESULT_HANDLED;
- }
-
- if (dbus_message_is_signal(message, "org.genivi.audiomanager", "NumberOfMainConnectionsChanged"))
- {
-
- fprintf(stderr,"Message customized received\n");
- emit tempHandler->NumberOfConnectionsChanged();
- return DBUS_HANDLER_RESULT_HANDLED;
- }
- if (dbus_message_is_signal(message, "org.genivi.audiomanager", "MainConnectionStateChanged"))
- {
-
- fprintf(stderr,"Message customized received\n");
- emit tempHandler->NumberOfConnectionsChanged();
- return DBUS_HANDLER_RESULT_HANDLED;
- }
-
- if (dbus_message_is_signal(message, "org.genivi.audiomanager", "SinkMuteStateChanged"))
- {dbus_int16_t mutestate;
- fprintf(stderr,"Message customized received\n");
- if (!dbus_message_iter_init(message, &args))
- fprintf(stderr, "SinkMuteStateChanged :Message Has No Parameters\n");
- else
- dbus_message_iter_get_basic(&args, &sink);
- if (!dbus_message_iter_next(&args))
- fprintf(stderr, "SinkMuteStateChanged :Message has too few arguments!\n");
- else{
- dbus_message_iter_get_basic(&args, &mutestate);
-
- emit tempHandler->Mutestatechanged(sink,static_cast<am_MuteState_e>(mutestate));
- }
- return DBUS_HANDLER_RESULT_HANDLED;
- }
- if (dbus_message_is_signal(message, "org.genivi.audiomanager", "MainSinkSoundPropertyChanged"))
- {dbus_int16_t type,value;
- if (!dbus_message_iter_init(message, &args))
- fprintf(stderr, "SoundProperychanged :Message Has No Parameters\n");
- else
- dbus_message_iter_get_basic(&args, &sink);
- if (!dbus_message_iter_next(&args))
- fprintf(stderr, "SoundProperychanged :Message has too few arguments!\n");
- else
- if (DBUS_TYPE_STRUCT == dbus_message_iter_get_arg_type(&args))
- {
-
- dbus_message_iter_recurse(&args, &args1);
- dbus_message_iter_get_basic(&args1, &type);
- fprintf(stderr, "type :%d\n",type);
- dbus_message_iter_next(&args1);
- dbus_message_iter_get_basic(&args1, &value);
- fprintf(stderr, "value :%d\n",value);
- }
- fprintf(stderr,"Message customized received\n");
- am_MainSoundProperty_s tempsoundproperty;
- tempsoundproperty.type=static_cast<am_MainSoundPropertyType_e>(type);
- tempsoundproperty.value=value;
- emit tempHandler->SoundpropertyChanged(sink,tempsoundproperty);
- return DBUS_HANDLER_RESULT_HANDLED;
- }
-
-
- const char* interface = dbus_message_get_interface(message);
- const char* member = dbus_message_get_member(message);
- const char* path = dbus_message_get_path(message);
- fprintf(stderr,"path %s\n",path);
-
- if (strcmp(member,"asyncSetSourceState")==0)
- {
- uint16_t sourceID=0, handle=0;
- int16_t state=0;
- if (!dbus_message_iter_init(message, &args))
- fprintf(stderr, "asyncSetSourceState :Message Has No Parameters\n");
- else
- dbus_message_iter_get_basic(&args, &handle);
- if (!dbus_message_iter_next(&args))
- fprintf(stderr, "asyncSetSourceState :Message has too few arguments!\n");
- else
- dbus_message_iter_get_basic(&args, &sourceID);
- if (!dbus_message_iter_next(&args))
- fprintf(stderr, "asyncSetSourceState :Message has too few arguments!\n");
- else
- dbus_message_iter_get_basic(&args, &state);
-
- emit tempHandler->SourceActivity(static_cast<am_sourceID_t>(sourceID),static_cast<am_SourceState_e>(state));
- }
- return DBUS_HANDLER_RESULT_HANDLED;
- }
-
-void* DbusHandler::Initialize(void * userdata)
-{
- // DbusHandler * abc =static_cast<DbusHandler *>(userdata);
- static DBusObjectPathVTable vtable_root;
- vtable_root.message_function = signal_filter;
- mainloop = g_main_loop_new(NULL, FALSE);
- dbus_connection_setup_with_g_main (conn, NULL);
- dbus_bus_add_match(conn, "type='signal',interface='org.genivi.audiomanager'", &err);
- dbus_bus_add_match(conn, "sender='org.genivi.audiomanager',member='asyncSetSourceState'", &err);
- if (dbus_error_is_set(&err))
- {
- printf("Match Error (%s)\n", err.message);
- exit(1);
- }
-
- ret = dbus_connection_add_filter(conn,signal_filter,userdata, NULL);
- if (!ret)
- {
- fprintf(stderr,"dbus_connection_add_filter failed");
- }
-
- dbus_connection_flush(conn);
- if (dbus_error_is_set(&err))
- {
- printf("Problem to flush (%s)\n", err.message);
- exit(1);
- }
-
- fprintf(stderr,"Match rule sent\n");
-
- g_main_loop_run (mainloop);
-}
-//-------------------------------------------------------------------------
-int DbusHandler::Sender()
-{
- if (NULL == msg)
- {
- fprintf(stderr, "Message Null\n");
- exit(1);
- }
- //sleep(1);
-
- if (!dbus_connection_send_with_reply(conn, msg, &pending, -1))
- {
- fprintf(stderr, "Sender: Out Of Memory!\n");
- exit(1);
- }
- if (NULL == pending)
- {
- fprintf(stderr, "Pending Call Null\n");
- exit(1);
- }
- dbus_connection_flush(conn);
- printf("Request Sent\n");
-
- dbus_message_unref(msg);
-
- dbus_pending_call_block(pending);
-
- msg = dbus_pending_call_steal_reply(pending);
- if (NULL == msg)
- {
- fprintf(stderr, "Reply Null\n");
- exit(1);
- }
- return 0;
-}
-//---------------------------------------------------------------------
-int DbusHandler::Sender_forlists()
-{
- if (NULL == msg)
- {
- fprintf(stderr, "Message Null\n");
- exit(1);
- }
- sleep(1);
-
- if (!dbus_connection_send_with_reply(conn, msg, &pending, -1))
- {
- fprintf(stderr, "Sender: Out Of Memory!\n");
- exit(1);
- }
- if (NULL == pending)
- {
- fprintf(stderr, "Pending Call Null\n");
- exit(1);
- }
- dbus_connection_flush(conn);
- printf("Request Sent\n");
-
- dbus_message_unref(msg);
-
- dbus_pending_call_block(pending);
-
- msg = dbus_pending_call_steal_reply(pending);
- if (NULL == msg)
- {
- fprintf(stderr, "Reply Null\n");
- exit(1);
- }
- return 0;
-}
-
-//----------------------------------------------------------------
-am_Error_e DbusHandler::connect(am_sourceID_t SourceID,am_sinkID_t SinkID ,am_connectionID_t &ConnectionID)
-{
- msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "Connect");
-
- dbus_message_iter_init_append(msg, &args);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &SourceID))
- {
- fprintf(stderr, "in Connect 1st Arg Out Of Memory!\n");
- exit(1);
- }
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &SinkID))
- {
- fprintf(stderr, "in Connect 2nd Arg Out Of Memory!\n");
- exit(1);
- }
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter iter1 ;
-
-
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved %c",dbus_message_iter_get_arg_type(&iter1));
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- dbus_message_iter_next(&iter1);
- if (DBUS_TYPE_UINT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved %c",dbus_message_iter_get_arg_type(&iter1));
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &ConnectionID);
- fprintf(stderr,"Got result ,%d\n", ConnectionID);
-return static_cast <am_Error_e>(result);
-}
-
-////------------------------------------------------------------------------------------
-am_Error_e DbusHandler::disconnect(unsigned int ConnectionID)
-{
- msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "Disconnect");
- dbus_message_iter_init_append(msg, &args);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &ConnectionID))
- {
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
- }
- cout<<"Attempting to send"<<endl;
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter iter1 ;
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved %c",dbus_message_iter_get_arg_type(&iter1));
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- return static_cast <am_Error_e>(result);
-}
-////----------------------------------------------------------------------------
-am_Error_e DbusHandler:: SetVolume(const am_sinkID_t sinkID, const am_mainVolume_t volume)
-{
- msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "SetVolume");
- dbus_message_iter_init_append(msg, &args);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &sinkID))
- {
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
- }
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT16, &volume))
- {
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
- }
-
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter iter1 ;
-
-
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- {
- printf("Incorrect value recieved %c",dbus_message_iter_get_arg_type(&iter1));
-
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- return static_cast <am_Error_e>(result);
-}
-////------------------------------------------------------------------------------------------
-
-am_Error_e DbusHandler:: VolumeStep(const am_sinkID_t sinkID, const int16_t volumeStep)
-{msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "VolumeStep");
-dbus_message_iter_init_append(msg, &args);
-if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &sinkID))
-{
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
-}
-if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT16, &volumeStep))
-{
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
-}
-
-Sender();
-dbus_pending_call_unref(pending);
-DBusMessageIter iter1 ;
-
-
-if (!dbus_message_iter_init(msg, &iter1))
-fprintf(stderr, "Message Has No Parameters\n");
-if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
-{ printf("Incorrect value recieved %c",dbus_message_iter_get_arg_type(&iter1));
-exit(1);
-}
-dbus_message_iter_get_basic(&iter1, &result);
-fprintf(stderr,"Got result ,%d\n", result);
-return static_cast <am_Error_e>(result);
-
-}
-////-----------------------------------------------------------------------------------------
-am_Error_e DbusHandler:: SetSinkMuteState(const am_sinkID_t sinkID, const am_MuteState_e muteState)
-{
- msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "SetSinkMuteState");
- dbus_message_iter_init_append(msg, &args);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &sinkID))
- {
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
- }
- int temp_mutestate = static_cast<int>(muteState);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT16, &temp_mutestate))
- {
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
- }
-
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter iter1 ;
-
-
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved %c",dbus_message_iter_get_arg_type(&iter1));
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- return static_cast <am_Error_e>(result);
-
-
-}
-////---------------------------------------------------------------------------------------------------
-am_Error_e DbusHandler ::SetMainSinkSoundProperty(const am_sinkID_t sinkID, const am_MainSoundProperty_s &soundProperty)
-{
- msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "SetMainSinkSoundProperty");
- dbus_message_iter_init_append(msg, &args);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &sinkID))
- {
- fprintf(stderr, "Out Of Memory!\n");
- exit(1);
- }
- DBusMessageIter structIter;
- dbus_bool_t success = true;
- dbus_message_iter_open_container(&args, DBUS_TYPE_STRUCT, NULL, &structIter);
- success = success && dbus_message_iter_append_basic(&structIter, DBUS_TYPE_INT16, &soundProperty.type);
- success = success && dbus_message_iter_append_basic(&structIter, DBUS_TYPE_INT16, &soundProperty.value);
- success = success && dbus_message_iter_close_container(&args, &structIter);
-
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter iter1 ;
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved %c",dbus_message_iter_get_arg_type(&iter1));
- char * abc;
- dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &abc);
- printf("Incorrect value recieved %s",abc);
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- return static_cast <am_Error_e>(result);
-
-
-}
-////----------------------------------------------------------------------------------------------------------------------
-am_Error_e DbusHandler::GetListMainConnections(std::vector<am_MainConnectionType_s *> &listConnections)
-{
- msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "GetListMainConnections");
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter subIter,iter1,iter2 ;
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved");
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- dbus_message_iter_next(&iter1);
- if (DBUS_TYPE_ARRAY== dbus_message_iter_get_arg_type(&iter1))
- { // fprintf(stderr, "a:%d\n", a);
- for (dbus_message_iter_recurse(&iter1, &iter2);
- dbus_message_iter_get_arg_type(&iter2) != DBUS_TYPE_INVALID;
- dbus_message_iter_next(&iter2))
- {
- am_MainConnectionType_s* TempConnection= new am_MainConnectionType_s();
- if (DBUS_TYPE_STRUCT == dbus_message_iter_get_arg_type(&iter2))
- {
- dbus_message_iter_recurse(&iter2, &subIter);
- dbus_uint16_t ConnID,SourceID,SinkID;
- dbus_int16_t Timedelay,ConnectionState;
- dbus_message_iter_get_basic(&subIter, &ConnID);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &SourceID);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &SinkID);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &Timedelay);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &ConnectionState);
- dbus_message_iter_next(&subIter);
-
- {
- TempConnection->mainConnectionID=ConnID;
- TempConnection->sourceID=SourceID;
- TempConnection->sinkID=SinkID;
- TempConnection->delay=Timedelay;
- TempConnection->connectionState=static_cast<am_ConnectionState_e>(ConnectionState);
- listConnections.push_back(TempConnection);
- }
- }
-
- }
- }
-
-
-
-return static_cast <am_Error_e>(result);
-}
-////------------------------------------------------------------Rossini--------------------------------------------------
-am_Error_e DbusHandler::GetListMainSinks(std::vector<am_SinkType_s> &listSinks)
-{ msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "GetListMainSinks");
-
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter subIter,iter1,iter2,subsubiter ;
-
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved");
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- dbus_message_iter_next(&iter1);
- if (DBUS_TYPE_ARRAY== dbus_message_iter_get_arg_type(&iter1))
- { // fprintf(stderr, "a:%d\n", a);
- for (dbus_message_iter_recurse(&iter1, &iter2);
- dbus_message_iter_get_arg_type(&iter2) != DBUS_TYPE_INVALID;
- dbus_message_iter_next(&iter2))
- {
- am_SinkType_s TempSink;
- if (DBUS_TYPE_STRUCT == dbus_message_iter_get_arg_type(&iter2))
- {
- dbus_message_iter_recurse(&iter2, &subIter);
- dbus_uint16_t SinkID,SinkClassID,availability,availability_reason,volume,mute_state;
- char* Sinkname;
- dbus_message_iter_get_basic(&subIter, &SinkID);
- //fprintf(stderr, "sourceID:%d\n",sourceID);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &Sinkname);
- //fprintf(stderr, "name :%s\n",sourcename);
- dbus_message_iter_next(&subIter);
- if (DBUS_TYPE_STRUCT == dbus_message_iter_get_arg_type(&subIter))
- {
- dbus_message_iter_recurse(&subIter, &subsubiter);
- dbus_message_iter_get_basic(&subsubiter, &availability);
- fprintf(stderr, "availability value:%d\n",availability);
- dbus_message_iter_next(&subsubiter);
- dbus_message_iter_get_basic(&subsubiter, &availability_reason);
- fprintf(stderr, "availability reason value:%d\n",availability_reason);
- }
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &volume);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &mute_state);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &SinkClassID);
- fprintf(stderr, "muteState value:%d\n",SinkClassID);
- fprintf(stderr, "*****************************************\n");
- TempSink.sinkID=SinkID;
- TempSink.name=Sinkname;
- TempSink.availability.availability=static_cast<am_Availability_e>(availability);
- TempSink.availability.availabilityReason=static_cast<am_AvailabilityReason_e>(availability_reason);
- TempSink.sinkClassID=SinkClassID;
- TempSink.volume=volume;
- TempSink.muteState=static_cast<am_MuteState_e>(mute_state);
- listSinks.push_back(TempSink);
- }
-
- }
- }
- return static_cast <am_Error_e>(result);
-}
-////-------------------------------------------------------------------------------------------------
-
-am_Error_e DbusHandler::GetListMainSources(std::vector<am_SourceType_s> &listSources)
-{
-
- msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "GetListMainSources");
-
- Sender_forlists();
- dbus_pending_call_unref(pending);
- DBusMessageIter subIter,iter1,iter2,subsubiter ;
- dbus_bool_t success = true;
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved");
- exit(1);
- }
- dbus_message_iter_get_basic(&iter1, &result);
- fprintf(stderr,"Got result ,%d\n", result);
- dbus_message_iter_next(&iter1);
- if (DBUS_TYPE_ARRAY== dbus_message_iter_get_arg_type(&iter1))
- { // fprintf(stderr, "a:%d\n", a);
- for (dbus_message_iter_recurse(&iter1, &iter2);
- dbus_message_iter_get_arg_type(&iter2) != DBUS_TYPE_INVALID;
- dbus_message_iter_next(&iter2))
- {
- am_SourceType_s TempSource;
-
- if (DBUS_TYPE_STRUCT == dbus_message_iter_get_arg_type(&iter2))
- {
- dbus_message_iter_recurse(&iter2, &subIter);
- dbus_uint16_t sourceID,SourceClassID,availability,availability_reason;
- char* sourcename;
- dbus_message_iter_get_basic(&subIter, &sourceID);
- //fprintf(stderr, "sourceID:%d\n",sourceID);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &sourcename);
- //fprintf(stderr, "name :%s\n",sourcename);
- dbus_message_iter_next(&subIter);
- if (DBUS_TYPE_STRUCT == dbus_message_iter_get_arg_type(&subIter))
- {
- dbus_message_iter_recurse(&subIter, &subsubiter);
- dbus_message_iter_get_basic(&subsubiter, &availability);
- fprintf(stderr, "availability value:%d\n",availability);
- dbus_message_iter_next(&subsubiter);
- dbus_message_iter_get_basic(&subsubiter, &availability_reason);
- fprintf(stderr, "availability reason value:%d\n",availability_reason);
- }
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &SourceClassID);
- fprintf(stderr, "muteState value:%d\n",SourceClassID);
- fprintf(stderr, "*****************************************\n");
- TempSource.sourceID=sourceID;
- TempSource.name=sourcename;
- TempSource.availability.availability=static_cast<am_Availability_e>(availability);
- TempSource.availability.availabilityReason=static_cast<am_AvailabilityReason_e>(availability_reason);
- TempSource.sourceClassID=SourceClassID;
- listSources.push_back(TempSource);
- }
-
- }
- }
- return static_cast <am_Error_e>(result);
-}
-
-
-////--------------------------------------------------------------------------------------------------------------------
-am_Error_e DbusHandler::GetListMainSinkSoundProperties(const am_sinkID_t sinkID, std::vector<am_MainSoundProperty_s *> &listSoundProperties)
-{ msg = dbus_message_new_method_call("org.genivi.audiomanager", // target for the method call
- "/org/genivi/audiomanager/CommandInterface", // object to call on
- "org.genivi.audiomanager.CommandInterface", // interface to call on
- "GetListMainSinkSoundProperties");
-
-
- dbus_message_iter_init_append(msg, &args);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT16, &sinkID))
- {
- fprintf(stderr, "GetListMainSinkSoundProperties Out Of Memory!\n");
- exit(1);
- }
- Sender();
- dbus_pending_call_unref(pending);
- DBusMessageIter subIter,iter1,iter2 ;
-
- if (!dbus_message_iter_init(msg, &iter1))
- fprintf(stderr, "Message Has No Parameters\n");
- if (DBUS_TYPE_INT16!= dbus_message_iter_get_arg_type(&iter1))
- { printf("Incorrect value recieved,%c",dbus_message_iter_get_arg_type(&iter1));
- exit(1);
- }
-
- dbus_message_iter_get_basic(&iter1, &result);
-
- dbus_message_iter_next(&iter1);
- if (DBUS_TYPE_ARRAY== dbus_message_iter_get_arg_type(&iter1))
- { // fprintf(stderr, "a:%d\n", a);
- for (dbus_message_iter_recurse(&iter1, &iter2);
- dbus_message_iter_get_arg_type(&iter2) != DBUS_TYPE_INVALID;
- dbus_message_iter_next(&iter2))
- {am_MainSoundProperty_s* SoundProperty= new am_MainSoundProperty_s();
-
- if (DBUS_TYPE_STRUCT == dbus_message_iter_get_arg_type(&iter2))
- {
- dbus_message_iter_recurse(&iter2, &subIter);
- dbus_uint16_t Type,Value;
- dbus_message_iter_get_basic(&subIter, &Type);
- //fprintf(stderr, "sourceID:%d\n",sourceID);
- dbus_message_iter_next(&subIter);
- dbus_message_iter_get_basic(&subIter, &Value);
- SoundProperty->type=static_cast<am_MainSoundPropertyType_e>(Type);
- SoundProperty->value=Value;
- listSoundProperties.push_back(SoundProperty);
- }
-
- }
- }
- return static_cast <am_Error_e>(result);
-
-}
-