/[svn]/liblscp/trunk/src/client.c
ViewVC logotype

Diff of /liblscp/trunk/src/client.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 563 by capela, Sun May 22 11:27:56 2005 UTC revision 564 by capela, Sun May 22 22:02:00 2005 UTC
# Line 337  lscp_client_t* lscp_client_create ( cons Line 337  lscp_client_t* lscp_client_create ( cons
337      lscp_device_port_info_init(&(pClient->midi_port_info));      lscp_device_port_info_init(&(pClient->midi_port_info));
338      lscp_param_info_init(&(pClient->audio_channel_param_info));      lscp_param_info_init(&(pClient->audio_channel_param_info));
339      lscp_param_info_init(&(pClient->midi_port_param_info));      lscp_param_info_init(&(pClient->midi_port_param_info));
340        lscp_server_info_init(&(pClient->server_info));
341      lscp_engine_info_init(&(pClient->engine_info));      lscp_engine_info_init(&(pClient->engine_info));
342      lscp_channel_info_init(&(pClient->channel_info));      lscp_channel_info_init(&(pClient->channel_info));
343      // Initialize error stuff.      // Initialize error stuff.
# Line 400  lscp_status_t lscp_client_destroy ( lscp Line 401  lscp_status_t lscp_client_destroy ( lscp
401      // Free up all cached members.      // Free up all cached members.
402      lscp_channel_info_free(&(pClient->channel_info));      lscp_channel_info_free(&(pClient->channel_info));
403      lscp_engine_info_free(&(pClient->engine_info));      lscp_engine_info_free(&(pClient->engine_info));
404        lscp_server_info_free(&(pClient->server_info));
405      lscp_param_info_free(&(pClient->midi_port_param_info));      lscp_param_info_free(&(pClient->midi_port_param_info));
406      lscp_param_info_free(&(pClient->audio_channel_param_info));      lscp_param_info_free(&(pClient->audio_channel_param_info));
407      lscp_device_port_info_free(&(pClient->midi_port_info));      lscp_device_port_info_free(&(pClient->midi_port_info));
# Line 1467  lscp_status_t lscp_reset_sampler ( lscp_ Line 1469  lscp_status_t lscp_reset_sampler ( lscp_
1469  }  }
1470    
1471    
1472    /**
1473     *  Getting information about the server.
1474     *  GET SERVER INFO
1475     *
1476     *  @param pClient  Pointer to client instance structure.
1477     *
1478     *  @returns A pointer to a @ref lscp_server_info_t structure, with all the
1479     *  information of the current connected server, or NULL in case of failure.
1480     */
1481    lscp_server_info_t *lscp_get_server_info ( lscp_client_t *pClient )
1482    {
1483        lscp_server_info_t *pServerInfo;
1484        const char *pszResult;
1485        const char *pszSeps = ":";
1486        const char *pszCrlf = "\r\n";
1487        char *pszToken;
1488        char *pch;
1489    
1490        // Lock this section up.
1491        lscp_mutex_lock(pClient->mutex);
1492    
1493        pServerInfo = &(pClient->server_info);
1494        lscp_engine_info_reset(pServerInfo);
1495    
1496        if (lscp_client_call(pClient, "GET SERVER INFO\r\n") == LSCP_OK) {
1497            pszResult = lscp_client_get_result(pClient);
1498            pszToken = lscp_strtok((char *) pszResult, pszSeps, &(pch));
1499            while (pszToken) {
1500                if (strcasecmp(pszToken, "DESCRIPTION") == 0) {
1501                    pszToken = lscp_strtok(NULL, pszCrlf, &(pch));
1502                    if (pszToken)
1503                        lscp_unquote_dup(&(pServerInfo->description), &pszToken);
1504                }
1505                else if (strcasecmp(pszToken, "VERSION") == 0) {
1506                    pszToken = lscp_strtok(NULL, pszCrlf, &(pch));
1507                    if (pszToken)
1508                        lscp_unquote_dup(&(pServerInfo->version), &pszToken);
1509                }
1510                pszToken = lscp_strtok(NULL, pszSeps, &(pch));
1511            }
1512        }
1513        else pServerInfo = NULL;
1514    
1515        // Unlock this section down.
1516        lscp_mutex_unlock(pClient->mutex);
1517    
1518        return pServerInfo;
1519    }
1520    
1521    
1522  // end of client.c  // end of client.c

Legend:
Removed from v.563  
changed lines
  Added in v.564

  ViewVC Help
Powered by ViewVC