Newer
Older
Import / projects / LGN-IP3870 / t / new / slideshow.py
# -*- coding: euc-kr -*-

import config, runtime, utils, os
from roxiadebug import *

		
class SlideShow(object):
	def __init__(self):		
		self.index = 0
		self.ScreenSaver = None
		self.ScreenSaverBg = None
		self.interval = 10000

		self.list = ''
		self.list_n = 0
		self.timer = None

	def Start(self, interval, slideshow_list):
		#print "[yylee debug] slide show start"
		#################################################
		# 향후, Gallery에서 Select한 파일 리스트를 가져오는 함수로 변경해 주어야 함.
		#self.list = utils.get_file_lists(config.ScreenSaverDir)
		self.list = slideshow_list
		#################################################
		self.list_n = len(self.list)
		if self.list_n == 0:
			return
		self.timer = None
		self.interval = interval
		runtime.evas.use_transparency(False)
		self.ShowPaper()

		return True
		
	def show(self):
		#print "[yylee debug] slide show show"
		pass
		
	def destroy(self):
		#print "[yylee debug] slide show destroy"
		pass
		
	def ShowPaper(self):
		import uiconfig
		
		if self.ScreenSaver != None:
			self.ScreenSaver.hide()
			self.ScreenSaver.free()
			self.ScreenSaver = None
		if self.ScreenSaverBg != None:
			self.ScreenSaverBg.hide()
			self.ScreenSaverBg.free()
			self.ScreenSaverBg = None
		if self.index > len(self.list)-1:
			self.index = 0
		image_name = self.list[self.index]
		Paper_name = config.ScreenSaverDir + image_name

		if os.access(Paper_name, os.R_OK):
			self.ScreenSaver = utils.put_image(Paper_name, (0,0))
			utils.image_sized(self.ScreenSaver, (0,0), (480,272))
			runtime.evas.render_now()
			#self.ScreenSaver.show()
		else:
			self.ScreenSaverBg = utils.put_image_sized(uiconfig.depth_bg_image, (0,0), (480,272))
			self.ScreenSaver = utils.put_image_centered(uiconfig.ico_image_error, (480/2,272/2))
			runtime.evas.render_now()

		self.index += 1
		if self.index >= self.list_n:
			self.index = 0
			
		self.timer = utils.Timer(self.interval, self.ShowPaper)
		#self.timer = utils.Timer(config.SlideshowInterval[setting.slideshow_interval], self.ShowPaper)

	def Stop(self):
		#print "[yylee debug] slide show stop"

		self.timer = None
		if self.ScreenSaver != None:
			self.ScreenSaver.hide()
			self.ScreenSaver.free()
			self.ScreenSaver = None
		if self.ScreenSaverBg != None:
			self.ScreenSaverBg.hide()
			self.ScreenSaverBg.free()
			self.ScreenSaverBg = None

slideshow = SlideShow()