@@ -1370,6 +1370,169 @@ TERN_m12 REC_check_CSti_type_alignment_m12(ui1 *bytes)
13701370}
13711371
13721372
1373+ //*************************************************************************************//
1374+ //***************************** HFOc: CS HFO Detection ****************************//
1375+ //*************************************************************************************//
1376+
1377+ void REC_show_HFOc_type_m12 (RECORD_HEADER_m12 * record_header )
1378+ {
1379+ REC_HFOc_v11_m12 * hfoc_1 ;
1380+ REC_HFOc_v12_m12 * hfoc_2 ;
1381+ REC_HFOc_v13_m12 * hfoc_3 ;
1382+
1383+ #ifdef FN_DEBUG_m12
1384+ G_message_m12 ("%s()\n" , __FUNCTION__ );
1385+ #endif
1386+
1387+ // Versions 1.0-3
1388+ if (record_header -> version_major == 1 && record_header -> version_minor <= 3 ) {
1389+ switch (record_header -> version_minor ) {
1390+ case 0 :
1391+ break ;
1392+ case 1 :
1393+ hfoc_1 = (REC_HFOc_v11_m12 * ) ((ui1 * ) record_header + RECORD_HEADER_BYTES_m12 );
1394+ printf_m12 ("End Time: %ld\n" , hfoc_1 -> end_time );
1395+ printf_m12 ("Start Frequency: %f\n" , hfoc_1 -> start_frequency );
1396+ printf_m12 ("End Frequency: %f\n" , hfoc_1 -> end_frequency );
1397+ break ;
1398+ case 2 :
1399+ hfoc_2 = (REC_HFOc_v12_m12 * ) ((ui1 * ) record_header + RECORD_HEADER_BYTES_m12 );
1400+ printf_m12 ("End Time: %ld\n" , hfoc_2 -> end_time );
1401+ printf_m12 ("Start Frequency: %f\n" , hfoc_2 -> start_frequency );
1402+ printf_m12 ("End Frequency: %f\n" , hfoc_2 -> end_frequency );
1403+ printf_m12 ("Start Times: %ld, %ld, %ld, %ld\n" , hfoc_2 -> start_times [0 ], hfoc_2 -> start_times [1 ], hfoc_2 -> start_times [2 ], hfoc_2 -> start_times [3 ]);
1404+ printf_m12 ("End Times: %ld, %ld, %ld, %ld\n" , hfoc_2 -> end_times [0 ], hfoc_2 -> end_times [1 ], hfoc_2 -> end_times [2 ], hfoc_2 -> end_times [3 ]);
1405+ printf_m12 ("Combinations: %f, %f, %f, %f\n" , hfoc_2 -> combinations [0 ], hfoc_2 -> combinations [1 ], hfoc_2 -> combinations [2 ], hfoc_2 -> combinations [3 ]);
1406+ break ;
1407+ case 3 :
1408+ hfoc_3 = (REC_HFOc_v13_m12 * ) ((ui1 * ) record_header + RECORD_HEADER_BYTES_m12 );
1409+ printf_m12 ("End Time: %ld\n" , hfoc_3 -> end_time );
1410+ printf_m12 ("Start Frequency: %f\n" , hfoc_3 -> start_frequency );
1411+ printf_m12 ("End Frequency: %f\n" , hfoc_3 -> end_frequency );
1412+ printf_m12 ("Start Times: %ld, %ld, %ld, %ld\n" , hfoc_3 -> start_times [0 ], hfoc_3 -> start_times [1 ], hfoc_3 -> start_times [2 ], hfoc_3 -> start_times [3 ]);
1413+ printf_m12 ("End Times: %ld, %ld, %ld, %ld\n" , hfoc_3 -> end_times [0 ], hfoc_3 -> end_times [1 ], hfoc_3 -> end_times [2 ], hfoc_3 -> end_times [3 ]);
1414+ printf_m12 ("Combinations: %f, %f, %f, %f\n" , hfoc_3 -> combinations [0 ], hfoc_3 -> combinations [1 ], hfoc_3 -> combinations [2 ], hfoc_3 -> combinations [3 ]);
1415+ printf_m12 ("Amplitudes: %f, %f, %f, %f\n" , hfoc_3 -> amplitudes [0 ], hfoc_3 -> amplitudes [1 ], hfoc_3 -> amplitudes [2 ], hfoc_3 -> amplitudes [3 ]);
1416+ printf_m12 ("Frequency Dominances: %f, %f, %f, %f\n" , hfoc_3 -> frequency_dominances [0 ], hfoc_3 -> frequency_dominances [1 ], hfoc_3 -> frequency_dominances [2 ], hfoc_3 -> frequency_dominances [3 ]);
1417+ printf_m12 ("Products: %f, %f, %f, %f\n" , hfoc_3 -> products [0 ], hfoc_3 -> products [1 ], hfoc_3 -> products [2 ], hfoc_3 -> products [3 ]);
1418+ printf_m12 ("Cycles: %f, %f, %f, %f\n" , hfoc_3 -> cycles [0 ], hfoc_3 -> cycles [1 ], hfoc_3 -> cycles [2 ], hfoc_3 -> cycles [3 ]);
1419+ break ;
1420+ }
1421+
1422+ }
1423+ // Unrecognized record version
1424+ else {
1425+ G_error_message_m12 ("%s(): Unrecognized HFOc Record version (%hhd.%hhd)\n" , __FUNCTION__ , record_header -> version_major , record_header -> version_minor );
1426+ }
1427+
1428+ return ;
1429+ }
1430+
1431+
1432+ TERN_m12 REC_check_HFOc_type_alignment_m12 (ui1 * bytes )
1433+ {
1434+ TERN_m12 free_flag = FALSE_m12 ;
1435+ ui1 version ;
1436+ REC_HFOc_v11_m12 * hfoc_1 ;
1437+ REC_HFOc_v12_m12 * hfoc_2 ;
1438+ REC_HFOc_v13_m12 * hfoc_3 ;
1439+
1440+ #ifdef FN_DEBUG_m12
1441+ G_message_m12 ("%s()\n" , __FUNCTION__ );
1442+ #endif
1443+
1444+ // check overall size
1445+ if (sizeof (REC_HFOc_v11_m12 ) != REC_HFOc_v11_BYTES_m12 ) {
1446+ version = 1 ;
1447+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1448+ }
1449+ if (sizeof (REC_HFOc_v12_m12 ) != REC_HFOc_v12_BYTES_m12 ) {
1450+ version = 2 ;
1451+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1452+ }
1453+ if (sizeof (REC_HFOc_v13_m12 ) != REC_HFOc_v13_BYTES_m12 ) {
1454+ version = 3 ;
1455+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1456+ }
1457+
1458+ // check fields
1459+ if (bytes == NULL ) {
1460+ bytes = (ui1 * ) malloc (REC_HFOc_v13_BYTES_m12 );
1461+ free_flag = TRUE_m12 ;
1462+ }
1463+
1464+ // version 1.1
1465+ version = 1 ;
1466+ hfoc_1 = (REC_HFOc_v11_m12 * ) bytes ;
1467+ if (& hfoc_1 -> end_time != (si8 * ) (bytes + REC_HFOc_v11_END_TIME_OFFSET_m12 ))
1468+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1469+ if (& hfoc_1 -> start_frequency != (sf4 * ) (bytes + REC_HFOc_v11_START_FREQUENCY_OFFSET_m12 ))
1470+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1471+ if (& hfoc_1 -> end_frequency != (sf4 * ) (bytes + REC_HFOc_v11_END_FREQUENCY_OFFSET_m12 ))
1472+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1473+
1474+ // version 1.2
1475+ version = 2 ;
1476+ hfoc_2 = (REC_HFOc_v12_m12 * ) bytes ;
1477+ if (& hfoc_2 -> end_time != (si8 * ) (bytes + REC_HFOc_v12_END_TIME_OFFSET_m12 ))
1478+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1479+ if (& hfoc_2 -> start_frequency != (sf4 * ) (bytes + REC_HFOc_v12_START_FREQUENCY_OFFSET_m12 ))
1480+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1481+ if (& hfoc_2 -> end_frequency != (sf4 * ) (bytes + REC_HFOc_v12_END_FREQUENCY_OFFSET_m12 ))
1482+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1483+ if (& hfoc_2 -> start_times != (si8 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v12_START_TIMES_OFFSET_m12 ))
1484+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1485+ if (& hfoc_2 -> end_times != (si8 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v12_END_TIMES_OFFSET_m12 ))
1486+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1487+ if (& hfoc_2 -> combinations != (sf4 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v12_COMBINATIONS_OFFSET_m12 ))
1488+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1489+
1490+ // version 1.3
1491+ version = 3 ;
1492+ hfoc_3 = (REC_HFOc_v13_m12 * ) bytes ;
1493+ if (& hfoc_3 -> end_time != (si8 * ) (bytes + REC_HFOc_v13_END_TIME_OFFSET_m12 ))
1494+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1495+ if (& hfoc_3 -> start_frequency != (sf4 * ) (bytes + REC_HFOc_v13_START_FREQUENCY_OFFSET_m12 ))
1496+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1497+ if (& hfoc_3 -> end_frequency != (sf4 * ) (bytes + REC_HFOc_v13_END_FREQUENCY_OFFSET_m12 ))
1498+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1499+ if (& hfoc_3 -> start_times != (si8 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v13_START_TIMES_OFFSET_m12 ))
1500+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1501+ if (& hfoc_3 -> end_times != (si8 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v13_END_TIMES_OFFSET_m12 ))
1502+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1503+ if (& hfoc_3 -> combinations != (sf4 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v13_COMBINATIONS_OFFSET_m12 ))
1504+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1505+ if (& hfoc_3 -> amplitudes != (sf4 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v13_AMPLITUDES_OFFSET_m12 ))
1506+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1507+ if (& hfoc_3 -> frequency_dominances != (sf4 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v13_FREQUENCY_DOMINANCES_OFFSET_m12 ))
1508+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1509+ if (& hfoc_3 -> products != (sf4 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v13_PRODUCTS_OFFSET_m12 ))
1510+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1511+ if (& hfoc_3 -> cycles != (sf4 (* )[REC_HFOc_NUMBER_OF_BANDS_m12 ]) (bytes + REC_HFOc_v13_CYCLES_OFFSET_m12 ))
1512+ goto REC_HFOc_NOT_ALIGNED_m12 ;
1513+
1514+ // aligned
1515+ if (free_flag == TRUE_m12 )
1516+ free ((void * ) bytes );
1517+
1518+ if (globals_m12 -> verbose == TRUE_m12 )
1519+ printf_m12 ("%s(): all REC_HFOc_v1x_m12 structures are aligned\n" , __FUNCTION__ );
1520+
1521+ return (TRUE_m12 );
1522+
1523+ // not aligned
1524+ REC_HFOc_NOT_ALIGNED_m12 :
1525+
1526+ if (free_flag == TRUE_m12 )
1527+ free ((void * ) bytes );
1528+
1529+ G_error_message_m12 ("%s(): REC_HFOc_v1%hhu_m12 structure is NOT aligned\n" , __FUNCTION__ , version );
1530+
1531+ return (FALSE_m12 );
1532+
1533+ }
1534+
1535+
13731536//*************************************************************************************//
13741537//******************************** New Record Type ********************************//
13751538//*************************************************************************************//
0 commit comments