libgphoto2 photo camera library (libgphoto2) Internals  2.5.23
gphoto2-context.h File Reference

Context callback operation functions. More...

#include <stdarg.h>

Go to the source code of this file.

Typedefs

typedef struct _GPContext GPContext
 The gphoto context structure. More...
 
typedef enum _GPContextFeedback GPContextFeedback
 Return codes that can be returned by progress handling. More...
 
typedef void(* GPContextIdleFunc) (GPContext *context, void *data)
 
typedef void(* GPContextErrorFunc) (GPContext *context, const char *text, void *data)
 
typedef void(* GPContextStatusFunc) (GPContext *context, const char *text, void *data)
 
typedef void(* GPContextMessageFunc) (GPContext *context, const char *text, void *data)
 
typedef GPContextFeedback(* GPContextQuestionFunc) (GPContext *context, const char *text, void *data)
 
typedef GPContextFeedback(* GPContextCancelFunc) (GPContext *context, void *data)
 
typedef unsigned int(* GPContextProgressStartFunc) (GPContext *context, float target, const char *text, void *data)
 
typedef void(* GPContextProgressUpdateFunc) (GPContext *context, unsigned int id, float current, void *data)
 
typedef void(* GPContextProgressStopFunc) (GPContext *context, unsigned int id, void *data)
 

Enumerations

enum  _GPContextFeedback { GP_CONTEXT_FEEDBACK_OK, GP_CONTEXT_FEEDBACK_CANCEL }
 Return codes that can be returned by progress handling. More...
 

Functions

GPContextgp_context_new (void)
 Creates a new context. More...
 
void gp_context_ref (GPContext *context)
 
void gp_context_unref (GPContext *context)
 Decrements reference count of a context. More...
 
void gp_context_set_idle_func (GPContext *context, GPContextIdleFunc func, void *data)
 
void gp_context_set_progress_funcs (GPContext *context, GPContextProgressStartFunc start_func, GPContextProgressUpdateFunc update_func, GPContextProgressStopFunc stop_func, void *data)
 
void gp_context_set_error_func (GPContext *context, GPContextErrorFunc func, void *data)
 
void gp_context_set_status_func (GPContext *context, GPContextStatusFunc func, void *data)
 
void gp_context_set_question_func (GPContext *context, GPContextQuestionFunc func, void *data)
 
void gp_context_set_cancel_func (GPContext *context, GPContextCancelFunc func, void *data)
 
void gp_context_set_message_func (GPContext *context, GPContextMessageFunc func, void *data)
 
void gp_context_idle (GPContext *context)
 Notify frontend of a brief idle time. More...
 
void gp_context_error (GPContext *context, const char *format,...)
 
void gp_context_status (GPContext *context, const char *format,...)
 
void gp_context_message (GPContext *context, const char *format,...)
 Print a message to the context. More...
 
GPContextFeedback gp_context_question (GPContext *context, const char *format,...)
 Ask frontend user a question. More...
 
GPContextFeedback gp_context_cancel (GPContext *context)
 
unsigned int gp_context_progress_start (GPContext *context, float target, const char *format,...)
 Start progress tracking. More...
 
void gp_context_progress_update (GPContext *context, unsigned int id, float current)
 
void gp_context_progress_stop (GPContext *context, unsigned int id)
 

Detailed Description

Context callback operation functions.

Author
Copyright 2001 Lutz Mueller lutz@.nosp@m.user.nosp@m.s.sou.nosp@m.rcef.nosp@m.orge..nosp@m.net
Note
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition in file gphoto2-context.h.

Typedef Documentation

◆ GPContext

typedef struct _GPContext GPContext

The gphoto context structure.

This structure allows callback handling, passing error contexts back, progress handling and download cancellation and similar things. It is usually passed around the functions.

Definition at line 1 of file gphoto2-context.h.

◆ GPContextCancelFunc

typedef GPContextFeedback(* GPContextCancelFunc) (GPContext *context, void *data)

