Пример #1
0
static void *status_thread(void *arg)
{
    Capture *p = ((thread_arg_t*)arg)->obj;

    GeneralStats gen;
    RecordStats rec;

    while (1) {
        p->get_general_stats(&gen);
        if (term) {
            MT_mvprintw(4,0,"INPUT: video %s audio %s", gen.video_ok ? "OK " : "BAD", gen.audio_ok ? "OK " : "BAD");
        }
        else {
            printf("INPUT: video %s audio %s\n", gen.video_ok ? "OK " : "BAD", gen.audio_ok ? "OK " : "BAD");
        }

        if (gen.recording) {
            p->get_record_stats(&rec);
            if (term) {
                MT_mvprintw(5,0,"     : recording: state=%d  framecount=%d  filesize=%llu\n", rec.record_state, rec.current_framecount, rec.file_size);
            }
            else {
                printf("  recording: state=%d framecount=%d filesize=%llu\n", rec.record_state, rec.current_framecount, rec.file_size);
            }
        }
        else {
            if (term)
                MT_mvprintw(5,0,"     : not recording                        ");
        }
        if (term)
            usleep(100 * 1000);     // every 100 ms
        else
            usleep(1000 * 1000);        // every second
    }
}