summaryrefslogtreecommitdiff
path: root/src/YalpClients/EflClient/playlist.py
blob: 16934c19a607522de3d587d781f0673859aaf7f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/usr/bin/env python

import edje
import ecore.evas
import sys
import os
import ecore
import emotion
import evas
import elementary
import YalpInterfaces, CosNaming, YalpInterfaces__POA
import evas.c_evas

import media

class Selection(object):
	def __init__(self, win, c):
		self.win = win
		self.c = c
		self.add_button()
		self.c.signal_callback_add("mouse,clicked,1", "medialist_buttonframe",
		self.play_video)
		self.vid = emotion.Emotion(self.win.canvas, module_filename="gstreamer")

		self.is_playing = False

	def add_button(self):
		self.addbutton = elementary.Button(self.win)
		self.addbutton.label_set("Play")
		self.c.part_swallow("medialist_buttonframe", self.addbutton)
		self.addbutton.show()

		self.pausebutton = elementary.Button(self.win)
		self.pausebutton.label_set("Pause")
		self.c.part_swallow("pause_buttonframe", self.pausebutton)
		self.pausebutton.show()

		self.hidebutton = elementary.Button(self.win)
		self.hidebutton.label_set("Hide")
		self.c.part_swallow("hide_buttonframe", self.hidebutton)
		self.hidebutton.show()
		
		self.stopbutton = elementary.Button(self.win)
		self.stopbutton.label_set("Stop")
		self.c.part_swallow("stop_buttonframe", self.stopbutton)
		self.stopbutton.show()
	
	def set_stream(self, songs, servercon):
		self.songlist = songs
		self.servercon = servercon
	
	def play_video(self, dummy, dumm, duemmer):
		ip = "10.0.3.180"
		port = 9993
		#self.vid = emotion.Emotion(self.win.canvas, module_filename="xine")
		if self.is_playing == True:
			self.vid = emotion.Emotion(self.win.canvas, module_filename="gstreamer")
			self.stream.outputAction = YalpInterfaces.PLAY
			ret = self.servercon.control(self.stream)
			self.vid.file_set("http://"+ip+":"+str(port))
			self.c.part_swallow("video", self.vid)
			self.vid.show()
			self.vid.play = True


		if self.is_playing == False:
			#self.vid = emotion.Emotion(self.win.canvas, module_filename="xine")
			self.addbutton.visible = False
		
			self.c.signal_callback_add("mouse,clicked,1", "pause_buttonframe", 
			self.pause_video)
			self.c.signal_callback_add("mouse,clicked,1", "stop_buttonframe", 
			self.stop_video)

			self.info = YalpInterfaces.AccessInfo("huhu1", "huhu", "xine", 
				"openmoko",YalpInterfaces.STREAM)
			self.stream = YalpInterfaces.Output(0, self.info, self.songlist,
				YalpInterfaces.CREATE, ip)
			ret = self.servercon.control(self.stream)
			self.stream.outputAction = YalpInterfaces.START
			ret = self.servercon.control(self.stream)
			print "stream.info:", self.stream.info

			print "stream from", ip, port
			self.vid.file_set("http://"+ip+":"+str(port))
			self.c.part_swallow("video", self.vid)

			self.vid.show()
			self.vid.play = True
			self.is_playing = True
	
	def pause_video(self, huhu, haha, hoho):
		self.stream.outputAction = YalpInterfaces.PAUSE
		ret = self.servercon.control(self.stream)
		self.vid.delete()
	def stop_video(self, huhu, haha, hoho):
		self.stream.outputAction = YalpInterfaces.STOP
		ret = self.servercon.control(self.stream)
		self.stream.outputAction = YalpInterfaces.DELETE
		ret = self.servercon.control(self.stream)

		self.vid.play = False
		self.vid.file_set("")
		self.vid.hide()
		self.is_playing = False

	#def continue_video(self, huhu, haha, hoho):
		#self.stream.outputAction = YalpInterfaces.PLAY
		#ret = self.servercon.control(self.stream)