Definition at line 67 of file gphoto2-context.h.

◆ GPContextErrorFunc

typedef void(* GPContextErrorFunc) (GPContext *context, const char *text, void *data)

Definition at line 62 of file gphoto2-context.h.

◆ GPContextFeedback

Return codes that can be returned by progress handling.

An application can return special values back to the libgphoto2 progress callback handling functions. If "Cancel" is selected, libgphoto2 and the camera driver will try to cancel transfer.

◆ GPContextIdleFunc

typedef void(* GPContextIdleFunc) (GPContext *context, void *data)

Definition at line 61 of file gphoto2-context.h.

◆ GPContextMessageFunc

typedef void(* GPContextMessageFunc) (GPContext *context, const char *text, void *data)

Definition at line 64 of file gphoto2-context.h.

◆ GPContextProgressStartFunc

typedef unsigned int(* GPContextProgressStartFunc) (GPContext *context, float target, const char *text, void *data)

Definition at line 69 of file gphoto2-context.h.

◆ GPContextProgressStopFunc

typedef void(* GPContextProgressStopFunc) (GPContext *context, unsigned int id, void *data)

Definition at line 77 of file gphoto2-context.h.

◆ GPContextProgressUpdateFunc

typedef void(* GPContextProgressUpdateFunc) (GPContext *context, unsigned int id, float current, void *data)

Definition at line 73 of file gphoto2-context.h.

◆ GPContextQuestionFunc

typedef GPContextFeedback(* GPContextQuestionFunc) (GPContext *context, const char *text, void *data)

Definition at line 65 of file gphoto2-context.h.

◆ GPContextStatusFunc

typedef void(* GPContextStatusFunc) (GPContext *context, const char *text, void *data)

Definition at line 63 of file gphoto2-context.h.

Enumeration Type Documentation

◆ _GPContextFeedback

Return codes that can be returned by progress handling.

An application can return special values back to the libgphoto2 progress callback handling functions. If "Cancel" is selected, libgphoto2 and the camera driver will try to cancel transfer.

Enumerator
GP_CONTEXT_FEEDBACK_OK 

Everything ok... proceed.

GP_CONTEXT_FEEDBACK_CANCEL 

Please cancel the current transfer if possible.

Definition at line 55 of file gphoto2-context.h.

Function Documentation

◆ gp_context_cancel()

GPContextFeedback gp_context_cancel ( GPContext context)

gp_context_cancel: @context: a GPContext

Gives the frontend the possibility to cancel the current operation that is executed in this @context.

Return value: a GPContextFeedback.

Definition at line 323 of file gphoto2-context.c.

References _GPContext::cancel_func, _GPContext::cancel_func_data, and GP_CONTEXT_FEEDBACK_OK.

Referenced by gp_abilities_list_load_dir().

◆ gp_context_error()

◆ gp_context_idle()

void gp_context_idle ( GPContext context)

Notify frontend of a brief idle time.

Tells the frontend that it can do other processing at this moment, like refresh the UI. Backends should call this function every time when an interruption of the transfer is possible.

Parameters
contexta GPContext

Definition at line 135 of file gphoto2-context.c.

References _GPContext::idle_func, and _GPContext::idle_func_data.

◆ gp_context_message()

void gp_context_message ( GPContext context,
const char *  format,
  ... 
)

Print a message to the context.

This sends a message to the passed context, to be printed by it in some kind of way, but do no other action.

To be used by camera drivers.

Parameters
contextA GPContext
formatA sprintf style format string
...variable argument list depending on format string

Definition at line 257 of file gphoto2-context.c.

References gpi_vsnprintf(), _GPContext::message_func, and _GPContext::message_func_data.

◆ gp_context_new()

GPContext* gp_context_new ( void  )

Creates a new context.

To be used by the frontend.

Returns
a GPContext.

Definition at line 74 of file gphoto2-context.c.

References _GPContext::ref_count.

◆ gp_context_progress_start()

