ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
webcam.h
Go to the documentation of this file.
1#pragma once
2
65#include <stdint.h>
66#include "video/image.h"
67
68/* ============================================================================
69 * Device Information
70 * @{
71 */
72
77#define WEBCAM_DEVICE_NAME_MAX 256
78
89typedef struct {
90 unsigned int index;
93
122asciichat_error_t webcam_list_devices(webcam_device_info_t **devices, unsigned int *count);
123
134
137/* ============================================================================
138 * High-Level Webcam Interface
139 * @{
140 */
141
154
174asciichat_error_t webcam_init(unsigned short int webcam_index);
175
193image_t *webcam_read(void);
194
206void webcam_cleanup(void);
207
216void webcam_flush(void);
217
218/* ============================================================================
219 * Error Handling Helpers
220 * @{
221 */
222
237
240/* ============================================================================
241 * Context-Based Webcam Interface
242 * @{
243 */
244
265asciichat_error_t webcam_init_context(webcam_context_t **ctx, unsigned short int device_index);
266
280
290
308
325asciichat_error_t webcam_get_dimensions(webcam_context_t *ctx, int *width, int *height);
326
asciichat_error_t error_code
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
asciichat_error_t webcam_init_context(webcam_context_t **ctx, unsigned short int device_index)
Initialize webcam context for advanced operations.
Definition webcam.c:306
asciichat_error_t webcam_list_devices(webcam_device_info_t **devices, unsigned int *count)
Enumerate available webcam devices.
Definition webcam.c:336
void webcam_free_device_list(webcam_device_info_t *devices)
Free device list returned by webcam_list_devices()
Definition webcam.c:344
asciichat_error_t webcam_init(unsigned short int webcam_index)
Initialize global webcam interface.
Definition webcam.c:18
void webcam_flush_context(webcam_context_t *ctx)
Flush/interrupt pending read operations on webcam context.
Definition webcam.c:318
image_t * webcam_read(void)
Capture a frame from global webcam.
Definition webcam.c:57
void webcam_print_init_error_help(asciichat_error_t error_code)
Print helpful error diagnostics for webcam initialization failures.
Definition webcam.c:229
void webcam_flush(void)
Flush/interrupt any pending webcam read operations.
Definition webcam.c:219
struct webcam_context_t webcam_context_t
Opaque webcam context structure.
Definition webcam.h:153
asciichat_error_t webcam_get_dimensions(webcam_context_t *ctx, int *width, int *height)
Get webcam frame dimensions.
Definition webcam.c:329
void webcam_cleanup(void)
Clean up global webcam interface.
Definition webcam.c:204
#define WEBCAM_DEVICE_NAME_MAX
Maximum length of webcam device name.
Definition webcam.h:77
image_t * webcam_read_context(webcam_context_t *ctx)
Capture a frame from webcam context.
Definition webcam.c:323
void webcam_cleanup_context(webcam_context_t *ctx)
Clean up webcam context and release resources.
Definition webcam.c:313
Image structure.
Webcam device information structure.
Definition webcam.h:89
unsigned int index
Device index (use with webcam_init)
Definition webcam.h:90
Image Data Structures and Operations.