~glitter-team/glitter/trunk

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
# !/usr/bin/python
# -*- coding: utf-8 -*-

# Glitter Toolkit

__authors__ = ["Jan Jokela <janjokela@gmail.com>"]
__licenses__ = ["LICENSE.LGPL"]
__description__ = "Tests for the video widget"

import os
import sys

# Change sys path to glitter path
glitter_path = os.path.split(sys.path[0])[0]
sys.path[0] = glitter_path

from window import Window

import gtk
import clutter

from window import Window
from video import Video

# Importing glitter.video messes up sys.path because in its turn, it import gst
# which messes up sys.path
glitter_path = os.path.split(sys.path[0])[0]
sys.path[0] = glitter_path

class TestVideo(object):
    """ Tests for the video widget """
    
    def __init__(self, video_uri, aspect_ratio):
    
        self.video_uri = video_uri
        self.aspect_ratio = aspect_ratio
        
        self.window = Window("Glitter tests")
        self.window.connect("destroy", self.destroy)

        self.stage = self.window.get_stage()
        self.stage.connect('notify::width', self.do_resize)
        self.stage.connect('notify::height', self.do_resize)
        
        self.video = Video(video_uri, aspect_ratio)
        self.stage.add(self.video)
        self.video._update_layout()
        self.video.play()
        
        self.window.show_all()
        gtk.main()
        
    def destroy(self, widget, data=None):
        gtk.main_quit()

    def do_resize(self, stage, event):
        self.video._update_layout()
        
if __name__ == '__main__':
    if len(sys.argv) != 3:
        print "Missing arguments, correct usage is: "
        print "python video.py video_file_uri [ex: glitter.mov] " + \
              "mode [native, widescreen, tv, smart]"
        sys.exit(1)
    else:
        TestVideo(sys.argv[1], sys.argv[2])