Ejemplo n.º 1
0
def smartpause_track():
	currentTrack = trackThreader.currentTrack()

	if currentTrack == None:
		return send_error(error_codes.NO_TRACK, "No track playing")
	
	if currentTrack.isPaused():
		currentTrack.unpause()
		return send_state_track_message(currentTrack, "Track unpaused")
	else:
		currentTrack.pause()
		return send_state_track_message(currentTrack, "Track paused")
Ejemplo n.º 2
0
def rewind_track():
	currentTrack = trackThreader.currentTrack()
	
	destPos = check_integer(request, params.POSITION)
	unpause = True

	if destPos == None:
		return send_error(error_codes.WRONG_PLAYBACK_POSITION, "Wrong playback position")

	unpause = check_boolean(request, params.UNPAUSE)

	if currentTrack == None:
		return send_error(error_codes.NO_TRACK, "No track playing")
	elif destPos == -1:
		return send_error(error_codes.WRONG_PLAYBACK_POSITION, "No position specified")
	elif destPos < 0 or destPos > round(currentTrack.getLength() / 1000):
		return send_error(error_codes.WRONG_PLAYBACK_POSITION, "Wrong playback position. It should be specified with seconds")
	else:

		oldPos = currentTrack.playbackInfo().get('playback').get('position').get('millis')
		total = currentTrack.playbackInfo().get('playback').get('total').get('millis')
		currentTrack.setPlaybackPosition(destPos)

		if unpause and currentTrack.isPaused():
			currentTrack.unpause()

		return send_state_track_message(currentTrack, "Playback position succesfully changed", {
				'newPosition' : destPos * 1000,
				'oldPosition' : oldPos,
				'total' : total
			})
Ejemplo n.º 3
0
def unpause_track():
	currentTrack = trackThreader.currentTrack()

	if currentTrack == None:
		return send_error(error_codes.NO_TRACK, "No track playing")
	elif not currentTrack.isPaused():
		return send_error(error_codes.TRACK_ALREADY_PLAYING, "Track is already playing")
	else:
		currentTrack.unpause()
		return send_state_track_message(currentTrack, "Track unpaused")
Ejemplo n.º 4
0
def pause_track():
	currentTrack = trackThreader.currentTrack()

	if(currentTrack == None):
		return send_error(error_codes.NO_TRACK, "No track playing")
	elif(currentTrack.isPaused()):
		return send_error(error_codes.TRACK_ALREADY_PAUSED, "Track is already paused")
	else:
		currentTrack.pause()
		return send_state_track_message(currentTrack, "Track paused")
Ejemplo n.º 5
0
def startTrack(trackPath):
	#trackThreader.registerOnEndCustomCallback(track_endevent)

	if(trackPath == "" or trackPath == None):
		return send_error(error_codes.NO_PATH_DEFINED, "No path parameter passed.")

	if not os.path.exists(trackPath) or not check_path(trackPath):
		return send_error(error_codes.WRONG_PATH_SPECIFIED, "File doesn't exsist.")

	if not is_valid_file(trackPath):
		return send_error(error_codes.INVALID_TYPE, "Invalid filetype.")

	flushPlaylist()
	data = trackThreader.getThread(trackPath)
	currentThread = data.get('thread')
	currentTrack = data.get('track')
	currentThread.start()
	return send_state_track_message(currentTrack, "Track started")