Commit: b6a8bb5e69ce934b58760a68ba3d8704af79f397
Parent: e0401f63b26d25721c16ce9e260214a1f4444798
Author: Randy Palamar
Date:   Wed, 16 Apr 2025 10:54:07 -0600
lib: account for data elements in push api
The intention with push_focal_vectors was that vectors were
2-component and that the count was number of two component
elements (usually N for N transmits).
Diffstat:
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/helpers/ogl_beamformer_lib.c b/helpers/ogl_beamformer_lib.c
@@ -283,20 +283,20 @@ beamformer_upload_buffer(char *shm_name, void *data, u32 size, i32 store_offset,
 }
 
 #define BEAMFORMER_UPLOAD_FNS \
-	X(channel_mapping, i16, CHANNEL_MAPPING) \
-	X(sparse_elements, i16, SPARSE_ELEMENTS) \
-	X(focal_vectors,   f32, FOCAL_VECTORS)
+	X(channel_mapping, i16, 1, CHANNEL_MAPPING) \
+	X(sparse_elements, i16, 1, SPARSE_ELEMENTS) \
+	X(focal_vectors,   f32, 2, FOCAL_VECTORS)
 
-#define X(name, dtype, command) \
+#define X(name, dtype, elements, command) \
 b32 beamformer_push_##name (char *shm_id, dtype *data, u32 count, i32 timeout_ms) { \
-	b32 result = count <= ARRAY_COUNT(g_bp->name);                                           \
-	if (result) {                                                                            \
-		result = beamformer_upload_buffer(shm_id, data, count * sizeof(dtype),           \
-		                                  offsetof(BeamformerSharedMemory, name),        \
-		                                  offsetof(BeamformerSharedMemory, name##_sync), \
-		                                  BU_KIND_##command, timeout_ms);                \
-	}                                                                                        \
-	return result;                                                                           \
+	b32 result = count <= ARRAY_COUNT(g_bp->name);                                            \
+	if (result) {                                                                             \
+		result = beamformer_upload_buffer(shm_id, data, count * elements * sizeof(dtype), \
+		                                  offsetof(BeamformerSharedMemory, name),         \
+		                                  offsetof(BeamformerSharedMemory, name##_sync),  \
+		                                  BU_KIND_##command, timeout_ms);                 \
+	}                                                                                         \
+	return result;                                                                            \
 }
 BEAMFORMER_UPLOAD_FNS
 #undef X