~glitter-team/glitter/trunk

« back to all changes in this revision

Viewing changes to glitter/tests/video_player.py

  • Committer: Jan Jokela
  • Date: 2008-12-10 22:18:59 UTC
  • Revision ID: janjokela@gmail.com-20081210221859-zxr2ut255a7xu15x
Hi, Glitter here

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# !/usr/bin/python
 
2
# -*- coding: utf-8 -*-
 
3
 
 
4
# Glitter Toolkit
 
5
 
 
6
__authors__ = ["Jan Jokela <janjokela@gmail.com>"]
 
7
__licenses__ = ["LICENSE.LGPL"]
 
8
__description__ = "Tests for the video widget"
 
9
 
 
10
import os
 
11
import sys
 
12
 
 
13
import pygtk
 
14
pygtk.require('2.0')
 
15
import gtk
 
16
 
 
17
import clutter
 
18
 
 
19
# Change sys path to glitter path
 
20
glitter_path = os.path.split(sys.path[0])[0]
 
21
sys.path[0] = glitter_path
 
22
 
 
23
from window import Window
 
24
from box import HBox
 
25
from image import Image
 
26
from toolbar import Toolbar
 
27
from button import Button
 
28
from slider import Slider
 
29
from video import Video
 
30
 
 
31
# Importing glitter.video messes up sys.path because in its turn, it import gst
 
32
# which messes up sys.path
 
33
glitter_path = os.path.split(sys.path[0])[0]
 
34
sys.path[0] = glitter_path
 
35
 
 
36
class VideoPlayer(object):
 
37
    """ Tests for the video widget """
 
38
    
 
39
    def __init__(self, video_uri, aspect_ratio):
 
40
    
 
41
        self.video_uri = video_uri
 
42
        self.aspect_ratio = aspect_ratio
 
43
        
 
44
        self.window = Window("Glitter Video Player")
 
45
        self.window.connect("destroy", self.destroy)
 
46
 
 
47
        self.stage = self.window.get_stage()
 
48
        self.stage.connect('notify::width', self.do_resize)
 
49
        self.stage.connect('notify::height', self.do_resize)
 
50
        
 
51
        self.video = Video(video_uri, aspect_ratio)
 
52
        self.stage.add(self.video)
 
53
        self.video._update_layout()
 
54
        self.video.play()
 
55
        
 
56
        self.toolbar = Toolbar()
 
57
        self.stage.add(self.toolbar)
 
58
        self.toolbar.natural_width = 0.8
 
59
        self.toolbar.natural_height = 0.05
 
60
        self.toolbar.natural_x = 0.1
 
61
        self.toolbar.natural_y = 0.8
 
62
        self.toolbar._update_layout()
 
63
        
 
64
        self.hbox = HBox()
 
65
        self.toolbar.add(self.hbox)
 
66
        self.hbox._update_layout()
 
67
               
 
68
        """self.button = Button("test.svg")
 
69
        self.hbox.pack(self.button)"""
 
70
        
 
71
        self.slider = Slider()
 
72
        self.hbox.pack(self.slider)
 
73
        
 
74
        self.window.show_all()
 
75
        gtk.main()
 
76
        
 
77
    def destroy(self, widget, data=None):
 
78
        gtk.main_quit()
 
79
 
 
80
    def do_resize(self, stage, event):
 
81
        self.video._update_layout()
 
82
        self.toolbar._update_layout()
 
83
        
 
84
if __name__ == '__main__':
 
85
    if len(sys.argv) != 3:
 
86
        print "Missing arguments, correct usage is: "
 
87
        print "python video.py video_file_uri [ex: glitter.mov] " + \
 
88
              "mode [native, widescreen, tv, smart]"
 
89
        sys.exit(1)
 
90
    else:
 
91
        VideoPlayer(sys.argv[1], sys.argv[2])