@@ -94,6 +94,51 @@ char const *file_info_string(file_info_t *info)
9494 }
9595}
9696
97+ char const * file_info_to_sigmf_type (file_info_t * info )
98+ {
99+ switch (info -> format ) {
100+ case CU8_IQ : return "cu8" ;
101+ case CS8_IQ : return "ci8" ;
102+ //case CU16_IQ: return "cu16_le";
103+ case CS16_IQ : return "ci16_le" ;
104+ //case CU32_IQ: return "cu32_le";
105+ //case CS32_IQ: return "ci32_le";
106+ case CF32_IQ : return "cf32_le" ;
107+ //case CF64_IQ: return "cf64_le";
108+ //case U8_IQ: return "ru8";
109+ //case S8_IQ: return "ri8";
110+ //case U16_IQ: return "ru16_le";
111+ //case S16_IQ: return "ri16_le";
112+ //case U32_IQ: return "ru32_le";
113+ //case S32_IQ: return "ri32_le";
114+ //case F32_IQ: return "rf32_le";
115+ //case F64_IQ: return "rf64_le";
116+ default : return "Unknown" ;
117+ }
118+ }
119+
120+ uint32_t file_info_from_sigmf_type (char const * sigmf_datatype )
121+ {
122+ if (!sigmf_datatype ) return 0 ;
123+ else if (!strcmp ("cu8" , sigmf_datatype )) return F_CU8 ;
124+ else if (!strcmp ("ci8" , sigmf_datatype )) return F_CS8 ;
125+ else if (!strcmp ("cu16_le" , sigmf_datatype )) return F_CU16 ;
126+ else if (!strcmp ("ci16_le" , sigmf_datatype )) return F_CS16 ;
127+ else if (!strcmp ("cu32_le" , sigmf_datatype )) return F_CU32 ;
128+ else if (!strcmp ("ci32_le" , sigmf_datatype )) return F_CS32 ;
129+ else if (!strcmp ("cf32_le" , sigmf_datatype )) return F_CF32 ;
130+ else if (!strcmp ("cf64_le" , sigmf_datatype )) return F_CF64 ;
131+ else if (!strcmp ("ru8" , sigmf_datatype )) return F_U8 ;
132+ else if (!strcmp ("ri8" , sigmf_datatype )) return F_S8 ;
133+ else if (!strcmp ("ru16_le" , sigmf_datatype )) return F_U16 ;
134+ else if (!strcmp ("ri16_le" , sigmf_datatype )) return F_S16 ;
135+ else if (!strcmp ("ru32_le" , sigmf_datatype )) return F_U32 ;
136+ else if (!strcmp ("ri32_le" , sigmf_datatype )) return F_S32 ;
137+ else if (!strcmp ("rf32_le" , sigmf_datatype )) return F_F32 ;
138+ else if (!strcmp ("rf64_le" , sigmf_datatype )) return F_F64 ;
139+ else return 0 ;
140+ }
141+
97142static void file_type_set_format (uint32_t * type , uint32_t val )
98143{
99144 * type = (* type & 0xffff0000 ) | val ;
@@ -203,9 +248,10 @@ static void file_type(char const *filename, file_info_t *info)
203248 else if (len == 4 && !strncasecmp ("cf32" , t , 4 )) file_type_set_format (& info -> format , F_CF32 );
204249 else if (len == 5 && !strncasecmp ("cfile" , t , 5 )) file_type_set_format (& info -> format , F_CF32 ); // compat
205250 else if (len == 5 && !strncasecmp ("logic" , t , 5 )) file_type_set_content (& info -> format , F_LOGIC );
206- else if (len == 3 && !strncasecmp ("complex16u" , t , 10 )) file_type_set_format (& info -> format , F_CU8 ); // compat
207- else if (len == 3 && !strncasecmp ("complex16s" , t , 10 )) file_type_set_format (& info -> format , F_CS8 ); // compat
208- else if (len == 4 && !strncasecmp ("complex" , t , 7 )) file_type_set_format (& info -> format , F_CF32 ); // compat
251+ else if (len == 10 && !strncasecmp ("complex16u" , t , 10 )) file_type_set_format (& info -> format , F_CU8 ); // compat
252+ else if (len == 10 && !strncasecmp ("complex16s" , t , 10 )) file_type_set_format (& info -> format , F_CS8 ); // compat
253+ else if (len == 7 && !strncasecmp ("complex" , t , 7 )) file_type_set_format (& info -> format , F_CF32 ); // compat
254+ else if (len == 5 && !strncasecmp ("sigmf" , t , 5 )) info -> container = FILEFMT_SIGMF ;
209255 //else fprintf(stderr, "Skipping type (len %ld) %s\n", len, t);
210256 } else {
211257 p ++ ; // skip non-alphanum char otherwise
@@ -255,6 +301,11 @@ int file_info_parse_filename(file_info_t *info, char const *filename)
255301 return 0 ;
256302 }
257303
304+ //if (sigmf_valid_filename(filename)) {
305+ // // just set the container type
306+ // // other info needs to be read later
307+ //}
308+
258309 info -> spec = filename ;
259310
260311 char const * p = last_plain_colon (filename );
0 commit comments