-int session_save(char *filename)
-{
- GSList *l, *p, *d;
- FILE *meta;
- struct device *device;
- struct probe *probe;
- struct datastore *ds;
- struct zip *zipfile;
- struct zip_source *versrc, *metasrc, *logicsrc;
- int bufcnt, devcnt, tmpfile, ret, error;
- char version[1], rawname[16], metafile[32], *newfn, *buf;
-
- newfn = g_malloc(strlen(filename) + 10);
- strcpy(newfn, filename);
- if (strstr(filename, ".sigrok") != filename+strlen(filename)-7)
- strcat(newfn, ".sigrok");
-
- /* Quietly delete it first, libzip wants replace ops otherwise. */
- unlink(newfn);
- if (!(zipfile = zip_open(newfn, ZIP_CREATE, &error)))
- return SIGROK_ERR;
- g_free(newfn);
-
- /* "version" */
- version[0] = '1';
- if (!(versrc = zip_source_buffer(zipfile, version, 1, 0)))
- return SIGROK_ERR;
- if (zip_add(zipfile, "version", versrc) == -1) {
- g_message("error saving version into zipfile: %s",
- zip_strerror(zipfile));
- return SIGROK_ERR;
- }
+void sr_session_source_add(int fd, int events, int timeout,
+ sr_receive_data_callback callback, void *user_data)
+{
+ struct source *new_sources, *s;