commit 39f50bea89b2bbd023408f7d56d1630714bcf547
parent f8214a066414d837d75c793845c67ef885abe456
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 15 Jun 2022 09:38:38 +0200
Implement sars_get_<bands|nodes>_count and sars_get_band
Diffstat:
| M | src/sars.c | | | 48 | ++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 48 insertions(+), 0 deletions(-)
diff --git a/src/sars.c b/src/sars.c
@@ -321,3 +321,51 @@ sars_load_stream
if(!sars || !stream) return RES_BAD_ARG;
return load_stream(sars, stream, stream_name ? stream_name : "<stream>");
}
+
+size_t
+sars_get_bands_count(const struct sars* sars)
+{
+ ASSERT(sars);
+ return darray_band_size_get(&sars->bands);
+}
+
+size_t
+sars_get_nodes_count(const struct sars* sars)
+{
+ ASSERT(sars);
+ return sars->nnodes;
+}
+
+res_T
+sars_get_band
+ (const struct sars* sars,
+ const size_t iband,
+ struct sars_band* sars_band)
+{
+ const struct band* band = NULL;
+ res_T res = RES_OK;
+
+ if(!sars || !sars_band) {
+ res = RES_BAD_ARG;
+ goto error;
+ }
+
+ if(iband >= sars_get_bands_count(sars)) {
+ log_err(sars, "%s: invalid band index %lu.\n",
+ FUNC_NAME, (unsigned long)iband);
+ res = RES_BAD_ARG;
+ goto error;
+ }
+
+ band = darray_band_cdata_get(&sars->bands) + iband;
+ sars_band->lower = band->low;
+ sars_band->upper = band->upp;
+ sars_band->id = iband;
+ sars_band->ks_list = band->ks_list;
+ sars_band->ka_list = band->ka_list;
+
+exit:
+ return res;
+error:
+ goto exit;
+}