는 펄스 오디오 DBUS API page은을 LoadModule에 인수가C++ : DBUS API를 통해 PulseAudio 모듈을로드하려면 어떻게해야합니까? {-> 문자열 문자열}</p> <p>또한한다고 {문자열 -> 문자열} 문자열로 사전입니다 : 이름 : : 문자열 인수
인수 것을 말한다 키 및 문자열 값.
어떻게하면 C++ API를 통해 전송할 수 있습니까?
msg = dbus_message_new_method_call(
"org.PulseAudio1", //Destination
"/org/pulseaudio/core1", //Object path to call on
interfaceStr, //Interface to call on
method); //Method
는 그 다음 MSG 반복자 작성 : 일반적으로 나는 이런 식으로 뭔가 할 것이이 같은 매개 변수 목록을 생성
//append arguments to the LoadModule() method. (String, {String->String})
dbus_message_iter_init_append(msg, &msgIter);
dbus_message_iter_append_basic(&msgIter, DBUS_TYPE_STRING,&moduleName);
//dict entries
dbus_message_iter_open_container(&msgIter, DBUS_TYPE_DICT_ENTRY, NULL, &subIter);
dbus_message_iter_append_basic(&subIter, DBUS_TYPE_STRING, &sourceStr);
dbus_message_iter_append_basic(&subIter, DBUS_TYPE_STRING, &sourcePath);
dbus_message_iter_close_container(&msgIter, &subIter);
dbus_message_iter_open_container(&msgIter, DBUS_TYPE_DICT_ENTRY, NULL, &subIter);
dbus_message_iter_append_basic(&subIter, DBUS_TYPE_STRING, &sinkStr);
dbus_message_iter_append_basic(&subIter, DBUS_TYPE_STRING, &sinkPath);
dbus_message_iter_close_container(&msgIter, &subIter);
을, 나는 생각한다을 LoadModule (문자열, {현악기와> 문자열} {String-> String})
그러나이 함수는 응답을 제공하지 않습니다. 나는 매개 변수를 올바르게 작성하고 있다고 생각하지 않습니다. 사실, 나는 내가 아니라고 확신합니다. 다른 사람들이 다른 메소드에 대해 배열을 사용하는 것을 보았습니다. 그러나 여기에서는이를 지정하지 않았습니다. 특정 항목이 키/값임을 명시하는 방법이 있습니까?
UPDATE : 사전 항목 배열의 엘리먼트이어야하며 기본적인 D 버스 형 키 두 요소의 키 - 값 쌍을 포함한다 :
난이 광고를 발견했다. 도움이 될 경우을 GNU Using of D-Bus Page,에 입력하십시오. 나는 그것을 시도하고 결과를 게시 할 것입니다.
대신 예상되는 것 "의 {SS}"입니다. 펄스 오디오 클라이언트 라이브러리는 이미 동일한 기능을 수행합니다. U는 구현을 참조 할 수 있습니다. –
loadModule ("모듈 이름", "sink"= "sink/path", "source"= "source/path") 모듈은 다음과 같은 두 개의 dict 항목을 갖기 때문에 @ . 이 모든 것을 s {ss} 인 데이터 구조로 어떻게 보낼 수 있습니까? – MrUser