AsciiCam/C/include/thread_sharing.h

24 lines
578 B
C
Raw Permalink Normal View History

2026-05-24 17:13:03 +05:30
#ifndef THREAD_SHARING_H
2026-05-25 13:50:49 +05:30
#define THREAD_SHARING_H
2026-05-24 17:13:03 +05:30
2026-05-25 13:50:49 +05:30
#include "ascii.h"
#include <pthread.h>
#include <stdint.h>
typedef struct {
2026-05-25 13:50:49 +05:30
uint8_t *buf[2]; // Double buffer, one slot per thread
int width, height; // capture dimensions
int ascii_w, ascii_h;
int ready_idx; // which slot has the freshest frame
int has_frame; // non-zero once producer has written once
pthread_mutex_t lock;
2026-05-25 13:50:49 +05:30
pthread_cond_t cond;
volatile int stop;
ascii_opts_t opts;
} shared_frame_t;
2026-05-24 17:13:03 +05:30
void *capture_thread(void *arg);
2026-05-25 13:50:49 +05:30
void *render_thread(void *arg);
2026-05-24 17:13:03 +05:30
#endif