ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | LICENSE

main_generic.c (1487B)


      1 /* See LICENSE for license details. */
      2 #include "beamformer.h"
      3 
      4 #if defined(__unix__)
      5 	#include "os_unix.c"
      6 
      7 	#define OS_DEBUG_LIB_NAME      "./beamformer.so"
      8 	#define OS_DEBUG_LIB_TEMP_NAME "./beamformer_temp.so"
      9 
     10 	#define OS_CUDA_LIB_NAME      "./external/cuda_toolkit.so"
     11 	#define OS_CUDA_LIB_TEMP_NAME "./external/cuda_toolkit_temp.so"
     12 
     13 	#define OS_PIPE_NAME "/tmp/beamformer_data_fifo"
     14 	#define OS_SMEM_NAME "/ogl_beamformer_parameters"
     15 
     16 #elif defined(_WIN32)
     17 	#include "os_win32.c"
     18 
     19 	#define OS_DEBUG_LIB_NAME      "beamformer.dll"
     20 	#define OS_DEBUG_LIB_TEMP_NAME "beamformer_temp.dll"
     21 
     22 	#define OS_CUDA_LIB_NAME      "external\\cuda_toolkit.dll"
     23 	#define OS_CUDA_LIB_TEMP_NAME "external\\cuda_toolkit_temp.dll"
     24 
     25 	#define OS_PIPE_NAME "\\\\.\\pipe\\beamformer_data_fifo"
     26 	#define OS_SMEM_NAME "Local\\ogl_beamformer_parameters"
     27 #else
     28 	#error Unsupported Platform!
     29 #endif
     30 
     31 #include "static.c"
     32 
     33 int
     34 main(void)
     35 {
     36 	BeamformerCtx ctx = {0};
     37 	Arena temp_memory = os_alloc_arena((Arena){0}, 16 * MEGABYTE);
     38 	ctx.error_stream  = stream_alloc(&temp_memory, 1 * MEGABYTE);
     39 
     40 	#define X(name) ctx.platform.name = os_ ## name;
     41 	PLATFORM_FNS
     42 	#undef X
     43 
     44 	setup_beamformer(&ctx, temp_memory);
     45 
     46 	while(!(ctx.flags & SHOULD_EXIT)) {
     47 		do_program_step(&ctx, temp_memory);
     48 	}
     49 
     50 	/* NOTE: make sure this will get cleaned up after external
     51 	 * programs release their references */
     52 	os_remove_shared_memory(OS_SMEM_NAME);
     53 
     54 	/* NOTE: garbage code needed for Linux */
     55 	os_close_named_pipe(ctx.data_pipe);
     56 }