@@ -229,11 +229,32 @@ def _parse_header(self):
229229 spike_channels = np .array (spike_channels , dtype = _spike_channel_dtype )
230230
231231 # deal with nb_segment and t_start/t_stop per segment
232- self ._t_starts = {seg_index : 0.0 for seg_index in range (nb_segment )}
232+
233+ self ._t_starts = {stream_name : {} for stream_name in stream_names }
233234 self ._t_stops = {seg_index : 0.0 for seg_index in range (nb_segment )}
235+ self ._t_since_recording_time = {stream_name : {} for stream_name in stream_names }
236+ self ._session_start_time = {stream_name : {} for stream_name in stream_names }
237+ self ._gate_trigger = {stream_name : {} for stream_name in stream_names }
234238 for seg_index in range (nb_segment ):
235239 for stream_name in stream_names :
236240 info = self .signals_info_dict [seg_index , stream_name ]
241+
242+ frame_start = float (info ["meta" ]["firstSample" ])
243+ sampling_frequency = info ["sampling_rate" ]
244+ t_start = frame_start / sampling_frequency
245+
246+ initial_date_time = info ["meta" ]["fileCreateTime" ]
247+ from datetime import datetime
248+ initial_date_time_parsed = datetime .strptime (initial_date_time , "%Y-%m-%dT%H:%M:%S" )
249+ initial_timestamp = initial_date_time_parsed .timestamp ()
250+ shifted_timestamps = t_start + initial_timestamp
251+
252+ self ._t_starts [stream_name ][seg_index ] = t_start
253+ self ._t_since_recording_time [stream_name ][seg_index ] = (initial_timestamp , shifted_timestamps )
254+ gate_num = info ["gate_num" ]
255+ trigger_num = info ["trigger_num" ]
256+ self ._gate_trigger [stream_name ][seg_index ] = f"{ gate_num = } , { trigger_num } "
257+ self ._session_start_time [stream_name ][seg_index ] = initial_date_time_parsed
237258 t_stop = info ["sample_length" ] / info ["sampling_rate" ]
238259 self ._t_stops [seg_index ] = max (self ._t_stops [seg_index ], t_stop )
239260
@@ -282,7 +303,8 @@ def _segment_t_stop(self, block_index, seg_index):
282303 return self ._t_stops [seg_index ]
283304
284305 def _get_signal_t_start (self , block_index , seg_index , stream_index ):
285- return 0.0
306+ stream_name = self .header ["signal_streams" ][stream_index ]["name" ]
307+ return self ._t_starts [stream_name ][seg_index ]
286308
287309 def _event_count (self , event_channel_idx , block_index = None , seg_index = None ):
288310 timestamps , _ , _ = self ._get_event_timestamps (block_index , seg_index , event_channel_idx , None , None )
0 commit comments