diff options
Diffstat (limited to 'kamera/kioslave/kamera.cpp')
-rw-r--r-- | kamera/kioslave/kamera.cpp | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/kamera/kioslave/kamera.cpp b/kamera/kioslave/kamera.cpp index 5aefd632..8f6d6b2a 100644 --- a/kamera/kioslave/kamera.cpp +++ b/kamera/kioslave/kamera.cpp @@ -55,11 +55,19 @@ extern "C" { KDE_EXPORT int kdemain(int argc, char **argv); +#ifdef HAVE_GPHOTO2_5 + static void frontendCameraStatus(GPContext *context, const char *status, void *data); + static unsigned int frontendProgressStart( + GPContext *context, float totalsize, const char *status, + void *data + ); +#else static void frontendCameraStatus(GPContext *context, const char *format, va_list args, void *data); static unsigned int frontendProgressStart( GPContext *context, float totalsize, const char *format, va_list args, void *data ); +#endif static void frontendProgressUpdate( GPContext *context, unsigned int id, float current, void *data ); @@ -785,11 +793,11 @@ void KameraProtocol::setHost(const TQString& host, int port, const TQString& use return; } gp_port_info_list_get_info(port_info_list, idx, &port_info); - gp_port_info_list_free(port_info_list); // create a new camera object gpr = gp_camera_new(&m_camera); if(gpr != GP_OK) { + gp_port_info_list_free(port_info_list); error(KIO::ERR_UNKNOWN, gp_result_as_string(gpr)); return; } @@ -805,6 +813,8 @@ void KameraProtocol::setHost(const TQString& host, int port, const TQString& use gp_camera_set_port_speed(m_camera, 0); // TODO: the value needs to be configurable kdDebug(7123) << "Opening camera model " << user << " at " << host << endl; + gp_port_info_list_free(port_info_list); + TQString errstr; if (!openCamera(errstr)) { kdDebug(7123) << "Unable to init camera: " << gp_result_as_string(gpr) << endl; @@ -857,10 +867,7 @@ void KameraProtocol::translateFileToUDS(UDSEntry &udsEntry, const CameraFileInfo udsEntry.append(atom); atom.m_uds = UDS_NAME; - if (info.file.fields & GP_FILE_INFO_NAME) - atom.m_str = TQString::fromLocal8Bit(info.file.name); - else - atom.m_str = name; + atom.m_str = name; udsEntry.append(atom); if (info.file.fields & GP_FILE_INFO_SIZE) { @@ -986,10 +993,16 @@ void frontendProgressUpdate( } unsigned int frontendProgressStart( - GPContext * /*context*/, float totalsize, const char *format, va_list args, + GPContext * /*context*/, float totalsize, +#ifdef HAVE_GPHOTO2_5 + const char *status, +#else + const char *format, va_list args, +#endif void *data ) { KameraProtocol *object = (KameraProtocol*)data; +#ifndef HAVE_GPHOTO2_5 char *status; /* We must copy the va_list to walk it twice, or all hell @@ -1023,14 +1036,26 @@ unsigned int frontendProgressStart( object->infoMessage(TQString::fromLocal8Bit(status)); delete [] status; +#else + /* libgphoto2 2.5 has resolved this already, no need for print */ + object->infoMessage(TQString::fromLocal8Bit(status)); +#endif object->totalSize((int)totalsize); // hack: call slot directly return GP_OK; } // this callback function is activated on every status message from gphoto2 -static void frontendCameraStatus(GPContext * /*context*/, const char *format, va_list args, void *data) -{ +static void frontendCameraStatus( + GPContext * /*context*/, +#ifdef HAVE_GPHOTO2_5 + const char *status, +#else + const char *format, va_list args, +#endif + void *data +) { KameraProtocol *object = (KameraProtocol*)data; +#ifndef HAVE_GPHOTO2_5 char *status; /* We must copy the va_list to walk it twice, or all hell @@ -1063,4 +1088,7 @@ static void frontendCameraStatus(GPContext * /*context*/, const char *format, va #endif object->infoMessage(TQString::fromLocal8Bit(status)); delete [] status; +#else + object->infoMessage(TQString::fromLocal8Bit(status)); +#endif } |