Ejemplo n.º 1
0
static int
get_percentage(const char *url)
{
    void *db = metadb_get();
    int remain, done;
    int rval;
    if(db == NULL)
        return 0;

    remain = count_items(db,
                         "SELECT count(*) "
                         "FROM item "
                         "WHERE url LIKE ?1 "
                         "AND contenttype = 1 "
                         "AND indexstatus == 0",
                         url);
    if(remain) {
        done = count_items(db,
                           "SELECT count(*) "
                           "FROM item "
                           "WHERE url LIKE ?1 "
                           "AND contenttype = 1 "
                           "AND indexstatus > 1",
                           url);
        rval = MIN(done * 100 / (done+remain), 100);
    } else {
        rval = 100;
    }
    metadb_close(db);
    return rval;
}
Ejemplo n.º 2
0
static void *
bmdb_thread(void *aux)
{
    bmdb_t *b = aux;
    void *db = metadb_get();
    bmdb_query_exec(db, b);
    metadb_close(db);
    bmdb_destroy(b);
    return NULL;
}
Ejemplo n.º 3
0
static void
file_open_file(prop_t *page, const char *url, fa_stat_t *fs)
{
  char errbuf[200];
  metadata_t *md;

  void *db = metadb_get();
  md = metadb_metadata_get(db, url, fs->fs_mtime);
  metadb_close(db);

  if(md == NULL)
    md = fa_probe_metadata(url, errbuf, sizeof(errbuf), NULL);

  if(md == NULL) {
    nav_open_errorf(page, _("Unable to open file: %s"), errbuf);
    return;
  }

  if(md->md_redirect != NULL)
    url = md->md_redirect;

  prop_t *meta = prop_create_root("metadata");

  metadata_to_proptree(md, meta, 0);

  switch(md->md_contenttype) {
  case CONTENT_ARCHIVE:
  case CONTENT_ALBUM:
    file_open_browse(page, url, fs->fs_mtime);
    break;

  case CONTENT_AUDIO:
    if(!file_open_audio(page, url)) {
      break;
    }
    playqueue_play(url, meta, 0);
    playqueue_open(page);
    meta = NULL;
    break;

  case CONTENT_VIDEO:
  case CONTENT_DVD:
    backend_open_video(page, url, 0);
    break;

  case CONTENT_IMAGE:
    file_open_image(page, meta);
    meta = NULL;
    break;

  case CONTENT_PLUGIN:
    plugin_open_file(page, url);
    break;

  default:
    nav_open_errorf(page, _("Can't handle content type %d"),
		    md->md_contenttype);
    break;
  }
  prop_destroy(meta);
  metadata_destroy(md);
}