diff --git a/docs/JSON-RPC.md b/docs/JSON-RPC.md index 7cf7a92b3e..a256ce137f 100644 --- a/docs/JSON-RPC.md +++ b/docs/JSON-RPC.md @@ -188,6 +188,23 @@ Results: | result.clients | array | The client list. See jamulusclient/clientListReceived for the format. | +### jamulusclient/getCurrentDirectory + +Returns the currently selected directory socket address. + +Parameters: + +| Name | Type | Description | +| --- | --- | --- | +| params | object | No parameters (empty object). | + +Results: + +| Name | Type | Description | +| --- | --- | --- | +| result | string | The socket address of the current directory, usable as params.directory in jamulusclient/pollServerList. | + + ### jamulusclient/getMidiDevices Returns a list of available MIDI input devices. diff --git a/src/clientrpc.cpp b/src/clientrpc.cpp index c2efc59b25..b22824dde0 100644 --- a/src/clientrpc.cpp +++ b/src/clientrpc.cpp @@ -183,6 +183,16 @@ CClientRpc::CClientRpc ( CClient* pClient, CClientSettings* pSettings, CRpcServe response["result"] = "ok"; } ); + /// @rpc_method jamulusclient/getCurrentDirectory + /// @brief Returns the currently selected directory socket address. + /// @param {object} params - No parameters (empty object). + /// @result {string} result - The socket address of the current directory, usable as params.directory in jamulusclient/pollServerList. + pRpcServer->HandleMethod ( "jamulusclient/getCurrentDirectory", [=] ( const QJsonObject& params, QJsonObject& response ) { + response["result"] = + NetworkUtil::GetDirectoryAddress ( m_pSettings->eDirectoryType, m_pSettings->vstrDirectoryAddress[m_pSettings->iCustomDirectoryIndex] ); + Q_UNUSED ( params ); + } ); + /// @rpc_method jamulus/getMode /// @brief Returns the current mode, i.e. whether Jamulus is running as a server or client. /// @param {object} params - No parameters (empty object).