# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (3, 0, 0):
    new_instancemethod = lambda func, inst, cls: _camera.SWIG_PyInstanceMethod_New(func)
else:
    from new import instancemethod as new_instancemethod
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_camera')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_camera')
    _camera = swig_import_helper()
    del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_camera', [dirname(__file__)])
        except ImportError:
            import _camera
            return _camera
        try:
            _mod = imp.load_module('_camera', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _camera = swig_import_helper()
    del swig_import_helper
else:
    import _camera
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        object.__setattr__(self, name, value)
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_method(set):
    def set_attr(self, name, value):
        if (name == "thisown"):
            return self.this.own(value)
        if hasattr(self, name) or (name == "this"):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add attributes to %s" % self)
    return set_attr


import gphoto2.abilities_list
import gphoto2.context
import gphoto2.file
import gphoto2.filesys
import gphoto2.list
import gphoto2.port_info_list
import gphoto2.port_log
import gphoto2.result
import gphoto2.version
import gphoto2.widget

def gp_camera_capture_preview(*args) -> "CameraFile *":
    """
    gp_camera_capture_preview(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Captures a preview that won't be stored on the camera but returned in
    supplied file.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `file` :  
        a CameraFile  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    For example, you could use gp_capture_preview() for taking some sample
    pictures before calling gp_capture().

    See also gphoto2.Camera.capture_preview
    """
    return _camera.gp_camera_capture_preview(*args)
class CameraText(object):
    """
    CameraText structure used in various functions.  

    A text structure containing translated text returned by various
    functions (about, manual, summary). You should not assume a size.  

    C++ includes: gphoto2-camera.h
    """

    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def __str__(self) -> "char *":
        """
        __str__(self) -> char *

        Parameters
        ----------
        self: CameraText *

        """
        return _camera.CameraText___str__(self)

    text = _swig_property(_camera.CameraText_text_get)
    __swig_destroy__ = _camera.delete_CameraText
CameraText.__str__ = new_instancemethod(_camera.CameraText___str__, None, CameraText)
CameraText_swigregister = _camera.CameraText_swigregister
CameraText_swigregister(CameraText)

class CameraFilePath(object):
    """
    A structure created by the capture operation.  

    A structure containing the folder and filename of an object after a
    successful capture and is passed as reference to the gp_camera_capture()
    function.  

    C++ includes: gphoto2-camera.h
    """

    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    name = _swig_property(_camera.CameraFilePath_name_get)
    folder = _swig_property(_camera.CameraFilePath_folder_get)
    __swig_destroy__ = _camera.delete_CameraFilePath
CameraFilePath_swigregister = _camera.CameraFilePath_swigregister
CameraFilePath_swigregister(CameraFilePath)

GP_CAPTURE_IMAGE = _camera.GP_CAPTURE_IMAGE
GP_CAPTURE_MOVIE = _camera.GP_CAPTURE_MOVIE
GP_CAPTURE_SOUND = _camera.GP_CAPTURE_SOUND
GP_EVENT_UNKNOWN = _camera.GP_EVENT_UNKNOWN
GP_EVENT_TIMEOUT = _camera.GP_EVENT_TIMEOUT
GP_EVENT_FILE_ADDED = _camera.GP_EVENT_FILE_ADDED
GP_EVENT_FOLDER_ADDED = _camera.GP_EVENT_FOLDER_ADDED
GP_EVENT_CAPTURE_COMPLETE = _camera.GP_EVENT_CAPTURE_COMPLETE
GP_EVENT_FILE_CHANGED = _camera.GP_EVENT_FILE_CHANGED
class Camera(object):
    """Proxy of C _Camera struct."""

    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        """__init__(self) -> Camera"""
        _camera.Camera_swiginit(self, _camera.new_Camera())
    __swig_destroy__ = _camera.delete_Camera

    def autodetect(*args) -> "CameraList *":
        """
        autodetect(context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Autodetect all detectable camera  

        Parameters
        ----------
        * `list` :  
            a CameraList that receives the autodetected cameras  
        * `context` :  
            a GPContext  

        Returns
        -------
        the number of cameras detected (0 to n) or a gphoto2 error code (<0)  

        This camera will autodetected all cameras that can be autodetected. This
        will for instance detect all USB cameras.  

        CameraList *list; gp_list_new (&list); gp_camera_autodetect (list,
        context); ... done! ...

        See also gphoto2.gp_camera_autodetect
        """
        return _camera.Camera_autodetect(*args)

    autodetect = staticmethod(autodetect)

    def set_abilities(self, abilities: 'CameraAbilities') -> "void":
        """
        set_abilities(self, abilities)

        Parameters
        ----------
        abilities: gphoto2.CameraAbilities


        Sets the camera abilities.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `abilities` :  
            the CameraAbilities to be set  

        Returns
        -------
        a gphoto2 error code  

        You need to call this function before calling gp_camera_init the first
        time unless you want gphoto2 to autodetect cameras and choose the first
        detected one. By setting the `abilities`, you tell gphoto2 what model
        the `camera` is and what camera driver should be used for accessing the
        `camera`. You can get `abilities` by calling
        gp_abilities_list_get_abilities.

        See also gphoto2.gp_camera_set_abilities
        """
        return _camera.Camera_set_abilities(self, abilities)


    def get_abilities(self) -> "void":
        """
        get_abilities(self)

        Parameters
        ----------
        self: struct _Camera *


        Retrieve the `abilities` of the `camera`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `abilities` :  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_get_abilities
        """
        return _camera.Camera_get_abilities(self)


    def set_port_info(self, info: 'GPPortInfo') -> "void":
        """
        set_port_info(self, info)

        Parameters
        ----------
        info: gphoto2.GPPortInfo

        """
        return _camera.Camera_set_port_info(self, info)


    def get_port_info(self) -> "void":
        """
        get_port_info(self)

        Parameters
        ----------
        self: struct _Camera *

        """
        return _camera.Camera_get_port_info(self)


    def set_port_speed(self, speed: 'int') -> "void":
        """
        set_port_speed(self, speed)

        Parameters
        ----------
        speed: int


        Set the camera speed.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `speed` :  
            the speed  

        Returns
        -------
        a gphoto2 error code  

        This function is typically used prior first initialization using
        gp_camera_init for debugging purposes. Normally, a camera driver will
        try to figure out the current speed of the camera and set the speed to
        the optimal one automatically. Note that this function only works with
        serial ports. In other words, you have to set the camera's port to a
        serial one (using #gp_camera_set_port_path or #gp_camera_set_port_name)
        prior calling this function.

        See also gphoto2.gp_camera_set_port_speed
        """
        return _camera.Camera_set_port_speed(self, speed)


    def get_port_speed(self) -> "int":
        """
        get_port_speed(self) -> int

        Parameters
        ----------
        self: struct _Camera *


        Retrieve the current speed.  

        Parameters
        ----------
        * `camera` :  
            a Camera  

        Returns
        -------
        The current speed or a gphoto2 error code

        See also gphoto2.gp_camera_get_port_speed
        """
        return _camera.Camera_get_port_speed(self)


    def init(self, *args) -> "void":
        """
        init(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Initiate a connection to the `camera`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        Before calling this function, the `camera` should be set up using
        gp_camera_set_port_path() or gp_camera_set_port_name() and
        gp_camera_set_abilities(). If that has been omitted, gphoto2 tries to
        autodetect any cameras and chooses the first one if any cameras are
        found. It is generally a good idea to call gp_camera_exit() after
        transactions have been completed in order to give other applications the
        chance to access the camera, too.

        See also gphoto2.gp_camera_init
        """
        return _camera.Camera_init(self, *args)


    def exit(self, *args) -> "void":
        """
        exit(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Close connection to camera.  

        Parameters
        ----------
        * `camera` :  
            a Camera object  
        * `context` :  
            a GPContext object  

        Returns
        -------
        a gphoto2 error code.  

        Closes a connection to the camera and therefore gives other application
        the possibility to access the camera, too.  

        It is recommended that you call this function when you currently don't
        need the camera. The camera will get reinitialized by gp_camera_init()
        automatically if you try to access the camera again.

        See also gphoto2.gp_camera_exit
        """
        return _camera.Camera_exit(self, *args)


    def get_config(self, *args) -> "void":
        """
        get_config(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Retrieve a configuration `window` for the `camera`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `window` :  
            a CameraWidget  
        * `context` :  
            a GPContext  

        Returns
        -------
        gphoto2 error code  

        This `window` can be used for construction of a configuration dialog.

        See also gphoto2.gp_camera_get_config
        """
        return _camera.Camera_get_config(self, *args)


    def list_config(self, *args) -> "void":
        """
        list_config(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)

        """
        return _camera.Camera_list_config(self, *args)


    def get_single_config(self, *args) -> "void":
        """
        get_single_config(self, name, context)

        Parameters
        ----------
        name: str
        context: gphoto2.Context (default=None)


        Retrieve a single configuration `widget` for the `camera`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `name` :  
            the name of a configuration widget  
        * `widget` :  
            a CameraWidget  
        * `context` :  
            a GPContext  

        Returns
        -------
        gphoto2 error code  

        This `widget` will then contain the current and the possible values and
        the type.

        See also gphoto2.gp_camera_get_single_config
        """
        return _camera.Camera_get_single_config(self, *args)


    def set_config(self, *args) -> "void":
        """
        set_config(self, window, context)

        Parameters
        ----------
        window: gphoto2.CameraWidget
        context: gphoto2.Context (default=None)


        Sets the configuration.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `window` :  
            a CameraWidget  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        Typically, a `window` is retrieved using gp_camera_get_config and passed
        to this function in order to adjust the settings on the camera.

        See also gphoto2.gp_camera_set_config
        """
        return _camera.Camera_set_config(self, *args)


    def set_single_config(self, *args) -> "void":
        """
        set_single_config(self, name, widget, context)

        Parameters
        ----------
        name: str
        widget: gphoto2.CameraWidget
        context: gphoto2.Context (default=None)


        Set a single configuration `widget` for the `camera`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `name` :  
            the name of a configuration widget  
        * `widget` :  
            a CameraWidget  
        * `context` :  
            a GPContext  

        Returns
        -------
        gphoto2 error code  

        This `widget` contains the new value of the widget to set.

        See also gphoto2.gp_camera_set_single_config
        """
        return _camera.Camera_set_single_config(self, *args)


    def get_summary(self, *args) -> "void":
        """
        get_summary(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Retrieves a camera summary.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `summary` :  
            a CameraText  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        This summary typically contains information like manufacturer, pictures
        taken, or generally information that is not configurable.

        See also gphoto2.gp_camera_get_summary
        """
        return _camera.Camera_get_summary(self, *args)


    def get_manual(self, *args) -> "void":
        """
        get_manual(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Retrieves the `manual` for given `camera`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `manual` :  
            a CameraText  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        This manual typically contains information about using the camera.

        See also gphoto2.gp_camera_get_manual
        """
        return _camera.Camera_get_manual(self, *args)


    def get_about(self, *args) -> "void":
        """
        get_about(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Retrieves information about the camera driver.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `about` :  
            a CameraText  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        Typically, this information contains name and address of the author,
        acknowledgements, etc.

        See also gphoto2.gp_camera_get_about
        """
        return _camera.Camera_get_about(self, *args)


    def capture(self, *args) -> "void":
        """
        capture(self, type, context)

        Parameters
        ----------
        type: CameraCaptureType (gphoto2.GP_CAPTURE_IMAGE etc.)
        context: gphoto2.Context (default=None)


        Captures an image, movie, or sound clip depending on the given `type`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `type` :  
            a CameraCaptureType  
        * `path` :  
            a CameraFilePath  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        The resulting file will be stored on the camera. The location gets
        stored in `path`. The file can then be downloaded using
        gp_camera_file_get.

        See also gphoto2.gp_camera_capture
        """
        return _camera.Camera_capture(self, *args)


    def trigger_capture(self, *args) -> "void":
        """
        trigger_capture(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Triggers capture of one or more images.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        This functions just remotely causes the shutter release and returns
        immediately. You will want to run #gp_camera_wait_event until a image is
        added which can be downloaded using gp_camera_file_get.

        See also gphoto2.gp_camera_trigger_capture
        """
        return _camera.Camera_trigger_capture(self, *args)


    def capture_preview(self, *args) -> "void":
        """
        capture_preview(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Captures a preview that won't be stored on the camera but returned in
        supplied file.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `file` :  
            a CameraFile  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        For example, you could use gp_capture_preview() for taking some sample
        pictures before calling gp_capture().

        See also gphoto2.gp_camera_capture_preview
        """
        return _camera.Camera_capture_preview(self, *args)


    def wait_for_event(self, *args) -> "void":
        """
        wait_for_event(self, timeout, context)

        Parameters
        ----------
        timeout: int
        context: gphoto2.Context (default=None)


        Wait and retrieve an event from the camera.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `timeout` :  
            amount of time to wait in 1/1000 seconds  
        * `eventtype` :  
            received CameraEventType [out]  
        * `eventdata` :  
            received event specific data [out]  
        * `context` :  
            a GPContext  

        Returns
        -------
        gphoto2 error code  

        This function blocks and waits for an event to come from the camera. If
        a timeout occurs before an event is received then eventtype will be
        GP_EVENT_TIMEOUT and eventdata is left unchanged.  

        If an event is received then eventtype is set to the type of event, and
        eventdata is set to event specific data. See the CameraEventType enum to
        see which eventtypes match to which types of eventdata.  

        Note that this function will return one event after each other, you need
        to be able to call it multiple times, e.g. in a loop, when waiting for
        specific events.

        See also gphoto2.gp_camera_wait_for_event
        """
        return _camera.Camera_wait_for_event(self, *args)


    def get_storageinfo(self, *args) -> "void":
        """
        get_storageinfo(self, context)

        Parameters
        ----------
        context: gphoto2.Context (default=None)


        Gets information on the camera attached storage.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `sifs` :  
            Pointer to receive a pointer to/array of storage info items  
        * `nrofsifs` :  
            Pointer to receive number of array entries  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code  

        Retrieves the storage information, like maximum and free space, for the
        specified filesystem, if supported by the device. The storage
        information is returned in an newly allocated array of
        CameraStorageInformation objects, to which the pointer pointed to by
        #sifs will be set.  

        The variable pointed to by #nrofsifs will be set to the number of
        elements in that array.  

        It is the caller's responsibility to free the memory of the array.

        See also gphoto2.gp_camera_get_storageinfo
        """
        return _camera.Camera_get_storageinfo(self, *args)


    def folder_list_files(self, *args) -> "void":
        """
        folder_list_files(self, folder, context)

        Parameters
        ----------
        folder: str
        context: gphoto2.Context (default=None)


        Lists the files in supplied `folder`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `list` :  
            a CameraList  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_folder_list_files
        """
        return _camera.Camera_folder_list_files(self, *args)


    def folder_list_folders(self, *args) -> "void":
        """
        folder_list_folders(self, folder, context)

        Parameters
        ----------
        folder: str
        context: gphoto2.Context (default=None)


        Lists the folders in supplied `folder`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `list` :  
            a CameraList  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_folder_list_folders
        """
        return _camera.Camera_folder_list_folders(self, *args)


    def folder_delete_all(self, *args) -> "void":
        """
        folder_delete_all(self, folder, context)

        Parameters
        ----------
        folder: str
        context: gphoto2.Context (default=None)


        Deletes all files in a given `folder`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_folder_delete_all
        """
        return _camera.Camera_folder_delete_all(self, *args)


    def folder_put_file(self, *args) -> "void":
        """
        folder_put_file(self, folder, filename, type, file, context)

        Parameters
        ----------
        folder: str
        filename: str
        type: CameraFileType (gphoto2.GP_FILE_TYPE_PREVIEW etc.)
        file: gphoto2.CameraFile
        context: gphoto2.Context (default=None)


        Uploads a file into given `folder`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `file` :  
            a CameraFile  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_folder_put_file
        """
        return _camera.Camera_folder_put_file(self, *args)


    def folder_make_dir(self, *args) -> "void":
        """
        folder_make_dir(self, folder, name, context)

        Parameters
        ----------
        folder: str
        name: str
        context: gphoto2.Context (default=None)


        Creates a new directory called `name` in the given `folder`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            the location where to create the new directory  
        * `name` :  
            the name of the directory to be created  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_folder_make_dir
        """
        return _camera.Camera_folder_make_dir(self, *args)


    def folder_remove_dir(self, *args) -> "void":
        """
        folder_remove_dir(self, folder, name, context)

        Parameters
        ----------
        folder: str
        name: str
        context: gphoto2.Context (default=None)


        Removes an (empty) directory called `name` from the given `folder`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            the folder from which to remove the directory  
        * `name` :  
            the name of the directory to be removed  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_folder_remove_dir
        """
        return _camera.Camera_folder_remove_dir(self, *args)


    def file_get_info(self, *args) -> "void":
        """
        file_get_info(self, folder, file, context)

        Parameters
        ----------
        folder: str
        file: str
        context: gphoto2.Context (default=None)


        Retrieves information about a file.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `file` :  
            the name of the file  
        * `info` :  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_file_get_info
        """
        return _camera.Camera_file_get_info(self, *args)


    def file_set_info(self, *args) -> "void":
        """
        file_set_info(self, folder, file, info, context)

        Parameters
        ----------
        folder: str
        file: str
        info: gphoto2.CameraFileInfo
        context: gphoto2.Context (default=None)


        Sets some file properties like name or permissions.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `file` :  
            the name of a file  
        * `info` :  
            the CameraFileInfo  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_file_set_info
        """
        return _camera.Camera_file_set_info(self, *args)


    def file_get(self, *args) -> "void":
        """
        file_get(self, folder, file, type, context)

        Parameters
        ----------
        folder: str
        file: str
        type: CameraFileType (gphoto2.GP_FILE_TYPE_PREVIEW etc.)
        context: gphoto2.Context (default=None)


        Retrieves a file from the Camera.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `file` :  
            the name of a file  
        * `type` :  
            the CameraFileType  
        * `camera_file` :  
            a CameraFile  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_file_get
        """
        return _camera.Camera_file_get(self, *args)


    def file_read(self, *args) -> "void":
        """
        file_read(self, folder, file, type, offset, buf, context)

        Parameters
        ----------
        folder: str
        file: str
        type: CameraFileType (gphoto2.GP_FILE_TYPE_PREVIEW etc.)
        offset: int
        buf: writable buffer (e.g. memoryview)
        context: gphoto2.Context (default=None)


        Reads a file partially from the Camera.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `file` :  
            the name of a file  
        * `type` :  
            the CameraFileType  
        * `offset` :  
            the offset into the camera file  
        * `data` :  
            the buffer receiving the data  
        * `size` :  
            the size to be read and that was read. (Note: size should not exceed
            32 bits)  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_file_read
        """
        return _camera.Camera_file_read(self, *args)


    def file_delete(self, *args) -> "void":
        """
        file_delete(self, folder, file, context)

        Parameters
        ----------
        folder: str
        file: str
        context: gphoto2.Context (default=None)


        Deletes the file from `folder`.  

        Parameters
        ----------
        * `camera` :  
            a Camera  
        * `folder` :  
            a folder  
        * `file` :  
            the name of a file  
        * `context` :  
            a GPContext  

        Returns
        -------
        a gphoto2 error code

        See also gphoto2.gp_camera_file_delete
        """
        return _camera.Camera_file_delete(self, *args)

Camera.set_abilities = new_instancemethod(_camera.Camera_set_abilities, None, Camera)
Camera.get_abilities = new_instancemethod(_camera.Camera_get_abilities, None, Camera)
Camera.set_port_info = new_instancemethod(_camera.Camera_set_port_info, None, Camera)
Camera.get_port_info = new_instancemethod(_camera.Camera_get_port_info, None, Camera)
Camera.set_port_speed = new_instancemethod(_camera.Camera_set_port_speed, None, Camera)
Camera.get_port_speed = new_instancemethod(_camera.Camera_get_port_speed, None, Camera)
Camera.init = new_instancemethod(_camera.Camera_init, None, Camera)
Camera.exit = new_instancemethod(_camera.Camera_exit, None, Camera)
Camera.get_config = new_instancemethod(_camera.Camera_get_config, None, Camera)
Camera.list_config = new_instancemethod(_camera.Camera_list_config, None, Camera)
Camera.get_single_config = new_instancemethod(_camera.Camera_get_single_config, None, Camera)
Camera.set_config = new_instancemethod(_camera.Camera_set_config, None, Camera)
Camera.set_single_config = new_instancemethod(_camera.Camera_set_single_config, None, Camera)
Camera.get_summary = new_instancemethod(_camera.Camera_get_summary, None, Camera)
Camera.get_manual = new_instancemethod(_camera.Camera_get_manual, None, Camera)
Camera.get_about = new_instancemethod(_camera.Camera_get_about, None, Camera)
Camera.capture = new_instancemethod(_camera.Camera_capture, None, Camera)
Camera.trigger_capture = new_instancemethod(_camera.Camera_trigger_capture, None, Camera)
Camera.capture_preview = new_instancemethod(_camera.Camera_capture_preview, None, Camera)
Camera.wait_for_event = new_instancemethod(_camera.Camera_wait_for_event, None, Camera)
Camera.get_storageinfo = new_instancemethod(_camera.Camera_get_storageinfo, None, Camera)
Camera.folder_list_files = new_instancemethod(_camera.Camera_folder_list_files, None, Camera)
Camera.folder_list_folders = new_instancemethod(_camera.Camera_folder_list_folders, None, Camera)
Camera.folder_delete_all = new_instancemethod(_camera.Camera_folder_delete_all, None, Camera)
Camera.folder_put_file = new_instancemethod(_camera.Camera_folder_put_file, None, Camera)
Camera.folder_make_dir = new_instancemethod(_camera.Camera_folder_make_dir, None, Camera)
Camera.folder_remove_dir = new_instancemethod(_camera.Camera_folder_remove_dir, None, Camera)
Camera.file_get_info = new_instancemethod(_camera.Camera_file_get_info, None, Camera)
Camera.file_set_info = new_instancemethod(_camera.Camera_file_set_info, None, Camera)
Camera.file_get = new_instancemethod(_camera.Camera_file_get, None, Camera)
Camera.file_read = new_instancemethod(_camera.Camera_file_read, None, Camera)
Camera.file_delete = new_instancemethod(_camera.Camera_file_delete, None, Camera)
Camera_swigregister = _camera.Camera_swigregister
Camera_swigregister(Camera)

def Camera_autodetect(*args) -> "CameraList *":
    """
    Camera_autodetect(context)

    Parameters
    ----------
    context: gphoto2.Context (default=None)


    Autodetect all detectable camera  

    Parameters
    ----------
    * `list` :  
        a CameraList that receives the autodetected cameras  
    * `context` :  
        a GPContext  

    Returns
    -------
    the number of cameras detected (0 to n) or a gphoto2 error code (<0)  

    This camera will autodetected all cameras that can be autodetected. This
    will for instance detect all USB cameras.  

    CameraList *list; gp_list_new (&list); gp_camera_autodetect (list,
    context); ... done! ...

    See also gphoto2.gp_camera_autodetect
    """
    return _camera.Camera_autodetect(*args)


def gp_camera_new() -> "Camera **":
    """
    gp_camera_new() -> int

    Allocates the memory for a Camera.  

    Parameters
    ----------
    * `camera` :  
        the Camera object to initialize.  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera
    """
    return _camera.gp_camera_new()

def gp_camera_set_abilities(camera: 'Camera', abilities: 'CameraAbilities') -> "int":
    """
    gp_camera_set_abilities(camera, abilities) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    abilities: gphoto2.CameraAbilities


    Sets the camera abilities.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `abilities` :  
        the CameraAbilities to be set  

    Returns
    -------
    a gphoto2 error code  

    You need to call this function before calling gp_camera_init the first
    time unless you want gphoto2 to autodetect cameras and choose the first
    detected one. By setting the `abilities`, you tell gphoto2 what model
    the `camera` is and what camera driver should be used for accessing the
    `camera`. You can get `abilities` by calling
    gp_abilities_list_get_abilities.

    See also gphoto2.Camera.set_abilities
    """
    return _camera.gp_camera_set_abilities(camera, abilities)

def gp_camera_get_abilities(camera: 'Camera') -> "CameraAbilities *":
    """
    gp_camera_get_abilities(camera) -> int

    Parameters
    ----------
    camera: gphoto2.Camera


    Retrieve the `abilities` of the `camera`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `abilities` :  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.get_abilities
    """
    return _camera.gp_camera_get_abilities(camera)

def gp_camera_set_port_info(camera: 'Camera', info: 'GPPortInfo') -> "int":
    """
    gp_camera_set_port_info(camera, info) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    info: gphoto2.GPPortInfo

    """
    return _camera.gp_camera_set_port_info(camera, info)

def gp_camera_get_port_info(camera: 'Camera') -> "GPPortInfo *":
    """
    gp_camera_get_port_info(camera) -> int

    Parameters
    ----------
    camera: gphoto2.Camera

    """
    return _camera.gp_camera_get_port_info(camera)

def gp_camera_set_port_speed(camera: 'Camera', speed: 'int') -> "int":
    """
    gp_camera_set_port_speed(camera, speed) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    speed: int


    Set the camera speed.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `speed` :  
        the speed  

    Returns
    -------
    a gphoto2 error code  

    This function is typically used prior first initialization using
    gp_camera_init for debugging purposes. Normally, a camera driver will
    try to figure out the current speed of the camera and set the speed to
    the optimal one automatically. Note that this function only works with
    serial ports. In other words, you have to set the camera's port to a
    serial one (using #gp_camera_set_port_path or #gp_camera_set_port_name)
    prior calling this function.

    See also gphoto2.Camera.set_port_speed
    """
    return _camera.gp_camera_set_port_speed(camera, speed)

def gp_camera_get_port_speed(camera: 'Camera') -> "int":
    """
    gp_camera_get_port_speed(camera) -> int

    Parameters
    ----------
    camera: gphoto2.Camera


    Retrieve the current speed.  

    Parameters
    ----------
    * `camera` :  
        a Camera  

    Returns
    -------
    The current speed or a gphoto2 error code

    See also gphoto2.Camera.get_port_speed
    """
    return _camera.gp_camera_get_port_speed(camera)

def gp_camera_autodetect(*args) -> "CameraList *":
    """
    gp_camera_autodetect(context) -> int

    Parameters
    ----------
    context: gphoto2.Context (default=None)


    Autodetect all detectable camera  

    Parameters
    ----------
    * `list` :  
        a CameraList that receives the autodetected cameras  
    * `context` :  
        a GPContext  

    Returns
    -------
    the number of cameras detected (0 to n) or a gphoto2 error code (<0)  

    This camera will autodetected all cameras that can be autodetected. This
    will for instance detect all USB cameras.  

    CameraList *list; gp_list_new (&list); gp_camera_autodetect (list,
    context); ... done! ...

    See also gphoto2.Camera.autodetect
    """
    return _camera.gp_camera_autodetect(*args)

def gp_camera_init(*args) -> "int":
    """
    gp_camera_init(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Initiate a connection to the `camera`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    Before calling this function, the `camera` should be set up using
    gp_camera_set_port_path() or gp_camera_set_port_name() and
    gp_camera_set_abilities(). If that has been omitted, gphoto2 tries to
    autodetect any cameras and chooses the first one if any cameras are
    found. It is generally a good idea to call gp_camera_exit() after
    transactions have been completed in order to give other applications the
    chance to access the camera, too.

    See also gphoto2.Camera.init
    """
    return _camera.gp_camera_init(*args)

def gp_camera_exit(*args) -> "int":
    """
    gp_camera_exit(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Close connection to camera.  

    Parameters
    ----------
    * `camera` :  
        a Camera object  
    * `context` :  
        a GPContext object  

    Returns
    -------
    a gphoto2 error code.  

    Closes a connection to the camera and therefore gives other application
    the possibility to access the camera, too.  

    It is recommended that you call this function when you currently don't
    need the camera. The camera will get reinitialized by gp_camera_init()
    automatically if you try to access the camera again.

    See also gphoto2.Camera.exit
    """
    return _camera.gp_camera_exit(*args)

def gp_camera_get_config(*args) -> "CameraWidget **":
    """
    gp_camera_get_config(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Retrieve a configuration `window` for the `camera`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `window` :  
        a CameraWidget  
    * `context` :  
        a GPContext  

    Returns
    -------
    gphoto2 error code  

    This `window` can be used for construction of a configuration dialog.

    See also gphoto2.Camera.get_config
    """
    return _camera.gp_camera_get_config(*args)

def gp_camera_list_config(*args) -> "CameraList *":
    """
    gp_camera_list_config(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)

    """
    return _camera.gp_camera_list_config(*args)

def gp_camera_get_single_config(*args) -> "CameraWidget **":
    """
    gp_camera_get_single_config(camera, name, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    name: str
    context: gphoto2.Context (default=None)


    Retrieve a single configuration `widget` for the `camera`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `name` :  
        the name of a configuration widget  
    * `widget` :  
        a CameraWidget  
    * `context` :  
        a GPContext  

    Returns
    -------
    gphoto2 error code  

    This `widget` will then contain the current and the possible values and
    the type.

    See also gphoto2.Camera.get_single_config
    """
    return _camera.gp_camera_get_single_config(*args)

def gp_camera_set_config(*args) -> "int":
    """
    gp_camera_set_config(camera, window, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    window: gphoto2.CameraWidget
    context: gphoto2.Context (default=None)


    Sets the configuration.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `window` :  
        a CameraWidget  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    Typically, a `window` is retrieved using gp_camera_get_config and passed
    to this function in order to adjust the settings on the camera.

    See also gphoto2.Camera.set_config
    """
    return _camera.gp_camera_set_config(*args)

def gp_camera_set_single_config(*args) -> "int":
    """
    gp_camera_set_single_config(camera, name, widget, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    name: str
    widget: gphoto2.CameraWidget
    context: gphoto2.Context (default=None)


    Set a single configuration `widget` for the `camera`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `name` :  
        the name of a configuration widget  
    * `widget` :  
        a CameraWidget  
    * `context` :  
        a GPContext  

    Returns
    -------
    gphoto2 error code  

    This `widget` contains the new value of the widget to set.

    See also gphoto2.Camera.set_single_config
    """
    return _camera.gp_camera_set_single_config(*args)

def gp_camera_get_summary(*args) -> "CameraText *":
    """
    gp_camera_get_summary(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Retrieves a camera summary.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `summary` :  
        a CameraText  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    This summary typically contains information like manufacturer, pictures
    taken, or generally information that is not configurable.

    See also gphoto2.Camera.get_summary
    """
    return _camera.gp_camera_get_summary(*args)

def gp_camera_get_manual(*args) -> "CameraText *":
    """
    gp_camera_get_manual(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Retrieves the `manual` for given `camera`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `manual` :  
        a CameraText  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    This manual typically contains information about using the camera.

    See also gphoto2.Camera.get_manual
    """
    return _camera.gp_camera_get_manual(*args)

def gp_camera_get_about(*args) -> "CameraText *":
    """
    gp_camera_get_about(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Retrieves information about the camera driver.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `about` :  
        a CameraText  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    Typically, this information contains name and address of the author,
    acknowledgements, etc.

    See also gphoto2.Camera.get_about
    """
    return _camera.gp_camera_get_about(*args)

def gp_camera_capture(*args) -> "CameraFilePath *":
    """
    gp_camera_capture(camera, type, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    type: CameraCaptureType (gphoto2.GP_CAPTURE_IMAGE etc.)
    context: gphoto2.Context (default=None)


    Captures an image, movie, or sound clip depending on the given `type`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `type` :  
        a CameraCaptureType  
    * `path` :  
        a CameraFilePath  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    The resulting file will be stored on the camera. The location gets
    stored in `path`. The file can then be downloaded using
    gp_camera_file_get.

    See also gphoto2.Camera.capture
    """
    return _camera.gp_camera_capture(*args)

def gp_camera_trigger_capture(*args) -> "int":
    """
    gp_camera_trigger_capture(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Triggers capture of one or more images.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    This functions just remotely causes the shutter release and returns
    immediately. You will want to run #gp_camera_wait_event until a image is
    added which can be downloaded using gp_camera_file_get.

    See also gphoto2.Camera.trigger_capture
    """
    return _camera.gp_camera_trigger_capture(*args)

def gp_camera_wait_for_event(*args) -> "void **":
    """
    gp_camera_wait_for_event(camera, timeout, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    timeout: int
    context: gphoto2.Context (default=None)


    Wait and retrieve an event from the camera.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `timeout` :  
        amount of time to wait in 1/1000 seconds  
    * `eventtype` :  
        received CameraEventType [out]  
    * `eventdata` :  
        received event specific data [out]  
    * `context` :  
        a GPContext  

    Returns
    -------
    gphoto2 error code  

    This function blocks and waits for an event to come from the camera. If
    a timeout occurs before an event is received then eventtype will be
    GP_EVENT_TIMEOUT and eventdata is left unchanged.  

    If an event is received then eventtype is set to the type of event, and
    eventdata is set to event specific data. See the CameraEventType enum to
    see which eventtypes match to which types of eventdata.  

    Note that this function will return one event after each other, you need
    to be able to call it multiple times, e.g. in a loop, when waiting for
    specific events.

    See also gphoto2.Camera.wait_for_event
    """
    return _camera.gp_camera_wait_for_event(*args)

def gp_camera_get_storageinfo(*args) -> "int *":
    """
    gp_camera_get_storageinfo(camera, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    context: gphoto2.Context (default=None)


    Gets information on the camera attached storage.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `sifs` :  
        Pointer to receive a pointer to/array of storage info items  
    * `nrofsifs` :  
        Pointer to receive number of array entries  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code  

    Retrieves the storage information, like maximum and free space, for the
    specified filesystem, if supported by the device. The storage
    information is returned in an newly allocated array of
    CameraStorageInformation objects, to which the pointer pointed to by
    #sifs will be set.  

    The variable pointed to by #nrofsifs will be set to the number of
    elements in that array.  

    It is the caller's responsibility to free the memory of the array.

    See also gphoto2.Camera.get_storageinfo
    """
    return _camera.gp_camera_get_storageinfo(*args)

def gp_camera_folder_list_files(*args) -> "CameraList *":
    """
    gp_camera_folder_list_files(camera, folder, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    context: gphoto2.Context (default=None)


    Lists the files in supplied `folder`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `list` :  
        a CameraList  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.folder_list_files
    """
    return _camera.gp_camera_folder_list_files(*args)

def gp_camera_folder_list_folders(*args) -> "CameraList *":
    """
    gp_camera_folder_list_folders(camera, folder, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    context: gphoto2.Context (default=None)


    Lists the folders in supplied `folder`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `list` :  
        a CameraList  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.folder_list_folders
    """
    return _camera.gp_camera_folder_list_folders(*args)

def gp_camera_folder_delete_all(*args) -> "int":
    """
    gp_camera_folder_delete_all(camera, folder, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    context: gphoto2.Context (default=None)


    Deletes all files in a given `folder`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.folder_delete_all
    """
    return _camera.gp_camera_folder_delete_all(*args)

def gp_camera_folder_put_file(*args) -> "int":
    """
    gp_camera_folder_put_file(camera, folder, filename, type, file, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    filename: str
    type: CameraFileType (gphoto2.GP_FILE_TYPE_PREVIEW etc.)
    file: gphoto2.CameraFile
    context: gphoto2.Context (default=None)


    Uploads a file into given `folder`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `file` :  
        a CameraFile  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.folder_put_file
    """
    return _camera.gp_camera_folder_put_file(*args)

def gp_camera_folder_make_dir(*args) -> "int":
    """
    gp_camera_folder_make_dir(camera, folder, name, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    name: str
    context: gphoto2.Context (default=None)


    Creates a new directory called `name` in the given `folder`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        the location where to create the new directory  
    * `name` :  
        the name of the directory to be created  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.folder_make_dir
    """
    return _camera.gp_camera_folder_make_dir(*args)

def gp_camera_folder_remove_dir(*args) -> "int":
    """
    gp_camera_folder_remove_dir(camera, folder, name, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    name: str
    context: gphoto2.Context (default=None)


    Removes an (empty) directory called `name` from the given `folder`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        the folder from which to remove the directory  
    * `name` :  
        the name of the directory to be removed  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.folder_remove_dir
    """
    return _camera.gp_camera_folder_remove_dir(*args)

def gp_camera_file_get_info(*args) -> "CameraFileInfo *":
    """
    gp_camera_file_get_info(camera, folder, file, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    file: str
    context: gphoto2.Context (default=None)


    Retrieves information about a file.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `file` :  
        the name of the file  
    * `info` :  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.file_get_info
    """
    return _camera.gp_camera_file_get_info(*args)

def gp_camera_file_set_info(*args) -> "int":
    """
    gp_camera_file_set_info(camera, folder, file, info, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    file: str
    info: gphoto2.CameraFileInfo
    context: gphoto2.Context (default=None)


    Sets some file properties like name or permissions.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `file` :  
        the name of a file  
    * `info` :  
        the CameraFileInfo  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.file_set_info
    """
    return _camera.gp_camera_file_set_info(*args)

def gp_camera_file_get(*args) -> "CameraFile *":
    """
    gp_camera_file_get(camera, folder, file, type, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    file: str
    type: CameraFileType (gphoto2.GP_FILE_TYPE_PREVIEW etc.)
    context: gphoto2.Context (default=None)


    Retrieves a file from the Camera.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `file` :  
        the name of a file  
    * `type` :  
        the CameraFileType  
    * `camera_file` :  
        a CameraFile  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.file_get
    """
    return _camera.gp_camera_file_get(*args)

def gp_camera_file_read(*args) -> "uint64_t *":
    """
    gp_camera_file_read(camera, folder, file, type, offset, buf, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    file: str
    type: CameraFileType (gphoto2.GP_FILE_TYPE_PREVIEW etc.)
    offset: int
    buf: writable buffer (e.g. memoryview)
    context: gphoto2.Context (default=None)


    Reads a file partially from the Camera.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `file` :  
        the name of a file  
    * `type` :  
        the CameraFileType  
    * `offset` :  
        the offset into the camera file  
    * `data` :  
        the buffer receiving the data  
    * `size` :  
        the size to be read and that was read. (Note: size should not exceed
        32 bits)  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.file_read
    """
    return _camera.gp_camera_file_read(*args)

def gp_camera_file_delete(*args) -> "int":
    """
    gp_camera_file_delete(camera, folder, file, context) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    folder: str
    file: str
    context: gphoto2.Context (default=None)


    Deletes the file from `folder`.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `folder` :  
        a folder  
    * `file` :  
        the name of a file  
    * `context` :  
        a GPContext  

    Returns
    -------
    a gphoto2 error code

    See also gphoto2.Camera.file_delete
    """
    return _camera.gp_camera_file_delete(*args)

def gp_camera_set_timeout_funcs(camera: 'Camera', start_func: 'CameraTimeoutStartFunc', stop_func: 'CameraTimeoutStopFunc', data: 'void *') -> "void":
    """
    gp_camera_set_timeout_funcs(camera, start_func, stop_func, data)

    Parameters
    ----------
    camera: gphoto2.Camera
    start_func: CameraTimeoutStartFunc
    stop_func: CameraTimeoutStopFunc
    data: void *


    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `start_func` :  
    * `stop_func` :  
    * `data` :  

    Returns
    -------
    a gphoto2 error code  

    If your frontend has something like idle loops, it is recommended you
    use gp_camera_set_timeout_funcs in order to give the camera driver the
    possibility to keep up the connection to the camera.

    See also gphoto2.Camera.set_timeout_funcs
    """
    return _camera.gp_camera_set_timeout_funcs(camera, start_func, stop_func, data)

def gp_camera_start_timeout(camera: 'Camera', timeout: 'unsigned int', func: 'CameraTimeoutFunc') -> "int":
    """
    gp_camera_start_timeout(camera, timeout, func) -> int

    Parameters
    ----------
    camera: gphoto2.Camera
    timeout: unsigned int
    func: CameraTimeoutFunc


    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `timeout` :  
        number of seconds that should pass between each call to `func`  
    * `func` :  
        the function that should be called each `timeout` seconds  

    Returns
    -------
    The id of the background process or a gphoto2 error code  

    This function should be called by the camera driver during camera_init()
    if the camera needs to be sent messages periodically in order to prevent
    it from shutting down.

    See also gphoto2.Camera.start_timeout
    """
    return _camera.gp_camera_start_timeout(camera, timeout, func)

def gp_camera_stop_timeout(camera: 'Camera', id: 'unsigned int') -> "void":
    """
    gp_camera_stop_timeout(camera, id)

    Parameters
    ----------
    camera: gphoto2.Camera
    id: unsigned int


    Stop periodic calls to keepalive function.  

    Parameters
    ----------
    * `camera` :  
        a Camera  
    * `id` :  
        the id of the background process previously returned by
        gp_camera_start_timeout  

    Call this function in the camera driver if you want to stop a periodic
    call to a function that has been started using gp_camera_start_timeout.

    See also gphoto2.Camera.stop_timeout
    """
    return _camera.gp_camera_stop_timeout(camera, id)


