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
|
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.
.Klasse Search
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.
.Klasse Corba
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.
.Klasse Medialist
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.
.Klasse Media
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.
.Klasse Selection
image::img/Classes/Selection.png[]
<<<
UML-Diagramme
~~~~~~~~~~~~~
Klassendiagramm
^^^^^^^^^^^^^^^
image::img/classdiagram.png[]
<<<
Use-Case-Diagramme
^^^^^^^^^^^^^^^^^^
Der detaillierte Ablauf einer Mediensuche mit Abspielen eines ausgewählten
Mediums ist in folgendem Diagramm dargestellt:
image:img/Use-Case/Mediensuche.png[width=380]
<<<
Nachfolgendes Diagramm zeigt wie der Benutzer ein Medium auswählt und abspielt:
.Mediensuche mit Abspielen
image::img/Use_Case_Mediensuche_klein/Mediensuche_short.png[width=350]
<<<
Wie der Benutzer einen Stream unterbrechen und Fortsetzen kann ist im nächsten
Use-Case-Diagramm dargestellt:
.Stream pausieren und fortsetzen
image::img/Use_Case_Pause/Media_Pause.png[width=350]
|