unsigned int gp_context_progress_start ( GPContext context,
float  target,
const char *  format,
  ... 
)

Start progress tracking.

This function starts up a new progress tracking for a specified context. Several nested progress reports can happen at once, depending on the backend.

Parameters
contextThe context in which to start the progress.
targetThe 100% value.
formatA sprintf style string to print out, including the following variable arguments.

Definition at line 155 of file gphoto2-context.c.

References gpi_vsnprintf(), _GPContext::progress_func_data, and _GPContext::progress_start_func.

Referenced by gp_abilities_list_load_dir().

◆ gp_context_progress_stop()

void gp_context_progress_stop ( GPContext context,
unsigned int  id 
)

◆ gp_context_progress_update()

void gp_context_progress_update ( GPContext context,
unsigned int  id,
float  current 
)

◆ gp_context_question()

GPContextFeedback gp_context_question ( GPContext context,
const char *  format,
  ... 
)

Ask frontend user a question.

Asks the user a question that he must answer either with "Ok" or "Cancel".

To be used by a camera driver. (So far no camera driver is using it, but this might change later.)

Parameters
contexta GPContext
formata sprintf format string
...variable arguments for format string
Returns
The user's answer in form of a GPContextFeedback.

Definition at line 291 of file gphoto2-context.c.

References GP_CONTEXT_FEEDBACK_OK, gpi_vsnprintf(), _GPContext::question_func, and _GPContext::question_func_data.

◆ gp_context_ref()

void gp_context_ref ( GPContext context)

Increments the reference count of the context.

Parameters
contextThe context to bump the reference

Definition at line 93 of file gphoto2-context.c.

References _GPContext::ref_count.

◆ gp_context_set_cancel_func()

void gp_context_set_cancel_func ( GPContext context,
GPContextCancelFunc  func,
void *  data 
)

Definition at line 396 of file gphoto2-context.c.

References _GPContext::cancel_func, and _GPContext::cancel_func_data.

◆ gp_context_set_error_func()

void gp_context_set_error_func ( GPContext context,
GPContextErrorFunc  func,
void *  data 
)

Definition at line 363 of file gphoto2-context.c.

References _GPContext::error_func, and _GPContext::error_func_data.

◆ gp_context_set_idle_func()

void gp_context_set_idle_func ( GPContext context,
GPContextIdleFunc  func,
void *  data 
)

Definition at line 336 of file gphoto2-context.c.

References _GPContext::idle_func, and _GPContext::idle_func_data.

◆ gp_context_set_message_func()

void gp_context_set_message_func ( GPContext context,
GPContextMessageFunc  func,
void *  data 
)

Definition at line 407 of file gphoto2-context.c.

References _GPContext::message_func, and _GPContext::message_func_data.

◆ gp_context_set_progress_funcs()

void gp_context_set_progress_funcs ( GPContext context,
GPContextProgressStartFunc  start_func,
GPContextProgressUpdateFunc  update_func,
GPContextProgressStopFunc  stop_func,
void *  data 
)

◆ gp_context_set_question_func()

void gp_context_set_question_func ( GPContext context,
GPContextQuestionFunc  func,
void *  data 
)

Definition at line 374 of file gphoto2-context.c.

References _GPContext::question_func, and _GPContext::question_func_data.

◆ gp_context_set_status_func()

void gp_context_set_status_func ( GPContext context,
GPContextStatusFunc  func,
void *  data 
)

Definition at line 385 of file gphoto2-context.c.

References _GPContext::status_func, and _GPContext::status_func_data.

◆ gp_context_status()

void gp_context_status ( GPContext context,
const char *  format,
  ... 
)

◆ gp_context_unref()

void gp_context_unref ( GPContext context)

Decrements reference count of a context.

Decrement the reference count of a context and free if it goes to 0.

Parameters
contextThe context to drop the reference count.

Definition at line 115 of file gphoto2-context.c.

References gp_context_free(), and _GPContext::ref_count.