Skip to content

Commit d0b04d9

Browse files
committed
Added LSL marker support.
1 parent eb5cc57 commit d0b04d9

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

src/FeedbackBase/Feedback.py

+34
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,24 @@ def __init__(self, port_num=None):
115115
#self.tcp_markers_host = '127.0.0.1'
116116
#self.tcp_markers_port = 12344
117117

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+
118136

119137
#
120138
# Internal routines not inteded for overwriting
@@ -340,6 +358,22 @@ def send_udp(self, data):
340358
self._udp_markers_socket.sendto(data + '\n',
341359
(self.udp_markers_host, self.udp_markers_port))
342360

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+
343377
#def send_tcp(self, data):
344378
# """Sends marker via TCP/IP.
345379
#

0 commit comments

Comments
 (0)