@@ -115,6 +115,24 @@ def __init__(self, port_num=None):
115
115
#self.tcp_markers_host = '127.0.0.1'
116
116
#self.tcp_markers_port = 12344
117
117
118
+ self ._has_lsl = False
119
+ try :
120
+ from pylsl import StreamInfo , StreamOutlet
121
+ self ._has_lsl = True
122
+ except :
123
+ self .logger .warning ("Could not import LabStreamingLayer. Ignore, if you don't want to send LSL Markers." )
124
+
125
+ if self ._has_lsl :
126
+ try :
127
+ # name: PyffMarkerStream, content-type: Markers,
128
+ # channels: 1, irregular sampling rate,
129
+ # type: string, id: pyffmarker
130
+ info = StreamInfo ('PyffMarkerStream' , 'Markers' , 1 , 0 , 'string' , 'pyffmarker' )
131
+ self ._lsl_outlet = StreamOutlet (info )
132
+ except :
133
+ self .logger .error ("Unable to Create LSL Marker Outlet, but LSL is installed." )
134
+ self ._has_lsl = False
135
+
118
136
119
137
#
120
138
# Internal routines not inteded for overwriting
@@ -340,6 +358,22 @@ def send_udp(self, data):
340
358
self ._udp_markers_socket .sendto (data + '\n ' ,
341
359
(self .udp_markers_host , self .udp_markers_port ))
342
360
361
+
362
+ def send_lsl (self , data ):
363
+ """Sends Marker via LSL.
364
+
365
+ Parameters
366
+ ----------
367
+ data : str
368
+ the marker
369
+
370
+ """
371
+ if not self ._has_lsl :
372
+ logger .error ("Lab Streaming Layer is not available, no markers have been sent!" )
373
+ return
374
+ self ._lsl_outlet .push_sample ([data ])
375
+
376
+
343
377
#def send_tcp(self, data):
344
378
# """Sends marker via TCP/IP.
345
379
#
0 commit comments