Beispiel #1
0
class Player(object):
    def __init__(self, opts):
        self.streamHandler = StreamHandler(opts)

    def play(self, url, stream):
        self.streamHandler.play(url, stream)

    def playing(self):
        return self.streamHandler.playing()

    def close(self):
        self.streamHandler.close()
Beispiel #2
0
class Player(object):
    def __init__(self, opts):
        self.streamHandler = StreamHandler(opts)

    def play(self, url, stream):
        self.streamHandler.play(url, stream)

    def playing(self):
        return self.streamHandler.playing();

    def close(self):
        self.streamHandler.close()
Beispiel #3
0
class Player(object):
    def __init__(self, opts):
        self.streamHandler = StreamHandler(opts)

    def play(self, url, stream):
        try:
            self.close()
        except:
            pass
        self.streamHandler.play(url, stream)

    def close(self):
        self.streamHandler.close()
Beispiel #4
0
 def launchStreamWindow(self):
     dlg = StreamPickDialog()
     if dlg.exec_():
         streamChoice = dlg.getChoice()
         if streamChoice == 'default':
             self.streamWindow = StreamWindow()
             self.streamWindow.msgPosted.connect(self.postStatus)
             self.streamWindow.show()
         else:
             self.msgLog.post(str("the following streaming script chosen:" +
                                  "\n" + str(streamChoice)),
                              log=self.msgLog.actionLog)
             self.streamHandler = StreamHandler(streamChoice)
             self.streamHandler.msgPosted.connect(self.postStatus)
             self.streamHandler.run()
def main():
	"""
	Main module of the TweetExtractor process.
	Take the first argument (which is the path to the configuration file),
	load the configuration information stored on it and connect to Twitter.
	Downloads from Twitter all the sample tweets matching with the query.

	"""
	#Only will work if the first argument is specified, in other case will show
	#usage of the process and will finish.
	try:
		file = sys.argv[1]
		confData=configure(file)
		filter=confData["Filter"]

		twitterAuth= createAuth(confData)
		twitterListener=StreamHandler(confData)
		twitterStream=tweepy.Stream(auth=twitterAuth,listener=twitterListener)
		
		#Filtering by filters defined in configuration and language=English
		twitterStream.filter(track=filter, languages=["en"])
	
	except IndexError:
		print "Use of TweetExtractor:"
		print "\t TwwetExtractor.py configurationFile.json"	
	except KeyboardInterrupt:
		exit(0)
Beispiel #6
0
    def run(self):

        sh = StreamHandler()

        while sh.stream.is_active() and settings.is_streaming:
            try:
                sh.updateStream()
            except:
                print("incorrect file")
                sh.stopAll()

        sh.stream.stop_stream()
        sh.stream.close()
        sh.p.terminate()
Beispiel #7
0
 def __init__(self, opts):
     self.streamHandler = StreamHandler(opts)
