# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# 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 < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _camera
else:
    import _camera

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _camera.SWIG_PyInstanceMethod_New
_swig_new_static_method = _camera.SWIG_PyStaticMethod_New

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_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


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
gp_camera_capture_preview = _camera.gp_camera_capture_preview
class CameraText(object):
    r"""
    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 = 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
    __str__ = _swig_new_instance_method(_camera.CameraText___str__)
    text = property(_camera.CameraText_text_get, doc=r"""text""")
    __swig_destroy__ = _camera.delete_CameraText

# Register CameraText in _camera:
_camera.CameraText_swigregister(CameraText)

class CameraFilePath(object):
    r"""
    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 = 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 = property(_camera.CameraFilePath_name_get, doc=r"""name""")
    folder = property(_camera.CameraFilePath_folder_get, doc=r"""folder""")
    __swig_destroy__ = _camera.delete_CameraFilePath

# Register CameraFilePath in _camera:
_camera.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):
    r"""Proxy of C _Camera struct."""

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

    def __init__(self):
        r"""__init__(self) -> Camera"""
        _camera.Camera_swiginit(self, _camera.new_Camera())
    __swig_destroy__ = _camera.delete_Camera
    autodetect = _swig_new_static_method(_camera.Camera_autodetect)
    set_abilities = _swig_new_instance_method(_camera.Camera_set_abilities)
    get_abilities = _swig_new_instance_method(_camera.Camera_get_abilities)
    set_port_info = _swig_new_instance_method(_camera.Camera_set_port_info)
    get_port_info = _swig_new_instance_method(_camera.Camera_get_port_info)
    set_port_speed = _swig_new_instance_method(_camera.Camera_set_port_speed)
    get_port_speed = _swig_new_instance_method(_camera.Camera_get_port_speed)
    init = _swig_new_instance_method(_camera.Camera_init)
    exit = _swig_new_instance_method(_camera.Camera_exit)
    get_config = _swig_new_instance_method(_camera.Camera_get_config)
    list_config = _swig_new_instance_method(_camera.Camera_list_config)
    get_single_config = _swig_new_instance_method(_camera.Camera_get_single_config)
    set_config = _swig_new_instance_method(_camera.Camera_set_config)
    set_single_config = _swig_new_instance_method(_camera.Camera_set_single_config)
    get_summary = _swig_new_instance_method(_camera.Camera_get_summary)
    get_manual = _swig_new_instance_method(_camera.Camera_get_manual)
    get_about = _swig_new_instance_method(_camera.Camera_get_about)
    capture = _swig_new_instance_method(_camera.Camera_capture)
    trigger_capture = _swig_new_instance_method(_camera.Camera_trigger_capture)
    capture_preview = _swig_new_instance_method(_camera.Camera_capture_preview)
    wait_for_event = _swig_new_instance_method(_camera.Camera_wait_for_event)
    get_storageinfo = _swig_new_instance_method(_camera.Camera_get_storageinfo)
    folder_list_files = _swig_new_instance_method(_camera.Camera_folder_list_files)
    folder_list_folders = _swig_new_instance_method(_camera.Camera_folder_list_folders)
    folder_delete_all = _swig_new_instance_method(_camera.Camera_folder_delete_all)
    folder_put_file = _swig_new_instance_method(_camera.Camera_folder_put_file)
    folder_make_dir = _swig_new_instance_method(_camera.Camera_folder_make_dir)
    folder_remove_dir = _swig_new_instance_method(_camera.Camera_folder_remove_dir)
    file_get_info = _swig_new_instance_method(_camera.Camera_file_get_info)
    file_set_info = _swig_new_instance_method(_camera.Camera_file_set_info)
    file_get = _swig_new_instance_method(_camera.Camera_file_get)
    file_read = _swig_new_instance_method(_camera.Camera_file_read)
    file_delete = _swig_new_instance_method(_camera.Camera_file_delete)

# Register Camera in _camera:
_camera.Camera_swigregister(Camera)
Camera_autodetect = _camera.Camera_autodetect

gp_camera_new = _camera.gp_camera_new
gp_camera_set_abilities = _camera.gp_camera_set_abilities
gp_camera_get_abilities = _camera.gp_camera_get_abilities
gp_camera_set_port_info = _camera.gp_camera_set_port_info
gp_camera_get_port_info = _camera.gp_camera_get_port_info
gp_camera_set_port_speed = _camera.gp_camera_set_port_speed
gp_camera_get_port_speed = _camera.gp_camera_get_port_speed
gp_camera_autodetect = _camera.gp_camera_autodetect
gp_camera_init = _camera.gp_camera_init
gp_camera_exit = _camera.gp_camera_exit
gp_camera_get_config = _camera.gp_camera_get_config
gp_camera_list_config = _camera.gp_camera_list_config
gp_camera_get_single_config = _camera.gp_camera_get_single_config
gp_camera_set_config = _camera.gp_camera_set_config
gp_camera_set_single_config = _camera.gp_camera_set_single_config
gp_camera_get_summary = _camera.gp_camera_get_summary
gp_camera_get_manual = _camera.gp_camera_get_manual
gp_camera_get_about = _camera.gp_camera_get_about
gp_camera_capture = _camera.gp_camera_capture
gp_camera_trigger_capture = _camera.gp_camera_trigger_capture
gp_camera_wait_for_event = _camera.gp_camera_wait_for_event
gp_camera_get_storageinfo = _camera.gp_camera_get_storageinfo
gp_camera_folder_list_files = _camera.gp_camera_folder_list_files
gp_camera_folder_list_folders = _camera.gp_camera_folder_list_folders
gp_camera_folder_delete_all = _camera.gp_camera_folder_delete_all
gp_camera_folder_put_file = _camera.gp_camera_folder_put_file
gp_camera_folder_make_dir = _camera.gp_camera_folder_make_dir
gp_camera_folder_remove_dir = _camera.gp_camera_folder_remove_dir
gp_camera_file_get_info = _camera.gp_camera_file_get_info
gp_camera_file_set_info = _camera.gp_camera_file_set_info
gp_camera_file_get = _camera.gp_camera_file_get
gp_camera_file_read = _camera.gp_camera_file_read
gp_camera_file_delete = _camera.gp_camera_file_delete
gp_camera_set_timeout_funcs = _camera.gp_camera_set_timeout_funcs
gp_camera_start_timeout = _camera.gp_camera_start_timeout
gp_camera_stop_timeout = _camera.gp_camera_stop_timeout


