Exemplo n.º 1
0
void
QcRoundRobinDatabase::clear()
{
  seek_to(0);
  for (size_t i = 0; i < m_number_of_reserved_slots * m_slot_size; i++)
    m_buffer << static_cast<quint8>(0);
}
static void
slider_cb (GtkRange * range, AppInfo * info)
{
  gdouble val;

  val = gtk_range_get_value (range);
  seek_to (info, val);
}
Exemplo n.º 3
0
void
QcRoundRobinDatabase::read(size_t position, QByteArray & data)
{
  if (static_cast<size_t>(data.size()) == m_slot_size) { // Fixme: use int ?
    seek_to(position);
    m_buffer.readRawData(data.data(), m_slot_size);
    // qInfo() << "QcRoundRobinDatabase::read" << data;
  }
  // else
}
Exemplo n.º 4
0
void
QcRoundRobinDatabase::write(const QByteArray & data)
{
  if (static_cast<size_t>(data.size()) == m_slot_size) { // Fixme: use int ?
    seek_to(m_position);
    qInfo() << "QcRoundRobinDatabase::write @" << m_position; // << data;
     m_buffer.writeRawData(data.data(), m_slot_size);
     if (is_unlimited() || m_number_of_used_slots != m_number_of_reserved_slots)
       m_number_of_used_slots++;
    m_position++;
    if (is_round_robin() && m_position == m_number_of_reserved_slots)
      m_position = 0; // loop
    update_position();
  }
  // else
}
Exemplo n.º 5
0
QcRoundRobinDatabase::QcRoundRobinDatabase(const QString & path)
  : m_file(path),
    m_buffer(),
    m_slot_format(),
    m_created(false),
    m_version(),
    m_position(),
    m_number_of_reserved_slots(),
    m_number_of_used_slots(),
    m_header_size(),
    m_slot_size()
{
  open();
  if (!m_created) {
    read_header();
    seek_to(m_position); // go to next position
  } else {
    // ...
  }
}
Exemplo n.º 6
0
Arquivo: grok.c Projeto: cihypan/biold
char *capture_until(char *str)
{
    char *search,*startPos = currentPos;
    char *cv;
    int i;
    size_t len;
    
    search  = strcasestr(startPos,str);
    if (search == NULL) return NULL;
    
    for(;*startPos == ' ';startPos++);
    len = search - startPos;
        
    cv = calloc(1,len+1);
    strncpy(cv,startPos,len);
    for(;cv[strlen(cv)-1]==' ';) cv[strlen(cv)-1]='\0';
    for(i=0;i != strlen(cv); i++) {
        if (strchr("\t\n\r\b",cv[i])) cv[i]=' ';
    }
    
    set_current_value(cv);
    
    return seek_to(str);
}
static void
bus_message_cb (GstBus * bus, GstMessage * msg, AppInfo * info)
{
  switch (GST_MESSAGE_TYPE (msg)) {
    case GST_MESSAGE_ASYNC_DONE:{
      /* only interested in async-done messages from the top-level pipeline */
      if (msg->src != GST_OBJECT_CAST (info->pipe))
        break;

      if (!info->prerolled) {
        /* make slider visible if it's not visible already */
        gtk_widget_show (info->slider);

        /* initial frame is often black, so seek to beginning plus a bit */
        seek_to (info, 0.001);
        info->prerolled = TRUE;
      }

      /* update position */
      if (!gst_element_query_position (info->pipe, GST_FORMAT_TIME,
              &info->cur_pos))
        info->cur_pos = -1;
      break;
    }
    case GST_MESSAGE_ELEMENT:{
      const GValue *val;
      GdkPixbuf *pixbuf = NULL;
      const GstStructure *structure;

      /* only interested in element messages from our gdkpixbufsink */
      if (msg->src != GST_OBJECT_CAST (info->sink))
        break;

      /* only interested in these two messages */
      if (!gst_message_has_name (msg, "preroll-pixbuf") &&
          !gst_message_has_name (msg, "pixbuf")) {
        break;
      }

      g_print ("pixbuf\n");
      structure = gst_message_get_structure (msg);
      val = gst_structure_get_value (structure, "pixbuf");
      g_return_if_fail (val != NULL);

      pixbuf = GDK_PIXBUF (g_value_dup_object (val));
      gtk_image_set_from_pixbuf (GTK_IMAGE (info->img), pixbuf);
      g_object_unref (pixbuf);
      break;
    }
    case GST_MESSAGE_ERROR:{
      GError *err = NULL;
      gchar *dbg = NULL;

      gst_message_parse_error (msg, &err, &dbg);
      g_error ("Error: %s\n%s\n", err->message, (dbg) ? dbg : "");
      g_error_free (err);
      g_free (dbg);
      break;
    }
    default:
      break;
  }
}