1 #include <stdlib.h>
2 #include <stdint.h>
3 #include <stdio.h>
4 #include <unistd.h>
5 #include <stdbool.h>
6
7 #include <arcan_shmif.h>
8
9 #ifdef ENABLE_FSRV_AVFEED
arcan_frameserver_avfeed_run(const char * resource,const char * keyfile)10 void arcan_frameserver_avfeed_run(const char* resource, const char* keyfile)
11 #else
12 int main(int argc, char** argv)
13 #endif
14 {
15 struct arg_arr* aarr;
16 struct arcan_shmif_cont cont = arcan_shmif_open(
17 SEGID_APPLICATION, SHMIF_ACQUIRE_FATALFAIL, &aarr);
18
19 struct arcan_shmif_initial* init;
20 if (sizeof(struct arcan_shmif_initial)
21 != arcan_shmif_initial(&cont, &init)){
22 printf("couldn't query initial primary segment properties\n");
23 #ifndef ENABLE_FSRV_AVFEED
24 return EXIT_FAILURE;
25 #endif
26 }
27
28 printf("initial properties:\n\
29 \twidth * height: %zu * %zu stride: %zu pitch: %zu\n\
30 \taudio buffers: %d, audio buffer size: %d\n\
31 \tdensity: %f\n\
32 \tlang: %s, text_lang: %s, country: %s, UTF+%d\n\
33 \tlat: %f, long: %f, elev: %f\n\
34 disp_px_w: %zu, disp_px_h: %zu, disp_rgb: %d, disp_refresh: %d\n\
35 render_node: %d\n",
36 cont.w, cont.h, cont.stride, cont.pitch,
37 (int) cont.abuf_cnt, (int) cont.abufsize,
38 init->density,
39 init->lang, init->text_lang, init->country, init->timezone,
40 init->latitude, init->longitude, init->elevation,
41 init->display_width_px, init->display_height_px, init->rgb_layout, (int)init->rate,
42 init->render_node);
43
44 for (size_t i = 0; i < 4; i++){
45 printf("font[%zu] = .fd = %d, .hint = %d, "
46 ".size_mm = %f, .size_pt = %zu\n", i, init->fonts[i].fd,
47 init->fonts[i].hinting, init->fonts[i].size_mm,
48 SHMIF_PT_SIZE(init->density, init->fonts[i].size_mm));
49 }
50
51 #ifndef ENABLE_FSRV_AVFEED
52 return EXIT_SUCCESS;
53 #endif
54 }
55