Thank you for your reply,
I rewrote this part of the program like this:
Code:
for(;;)
{
gtk_widget_set_sensitive(data_app->button_play, FALSE);
while(g_main_context_iteration(NULL, FALSE));
status = g_io_channel_read_line(out_ch, &string, &size, NULL, NULL);
GString *temp = g_string_new(string);
if(!(g_strstr_len(temp->str, temp->len, "A-V:")))
{
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(data_app->mplayer_view));
mark = gtk_text_buffer_get_insert(buffer);
gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark);
gtk_text_buffer_insert(buffer, &iter, string, -1);
}
else
{
gtk_text_buffer_get_iter_at_line(buffer, &start, 25);
gtk_text_buffer_get_end_iter(buffer, &end);
gtk_text_buffer_delete(buffer, &start, &end);
gtk_text_buffer_insert(buffer, &start, string, -1);
}
g_free(string);
g_string_free(temp, TRUE);
if(status == G_IO_STATUS_EOF)
{
gtk_widget_set_sensitive(data_app->button_play, TRUE);
break;
}
}
it does the trick, but how to automatically get start iter when A-V line occurs? Copy to start the last one iter from
if block
gtk_text_iter_copy()?