#define LIBSIGROK_LIBSIGROK_INTERNAL_H
#include <stdarg.h>
+#include <stdio.h>
#include <glib.h>
-#include "config.h" /* Needed for HAVE_LIBUSB_1_0 and others. */
#ifdef HAVE_LIBUSB_1_0
#include <libusb.h>
#endif
#include <libserialport.h>
#endif
+struct zip;
+struct zip_stat;
+
/**
* @file
*
#ifdef HAVE_LIBUSB_1_0
libusb_context *libusb_ctx;
#endif
+ sr_resource_open_callback resource_open_cb;
+ sr_resource_close_callback resource_close_cb;
+ sr_resource_read_callback resource_read_cb;
+ void *resource_cb_data;
};
/** Input module metadata keys. */
#endif
#ifdef HAVE_LIBSERIALPORT
-#define SERIAL_PARITY_NONE SP_PARITY_NONE
-#define SERIAL_PARITY_EVEN SP_PARITY_EVEN
-#define SERIAL_PARITY_ODD SP_PARITY_ODD
struct sr_serial_dev_inst {
/** Port name, e.g. '/dev/tty42'. */
char *port;
char *serialcomm;
/** libserialport port handle */
struct sp_port *data;
- /** libserialport event set */
- struct sp_event_set *event_set;
- /** GPollFDs for event polling */
- GPollFD *pollfds;
};
#endif
/*--- log.c -----------------------------------------------------------------*/
+#if defined(G_OS_WIN32) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+/*
+ * On MinGW, we need to specify the gnu_printf format flavor or GCC
+ * will assume non-standard Microsoft printf syntax.
+ */
+SR_PRIV int sr_log(int loglevel, const char *format, ...)
+ __attribute__((__format__ (__gnu_printf__, 2, 3)));
+#else
SR_PRIV int sr_log(int loglevel, const char *format, ...) G_GNUC_PRINTF(2, 3);
+#endif
/* Message logging helpers with subsystem-specific prefix string. */
#define sr_spew(...) sr_log(SR_LOG_SPEW, LOG_PREFIX ": " __VA_ARGS__)
SR_PRIV void sr_hw_cleanup_all(const struct sr_context *ctx);
SR_PRIV struct sr_config *sr_config_new(uint32_t key, GVariant *data);
SR_PRIV void sr_config_free(struct sr_config *src);
-SR_PRIV int sr_source_remove(int fd);
-SR_PRIV int sr_source_remove_pollfd(GPollFD *pollfd);
-SR_PRIV int sr_source_remove_channel(GIOChannel *channel);
-SR_PRIV int sr_source_add(int fd, int events, int timeout,
- sr_receive_data_callback cb, void *cb_data);
-SR_PRIV int sr_source_add_pollfd(GPollFD *pollfd, int timeout,
- sr_receive_data_callback cb, void *cb_data);
-SR_PRIV int sr_source_add_channel(GIOChannel *channel, int events, int timeout,
- sr_receive_data_callback cb, void *cb_data);
/*--- session.c -------------------------------------------------------------*/
void *key);
SR_PRIV int sr_session_source_destroyed(struct sr_session *session,
void *key, GSource *source);
+SR_PRIV int sr_session_fd_source_add(struct sr_session *session,
+ void *key, gintptr fd, int events, int timeout,
+ sr_receive_data_callback cb, void *cb_data);
SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *packet);
SR_PRIV int sr_sessionfile_check(const char *filename);
struct sr_datafeed_packet **copy);
SR_PRIV void sr_packet_free(struct sr_datafeed_packet *packet);
+/*--- session_file.c --------------------------------------------------------*/
+
+SR_PRIV GKeyFile *sr_sessionfile_read_metadata(struct zip *archive,
+ const struct zip_stat *entry);
+
/*--- analog.c --------------------------------------------------------------*/
SR_PRIV int sr_analog_init(struct sr_datafeed_analog2 *analog,
std_dev_clear_callback clear_private);
SR_PRIV int std_serial_dev_close(struct sr_dev_inst *sdi);
+/*--- resource.c ------------------------------------------------------------*/
+
+SR_PRIV int64_t sr_file_get_size(FILE *file);
+
+SR_PRIV int sr_resource_open(struct sr_context *ctx,
+ struct sr_resource *res, int type, const char *name)
+ G_GNUC_WARN_UNUSED_RESULT;
+SR_PRIV int sr_resource_close(struct sr_context *ctx,
+ struct sr_resource *res);
+SR_PRIV ssize_t sr_resource_read(struct sr_context *ctx,
+ const struct sr_resource *res, void *buf, size_t count)
+ G_GNUC_WARN_UNUSED_RESULT;
+SR_PRIV void *sr_resource_load(struct sr_context *ctx, int type,
+ const char *name, size_t *size, size_t max_size)
+ G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+
/*--- strutil.c -------------------------------------------------------------*/
SR_PRIV int sr_atol(const char *str, long *ret);
#ifdef HAVE_LIBUSB_1_0
SR_PRIV int ezusb_reset(struct libusb_device_handle *hdl, int set_clear);
-SR_PRIV int ezusb_install_firmware(libusb_device_handle *hdl,
- const char *filename);
-SR_PRIV int ezusb_upload_firmware(libusb_device *dev, int configuration,
- const char *filename);
+SR_PRIV int ezusb_install_firmware(struct sr_context *ctx, libusb_device_handle *hdl,
+ const char *name);
+SR_PRIV int ezusb_upload_firmware(struct sr_context *ctx, libusb_device *dev,
+ int configuration, const char *name);
#endif
/*--- hardware/usb.c --------------------------------------------------------*/