Beispiel #8
0
class ButtonPanel(QtGui.QWidget):

    logPackageRequested = QtCore.pyqtSignal()

    def __init__(self, msgLog):
        super(ButtonPanel, self).__init__()

        self.msgLog = msgLog
        self.streamWindow = None
        self.settingsWindow = None

        self.streamButton = QtGui.QPushButton()
        self.streamButton.setIcon(QtGui.QIcon('../img/stream.ico'))
        self.streamButton.setIconSize(QtCore.QSize(48, 48))
        self.streamButton.setToolTip('Launch Stream Window')
        self.streamButton.clicked.connect(self.launchStreamWindow)

        self.snapshotButton = QtGui.QPushButton()
        self.snapshotButton.setIcon(QtGui.QIcon('../img/snapshot.ico'))
        self.snapshotButton.setIconSize(QtCore.QSize(48, 48))
        self.snapshotButton.setToolTip('Take a Snapshot')
        self.snapshotButton.clicked.connect(self.takeSnapshot)

        self.startRecordingButton = QtGui.QPushButton()
        self.startRecordingButton.setIcon(
            QtGui.QIcon('../img/startRecording.ico'))
        self.startRecordingButton.setIconSize(QtCore.QSize(48, 48))
        self.startRecordingButton.setToolTip('Start Recording')
        self.startRecordingButton.clicked.connect(self.startRecording)

        self.stopRecordingButton = QtGui.QPushButton()
        self.stopRecordingButton.setIcon(
            QtGui.QIcon('../img/stopRecording.ico'))
        self.stopRecordingButton.setIconSize(QtCore.QSize(48, 48))
        self.stopRecordingButton.setToolTip('Stop Recording')
        self.stopRecordingButton.clicked.connect(self.stopRecording)

        self.transferButton = QtGui.QPushButton()
        self.transferButton.setIcon(QtGui.QIcon('../img/transfer.ico'))
        self.transferButton.setIconSize(QtCore.QSize(48, 48))
        self.transferButton.setToolTip('Transfer Experiment')
        self.transferButton.clicked.connect(self.transferExperiment)

        self.plotButton = QtGui.QPushButton()
        self.plotButton.setIcon(QtGui.QIcon('../img/plot.ico'))
        self.plotButton.setIconSize(QtCore.QSize(48, 48))
        self.plotButton.setToolTip('Launch Plot Window')
        self.plotButton.clicked.connect(self.plotData)

        self.impedanceButton = QtGui.QPushButton()
        self.impedanceButton.setIcon(QtGui.QIcon('../img/impedance.png'))
        self.impedanceButton.setIconSize(QtCore.QSize(48, 48))
        self.impedanceButton.setToolTip('Run Impedance Test')
        self.impedanceButton.clicked.connect(self.handleImpedanceStart)

        self.settingsButton = QtGui.QPushButton()
        self.settingsButton.setIcon(QtGui.QIcon('../img/settings.png'))
        self.settingsButton.setIconSize(QtCore.QSize(48, 48))
        self.settingsButton.setToolTip('Configure Settings')
        self.settingsButton.clicked.connect(self.configureSettings)

        self.logPackageLabel = QtGui.QLabel(
            'Zip error logs (for bug reporting)')
        self.logPackageButton = QtGui.QPushButton('Zip logs')
        self.logPackageButton.pressed.connect(self.logPackageRequested)

        layout = QtGui.QVBoxLayout()
        logPackageLayout = QtGui.QGridLayout()
        logPackageLayout.addWidget(self.logPackageLabel, 0, 0)
        logPackageLayout.addWidget(self.logPackageButton, 0, 1)
        layout.addLayout(logPackageLayout)

        gridLayout = QtGui.QGridLayout()
        gridLayout.addWidget(self.streamButton, 0, 0)
        gridLayout.addWidget(self.snapshotButton, 0, 1)
        gridLayout.addWidget(self.startRecordingButton, 1, 0)
        gridLayout.addWidget(self.stopRecordingButton, 1, 1)
        gridLayout.addWidget(self.transferButton, 2, 0)
        gridLayout.addWidget(self.plotButton, 2, 1)
        gridLayout.addWidget(self.impedanceButton, 3, 0)
        gridLayout.addWidget(self.settingsButton, 3, 1)
        layout.addLayout(gridLayout)

        self.subprocessThreads = []

        self.setLayout(layout)

    def runImpedanceTest(self):
        dlg = ImpedanceDialog()
        if dlg.exec_():
            params = dlg.getParams()
            self.impedanceProgressDialog = QtGui.QProgressDialog(
                'Impedance Testing Progress', 'Cancel', 0, 10)
            self.impedanceProgressDialog.setAutoReset(False)
            self.impedanceProgressDialog.setMinimumDuration(0)
            self.impedanceProgressDialog.setModal(False)
            self.impedanceProgressDialog.setWindowTitle(
                'Impedance Testing Progress')
            self.impedanceProgressDialog.setWindowIcon(
                QtGui.QIcon('../img/round_logo_60x60.png'))
            self.impedanceThread = ImpedanceThread(params)
            self.impedanceThread.progressUpdated.connect(
                self.impedanceProgressDialog.setValue)
            self.impedanceThread.maxChanged.connect(
                self.impedanceProgressDialog.setMaximum)
            self.impedanceThread.textChanged.connect(
                self.impedanceProgressDialog.setLabelText)
            self.impedanceThread.finished.connect(
                self.impedanceProgressDialog.reset)
            self.impedanceThread.msgPosted.connect(self.postStatus)
            self.impedanceThread.dataReady.connect(
                self.launchImpedancePlotWindow)
            self.impedanceProgressDialog.canceled.connect(
                self.impedanceThread.handleCancel)
            self.impedanceProgressDialog.show()
            self.impedanceThread.start()

    def configureSettings(self):
        self.settingsWindow = SettingsWindow()
        self.settingsWindow.show()

    def launchStreamWindow(self):
        dlg = StreamPickDialog()
        if dlg.exec_():
            streamChoice = dlg.getChoice()
            if streamChoice == 'default':
                self.streamWindow = StreamWindow()
                self.streamWindow.msgPosted.connect(self.postStatus)
                self.streamWindow.show()
            else:
                self.msgLog.post(str("the following streaming script chosen:" +
                                     "\n" + str(streamChoice)),
                                 log=self.msgLog.actionLog)
                self.streamHandler = StreamHandler(streamChoice)
                self.streamHandler.msgPosted.connect(self.postStatus)
                self.streamHandler.run()

    def takeSnapshot(self):
        dlg = SnapshotDialog()
        if dlg.exec_():
            params = dlg.getParams()
            self.msgLog.post(str("the following snapshot params requested:" +
                                 "\n" + str(params)),
                             log=self.msgLog.actionLog)
            self.snapshotThread = SnapshotThread(params)
            self.snapshotProgressDialog = QtGui.QProgressDialog(
                'Taking Snapshot..', 'Cancel', 0, 0)
            self.snapshotProgressDialog.setModal(True)
            self.snapshotProgressDialog.setWindowTitle('Snapshot Progress')
            self.snapshotProgressDialog.setWindowIcon(
                QtGui.QIcon('../img/round_logo_60x60.png'))
            self.snapshotProgressDialog.canceled.connect(
                self.snapshotThread.handleCancel)
            self.snapshotThread.msgPosted.connect(
                self.postStatus)  # TODO see others
            self.snapshotThread.finished.connect(
                self.snapshotProgressDialog.reset)  # necessary?
            self.snapshotThread.finished.connect(self.handleSnapshotFinished)
            self.snapshotProgressDialog.show()
            self.snapshotThread.start()

    def handleSnapshotFinished(self, params):
        finalAction = params['whenFinished'][0]
        if finalAction == -3:  # "willowgui data explorer"
            self.launchPlotWindow(params['filename'])
        elif finalAction == -4:  # custom script
            sat = SnapshotAnalysisThread(params)
            sat.msgPosted.connect(self.postStatus)
            self.subprocessThreads.append(
                sat)  # necessary to prevent garbage collection
            sat.start()

    def startRecording(self):
        try:
            hwif.startRecording()
            self.msgLog.post('Started recording.')
        except hwif.AlreadyError:
            self.msgLog.post('Already recording.')
        except hwif.hwifError as e:
            self.msgLog.post(e.message)

    def stopRecording(self):
        try:
            hwif.stopRecording()
            self.msgLog.post('Stopped recording.')
        except hwif.AlreadyError:
            self.msgLog.post('Already not recording.')
        except hwif.hwifError as e:
            self.msgLog.post(e.message)

    def handleImpedanceStart(self):
        try:
            if hwif.isRecording():
                self.msgLog.post(
                    'Cannot check impedance while recording. Please complete recording and try again.'
                )
                return
            elif hwif.isStreaming():
                self.msgLog.post(
                    'Halting current data stream to perform impedance test.')
                self.streamWindow.stopStreaming()
                self.runImpedanceTest()
            else:
                self.runImpedanceTest()
        except hwif.hwifError as e:
            self.msgLog.post(e.message)

    def handleDiskFillup(self):
        try:
            hwif.stopRecording()
            sampleIndex = hwif.getSataBSI()
            self.msgLog.post(
                'Disk fillup detected! Recording stopped at sample index %d' %
                sampleIndex)
        except hwif.AlreadyError:
            self.msgLog.post('Already not recording.')
        except hwif.hwifError as e:
            self.msgLog.post(e.message)

    def transferExperiment(self):
        dlg = TransferDialog()
        if dlg.exec_():
            params = dlg.getParams()
            self.msgLog.post(str("the following transfer params requested:" +
                                 "\n" + str(params)),
                             log=self.msgLog.actionLog)
            self.transferThread = TransferThread(params)
            self.transferProgressDialog = QtGui.QProgressDialog(
                'Transferring Experiment..', 'Cancel', 0, 0)
            self.transferProgressDialog.setWindowTitle('Transfer Progress')
            self.transferProgressDialog.setWindowIcon(
                QtGui.QIcon('../img/round_logo_60x60.png'))
            self.transferProgressDialog.canceled.connect(
                self.transferThread.handleCancel)
            self.transferThread.statusUpdated.connect(self.postStatus)
            self.transferThread.finished.connect(
                self.transferProgressDialog.reset)
            self.transferProgressDialog.show()
            self.transferThread.start()

    def postStatus(self, msg):
        self.msgLog.post(msg)

    def plotData(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Import Data File',
                                                     config.dataDir)
        if filename:
            filename = str(filename)
            self.msgLog.post(str("imported:" + "\n" + filename),
                             log=self.msgLog.actionLog)
            if isCalibrationFile(filename):
                self.msgLog.post("(calibration file)",
                                 log=self.msgLog.actionLog)
                self.launchImpedancePlotWindow(filename)
            elif isSnapshotFile(filename):
                self.msgLog.post("(snapshot file)", log=self.msgLog.actionLog)
                dlg = SnapshotImportDialog()
                if dlg.exec_():
                    params = dlg.getParams()
                    if params['customScript']:
                        # TODO make this consistent with the original SAI routines
                        params['filename'] = filename
                        params['whenFinished'] = (-4, params['customScript'])
                        sat = SnapshotAnalysisThread(params)
                        sat.msgPosted.connect(self.postStatus)
                        self.subprocessThreads.append(
                            sat)  # necessary to prevent garbage collection
                        sat.start()
                    else:
                        self.launchPlotWindow(filename)
            else:
                self.msgLog.post("(experiment file)",
                                 log=self.msgLog.actionLog)
                self.launchPlotWindow(filename)

    def launchPlotWindow(self, filename):
        self.plotWindow = DataExplorerWindow(filename)
        self.plotWindow.show()

    def launchImpedancePlotWindow(self, filename):
        self.impedancePlotWindow = ImpedancePlotWindow(str(filename))
        self.impedancePlotWindow.show()
Beispiel #9
0
# MIDI files copyright holder
# Name: Bernd Krueger Source: http://www.piano-midi.de

# Colin Raffel and Daniel P. W. Ellis.
# Intuitive Analysis, Creation and Manipulation of MIDI Data with pretty_midi.
# In 15th International Conference on Music Information Retrieval Late Breaking and Demo Papers, 2014.

from MidiHandler import MidiHandler
from StreamHandler import StreamHandler

if __name__ == "__main__":
    handler = MidiHandler()
    handler.clear_data()
    handler.toggle_uniform_tempo()
    handler.prepare_data()
    s = handler.get_data()

    handler2 = StreamHandler(s)
    handler2.prepare_data()
    x, y = handler2.get_data()

Beispiel #10
0
 def __init__(self, opts):
     self.streamHandler = StreamHandler(opts)