X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=session_driver.c;h=ab1468265dbb9e8ff2f22663c672591ae66d34cf;hb=d3683c42e74fa61c21fc0f1bf360ae201fc4b1d1;hp=0c1d0d20de0465ee622a09da8b660d7208e5ff60;hpb=5c64390e5ac8a0052d8b7eeb49c781d86027c814;p=libsigrok.git diff --git a/session_driver.c b/session_driver.c index 0c1d0d20..ab146826 100644 --- a/session_driver.c +++ b/session_driver.c @@ -1,7 +1,7 @@ /* * This file is part of the sigrok project. * - * Copyright (C) 2012 Bert Vermeulen + * Copyright (C) 2010-2012 Bert Vermeulen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -59,7 +59,7 @@ static struct session_vdevice *get_vdevice_by_index(int device_index) /* TODO: Sanity checks on device_index. */ - if (!(sdi = sr_get_device_instance(device_instances, device_index))) { + if (!(sdi = sr_get_dev_inst(device_instances, device_index))) { sr_err("session driver: %s: device instance with device " "index %d was not found", __func__, device_index); return NULL; @@ -107,8 +107,7 @@ static int feed_chunk(int fd, int revents, void *session_data) if (!(buf = g_try_malloc(CHUNKSIZE))) { sr_err("session: %s: buf malloc failed", __func__); - // return SR_ERR_MALLOC; - return FALSE; + return FALSE; /* TODO: SR_ERR_MALLOC */ } ret = zip_fread(vdevice->capfile, buf, CHUNKSIZE); @@ -139,7 +138,7 @@ static int feed_chunk(int fd, int revents, void *session_data) } /* driver callbacks */ -static void hw_cleanup(void); +static int hw_cleanup(void); /** * TODO. @@ -150,7 +149,6 @@ static void hw_cleanup(void); */ static int hw_init(const char *deviceinfo) { - sessionfile = g_strdup(deviceinfo); return 0; @@ -160,12 +158,14 @@ static int hw_init(const char *deviceinfo) * TODO. * */ -static void hw_cleanup(void) +static int hw_cleanup(void) { GSList *l; + /* TODO: Error handling. */ + for (l = device_instances; l; l = l->next) - sr_device_instance_free(l->data); + sr_dev_inst_free(l->data); g_slist_free(device_instances); device_instances = NULL; @@ -173,13 +173,15 @@ static void hw_cleanup(void) sr_session_source_remove(-1); g_free(sessionfile); + + return SR_OK; } static int hw_opendev(int device_index) { struct sr_device_instance *sdi; - sdi = sr_device_instance_new(device_index, SR_ST_INITIALIZING, + sdi = sr_dev_inst_new(device_index, SR_ST_INITIALIZING, NULL, NULL, NULL); if (!sdi) return SR_ERR; @@ -215,7 +217,7 @@ static int hw_get_status(int device_index) /* Avoid compiler warnings. */ (void)device_index; - if (sr_device_list() != NULL) + if (sr_dev_list() != NULL) return SR_OK; else return SR_ERR; @@ -287,20 +289,21 @@ static int hw_start_acquisition(int device_index, gpointer session_device_id) vdevice->capturefile); if (!(vdevice->archive = zip_open(sessionfile, 0, &err))) { - sr_warn("Failed to open session file '%s': zip error %d\n", - sessionfile, err); + sr_err("Failed to open session file '%s': zip error %d\n", + sessionfile, err); return SR_ERR; } if (zip_stat(vdevice->archive, vdevice->capturefile, 0, &zs) == -1) { - sr_warn("Failed to check capture file '%s' in session file '%s'.", - vdevice->capturefile, sessionfile); + sr_err("Failed to check capture file '%s' in session file " + "'%s'.", vdevice->capturefile, sessionfile); return SR_ERR; } - if (!(vdevice->capfile = zip_fopen(vdevice->archive, vdevice->capturefile, 0))) { - sr_warn("Failed to open capture file '%s' in session file '%s'.", - vdevice->capturefile, sessionfile); + if (!(vdevice->capfile = zip_fopen(vdevice->archive, + vdevice->capturefile, 0))) { + sr_err("Failed to open capture file '%s' in session file '%s'.", + vdevice->capturefile, sessionfile); return SR_ERR; }