]> sigrok.org Git - sigrok-util.git/blobdiff - source/drv-api.c
new-driver: keep driver_info local to the api.c source file
[sigrok-util.git] / source / drv-api.c
index 6566d629a8b7cec0e97741135a0127f0fc80db82..6a1c20c70b8328a7fa2fcb7e6a1cdc237dc78562 100644 (file)
 #include <config.h>
 #include "protocol.h"
 
-SR_PRIV struct sr_dev_driver {lib}_driver_info;
-
-static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx)
-{{
-       return std_init(sr_ctx, di, LOG_PREFIX);
-}}
+static struct sr_dev_driver {lib}_driver_info;
 
 static GSList *scan(struct sr_dev_driver *di, GSList *options)
 {{
@@ -44,24 +39,12 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
        return devices;
 }}
 
-static GSList *dev_list(const struct sr_dev_driver *di)
-{{
-       return ((struct drv_context *)(di->context))->instances;
-}}
-
-static int dev_clear(const struct sr_dev_driver *di)
-{{
-       return std_dev_clear(di, NULL);
-}}
-
 static int dev_open(struct sr_dev_inst *sdi)
 {{
        (void)sdi;
 
        /* TODO: get handle from sdi->conn and open it. */
 
-       sdi->status = SR_ST_ACTIVE;
-
        return SR_OK;
 }}
 
@@ -71,17 +54,6 @@ static int dev_close(struct sr_dev_inst *sdi)
 
        /* TODO: get handle from sdi->conn and close it. */
 
-       sdi->status = SR_ST_INACTIVE;
-
-       return SR_OK;
-}}
-
-static int cleanup(const struct sr_dev_driver *di)
-{{
-       dev_clear(di);
-
-       /* TODO: free other driver resources, if any. */
-
        return SR_OK;
 }}
 
@@ -109,12 +81,10 @@ static int config_set(uint32_t key, GVariant *data,
 {{
        int ret;
 
+       (void)sdi;
        (void)data;
        (void)cg;
 
-       if (sdi->status != SR_ST_ACTIVE)
-               return SR_ERR_DEV_CLOSED;
-
        ret = SR_OK;
        switch (key) {{
        /* TODO */
@@ -144,41 +114,34 @@ static int config_list(uint32_t key, GVariant **data,
        return ret;
 }}
 
-static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
+static int dev_acquisition_start(const struct sr_dev_inst *sdi)
 {{
-       (void)sdi;
-       (void)cb_data;
-
-       if (sdi->status != SR_ST_ACTIVE)
-               return SR_ERR_DEV_CLOSED;
-
        /* TODO: configure hardware, reset acquisition state, set up
         * callbacks and send header packet. */
 
+       (void)sdi;
+
        return SR_OK;
 }}
 
-static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
+static int dev_acquisition_stop(struct sr_dev_inst *sdi)
 {{
-       (void)cb_data;
-
-       if (sdi->status != SR_ST_ACTIVE)
-               return SR_ERR_DEV_CLOSED;
-
        /* TODO: stop acquisition. */
 
+       (void)sdi;
+
        return SR_OK;
 }}
 
-SR_PRIV struct sr_dev_driver {lib}_driver_info = {{
+static struct sr_dev_driver {lib}_driver_info = {{
        .name = "{short}",
        .longname = "{name}",
        .api_version = 1,
-       .init = init,
-       .cleanup = cleanup,
+       .init = std_init,
+       .cleanup = std_cleanup,
        .scan = scan,
-       .dev_list = dev_list,
-       .dev_clear = dev_clear,
+       .dev_list = std_dev_list,
+       .dev_clear = std_dev_clear,
        .config_get = config_get,
        .config_set = config_set,
        .config_list = config_list,
@@ -188,5 +151,4 @@ SR_PRIV struct sr_dev_driver {lib}_driver_info = {{
        .dev_acquisition_stop = dev_acquisition_stop,
        .context = NULL,
 }};
-
 SR_REGISTER_DEV_DRIVER({lib}_driver_info);