blob: 12e7a21279776c226941c5697b5354f24dcb89cb (
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
|
Klassen
~~~~~~~
Search
^^^^^^
Die Klasse Search implementiert das Suchfeld und den Find-Button. Das Suchfeld
ist ein elementary.Entry der in einen elementary.Frame gelegt wird. Der
Find-Button ist ein elementary.Button.
Wird der Button geklickt, wird die Funktion findbutton_clicked() aufgerufen.
Darin wird die Eingabe im Suchfeld eingelesen und eine Instanz der Klasse
Corba erzeugt. Der Sucheintrag wird an die Suchfunktion der
Klasse Corba uebergeben.
image::img/Classes/Search.png[]
Corba
^^^^^
In der Funktion corba_search() der Klasse Corba wird die Funktion search() des
ServerControlInterface aufgerufen. Diese bekommt den Suchbegriff uebergeben und
eine Liste der gewuenschten Medien (VIDEO und SOUND, im Code festgelegt).
Anschliessend wird jeweils eine Instanz der Klassen Medialist und Selection
erzeugt.
In einer Schleife wird fuer jedes gefundene Medium eine Instanz der Klasse
Media erzeugt und diese ueber den Funktionsaufruf add_media(current) der
Medialiste hinzugefuegt.
image::img/Classes/Corba.png[]
Medialist
^^^^^^^^^
Die Klasse Medialist zeichnet die Medialiste, welche eine elementary.List ist.
Die Funktion add_media(self, media), die in der Klasse Corba aufgerufen wird,
fuegt Eintraege zu der Liste hinzu.
image::img/Classes/Medialist.png[]
<<<
Media
^^^^^
Die Klasse Media implementiert fuer jedes gefundene Medium einen Callback, der
bei Klick auf das Medium die Funktion set_stream der Klasse Selection aufruft.
So wird immer gemerkt, welches Listenelement zuletzt angeklickt wurde.
image::img/Classes/Media.png[]
Selection
^^^^^^^^^
Sobald in der Klasse Corba eine Instanz der Klasse Selection erzeugt wird, wird
der Play-Button gezeichnet und ein Emotion-Element erzeugt, in dem spaeter das
Video dargestellt werden kann.
Die Funktion set_stream() speichert welches Listenelement zuletzt angeklickt
wurde.
Wird der Play-Button angeklickt, wird die Funktion play_video() aufgerufen.
Darin wird der Stream erzeugt, gestartet und in einem Emotion-Frame angezeigt.
image::img/Classes/Selection.png[]
<<<
UML-Diagramme
~~~~~~~~~~~~~
Klassendiagramm
^^^^^^^^^^^^^^^
image::img/classdiagram.png[]
Use-Case-Diagramm
^^^^^^^^^^^^^^^^^
image::img/Use-Case/Mediensuche.png[width=375]
|