diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2019-05-27 08:03:35 +0200 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2019-05-27 08:03:35 +0200 |
commit | 2a53dd177798678a08e72433f3d7bfb2a0af86ed (patch) | |
tree | da3535f6455a19083781b809168d715fb28a53c5 /camlibs/lumix | |
parent | 7e2dea634f1b546a62a2872e01d9f752688156d8 (diff) | |
download | libgphoto2-2a53dd177798678a08e72433f3d7bfb2a0af86ed.tar.gz |
use cameraip from port
Diffstat (limited to 'camlibs/lumix')
-rw-r--r-- | camlibs/lumix/lumix.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/camlibs/lumix/lumix.c b/camlibs/lumix/lumix.c index 63d15b833..10d6d327e 100644 --- a/camlibs/lumix/lumix.c +++ b/camlibs/lumix/lumix.c @@ -331,10 +331,15 @@ static char* loadCmd (Camera *camera,char* cmd) { char URL[100]; //xmlDoc *doc = NULL; //xmlNode *root_element = NULL; + GPPortInfo info; + char *xpath; curl = curl_easy_init(); - snprintf( URL,100, "http://%s/cam.cgi%s",CAMERAIP, cmd); + gp_port_get_info (camera->port, &info); + gp_port_info_get_path (info, &xpath); /* xpath now contains tcp:192.168.1.1 */ + snprintf( URL,100, "http://%s/cam.cgi%s", xpath+4, cmd); + GP_LOG_D("cam url is %s", URL); curl_easy_setopt(curl, CURLOPT_URL, URL); //curl_easy_setopt(curl, CURLOPT_READ, URL); if (!stream) { @@ -446,8 +451,8 @@ static char* NumberPix(Camera *camera) { /*utility function to creat a SOAP envelope for the lumix cam */ static char* SoapEnvelop(int start, int num){ - static char Envelop[500]; - snprintf(Envelop,500, "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><s:Body><u:Browse xmlns:u=\"urn:schemas-upnp-org:service:ContentDirectory:1\"xmlns:pana=\"urn:schemas-panasonic-com:pana\"><ObjectID>0</ObjectID><BrowseFlag>BrowseDirectChildren</BrowseFlag><Filter>*</Filter><StartingIndex> %d </StartingIndex><RequestedCount>%d</RequestedCount><SortCriteria></SortCriteria><pana:X_FromCP>LumixLink2.0</pana:X_FromCP></u:Browse></s:Body></s:Envelope>",start,num); + static char Envelop[1000]; + snprintf(Envelop,1000, "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><s:Body><u:Browse xmlns:u=\"urn:schemas-upnp-org:service:ContentDirectory:1\"xmlns:pana=\"urn:schemas-panasonic-com:pana\"><ObjectID>0</ObjectID><BrowseFlag>BrowseDirectChildren</BrowseFlag><Filter>*</Filter><StartingIndex> %d </StartingIndex><RequestedCount>%d</RequestedCount><SortCriteria></SortCriteria><pana:X_FromCP>LumixLink2.0</pana:X_FromCP></u:Browse></s:Body></s:Envelope>",start,num); return Envelop; } @@ -464,13 +469,18 @@ static char* GetPix(Camera *camera,int num) { curl = curl_easy_init(); CURLcode res; struct curl_slist *list = NULL; + GPPortInfo info; + char *xpath; list = curl_slist_append(list, "soapaction"); list = curl_slist_append(list, "Content-Type: text/xml; charset=\"utf-8\""); list = curl_slist_append(list, "urn:schemas-upnp-org:service:ContentDirectory:1#Browse:"); char URL[1000]; - snprintf( URL,1000, "http://%s/cam.cgi%s",CAMERAIP, CDS_Control); + gp_port_get_info (camera->port, &info); + gp_port_info_get_path (info, &xpath); /* xpath now contains tcp:192.168.1.1 */ + snprintf( URL,1000, "http://%s/cam.cgi%s",xpath+4, CDS_Control); + GP_LOG_D("camera url is %s", URL); curl_easy_setopt(curl, CURLOPT_URL, URL); //curl_easy_setopt(curl, CURLOPT_READ, URL); curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); |