Mediaserver now based on X/GTK window.

This commit is contained in:
P.M. Kuipers 2021-04-26 15:07:02 +02:00
parent 7a839a71a6
commit fb884fc3e9
12 changed files with 851 additions and 147 deletions

View File

@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/python3
import mediaserver.mediaserver
mediaserver.mediaserver.Run()

View File

@ -1,51 +0,0 @@
# shared package configuration settings for applications in KHMedia
##### Common #####
# folder to store user specific configuration
user_cfg_folder = "~/.khmedia"
# khmedia config file
config_file = "khmedia_config.xml"
# khmedia example config resource
example_config_resource = "khmedia_config.example.xml"
# location of the khsystem_need_config file
khsystem_need_config = "~/.khsystem_config_needed"
##### Player #####
#default folders to look for song files (last in line is the fallback folder that will be created if none are existing)
default_song_folders = ["/usr/share/khmedia/songs","/usr/local/share/khmedia/songs","~/Songs"]
#default folders to look for background music files (last in line is the fallback folder that will be created if none are existing)
default_music_folders = ["/usr/share/khmedia/music","/usr/local/share/khmedia/music","~/Music"]
# files that are considered playable music files
music_extensions = [".mp3",".wav",".ogg",".m4b",".m4a"]
# default volume for song playback (Linear 0.0 <= value <= 1.0 )
default_song_volume = 0.5
# default volume for music playback (Linear 0.0 <= value <= 1.0 )
default_music_volume = 0.12
##### Recorder #####
#default folder to store recordings
# You can use the following replacements
# {XDG_DESKTOP_DIR}
# {XDG_DOWNLOAD_DIR}
# {XDG_TEMPLATES_DIR}
# {XDG_PUBLICSHARE_DIR}
# {XDG_DOCUMENTS_DIR}
# {XDG_MUSIC_DIR}
# {XDG_PICTURES_DIR}
# {XDG_VIDEOS_DIR}
# lowercase text between brackets is replaced by the corresponding text in the
# currently loaded translation table
# e.g. {something} can be replaced by "Something" or "Iets" if that is defined in the
# translation tabled
default_recordings_folder = "{XDG_DESKTOP_DIR}/{dir_recordings}"

View File

@ -9,7 +9,7 @@ from gi.repository import Gst
GObject.threads_init()
Gst.init(None)
"""
from mediaserver.basicplayer import BasicPlayer
player = BasicPlayer()
"""
from . resources import Resources
# set Resources to use resources from this package
Resources.SetPackage(__name__)

View File

@ -7,9 +7,11 @@ import sys, os
# perform gstreamer imports (python3 style)
import gi
gi.require_version('Gst','1.0')
gi.require_version('GstGL', '1.0')
gi.require_version('GstVideo', '1.0')
from gi.repository import GObject
from gi.repository import Gst
from gi.repository import Gst, GstGL, GstVideo
class BasicPlayer(GObject.GObject):
@ -51,9 +53,9 @@ class BasicPlayer(GObject.GObject):
def __init__(self):
GObject.GObject.__init__(self)
# setup gstreamer
self.pipeline_state = Gst.State.NULL;
self.pipeline_state = Gst.State.NULL
self.window_handle = 0
self.prepare_gstreamer()
self.buffering = False
def __del__(self):
@ -63,17 +65,16 @@ class BasicPlayer(GObject.GObject):
if property.name == 'volume':
return self.pipeline.get_property('volume')
else:
raise AttributeError, 'unknown property %s' % property.name
raise AttributeError("unknown property '{0}'".format(property.name_))
def do_set_property(self, property, value):
if property.name == 'volume':
volume = clamp(value,0.0,1.0)
self.pipeline.set_property('volume', volume)
#print "Set volume to {0}, got {1}".format(volume,self.pipeline.get_property('volume'))
#print("Set volume to {0}, got {1}".format(volume,self.pipeline.get_property('volume')))
self.emit('volume-changed',volume)
else:
raise AttributeError, 'unknown property %s' % property.name
raise AttributeError("unknown property '{0}'".format(property.name_))
def play(self):
# start playback ;)
if self.player_state in ["READY","PAUSED",]:
@ -83,20 +84,20 @@ class BasicPlayer(GObject.GObject):
def load(self,file):
self.source = "file://" + file
#print "Attempting to load: '{0}'".format(file)
self.pipeline.set_state(Gst.State.NULL);
#print( "Attempting to load: '{0}'".format(file))
self.pipeline.set_state(Gst.State.NULL)
self.pipeline.set_property("uri", self.source)
self.pipeline.set_state(Gst.State.PAUSED);
self.pipeline.set_state(Gst.State.PAUSED)
self.player_state = "LOADING"
self.tags.clear()
def load_uri(self,uri):
self.source = uri
#print "Attempting to load: '{0}'".format(file)
self.pipeline.set_state(Gst.State.NULL);
#print("Attempting to load: '{0}'".format(file))
self.pipeline.set_state(Gst.State.NULL)
self.pipeline.set_property("uri", self.source)
self.pipeline.set_state(Gst.State.PAUSED);
self.pipeline.set_state(Gst.State.PAUSED)
self.player_state = "LOADING"
self.tags.clear()
@ -104,8 +105,7 @@ class BasicPlayer(GObject.GObject):
def stop(self):
if self.player_state in ["PLAYING","PAUSED",]:
self._running = False
self.pipeline.set_state(Gst.State.READY)
self.player_state = "READY"
self.unload()
self.emit('playback-stopped')
def pause(self,notify=True):
@ -116,42 +116,49 @@ class BasicPlayer(GObject.GObject):
if notify:
self.emit('playback-paused')
def _finished(self):
def finished(self):
self._running = False
self.pipeline.set_state(Gst.State.READY)
self.seek(0)
self.player_state = "PAUSED"
self.unload()
self.emit('playback-finished')
def unload(self):
self.stop_gstreamer()
self.prepare_gstreamer()
def prepare_gstreamer(self):
# bin containing the recorder stuff
self.pipeline = Gst.ElementFactory.make("playbin", None)
videosink = Gst.ElementFactory.make("glimagesink", None)
alsasink = Gst.ElementFactory.make("alsasink", None)
self.videosink = Gst.ElementFactory.make("glimagesink", None)
self.videosink.set_window_handle(self.window_handle)
self.alsasink = Gst.ElementFactory.make("alsasink", None)
# set output device
#devicename = self.config["Devices.Output"].getStr('name')
#if common.check_alsadev(devicename):
# alsasink.set_property('device', devicename)
self.pipeline.set_property("video-sink", videosink)
self.pipeline.set_property("audio-sink", alsasink)
self.pipeline.set_property("video-sink", self.videosink)
self.pipeline.set_property("audio-sink", self.alsasink)
# connect the bus listener to the message function
self.bus = self.pipeline.get_bus()
self.bus.add_signal_watch()
self.bus.connect("message", self.on_message)
self.busconnection = self.bus.connect("message", self.on_message)
self.player_state = "NONE"
self.player_state = "NULL"
def link_to_window(self,window_handle):
self.window_handle = window_handle
self.videosink.set_window_handle(window_handle)
def stop_gstreamer(self):
try:
self.pipeline.get_bus().disconnect(self.busconnection)
self.pipeline.get_bus().remove_signal_watch()
self.pipeline.set_state(Gst.State.NULL)
except GObject.GError, e:
except GObject.GError as e:
self.set_sensitive(True)
def seek(self,seconds):
@ -162,21 +169,21 @@ class BasicPlayer(GObject.GObject):
if result is not None and result[0]:
return float(result[1]) / Gst.SECOND
else:
return -1;
return -1
def position(self):
result = self.pipeline.query_position(Gst.Format.TIME)
if result is not None and result[0]:
return float(result[1]) / Gst.SECOND
else:
return -1;
return -1
def on_message(self, bus, message):
t = message.type
# detect end of stream, and
if t == Gst.MessageType.EOS:
self._finished()
self.finished()
elif t == Gst.MessageType.ERROR:
self.pipeline.set_state(Gst.State.NULL)
err, debug = message.parse_error()
@ -185,23 +192,23 @@ class BasicPlayer(GObject.GObject):
self._running = False
self.emit('playback-finished')
self.emit('playback-error', self.player_state, err, debug)
self.player_state = "NONE"
self.player_state = "NULL"
elif t == Gst.MessageType.TAG:
tags = message.parse_tag();
tags = message.parse_tag()
for i in range(0,tags.n_tags()):
key = tags.nth_tag_name(i)
val = tags.get_value_index(key,0)
self.tags[key] = val;
self.tags[key] = val
elif t == Gst.MessageType.ASYNC_DONE:
if message.src == self.pipeline:
pass
elif t == Gst.MessageType.STREAM_STATUS:
(status,owner) = message.parse_stream_status()
# print "Stream status: {0} (by {1})\n".format(status,owner)
# print("Stream status: {0} (by {1})\n".format(status,owner))
pass
elif t == Gst.MessageType.BUFFERING:
pct = message.parse_buffering()
print "Buffering: {0}%".format(pct)
print("Buffering: {0}%".format(pct))
self.emit('playback-buffering',pct)
if pct != 100:
if self.pipeline_state == Gst.State.PLAYING:
@ -212,13 +219,13 @@ class BasicPlayer(GObject.GObject):
self.pipeline.set_state(Gst.State.PLAYING)
self.buffering = False
elif t == Gst.MessageType.DURATION_CHANGED:
# print "Stream duration changed: {0}\n".format(float(self.pipeline.query_duration(Gst.Format.TIME)[1])/Gst.SECOND)
# print("Stream duration changed: {0}\n".format(float(self.pipeline.query_duration(Gst.Format.TIME)[1])/Gst.SECOND))
pass
elif t == Gst.MessageType.STATE_CHANGED:
if message.src == self.pipeline:
(old,new,pending) = message.parse_state_changed()
self.pipeline_state = new
# print "State changed from '{0}' to '{1}' pending '{2}'\n".format(old,new,pending)
# print("State changed from '{0}' to '{1}' pending '{2}'\n".format(old,new,pending))
if old == Gst.State.READY and new == Gst.State.PAUSED and self.player_state == "LOADING":
self.pipeline.set_state(Gst.State.PAUSED)
self.player_state = "READY"

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -0,0 +1,297 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="95.921425"
inkscape:export-xdpi="95.921425"
inkscape:export-filename="background-base.png"
sodipodi:docname="background-base.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
version="1.1"
id="svg2985"
height="1080px"
width="1920px">
<defs
id="defs2987">
<linearGradient
id="linearGradient5275">
<stop
id="stop5277"
offset="0"
style="stop-color:#3891ee;stop-opacity:1;" />
<stop
id="stop5279"
offset="1"
style="stop-color:#aad6f3;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient5263">
<stop
id="stop5265"
offset="0"
style="stop-color:#1e4f71;stop-opacity:1;" />
<stop
id="stop5267"
offset="1"
style="stop-color:#0f243f;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient5253">
<stop
id="stop5255"
offset="0"
style="stop-color:#676767;stop-opacity:1;" />
<stop
style="stop-color:#2c2c2c;stop-opacity:1;"
offset="0.5"
id="stop5261" />
<stop
id="stop5257"
offset="1"
style="stop-color:#292929;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient5245">
<stop
id="stop5247"
offset="0"
style="stop-color:#295a7d;stop-opacity:1;" />
<stop
id="stop5249"
offset="1"
style="stop-color:#0f202d;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3803">
<stop
id="stop3805"
offset="0"
style="stop-color:#295a7d;stop-opacity:1;" />
<stop
id="stop3807"
offset="1"
style="stop-color:#295a7d;stop-opacity:1;" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath11388-1">
<path
inkscape:connector-curvature="0"
d="m 0,1458.48 1420.5,0 0,-1458.42 L 0,0.06 0,1458.48 z"
id="path11390-7" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath11388">
<path
inkscape:connector-curvature="0"
d="m 0,1458.48 1420.5,0 0,-1458.42 L 0,0.06 0,1458.48 z"
id="path11390" />
</clipPath>
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.81911771,-0.68259818,0.85956631,1.0314794,-386.87512,555.07876)"
r="117.19927"
fy="625.16315"
fx="832"
cy="625.16315"
cx="832"
id="radialGradient5251"
xlink:href="#linearGradient5245"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="552"
x2="976"
y1="680"
x1="736"
id="linearGradient5259"
xlink:href="#linearGradient5253"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="472"
x2="1088"
y1="552"
x1="976"
id="linearGradient5269"
xlink:href="#linearGradient5263"
inkscape:collect="always" />
<linearGradient
gradientTransform="translate(47.292177,608)"
gradientUnits="userSpaceOnUse"
y2="296"
x2="1072"
y1="216"
x1="704"
id="linearGradient5281"
xlink:href="#linearGradient5275"
inkscape:collect="always" />
<linearGradient
y2="552"
x2="976"
y1="680"
x1="736"
gradientUnits="userSpaceOnUse"
id="linearGradient5298"
xlink:href="#linearGradient5253"
inkscape:collect="always" />
<radialGradient
r="117.19927"
fy="625.16315"
fx="832"
cy="625.16315"
cx="832"
gradientTransform="matrix(0.81911771,-0.68259818,0.85956631,1.0314794,-386.87512,555.07876)"
gradientUnits="userSpaceOnUse"
id="radialGradient5300"
xlink:href="#linearGradient5245"
inkscape:collect="always" />
<linearGradient
y2="472"
x2="1088"
y1="552"
x1="976"
gradientUnits="userSpaceOnUse"
id="linearGradient5302"
xlink:href="#linearGradient5263"
inkscape:collect="always" />
<linearGradient
y2="296"
x2="1072"
y1="216"
x1="704"
gradientTransform="translate(47.292177,608)"
gradientUnits="userSpaceOnUse"
id="linearGradient5304"
xlink:href="#linearGradient5275"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
inkscape:window-maximized="1"
inkscape:window-y="13"
inkscape:window-x="-8"
inkscape:window-height="987"
inkscape:window-width="1680"
showgrid="true"
inkscape:current-layer="g5289"
inkscape:document-units="px"
inkscape:cy="586.97396"
inkscape:cx="815.92465"
inkscape:zoom="0.84852814"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#000000"
id="base"
inkscape:pagecheckerboard="true">
<inkscape:grid
originy="0"
originx="0"
spacingy="16"
spacingx="16"
snapvisiblegridlinesonly="true"
enabled="true"
visible="true"
empspacing="4"
id="grid2993"
type="xygrid" />
</sodipodi:namedview>
<metadata
id="metadata2990">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
inkscape:label="Layer 1"
id="layer1">
<g
transform="matrix(0.82552894,0,0,0.82552894,161.90914,13.721795)"
id="g5289">
<g
id="g5283">
<path
sodipodi:nodetypes="ccccccccccccccccccccsccccccccccccccccccccccscccccscccccccccsccc"
inkscape:connector-curvature="0"
d="m 773.81281,668.57144 c 9.31253,15.87066 19.23984,30.44159 29.7526,43.40802 0.771,1.07041 1.65891,2.07332 2.36633,3.0361 -9.73319,-1.06337 -19.46548,-7.9152 -29.06963,-20.60007 -4.8637,-6.44037 -9.27573,-13.26402 -13.21172,-20.44587 l -2.84599,-5.4294 c -2.74665,-5.45534 -5.23113,-11.09959 -7.47108,-16.94028 -6.19118,-15.72345 -7.47685,-26.6653 -4.25923,-32.93972 1.73575,4.32392 3.58797,8.86205 5.68339,13.28143 4.82321,-2.17847 8.51389,-1.58852 11.02472,1.97037 3.26941,4.34778 1.99482,8.74263 -3.83438,12.85867 2.64899,5.24154 5.43531,10.51998 8.42749,15.84683 M 965.71546,541.39408 c -17.11483,-27.85634 -36.21161,-51.27816 -57.26468,-70.24783 -2.44573,1.55638 -4.67139,1.62892 -6.78796,-0.19459 -2.16149,-1.63882 -3.06367,-4.27894 -2.68227,-7.83333 -9.24814,-7.59324 -18.8481,-14.21836 -28.81963,-20.16706 -22.4894,-13.15528 -42.77703,-20.11949 -61.3309,-20.66574 -1.01847,5.61096 -2.8886,8.1918 -5.86092,7.7861 -3.09006,-0.35215 -4.93514,-2.76542 -5.60541,-7.08385 -9.72592,1.0542 -18.93825,4.07797 -27.48809,9.01422 -19.26473,11.1225 -31.70663,29.54251 -37.28965,55.41244 5.21288,0.33897 7.33285,2.47086 6.40587,6.65779 -0.42574,2.6851 -3.09231,3.28645 -7.88245,2.09719 -1.36929,8.68583 -1.85791,18.1045 -1.73171,28.0631 0.20285,22.99133 4.00234,46.17224 11.01205,69.63592 -12.10488,8.51873 -15.77653,25.85174 -10.91271,51.91113 2.35413,12.36841 6.40684,23.92398 12.14707,34.66435 l 2.274,4.06368 c 7.73977,13.2114 18.13982,25.15207 31.20355,35.85862 14.87902,12.07873 31.55637,17.49725 50.3449,16.07493 10.65613,10.56197 21.7131,19.9832 33.52163,28.06117 2.58462,-6.0533 5.28802,-8.20589 8.004,-6.13666 2.58991,1.85335 2.94894,6.1927 1.08256,12.43754 1.83132,1.06445 3.69475,2.13201 5.46358,3.0882 37.60041,22.21332 69.76337,26.5937 96.43395,13.02851 -1.85725,-5.32186 -2.238,-8.30633 -1.09809,-8.96446 2.40647,-2.15436 5.08028,-0.19069 7.71828,5.43097 24.07447,-15.42936 36.60567,-43.17464 37.61907,-83.27935 -2.4695,-0.85478 -3.9408,-1.84563 -4.4539,-3.52683 0.09,-2.47677 1.6953,-3.40365 4.682,-2.70312 -0.1938,-0.33559 -0.1527,-0.79951 -0.1181,-1.26697 -0.297,-36.31703 -9.4568,-73.75975 -27.32176,-112.07275 -3.13606,-0.16682 -5.34329,-1.31734 -6.59329,-3.48241 -1.5125,-2.61973 -0.99069,-4.89842 1.61362,-6.70513 -1.66124,-3.28566 -3.42974,-6.58733 -5.25755,-9.91884 z m -1.48261,25.68205 c 21.2787,39.52627 32.34441,77.71366 33.4109,114.61938 1.16057,39.91767 -9.92803,66.53415 -33.18406,79.96103 -23.25494,13.42625 -51.95696,9.78289 -85.94856,-11.17978 -7.2198,-4.34756 -13.98881,-9.23684 -20.7442,-14.61752 -0.24492,-0.16171 -0.53297,-0.43563 -0.77789,-0.59734 l -6.71889,-5.57495 c -21.49824,-18.58508 -40.6758,-42.29165 -57.74905,-71.0868 l -4.14063,-7.17177 c -8.60376,-15.26749 -15.62786,-30.28352 -21.29427,-45.00776 -5.2026,-14.01368 -9.14151,-27.69607 -11.8473,-41.33263 -2.2417,-11.78273 -3.55106,-23.48311 -3.94652,-34.96057 -1.08965,-39.79983 10.09987,-66.48902 33.35481,-79.91527 23.25603,-13.42687 51.85713,-9.71081 85.77781,11.13402 31.7497,19.64629 59.52686,48.71237 83.30366,87.47367 z"
style="fill:url(#linearGradient5298);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path3024" />
<path
sodipodi:nodetypes="ccccccccccccscccc"
inkscape:connector-curvature="0"
d="m 806.64313,651.06023 0.65318,1.31885 5.95896,9.00871 c 3.40066,4.57512 7.06185,8.25648 11.12341,11.07882 6.35431,4.68848 11.61273,5.88884 15.60186,3.58571 0.22842,-0.13187 0.44901,-0.2448 0.72234,-0.56137 3.11122,-2.24371 2.76067,-6.00339 -1.33308,-11.24646 -4.34674,-5.68878 -9.19391,-12.79182 -14.71949,-21.3074 -0.24356,-0.3753 -0.47313,-0.73291 -0.71037,-1.10541 l -5.351,-9.14321 c -2.46544,-4.62383 -4.4346,-9.01924 -5.95822,-13.19493 -2.34651,-6.69927 -5.226,-9.30919 -8.72472,-7.73665 l -0.78483,0.45312 c -3.98913,2.30313 -5.62568,7.37604 -4.80499,15.11503 0.47594,5.03684 1.88662,10.14022 4.07971,15.25376 l 0.0625,0.10825 c 1.33064,2.79106 2.59145,5.58212 4.18474,8.37318 z"
style="fill:#4c5f67;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path3022" />
<path
sodipodi:nodetypes="ccsccccccsccccsccccccsccc"
inkscape:connector-curvature="0"
d="m 949.61198,551.37704 c -22.8309,-37.27735 -49.24936,-65.50811 -79.37993,-84.61506 -32.1881,-20.47394 -59.30554,-24.25273 -81.07851,-11.6821 -21.65929,12.505 -31.83723,37.81629 -30.314,75.9946 0.43012,11.01 1.76211,22.25707 4.21573,33.61435 2.60186,12.93157 6.44915,26.19776 11.61875,39.62427 1.25675,3.22927 2.51796,6.44874 4.02071,9.83908 l 0.86296,-0.3178 c -1.0356,-5.47871 -1.67491,-11.06353 -1.65126,-16.54758 -0.19858,-19.03894 5.4094,-31.99063 16.80955,-38.57251 11.51164,-6.64625 25.42387,-4.96456 41.80954,4.72876 13.64796,8.18306 25.7638,20.04558 36.22985,35.62693 l 7.67688,12.67176 c 10.55577,19.23967 15.89048,37.83048 16.18702,55.78674 0.20183,19.03707 -5.3604,31.81801 -16.87204,38.46426 -11.40015,6.58187 -25.35813,5.07094 -41.74705,-4.62051 -3.48432,-2.08751 -6.74515,-4.33293 -9.90713,-6.90965 l -0.24664,0.32281 c 10.15598,12.06317 21.1017,23.38171 33.11749,33.92367 0.30633,0.27059 0.5278,0.42418 0.84038,0.70559 6.32806,5.16552 12.86671,9.92078 19.72276,14.16081 32.30177,20.40831 59.38908,24.38492 81.04838,11.87992 21.77296,-12.57063 31.98103,-38.07973 30.34413,-76.19242 -1.40626,-35.24672 -12.42558,-71.83901 -32.95964,-109.90027 z"
style="fill:url(#radialGradient5300);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path11394" />
<path
sodipodi:nodetypes="csccsccsccscccscccccccscccccccccccccccccccc"
id="path5849"
d="M 1063.3307,481.9687 C 1033.1394,433.41082 996.07733,395.31989 958.83377,372.16215 943.90799,362.88142 928.94883,355.9839 914.24161,351.86376 l 5.35012,19.39168 c 9.20393,3.60694 18.72855,8.39698 28.317,14.35899 34.93961,21.72516 70.97147,58.51072 100.30007,105.66229 l 12.9333,22.33865 c 26.6684,49.43987 40.7838,99.59392 42.1416,141.11645 0.3679,11.25026 -0.236,21.86091 -1.7003,31.61736 l 14.2536,13.31304 c 3.5992,-14.53291 5.1207,-30.49674 4.5593,-47.66561 -1.4468,-44.24151 -16.146,-95.93055 -43.5896,-146.81179 z m -23.0732,14.22346 c -29.3491,-47.42897 -65.47113,-84.63165 -101.76433,-107.19846 -5.57616,-3.46722 -11.17271,-6.48519 -16.7395,-9.24367 l 6.11104,22.27213 c 34.05348,21.17417 69.21172,57.14425 97.73089,103.21239 l 12.1208,20.93136 c 25.8075,47.88941 39.4425,96.5024 40.7577,136.71934 0.018,0.56242 -0.014,1.06499 -5e-4,1.6241 l 16.2114,15.1416 c 0.4113,-6.30898 0.6048,-12.77404 0.3863,-19.45599 -1.4013,-42.85006 -15.6169,-92.89868 -42.1774,-142.17835 z m -23.0191,14.19221 c -25.04009,-40.76231 -55.27761,-73.75715 -86.24547,-96.13146 l 7.38788,26.98369 c 23.00719,20.21694 45.41761,46.62992 64.64009,77.89747 l 11.2584,19.62507 c 18.0541,33.63135 29.9103,67.61102 35.514,98.5745 l 18.8347,17.56025 c -3.4922,-38.27565 -16.7632,-81.42329 -39.6469,-124.04549 z m -23.04623,14.20783 c -15.53,-25.64525 -33.20703,-48.0782 -51.83429,-66.77963 l 9.49539,34.57151 c 10.06474,12.41261 19.71762,25.99104 28.60862,40.67657 l 10.33762,18.28028 c 8.91594,16.87096 16.14379,33.80877 21.86859,50.37751 l 23.3617,21.83872 c -6.3462,-25.83185 -16.7048,-52.96242 -30.9886,-79.86134 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5302);fill-opacity:1;stroke:none;stroke-width:13.0685;marker:none;enable-background:accumulate"
inkscape:connector-curvature="0" />
</g>
<g
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Calibri;-inkscape-font-specification:Calibri;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient5304);fill-opacity:1;stroke:none"
id="text5271"
aria-label="Mediacore">
<path
id="path867"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 751.88904,846.89072 q -0.17288,-1.15256 -0.40339,-2.42037 0,0.51865 0.17288,-0.80679 0.17288,-1.32545 0.46102,-4.55261 0.46103,-0.63391 0.63391,-1.09493 0.23051,-0.51865 0.4034,-0.92205 -0.51865,-0.63391 -0.80679,-1.0373 -0.23052,-0.46102 -0.23052,-0.74916 0.46103,-3.51531 0.86442,-6.68484 0.0576,-0.86442 0.97968,-1.95935 0.97967,-1.09493 2.65088,-2.36275 1.32544,-1.09493 2.59326,-1.84409 1.26781,-0.74917 2.42037,-1.21019 1.55596,-0.51865 1.8441,-0.86442 0.28814,-0.34577 0.6339,-0.34577 0.92205,0 1.38307,0.92205 0.51866,0.92205 0.51866,2.76614 0,0.97968 -0.51866,2.70851 -0.46102,1.72884 -0.46102,2.53563 0,0.34577 0.0576,2.65089 0.11525,2.30512 0.28814,6.62721 0.0576,3.11191 0.86442,6.62721 0.86442,3.51531 2.18986,7.31875 1.78646,4.956 3.86107,7.434 2.07461,2.42038 4.55261,2.42038 1.95935,0 5.18651,-2.53563 3.22716,-2.53563 7.60689,-7.60689 3.34242,-3.9187 5.93567,-7.31875 2.65089,-3.40005 4.26447,-6.22381 1.49833,-2.53563 3.5153,-4.55261 2.01698,-2.01698 4.61024,-3.68819 0.80679,-0.46102 1.32544,-0.74916 0.51865,-0.28814 0.80679,-0.28814 1.03731,0 1.55596,1.55595 0.57628,1.55596 0.57628,4.61024 -0.34577,2.82377 -0.57628,5.58991 -0.51865,4.32209 -1.55596,8.98995 -0.97967,4.66787 -2.59325,9.6815 -0.8068,2.53563 -1.38307,4.43735 -0.57628,1.90172 -0.8068,3.22716 -0.11525,0.74917 -0.34576,1.90172 -0.17289,1.09493 -0.4034,2.59326 -0.57628,1.4407 -1.26781,2.8814 -0.57628,1.15256 -0.97968,2.76614 -0.34577,1.61358 -0.63391,3.74581 0,0.4034 -0.0576,1.03731 -0.0576,0.6339 -0.11526,1.32544 -1.32544,5.87805 -2.70851,11.41033 -0.11526,0.51865 -0.51865,1.32544 -0.74917,0.23051 -1.72884,0.97968 -0.92205,0.74916 -1.95935,2.0746 -1.0373,1.15256 -1.72884,1.72884 -0.69153,0.51865 -1.0373,0.51865 -0.46102,0 -0.74916,-0.28814 -0.28814,-0.28814 -0.28814,-0.97967 0.0576,-0.46103 0.17288,-0.74917 0.80679,-1.95935 1.38307,-5.64753 0.63391,-3.68819 1.15256,-9.10522 0.0576,-1.15256 0.92205,-6.22381 0.86441,-5.07126 2.53562,-14.06122 0.23052,-1.4407 0.57628,-3.5153 0.4034,-2.13224 0.97968,-4.84075 0.40339,-1.38307 0.63391,-2.36274 0.28814,-1.03731 0.28814,-1.49833 0,-0.57628 -0.23052,-0.80679 -0.17288,-0.28814 -0.57628,-0.28814 -0.34576,0 -1.26781,0.92205 -0.92205,0.86441 -2.30512,2.65088 -0.80679,0.97968 -1.67121,2.07461 -0.80679,1.09493 -1.72884,2.13223 -1.55595,1.61358 -2.88139,3.05428 l -4.26447,4.26447 q -0.57628,0.34576 -1.4407,0.86442 -0.80679,0.51865 -1.95935,1.21018 -1.09493,1.72884 -3.5153,2.99666 -2.36275,1.21018 -4.37972,1.21018 -2.42038,0 -4.66787,-1.49832 -2.18986,-1.55596 -4.26446,-4.72549 -0.92205,-1.55596 -1.8441,-3.11191 -0.86442,-1.55596 -1.90172,-3.11191 l -0.28814,0.0576 q -0.28814,0.34576 -1.09493,4.66786 -0.74916,4.32209 -1.95935,12.67814 -1.32544,8.58657 -2.01698,13.48494 -0.69153,4.89837 -0.69153,6.33907 -0.11526,1.95935 -0.74916,3.05428 -0.57628,1.03731 -1.8441,1.21019 -0.63391,0.0576 -1.78646,0.34577 -1.15256,0.23051 -2.76614,0.6339 -0.28814,-0.0576 -0.51866,-0.17288 -0.23051,-0.17288 -0.23051,-0.46102 l 0.34577,-2.13224 -0.57628,-2.18986 q 0.34577,-1.78646 0.69154,-3.45767 0.23051,-3.45768 0.40339,-6.51196 0.0576,-0.63391 0.4034,-2.13223 0.40339,-1.49833 0.40339,-2.24749 0,-0.4034 -0.17288,-1.15256 -0.17289,-0.80679 -0.17289,-1.21019 0,-3.16953 0.97968,-9.39335 1.0373,-6.22382 1.0373,-9.45098 -0.17288,-1.32544 -0.40339,-2.65089 0.28814,-2.0746 0.92204,-5.18651 0.63391,-3.11191 1.4407,-7.26112 z" />
<path
id="path869"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 810.90004,886.82688 q 0.69154,-1.21019 1.78647,-2.42038 1.09493,-1.26781 2.76614,-2.59325 0.17288,-1.15256 0.34577,-2.24749 0.17288,-1.15256 0.23051,-2.30512 0.17288,-0.80679 0.51865,-1.90172 0.40339,-1.09493 0.86442,-2.36275 0.51865,-1.26781 1.38307,-3.16953 0.92204,-1.90172 2.36274,-4.26447 1.21019,-1.32544 2.53563,-2.8814 1.32544,-1.61358 2.65089,-3.22716 0.6339,-0.51865 1.38307,-0.97968 0.74916,-0.46102 1.49832,-1.0373 0.69154,-0.23051 1.55596,-0.40339 0.86442,-0.17289 1.90172,-0.17289 1.4407,0 2.30512,0.28814 0.92204,0.28814 1.49832,0.97968 0.4034,0.46102 0.74917,1.38307 0.40339,0.92204 0.74916,2.24749 0.17288,1.15256 0.40339,2.53563 0,-0.34577 -0.23051,0.28814 -0.17288,0.6339 -0.57628,2.01697 l -0.51865,1.8441 q -0.80679,2.76614 -3.63056,6.3967 -2.82377,3.63056 -7.60688,8.29842 -0.4034,0.40339 -0.69154,1.0373 -0.28814,0.57628 -0.28814,1.26782 0,1.21018 0.4034,2.13223 0.46102,0.92205 1.26781,1.38307 0.46102,0.34577 1.4407,0.69154 1.0373,0.34576 2.42037,0.6339 2.24749,-0.17288 4.09158,-0.74916 1.8441,-0.57628 3.2848,-1.38307 0.28814,-0.17288 0.92204,-0.46102 0.63391,-0.34577 1.26782,-0.86442 0.74916,1.67121 1.32544,2.99665 0.57628,1.32544 0.92205,2.30512 -3.28479,3.22716 -5.99331,4.89837 -2.65088,1.61358 -4.89837,1.61358 -0.92205,0.57628 -2.13223,0.86442 -1.15256,0.23051 -2.76615,0.23051 -2.13223,0 -3.80344,-0.6339 -1.61358,-0.63391 -2.70851,-1.8441 -0.57628,-0.57628 -1.15256,-1.67121 -0.57628,-1.15256 -1.21019,-2.70851 -0.51865,-1.26782 -0.97967,-1.84409 -0.46103,-0.63391 -1.0373,-0.63391 -0.46103,0 -1.03731,0.46102 -0.57628,0.4034 -1.26781,1.26782 -0.23051,-0.86442 -0.80679,-2.13224 -0.57628,-1.26781 -1.49833,-3.16953 z m 18.44094,-18.72908 q -1.26782,0 -3.40005,3.34242 -2.13223,3.28479 -2.13223,4.84075 0,0.34576 0.11525,0.51865 0.17289,0.11525 0.63391,0.11525 0.63391,0 1.0373,-0.6339 0.4034,-0.69154 0.74917,-1.26782 0.6339,-0.57628 1.21018,-1.21019 0.63391,-0.69153 1.21019,-1.32544 0.69153,-0.80679 1.0373,-1.61358 0.34577,-0.80679 0.34577,-1.61358 0,-0.51865 -0.23051,-0.80679 -0.17289,-0.34577 -0.57628,-0.34577 z" />
<path
id="path871"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 839.94452,886.82688 0.34577,-0.4034 0.17288,-0.57628 q 1.0373,-1.26781 1.78647,-1.95935 0.74916,-0.74916 1.15256,-1.15256 0.28814,-0.28814 1.26781,-0.74916 0.97968,-0.46102 2.65089,-1.15256 l 0.74916,-0.46102 q 0.40339,-0.63391 1.4407,-1.8441 1.0373,-1.21018 2.478,-2.76614 0.28814,-0.34576 0.86442,-0.74916 0.57628,-0.40339 1.21018,-1.0373 1.38307,-1.32544 2.76614,-2.70851 1.38307,-1.4407 2.59326,-2.82377 0.51865,-0.51865 2.13223,-1.8441 1.61359,-1.38307 4.37973,-3.80344 0.40339,-0.28814 1.4407,-0.80679 1.0373,-0.57628 2.70851,-1.32544 0.74916,-0.34577 1.09493,-1.09493 0.40339,-0.8068 0.40339,-2.01698 0.46103,-0.74917 0.86442,-1.78647 0.46103,-1.09493 0.86442,-2.53563 0.57628,-1.78646 0.86442,-2.88139 0.34577,-1.15256 0.51865,-1.55596 0.97968,-2.59326 2.65089,-6.05093 1.67121,-3.5153 3.97632,-8.01028 1.15256,-2.36275 2.70852,-5.24415 0.97967,-1.44069 2.18986,-2.13223 1.21019,-0.74916 2.53563,-0.74916 1.0373,0 1.49832,0.80679 0.51866,0.80679 0.51866,2.36274 0,2.47801 -0.34577,4.72549 -0.34577,2.24749 -1.26782,4.20684 -0.17288,0.4034 -0.28814,1.21019 -0.11525,0.80679 -0.23051,1.95935 -0.0576,0.80679 -0.46102,1.55595 -0.34577,0.74917 -0.92205,1.38307 0,0.4034 -0.11525,0.97968 -0.11526,0.51865 -0.23052,1.26781 l -0.80679,1.03731 q -0.11525,0.34576 -0.11525,0.86442 0,0.46102 0,0.97967 0,0.34577 -0.4034,1.38307 -0.40339,0.97968 -1.21018,2.82377 -0.92205,1.95935 -1.49833,3.11191 -0.51865,1.15256 -0.57628,1.4407 -0.23051,0.28814 -0.63391,0.92204 -0.34577,0.63391 -0.86442,1.4407 l 0.17289,1.26782 -3.68819,13.25442 q 0,2.18986 0.0576,3.74582 0.0576,1.55595 0.34577,2.478 0.28813,0.97967 0.92204,2.42037 0.69154,1.38307 1.72884,2.99665 0.63391,1.09493 1.49833,1.61358 0.86442,0.46103 1.84409,0.46103 1.09493,0 2.18986,-0.57628 1.15256,-0.63391 2.30512,-1.90172 0.69153,1.49832 1.26781,2.82377 0.63391,1.32544 1.03731,2.478 -0.28814,0.17288 -1.26782,1.21018 -0.92205,0.97968 -2.478,2.82377 -0.92205,1.09493 -2.30512,1.61358 -1.32544,0.46103 -3.28479,0.46103 -4.32209,0 -7.03061,-2.24749 -2.70851,-2.24749 -3.80344,-6.74247 -0.23051,-0.92205 -0.4034,-1.61358 -0.17288,-0.69154 -0.34576,-1.26782 -0.4034,-1.09493 -1.38307,-2.36274 -0.4034,0.57628 -0.63391,0.86442 -0.69154,0.46102 -1.55595,1.32544 -0.8068,0.86442 -1.67121,2.18986 -0.17289,0.57628 -0.63391,1.4407 -0.46103,0.80679 -1.26782,1.95935 -1.84409,2.13223 -3.74581,4.32209 -1.90172,2.13224 -3.80345,4.20684 -2.59325,2.8814 -4.78311,4.20684 -2.18987,1.38307 -3.80345,1.38307 -2.88139,0 -4.26446,-1.38307 -1.38307,-1.32544 -1.38307,-4.20684 0,-1.32544 0.97967,-3.68819 0.97968,-2.42037 0.97968,-3.57293 l -0.34577,-0.92204 z m 28.98685,-16.48159 q 0,-0.28814 -0.23051,-0.86442 -0.86442,0.86442 -2.13224,2.01698 -1.26781,1.15256 -2.99665,2.53563 -0.40339,0.92204 -1.84409,2.93902 -1.4407,1.95935 -4.03396,4.89837 -0.74916,0.86442 -2.01697,2.99666 -1.26782,2.0746 -3.11191,5.12888 -0.63391,1.21019 -1.32545,2.93903 0,0.34576 0.46103,0.74916 1.72884,-0.51865 4.20684,-2.99665 2.53563,-2.53563 5.9933,-6.97298 3.57293,-4.72549 5.30177,-8.01028 1.72884,-3.34242 1.72884,-5.3594 z" />
<path
id="path873"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 888.12148,886.82688 0.34576,-0.4034 0.17289,-0.57628 q 1.55595,-2.13223 5.47465,-5.53228 3.9187,-3.45768 5.41703,-5.58991 0.57628,-0.92205 1.32544,-1.32544 0.74916,-0.4034 1.49833,-0.4034 2.01697,0 3.40004,1.03731 1.38307,0.97967 1.8441,2.99665 0.40339,1.78646 0.74916,3.63056 0.34577,1.78646 0.57628,3.63056 0.4034,1.15256 0.97967,3.5153 0.57628,2.30512 0.86442,2.65089 0.28814,0.57628 0.86442,0.86442 0.57628,0.23051 1.4407,0.23051 1.0373,0 2.13223,-0.34577 1.09493,-0.4034 2.24749,-1.32544 0.86442,-0.74917 1.78647,-1.49833 0.97967,-0.80679 1.90172,-1.55595 l 2.30512,5.30177 q -0.92205,0.92204 -2.478,2.13223 -1.49833,1.15256 -3.63056,2.70851 -2.36275,1.72884 -4.03396,2.59326 -1.67121,0.80679 -2.53563,0.80679 -5.24414,0 -6.80009,-1.21019 -1.55596,-1.21018 -3.45768,-6.74246 -0.23051,-0.46103 -0.69153,-1.09493 -0.46103,-0.63391 -1.03731,-1.49833 -0.69153,-1.32544 -1.21018,-1.95935 -0.51865,-0.69154 -0.86442,-0.69154 -0.92205,0 -2.478,1.26782 -1.55596,1.21019 -3.80345,3.68819 -0.28814,-0.74917 -0.69153,-1.78647 -0.46102,-1.0373 -0.92205,-2.42037 -0.11525,-0.34577 -0.28814,-0.63391 -0.17288,-0.28814 -0.40339,-0.46102 z m 24.08847,-45.46844 q 1.4407,0 2.07461,0.57628 0.69153,0.57628 0.69153,1.67121 -0.34577,1.61358 -0.57628,2.70851 -0.57628,2.07461 -1.0373,3.40005 -0.4034,1.32544 -0.63391,1.90172 -0.51865,1.26781 -1.4407,2.24749 -0.86441,0.92205 -2.13223,1.67121 -1.32544,0.92205 -2.24749,1.32544 -0.86442,0.34577 -1.21018,0.28814 -0.97968,-0.11525 -1.90173,-0.17288 -0.86442,-0.11526 -1.72883,-0.11526 -0.74917,-0.40339 -1.21019,-1.55595 -0.4034,-1.15256 -0.4034,-3.11191 0,-1.72884 2.07461,-4.3221 2.13223,-2.65088 3.74581,-2.82376 0.97968,-1.21019 2.30512,-2.76614 0.57628,-0.4034 1.49833,-0.63391 0.92205,-0.28814 2.13223,-0.28814 z" />
<path
id="path875"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 922.92874,884.29125 5.24414,-3.45768 q 0.28814,-0.28814 0.69153,-0.74916 0.4034,-0.51865 0.92205,-1.4407 0.40339,-0.74916 1.0373,-1.26781 0.69154,-0.51866 1.55596,-0.92205 0.46102,-0.57628 1.32544,-1.4407 0.86442,-0.86442 2.18986,-2.01698 0.63391,-0.34576 1.61358,-0.97967 0.97968,-0.69154 2.13224,-1.78647 5.24414,-4.956 9.16284,-7.434 3.97632,-2.478 6.68484,-2.478 1.49832,0 2.18986,0.63391 0.74916,0.6339 0.74916,1.78646 0,1.21019 -0.46102,2.13223 -0.4034,0.92205 -1.32544,1.55596 -1.4407,1.0373 -3.11191,2.30512 -0.92205,1.21018 -2.24749,2.59325 -1.32544,1.32545 -3.11191,2.65089 -0.57628,0.74916 -0.97968,1.32544 -0.28814,0.28814 -1.09493,1.0373 -0.80679,0.74917 -2.13223,1.72884 -0.57628,1.26782 -2.53563,3.28479 -1.90172,2.01698 -5.12888,4.84075 -0.4034,0.40339 -1.4407,1.84409 -1.03731,1.4407 -2.70852,3.80345 l 0.4034,0.51865 q 1.26781,-0.4034 2.65088,-1.38307 1.38308,-0.97968 3.05429,-2.59326 1.95934,-1.78647 3.16953,-2.8814 1.26782,-1.15255 1.78647,-1.49832 0.40339,-0.23051 0.80679,-0.46103 0.40339,-0.23051 0.92205,-0.57627 2.65088,-3.16954 4.956,-4.66787 2.30511,-1.55595 4.26446,-1.55595 1.21019,0 1.8441,0.97967 0.63391,0.92205 0.74916,2.82377 -0.11525,2.8814 -0.11525,5.53228 -0.0576,1.8441 0.97967,3.34242 1.09493,1.4407 2.82377,1.4407 0.51865,0 0.97967,-0.28814 0.51865,-0.28814 1.03731,-0.74916 0.40339,-0.51865 0.74916,-0.97968 0.40339,-0.46102 0.80679,-0.92204 0.23051,-0.11526 0.63391,-0.4034 0.46102,-0.28814 0.86442,-0.69153 0.80679,1.72883 1.32544,3.05428 0.57628,1.26781 0.86442,2.24749 -1.32544,1.21018 -2.65089,2.53563 -1.26781,1.26781 -2.70851,2.42037 -1.72884,1.32544 -3.34242,2.01698 -1.61358,0.6339 -3.22716,0.6339 -3.74582,0 -5.7628,-2.13223 -2.01697,-2.13223 -2.36274,-6.45433 0,-0.51865 -0.17289,-1.0373 -0.11525,-0.57628 -0.57628,-1.15256 -0.28813,0.28814 -0.6339,0.63391 -0.34577,0.28814 -0.80679,0.80679 -0.74917,0.57628 -1.90173,1.4407 -1.09493,0.86442 -2.59325,2.0746 -2.01698,2.07461 -3.40005,3.40005 -1.38307,1.32544 -1.95935,1.90172 -1.15256,0.97968 -2.70851,1.95935 -1.49833,0.97968 -3.40005,2.01698 -1.21019,0.63391 -2.07461,0.97967 -0.86441,0.4034 -1.26781,0.4034 -2.76614,0 -4.09158,-1.32544 -1.32545,-1.38307 -1.32545,-4.20684 0,-1.55596 0.69154,-2.93903 0.63391,-1.44069 1.95935,-2.76614 0.11525,-0.74916 0.11525,-1.21018 0,-0.28814 -0.17288,-0.57628 -0.11525,-0.34577 -0.34577,-0.74917 -0.34576,-0.80679 -0.74916,-1.78646 -0.46102,-1.0373 -0.97967,-2.18986 0.23051,-0.23052 0.69153,-0.86442 0.4034,-0.69154 0.97968,-1.67121 z" />
<path
id="path877"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 965.3429,886.82688 0.51865,-0.46103 q 0.0576,-0.6339 0.80679,-1.49832 0.74916,-0.86442 2.13223,-2.01698 0.86442,-0.63391 1.78647,-1.21019 0.97967,-0.57628 1.84409,-1.26781 3.63056,-3.11191 7.03061,-5.99331 1.95935,-1.72883 3.9187,-2.93902 1.95935,-1.26782 3.68819,-2.01698 1.21018,-1.55595 4.49498,-3.16953 3.34242,-1.61359 5.41702,-1.61359 0.80679,0 1.26782,0.46103 0.51865,0.46102 0.6339,1.15256 v 3.16953 q 0,1.67121 -0.97967,2.99665 -0.92205,1.26782 -2.82377,2.36275 -1.26782,0.57628 -2.53563,1.26781 -1.26781,0.69154 -2.53563,1.26782 -0.46102,0.57628 -2.478,2.18986 -1.95935,1.55595 -5.3594,4.20684 -1.55595,1.21018 -2.59325,2.18986 -1.03731,0.92205 -1.4407,1.49833 -0.57628,1.09493 -0.92205,2.42037 -0.28814,1.32544 -0.28814,3.05428 0,1.32544 0.4034,2.30512 0.40339,0.92204 1.21018,1.49832 0.57628,0.4034 1.55596,0.80679 1.0373,0.4034 2.53563,0.80679 0.86442,-0.34576 2.24749,-0.6339 1.44069,-0.34577 3.16953,-0.86442 1.95935,-1.15256 3.97633,-2.42037 2.0746,-1.26782 4.09158,-2.59326 0.28814,-0.17289 0.69154,-0.34577 0.46102,-0.23051 0.92204,-0.63391 0.57628,-0.74916 1.55596,-1.72883 1.03735,-0.97968 2.47795,-2.24749 2.3052,5.01363 2.3052,5.30177 -2.1323,1.72883 -4.32213,3.57293 -2.18986,1.78646 -5.01363,2.93902 -0.92205,0.74917 -1.55595,1.38307 -2.8814,2.8814 -6.74247,4.3221 -3.80344,1.49832 -8.70182,1.49832 -1.09493,0 -1.95935,-0.17288 -0.86442,-0.17288 -1.4407,-0.46102 -1.72883,-1.15256 -2.93902,-2.01698 -1.26782,-0.92205 -2.13223,-1.72884 -0.86442,-0.86442 -1.26782,-1.61358 -0.51865,-0.80679 -0.69153,-1.95935 -0.23052,-1.15256 -0.23052,-2.82377 0,-0.46102 0.28814,-1.49833 0.28814,-1.0373 0.28814,-1.44069 -0.40339,-1.26782 -0.97967,-2.59326 -0.57628,-1.32544 -1.32544,-2.70851 z" />
<path
id="path879"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 1001.7637,886.82688 q 0.4034,-0.4034 0.8645,-1.03731 0.4034,-0.69153 0.9796,-1.49832 l 4.4374,-3.05428 q 0.8068,-0.97968 2.478,-2.478 1.6712,-1.55596 4.1492,-3.74582 0.2881,-0.63391 0.9221,-1.4407 0.6915,-0.86442 1.6135,-1.67121 0.8068,-0.74916 1.6136,-1.38307 0.8068,-0.69153 1.4983,-1.32544 0.8645,-0.86442 1.6136,-1.72884 0.8068,-0.86442 1.6136,-1.67121 0.9221,-0.80679 1.9017,-1.26781 0.9797,-0.46103 2.1323,-0.46103 1.2678,0 1.9017,0.34577 0.6915,0.28814 0.7491,0.86442 -0.5762,1.32544 -1.2101,2.65089 l 0.3457,0.51865 q 2.5357,-0.97968 3.9764,-1.4407 1.4407,-0.46103 1.844,-0.46103 4.2069,0 6.2815,2.59326 2.1322,2.53563 2.1322,7.72214 0,0.97968 -0.2305,2.30512 -0.2305,1.32544 -0.7491,2.8814 -0.5763,1.72884 -1.2679,2.88139 -0.6339,1.15256 -1.2101,1.67121 0.2305,0.74917 0.5186,1.09494 0.2881,0.28814 0.7492,0.28814 0.461,0 0.922,-0.28814 0.5187,-0.28814 1.2102,-0.86442 0.5763,1.26781 1.0949,2.65088 0.5763,1.32544 1.1526,2.65089 -1.0373,0.92204 -2.017,1.78646 -0.9797,0.86442 -2.0746,1.67121 -1.3254,1.09493 -2.5356,1.61358 -1.1526,0.46103 -2.3051,0.46103 -1.3255,0 -2.1899,-0.63391 -0.8644,-0.63391 -1.3831,-1.78647 -1.4407,1.90173 -3.5153,3.51531 -2.017,1.55595 -4.495,2.59326 -1.4407,0.69153 -2.6508,1.09493 -1.1526,0.34576 -2.1323,0.34576 -0.2881,0 -1.1525,0.23052 -0.8068,0.23051 -1.3255,0.23051 -3.2848,0 -5.9357,-2.76614 -2.6508,-2.76614 -2.6508,-6.16619 0,-1.38307 0.6339,-3.63056 0.6339,-2.30512 0.6339,-2.70851 0,-0.4034 -0.2882,-0.63391 -0.2305,-0.28814 -0.6915,-0.28814 -0.2881,0 -1.3831,0.86442 -1.0949,0.86442 -3.1119,2.478 -0.1729,0.23051 -0.4034,0.69153 -0.2305,0.46103 -0.7491,1.03731 -0.4611,-1.32545 -1.0373,-2.65089 -0.5763,-1.38307 -1.2679,-2.65088 z m 27.7191,-10.54591 q -0.2882,0.0576 -0.8644,0.6339 -0.5187,0.51865 -1.0373,1.32544 -0.8068,1.32545 -1.8441,2.8814 -0.6339,0.69154 -1.3831,1.09493 -0.6915,0.34577 -1.6136,0.51865 -0.5763,0.0576 -1.2102,1.15256 -0.6339,1.0373 -1.2678,3.05428 -0.6339,1.78647 -0.922,3.05428 -0.2882,1.26782 -0.2882,2.13224 0,1.61358 0.8068,2.42037 0.8068,0.80679 2.478,0.80679 2.6509,0 4.8408,-1.4407 2.2475,-1.49832 4.2068,-4.43735 0.9221,-1.09493 1.7288,-2.0746 0.4611,-0.34577 0.7492,-1.09493 0.2881,-0.8068 0.5763,-1.95935 l 1.0373,-3.2848 q -0.5187,-1.72883 -0.9797,-2.70851 -0.461,-1.0373 -0.922,-1.26781 -0.2882,-0.17289 -1.2678,-0.34577 -0.9797,-0.23051 -2.8238,-0.46102 z" />
<path
id="path881"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 1043.4864,886.82688 q 0.922,-1.21019 1.8441,-2.53563 4.2068,-3.45768 6.8577,-6.62721 2.7085,-3.22717 3.9187,-5.99331 l -0.5763,-2.76614 q 0.7492,-1.4407 3.6882,-3.40005 2.9967,-1.95935 4.8407,-1.95935 1.9594,0 3.2848,1.15256 1.3831,1.15256 2.6509,2.42037 0.6339,0.4034 0.9221,0.63391 2.3051,1.72884 3.4576,4.78312 1.1526,3.05428 1.1526,7.434 0,2.30512 -1.7865,6.62721 -1.7864,4.26447 -1.7864,6.45433 0,0.28814 0.1729,0.46103 0.2305,0.17288 0.5762,0.17288 0.7492,0 1.7865,-0.63391 1.0373,-0.69153 2.2475,-1.84409 3.0543,-2.99665 3.6882,-3.28479 0.6339,-0.34577 1.5559,-1.09493 0.4611,1.15256 1.095,2.478 0.6339,1.32544 1.2102,2.82377 -0.5187,0.46102 -1.2102,1.09493 -0.6339,0.6339 -1.556,1.4407 -1.9593,1.44069 -5.1289,3.5153 -3.1119,2.01698 -7.4916,4.66786 -1.1526,0.74916 -2.6509,1.21019 -2.4204,0 -3.6306,-0.69154 -1.2101,-0.74916 -1.2101,-2.36274 0,-0.63391 0.2305,-1.4407 0.2881,-0.86442 0.7491,-1.84409 0.3458,-0.74917 0.7492,-1.49833 0.4034,-0.80679 0.6915,-1.61358 1.2678,-3.63056 1.9018,-6.74247 0.6915,-3.11191 0.6915,-5.58991 0,-3.05428 -0.9797,-4.66786 -0.922,-1.61358 -2.8238,-1.8441 -1.2678,0.69154 -2.7661,1.95935 -1.4983,1.26782 -3.0543,3.16954 -1.6712,2.07461 -2.9966,3.40005 -1.3255,1.32544 -2.1899,1.78646 -0.5186,0.86442 -1.6712,1.95935 -1.1526,1.09493 -3.0543,2.36275 -0.1152,0.23051 -0.3457,0.69153 -0.2306,0.46103 -0.7492,1.03731 -0.461,-1.32545 -1.0373,-2.59326 -0.5763,-1.32544 -1.2678,-2.70851 z" />
<path
id="path883"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 1081.9818,886.82688 q 0.6916,-1.21019 1.7865,-2.42038 1.0949,-1.26781 2.7661,-2.59325 0.1729,-1.15256 0.3458,-2.24749 0.1729,-1.15256 0.2305,-2.30512 0.1729,-0.80679 0.5187,-1.90172 0.4034,-1.09493 0.8644,-2.36275 0.5186,-1.26781 1.3831,-3.16953 0.922,-1.90172 2.3627,-4.26447 1.2102,-1.32544 2.5356,-2.8814 1.3255,-1.61358 2.6509,-3.22716 0.6339,-0.51865 1.3831,-0.97968 0.7491,-0.46102 1.4983,-1.0373 0.6915,-0.23051 1.556,-0.40339 0.8644,-0.17289 1.9017,-0.17289 1.4407,0 2.3051,0.28814 0.9221,0.28814 1.4983,0.97968 0.4034,0.46102 0.7492,1.38307 0.4034,0.92204 0.7492,2.24749 0.1728,1.15256 0.4034,2.53563 0,-0.34577 -0.2306,0.28814 -0.1728,0.6339 -0.5762,2.01697 l -0.5187,1.8441 q -0.8068,2.76614 -3.6306,6.3967 -2.8237,3.63056 -7.6068,8.29842 -0.4034,0.40339 -0.6916,1.0373 -0.2881,0.57628 -0.2881,1.26782 0,1.21018 0.4034,2.13223 0.461,0.92205 1.2678,1.38307 0.461,0.34577 1.4407,0.69154 1.0373,0.34576 2.4204,0.6339 2.2475,-0.17288 4.0916,-0.74916 1.844,-0.57628 3.2847,-1.38307 0.2882,-0.17288 0.9221,-0.46102 0.6339,-0.34577 1.2678,-0.86442 0.7492,1.67121 1.3254,2.99665 0.5763,1.32544 0.9221,2.30512 -3.2848,3.22716 -5.9933,4.89837 -2.6509,1.61358 -4.8984,1.61358 -0.922,0.57628 -2.1322,0.86442 -1.1526,0.23051 -2.7662,0.23051 -2.1322,0 -3.8034,-0.6339 -1.6136,-0.63391 -2.7085,-1.8441 -0.5763,-0.57628 -1.1526,-1.67121 -0.5763,-1.15256 -1.2102,-2.70851 -0.5186,-1.26782 -0.9796,-1.84409 -0.4611,-0.63391 -1.0373,-0.63391 -0.4611,0 -1.0373,0.46102 -0.5763,0.4034 -1.2679,1.26782 -0.2305,-0.86442 -0.8067,-2.13224 -0.5763,-1.26781 -1.4984,-3.16953 z m 18.441,-18.72908 q -1.2678,0 -3.4001,3.34242 -2.1322,3.28479 -2.1322,4.84075 0,0.34576 0.1152,0.51865 0.1729,0.11525 0.6339,0.11525 0.634,0 1.0374,-0.6339 0.4033,-0.69154 0.7491,-1.26782 0.6339,-0.57628 1.2102,-1.21019 0.6339,-0.69153 1.2102,-1.32544 0.6915,-0.80679 1.0373,-1.61358 0.3458,-0.80679 0.3458,-1.61358 0,-0.51865 -0.2306,-0.80679 -0.1728,-0.34577 -0.5762,-0.34577 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -0,0 +1,296 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:export-filename="background-image.png"
sodipodi:docname="background-image.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
version="1.1"
id="svg2985"
height="1080px"
width="1920px">
<defs
id="defs2987">
<linearGradient
id="linearGradient5275">
<stop
id="stop5277"
offset="0"
style="stop-color:#3891ee;stop-opacity:1;" />
<stop
id="stop5279"
offset="1"
style="stop-color:#aad6f3;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient5263">
<stop
id="stop5265"
offset="0"
style="stop-color:#1e4f71;stop-opacity:1;" />
<stop
id="stop5267"
offset="1"
style="stop-color:#0f243f;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient5253">
<stop
id="stop5255"
offset="0"
style="stop-color:#676767;stop-opacity:1;" />
<stop
style="stop-color:#2c2c2c;stop-opacity:1;"
offset="0.5"
id="stop5261" />
<stop
id="stop5257"
offset="1"
style="stop-color:#292929;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient5245">
<stop
id="stop5247"
offset="0"
style="stop-color:#295a7d;stop-opacity:1;" />
<stop
id="stop5249"
offset="1"
style="stop-color:#0f202d;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3803">
<stop
id="stop3805"
offset="0"
style="stop-color:#295a7d;stop-opacity:1;" />
<stop
id="stop3807"
offset="1"
style="stop-color:#295a7d;stop-opacity:1;" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath11388-1">
<path
inkscape:connector-curvature="0"
d="m 0,1458.48 1420.5,0 0,-1458.42 L 0,0.06 0,1458.48 z"
id="path11390-7" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath11388">
<path
inkscape:connector-curvature="0"
d="m 0,1458.48 1420.5,0 0,-1458.42 L 0,0.06 0,1458.48 z"
id="path11390" />
</clipPath>
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.81911771,-0.68259818,0.85956631,1.0314794,-386.87512,555.07876)"
r="117.19927"
fy="625.16315"
fx="832"
cy="625.16315"
cx="832"
id="radialGradient5251"
xlink:href="#linearGradient5245"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="552"
x2="976"
y1="680"
x1="736"
id="linearGradient5259"
xlink:href="#linearGradient5253"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="472"
x2="1088"
y1="552"
x1="976"
id="linearGradient5269"
xlink:href="#linearGradient5263"
inkscape:collect="always" />
<linearGradient
gradientTransform="translate(47.292177,608)"
gradientUnits="userSpaceOnUse"
y2="296"
x2="1072"
y1="216"
x1="704"
id="linearGradient5281"
xlink:href="#linearGradient5275"
inkscape:collect="always" />
<linearGradient
y2="552"
x2="976"
y1="680"
x1="736"
gradientUnits="userSpaceOnUse"
id="linearGradient5298"
xlink:href="#linearGradient5253"
inkscape:collect="always" />
<radialGradient
r="117.19927"
fy="625.16315"
fx="832"
cy="625.16315"
cx="832"
gradientTransform="matrix(0.81911771,-0.68259818,0.85956631,1.0314794,-386.87512,555.07876)"
gradientUnits="userSpaceOnUse"
id="radialGradient5300"
xlink:href="#linearGradient5245"
inkscape:collect="always" />
<linearGradient
y2="472"
x2="1088"
y1="552"
x1="976"
gradientUnits="userSpaceOnUse"
id="linearGradient5302"
xlink:href="#linearGradient5263"
inkscape:collect="always" />
<linearGradient
y2="296"
x2="1072"
y1="216"
x1="704"
gradientTransform="translate(47.292177,608)"
gradientUnits="userSpaceOnUse"
id="linearGradient5304"
xlink:href="#linearGradient5275"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
inkscape:window-maximized="1"
inkscape:window-y="13"
inkscape:window-x="-8"
inkscape:window-height="987"
inkscape:window-width="1680"
showgrid="true"
inkscape:current-layer="g5289"
inkscape:document-units="px"
inkscape:cy="438.2355"
inkscape:cx="747.29783"
inkscape:zoom="0.6"
inkscape:pageshadow="2"
inkscape:pageopacity="1"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#000000"
id="base">
<inkscape:grid
originy="0"
originx="0"
spacingy="16"
spacingx="16"
snapvisiblegridlinesonly="true"
enabled="true"
visible="true"
empspacing="4"
id="grid2993"
type="xygrid" />
</sodipodi:namedview>
<metadata
id="metadata2990">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
inkscape:label="Layer 1"
id="layer1">
<g
transform="matrix(0.82552894,0,0,0.82552894,161.90914,13.721795)"
id="g5289">
<g
id="g5283">
<path
sodipodi:nodetypes="ccccccccccccccccccccsccccccccccccccccccccccscccccscccccccccsccc"
inkscape:connector-curvature="0"
d="m 773.81281,668.57144 c 9.31253,15.87066 19.23984,30.44159 29.7526,43.40802 0.771,1.07041 1.65891,2.07332 2.36633,3.0361 -9.73319,-1.06337 -19.46548,-7.9152 -29.06963,-20.60007 -4.8637,-6.44037 -9.27573,-13.26402 -13.21172,-20.44587 l -2.84599,-5.4294 c -2.74665,-5.45534 -5.23113,-11.09959 -7.47108,-16.94028 -6.19118,-15.72345 -7.47685,-26.6653 -4.25923,-32.93972 1.73575,4.32392 3.58797,8.86205 5.68339,13.28143 4.82321,-2.17847 8.51389,-1.58852 11.02472,1.97037 3.26941,4.34778 1.99482,8.74263 -3.83438,12.85867 2.64899,5.24154 5.43531,10.51998 8.42749,15.84683 M 965.71546,541.39408 c -17.11483,-27.85634 -36.21161,-51.27816 -57.26468,-70.24783 -2.44573,1.55638 -4.67139,1.62892 -6.78796,-0.19459 -2.16149,-1.63882 -3.06367,-4.27894 -2.68227,-7.83333 -9.24814,-7.59324 -18.8481,-14.21836 -28.81963,-20.16706 -22.4894,-13.15528 -42.77703,-20.11949 -61.3309,-20.66574 -1.01847,5.61096 -2.8886,8.1918 -5.86092,7.7861 -3.09006,-0.35215 -4.93514,-2.76542 -5.60541,-7.08385 -9.72592,1.0542 -18.93825,4.07797 -27.48809,9.01422 -19.26473,11.1225 -31.70663,29.54251 -37.28965,55.41244 5.21288,0.33897 7.33285,2.47086 6.40587,6.65779 -0.42574,2.6851 -3.09231,3.28645 -7.88245,2.09719 -1.36929,8.68583 -1.85791,18.1045 -1.73171,28.0631 0.20285,22.99133 4.00234,46.17224 11.01205,69.63592 -12.10488,8.51873 -15.77653,25.85174 -10.91271,51.91113 2.35413,12.36841 6.40684,23.92398 12.14707,34.66435 l 2.274,4.06368 c 7.73977,13.2114 18.13982,25.15207 31.20355,35.85862 14.87902,12.07873 31.55637,17.49725 50.3449,16.07493 10.65613,10.56197 21.7131,19.9832 33.52163,28.06117 2.58462,-6.0533 5.28802,-8.20589 8.004,-6.13666 2.58991,1.85335 2.94894,6.1927 1.08256,12.43754 1.83132,1.06445 3.69475,2.13201 5.46358,3.0882 37.60041,22.21332 69.76337,26.5937 96.43395,13.02851 -1.85725,-5.32186 -2.238,-8.30633 -1.09809,-8.96446 2.40647,-2.15436 5.08028,-0.19069 7.71828,5.43097 24.07447,-15.42936 36.60567,-43.17464 37.61907,-83.27935 -2.4695,-0.85478 -3.9408,-1.84563 -4.4539,-3.52683 0.09,-2.47677 1.6953,-3.40365 4.682,-2.70312 -0.1938,-0.33559 -0.1527,-0.79951 -0.1181,-1.26697 -0.297,-36.31703 -9.4568,-73.75975 -27.32176,-112.07275 -3.13606,-0.16682 -5.34329,-1.31734 -6.59329,-3.48241 -1.5125,-2.61973 -0.99069,-4.89842 1.61362,-6.70513 -1.66124,-3.28566 -3.42974,-6.58733 -5.25755,-9.91884 z m -1.48261,25.68205 c 21.2787,39.52627 32.34441,77.71366 33.4109,114.61938 1.16057,39.91767 -9.92803,66.53415 -33.18406,79.96103 -23.25494,13.42625 -51.95696,9.78289 -85.94856,-11.17978 -7.2198,-4.34756 -13.98881,-9.23684 -20.7442,-14.61752 -0.24492,-0.16171 -0.53297,-0.43563 -0.77789,-0.59734 l -6.71889,-5.57495 c -21.49824,-18.58508 -40.6758,-42.29165 -57.74905,-71.0868 l -4.14063,-7.17177 c -8.60376,-15.26749 -15.62786,-30.28352 -21.29427,-45.00776 -5.2026,-14.01368 -9.14151,-27.69607 -11.8473,-41.33263 -2.2417,-11.78273 -3.55106,-23.48311 -3.94652,-34.96057 -1.08965,-39.79983 10.09987,-66.48902 33.35481,-79.91527 23.25603,-13.42687 51.85713,-9.71081 85.77781,11.13402 31.7497,19.64629 59.52686,48.71237 83.30366,87.47367 z"
style="fill:url(#linearGradient5298);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path3024" />
<path
sodipodi:nodetypes="ccccccccccccscccc"
inkscape:connector-curvature="0"
d="m 806.64313,651.06023 0.65318,1.31885 5.95896,9.00871 c 3.40066,4.57512 7.06185,8.25648 11.12341,11.07882 6.35431,4.68848 11.61273,5.88884 15.60186,3.58571 0.22842,-0.13187 0.44901,-0.2448 0.72234,-0.56137 3.11122,-2.24371 2.76067,-6.00339 -1.33308,-11.24646 -4.34674,-5.68878 -9.19391,-12.79182 -14.71949,-21.3074 -0.24356,-0.3753 -0.47313,-0.73291 -0.71037,-1.10541 l -5.351,-9.14321 c -2.46544,-4.62383 -4.4346,-9.01924 -5.95822,-13.19493 -2.34651,-6.69927 -5.226,-9.30919 -8.72472,-7.73665 l -0.78483,0.45312 c -3.98913,2.30313 -5.62568,7.37604 -4.80499,15.11503 0.47594,5.03684 1.88662,10.14022 4.07971,15.25376 l 0.0625,0.10825 c 1.33064,2.79106 2.59145,5.58212 4.18474,8.37318 z"
style="fill:#4c5f67;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path3022" />
<path
sodipodi:nodetypes="ccsccccccsccccsccccccsccc"
inkscape:connector-curvature="0"
d="m 949.61198,551.37704 c -22.8309,-37.27735 -49.24936,-65.50811 -79.37993,-84.61506 -32.1881,-20.47394 -59.30554,-24.25273 -81.07851,-11.6821 -21.65929,12.505 -31.83723,37.81629 -30.314,75.9946 0.43012,11.01 1.76211,22.25707 4.21573,33.61435 2.60186,12.93157 6.44915,26.19776 11.61875,39.62427 1.25675,3.22927 2.51796,6.44874 4.02071,9.83908 l 0.86296,-0.3178 c -1.0356,-5.47871 -1.67491,-11.06353 -1.65126,-16.54758 -0.19858,-19.03894 5.4094,-31.99063 16.80955,-38.57251 11.51164,-6.64625 25.42387,-4.96456 41.80954,4.72876 13.64796,8.18306 25.7638,20.04558 36.22985,35.62693 l 7.67688,12.67176 c 10.55577,19.23967 15.89048,37.83048 16.18702,55.78674 0.20183,19.03707 -5.3604,31.81801 -16.87204,38.46426 -11.40015,6.58187 -25.35813,5.07094 -41.74705,-4.62051 -3.48432,-2.08751 -6.74515,-4.33293 -9.90713,-6.90965 l -0.24664,0.32281 c 10.15598,12.06317 21.1017,23.38171 33.11749,33.92367 0.30633,0.27059 0.5278,0.42418 0.84038,0.70559 6.32806,5.16552 12.86671,9.92078 19.72276,14.16081 32.30177,20.40831 59.38908,24.38492 81.04838,11.87992 21.77296,-12.57063 31.98103,-38.07973 30.34413,-76.19242 -1.40626,-35.24672 -12.42558,-71.83901 -32.95964,-109.90027 z"
style="fill:url(#radialGradient5300);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path11394" />
<path
sodipodi:nodetypes="csccsccsccscccscccccccscccccccccccccccccccc"
id="path5849"
d="M 1063.3307,481.9687 C 1033.1394,433.41082 996.07733,395.31989 958.83377,372.16215 943.90799,362.88142 928.94883,355.9839 914.24161,351.86376 l 5.35012,19.39168 c 9.20393,3.60694 18.72855,8.39698 28.317,14.35899 34.93961,21.72516 70.97147,58.51072 100.30007,105.66229 l 12.9333,22.33865 c 26.6684,49.43987 40.7838,99.59392 42.1416,141.11645 0.3679,11.25026 -0.236,21.86091 -1.7003,31.61736 l 14.2536,13.31304 c 3.5992,-14.53291 5.1207,-30.49674 4.5593,-47.66561 -1.4468,-44.24151 -16.146,-95.93055 -43.5896,-146.81179 z m -23.0732,14.22346 c -29.3491,-47.42897 -65.47113,-84.63165 -101.76433,-107.19846 -5.57616,-3.46722 -11.17271,-6.48519 -16.7395,-9.24367 l 6.11104,22.27213 c 34.05348,21.17417 69.21172,57.14425 97.73089,103.21239 l 12.1208,20.93136 c 25.8075,47.88941 39.4425,96.5024 40.7577,136.71934 0.018,0.56242 -0.014,1.06499 -5e-4,1.6241 l 16.2114,15.1416 c 0.4113,-6.30898 0.6048,-12.77404 0.3863,-19.45599 -1.4013,-42.85006 -15.6169,-92.89868 -42.1774,-142.17835 z m -23.0191,14.19221 c -25.04009,-40.76231 -55.27761,-73.75715 -86.24547,-96.13146 l 7.38788,26.98369 c 23.00719,20.21694 45.41761,46.62992 64.64009,77.89747 l 11.2584,19.62507 c 18.0541,33.63135 29.9103,67.61102 35.514,98.5745 l 18.8347,17.56025 c -3.4922,-38.27565 -16.7632,-81.42329 -39.6469,-124.04549 z m -23.04623,14.20783 c -15.53,-25.64525 -33.20703,-48.0782 -51.83429,-66.77963 l 9.49539,34.57151 c 10.06474,12.41261 19.71762,25.99104 28.60862,40.67657 l 10.33762,18.28028 c 8.91594,16.87096 16.14379,33.80877 21.86859,50.37751 l 23.3617,21.83872 c -6.3462,-25.83185 -16.7048,-52.96242 -30.9886,-79.86134 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5302);fill-opacity:1;stroke:none;stroke-width:13.0685;marker:none;enable-background:accumulate"
inkscape:connector-curvature="0" />
</g>
<g
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Calibri;-inkscape-font-specification:Calibri;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient5304);fill-opacity:1;stroke:none"
id="text5271"
aria-label="Mediacore">
<path
id="path886"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 751.88904,846.89072 q -0.17288,-1.15256 -0.40339,-2.42037 0,0.51865 0.17288,-0.80679 0.17288,-1.32545 0.46102,-4.55261 0.46103,-0.63391 0.63391,-1.09493 0.23051,-0.51865 0.4034,-0.92205 -0.51865,-0.63391 -0.80679,-1.0373 -0.23052,-0.46102 -0.23052,-0.74916 0.46103,-3.51531 0.86442,-6.68484 0.0576,-0.86442 0.97968,-1.95935 0.97967,-1.09493 2.65088,-2.36275 1.32544,-1.09493 2.59326,-1.84409 1.26781,-0.74917 2.42037,-1.21019 1.55596,-0.51865 1.8441,-0.86442 0.28814,-0.34577 0.6339,-0.34577 0.92205,0 1.38307,0.92205 0.51866,0.92205 0.51866,2.76614 0,0.97968 -0.51866,2.70851 -0.46102,1.72884 -0.46102,2.53563 0,0.34577 0.0576,2.65089 0.11525,2.30512 0.28814,6.62721 0.0576,3.11191 0.86442,6.62721 0.86442,3.51531 2.18986,7.31875 1.78646,4.956 3.86107,7.434 2.07461,2.42038 4.55261,2.42038 1.95935,0 5.18651,-2.53563 3.22716,-2.53563 7.60689,-7.60689 3.34242,-3.9187 5.93567,-7.31875 2.65089,-3.40005 4.26447,-6.22381 1.49833,-2.53563 3.5153,-4.55261 2.01698,-2.01698 4.61024,-3.68819 0.80679,-0.46102 1.32544,-0.74916 0.51865,-0.28814 0.80679,-0.28814 1.03731,0 1.55596,1.55595 0.57628,1.55596 0.57628,4.61024 -0.34577,2.82377 -0.57628,5.58991 -0.51865,4.32209 -1.55596,8.98995 -0.97967,4.66787 -2.59325,9.6815 -0.8068,2.53563 -1.38307,4.43735 -0.57628,1.90172 -0.8068,3.22716 -0.11525,0.74917 -0.34576,1.90172 -0.17289,1.09493 -0.4034,2.59326 -0.57628,1.4407 -1.26781,2.8814 -0.57628,1.15256 -0.97968,2.76614 -0.34577,1.61358 -0.63391,3.74581 0,0.4034 -0.0576,1.03731 -0.0576,0.6339 -0.11526,1.32544 -1.32544,5.87805 -2.70851,11.41033 -0.11526,0.51865 -0.51865,1.32544 -0.74917,0.23051 -1.72884,0.97968 -0.92205,0.74916 -1.95935,2.0746 -1.0373,1.15256 -1.72884,1.72884 -0.69153,0.51865 -1.0373,0.51865 -0.46102,0 -0.74916,-0.28814 -0.28814,-0.28814 -0.28814,-0.97967 0.0576,-0.46103 0.17288,-0.74917 0.80679,-1.95935 1.38307,-5.64753 0.63391,-3.68819 1.15256,-9.10522 0.0576,-1.15256 0.92205,-6.22381 0.86441,-5.07126 2.53562,-14.06122 0.23052,-1.4407 0.57628,-3.5153 0.4034,-2.13224 0.97968,-4.84075 0.40339,-1.38307 0.63391,-2.36274 0.28814,-1.03731 0.28814,-1.49833 0,-0.57628 -0.23052,-0.80679 -0.17288,-0.28814 -0.57628,-0.28814 -0.34576,0 -1.26781,0.92205 -0.92205,0.86441 -2.30512,2.65088 -0.80679,0.97968 -1.67121,2.07461 -0.80679,1.09493 -1.72884,2.13223 -1.55595,1.61358 -2.88139,3.05428 l -4.26447,4.26447 q -0.57628,0.34576 -1.4407,0.86442 -0.80679,0.51865 -1.95935,1.21018 -1.09493,1.72884 -3.5153,2.99666 -2.36275,1.21018 -4.37972,1.21018 -2.42038,0 -4.66787,-1.49832 -2.18986,-1.55596 -4.26446,-4.72549 -0.92205,-1.55596 -1.8441,-3.11191 -0.86442,-1.55596 -1.90172,-3.11191 l -0.28814,0.0576 q -0.28814,0.34576 -1.09493,4.66786 -0.74916,4.32209 -1.95935,12.67814 -1.32544,8.58657 -2.01698,13.48494 -0.69153,4.89837 -0.69153,6.33907 -0.11526,1.95935 -0.74916,3.05428 -0.57628,1.03731 -1.8441,1.21019 -0.63391,0.0576 -1.78646,0.34577 -1.15256,0.23051 -2.76614,0.6339 -0.28814,-0.0576 -0.51866,-0.17288 -0.23051,-0.17288 -0.23051,-0.46102 l 0.34577,-2.13224 -0.57628,-2.18986 q 0.34577,-1.78646 0.69154,-3.45767 0.23051,-3.45768 0.40339,-6.51196 0.0576,-0.63391 0.4034,-2.13223 0.40339,-1.49833 0.40339,-2.24749 0,-0.4034 -0.17288,-1.15256 -0.17289,-0.80679 -0.17289,-1.21019 0,-3.16953 0.97968,-9.39335 1.0373,-6.22382 1.0373,-9.45098 -0.17288,-1.32544 -0.40339,-2.65089 0.28814,-2.0746 0.92204,-5.18651 0.63391,-3.11191 1.4407,-7.26112 z" />
<path
id="path888"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 810.90004,886.82688 q 0.69154,-1.21019 1.78647,-2.42038 1.09493,-1.26781 2.76614,-2.59325 0.17288,-1.15256 0.34577,-2.24749 0.17288,-1.15256 0.23051,-2.30512 0.17288,-0.80679 0.51865,-1.90172 0.40339,-1.09493 0.86442,-2.36275 0.51865,-1.26781 1.38307,-3.16953 0.92204,-1.90172 2.36274,-4.26447 1.21019,-1.32544 2.53563,-2.8814 1.32544,-1.61358 2.65089,-3.22716 0.6339,-0.51865 1.38307,-0.97968 0.74916,-0.46102 1.49832,-1.0373 0.69154,-0.23051 1.55596,-0.40339 0.86442,-0.17289 1.90172,-0.17289 1.4407,0 2.30512,0.28814 0.92204,0.28814 1.49832,0.97968 0.4034,0.46102 0.74917,1.38307 0.40339,0.92204 0.74916,2.24749 0.17288,1.15256 0.40339,2.53563 0,-0.34577 -0.23051,0.28814 -0.17288,0.6339 -0.57628,2.01697 l -0.51865,1.8441 q -0.80679,2.76614 -3.63056,6.3967 -2.82377,3.63056 -7.60688,8.29842 -0.4034,0.40339 -0.69154,1.0373 -0.28814,0.57628 -0.28814,1.26782 0,1.21018 0.4034,2.13223 0.46102,0.92205 1.26781,1.38307 0.46102,0.34577 1.4407,0.69154 1.0373,0.34576 2.42037,0.6339 2.24749,-0.17288 4.09158,-0.74916 1.8441,-0.57628 3.2848,-1.38307 0.28814,-0.17288 0.92204,-0.46102 0.63391,-0.34577 1.26782,-0.86442 0.74916,1.67121 1.32544,2.99665 0.57628,1.32544 0.92205,2.30512 -3.28479,3.22716 -5.99331,4.89837 -2.65088,1.61358 -4.89837,1.61358 -0.92205,0.57628 -2.13223,0.86442 -1.15256,0.23051 -2.76615,0.23051 -2.13223,0 -3.80344,-0.6339 -1.61358,-0.63391 -2.70851,-1.8441 -0.57628,-0.57628 -1.15256,-1.67121 -0.57628,-1.15256 -1.21019,-2.70851 -0.51865,-1.26782 -0.97967,-1.84409 -0.46103,-0.63391 -1.0373,-0.63391 -0.46103,0 -1.03731,0.46102 -0.57628,0.4034 -1.26781,1.26782 -0.23051,-0.86442 -0.80679,-2.13224 -0.57628,-1.26781 -1.49833,-3.16953 z m 18.44094,-18.72908 q -1.26782,0 -3.40005,3.34242 -2.13223,3.28479 -2.13223,4.84075 0,0.34576 0.11525,0.51865 0.17289,0.11525 0.63391,0.11525 0.63391,0 1.0373,-0.6339 0.4034,-0.69154 0.74917,-1.26782 0.6339,-0.57628 1.21018,-1.21019 0.63391,-0.69153 1.21019,-1.32544 0.69153,-0.80679 1.0373,-1.61358 0.34577,-0.80679 0.34577,-1.61358 0,-0.51865 -0.23051,-0.80679 -0.17289,-0.34577 -0.57628,-0.34577 z" />
<path
id="path890"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 839.94452,886.82688 0.34577,-0.4034 0.17288,-0.57628 q 1.0373,-1.26781 1.78647,-1.95935 0.74916,-0.74916 1.15256,-1.15256 0.28814,-0.28814 1.26781,-0.74916 0.97968,-0.46102 2.65089,-1.15256 l 0.74916,-0.46102 q 0.40339,-0.63391 1.4407,-1.8441 1.0373,-1.21018 2.478,-2.76614 0.28814,-0.34576 0.86442,-0.74916 0.57628,-0.40339 1.21018,-1.0373 1.38307,-1.32544 2.76614,-2.70851 1.38307,-1.4407 2.59326,-2.82377 0.51865,-0.51865 2.13223,-1.8441 1.61359,-1.38307 4.37973,-3.80344 0.40339,-0.28814 1.4407,-0.80679 1.0373,-0.57628 2.70851,-1.32544 0.74916,-0.34577 1.09493,-1.09493 0.40339,-0.8068 0.40339,-2.01698 0.46103,-0.74917 0.86442,-1.78647 0.46103,-1.09493 0.86442,-2.53563 0.57628,-1.78646 0.86442,-2.88139 0.34577,-1.15256 0.51865,-1.55596 0.97968,-2.59326 2.65089,-6.05093 1.67121,-3.5153 3.97632,-8.01028 1.15256,-2.36275 2.70852,-5.24415 0.97967,-1.44069 2.18986,-2.13223 1.21019,-0.74916 2.53563,-0.74916 1.0373,0 1.49832,0.80679 0.51866,0.80679 0.51866,2.36274 0,2.47801 -0.34577,4.72549 -0.34577,2.24749 -1.26782,4.20684 -0.17288,0.4034 -0.28814,1.21019 -0.11525,0.80679 -0.23051,1.95935 -0.0576,0.80679 -0.46102,1.55595 -0.34577,0.74917 -0.92205,1.38307 0,0.4034 -0.11525,0.97968 -0.11526,0.51865 -0.23052,1.26781 l -0.80679,1.03731 q -0.11525,0.34576 -0.11525,0.86442 0,0.46102 0,0.97967 0,0.34577 -0.4034,1.38307 -0.40339,0.97968 -1.21018,2.82377 -0.92205,1.95935 -1.49833,3.11191 -0.51865,1.15256 -0.57628,1.4407 -0.23051,0.28814 -0.63391,0.92204 -0.34577,0.63391 -0.86442,1.4407 l 0.17289,1.26782 -3.68819,13.25442 q 0,2.18986 0.0576,3.74582 0.0576,1.55595 0.34577,2.478 0.28813,0.97967 0.92204,2.42037 0.69154,1.38307 1.72884,2.99665 0.63391,1.09493 1.49833,1.61358 0.86442,0.46103 1.84409,0.46103 1.09493,0 2.18986,-0.57628 1.15256,-0.63391 2.30512,-1.90172 0.69153,1.49832 1.26781,2.82377 0.63391,1.32544 1.03731,2.478 -0.28814,0.17288 -1.26782,1.21018 -0.92205,0.97968 -2.478,2.82377 -0.92205,1.09493 -2.30512,1.61358 -1.32544,0.46103 -3.28479,0.46103 -4.32209,0 -7.03061,-2.24749 -2.70851,-2.24749 -3.80344,-6.74247 -0.23051,-0.92205 -0.4034,-1.61358 -0.17288,-0.69154 -0.34576,-1.26782 -0.4034,-1.09493 -1.38307,-2.36274 -0.4034,0.57628 -0.63391,0.86442 -0.69154,0.46102 -1.55595,1.32544 -0.8068,0.86442 -1.67121,2.18986 -0.17289,0.57628 -0.63391,1.4407 -0.46103,0.80679 -1.26782,1.95935 -1.84409,2.13223 -3.74581,4.32209 -1.90172,2.13224 -3.80345,4.20684 -2.59325,2.8814 -4.78311,4.20684 -2.18987,1.38307 -3.80345,1.38307 -2.88139,0 -4.26446,-1.38307 -1.38307,-1.32544 -1.38307,-4.20684 0,-1.32544 0.97967,-3.68819 0.97968,-2.42037 0.97968,-3.57293 l -0.34577,-0.92204 z m 28.98685,-16.48159 q 0,-0.28814 -0.23051,-0.86442 -0.86442,0.86442 -2.13224,2.01698 -1.26781,1.15256 -2.99665,2.53563 -0.40339,0.92204 -1.84409,2.93902 -1.4407,1.95935 -4.03396,4.89837 -0.74916,0.86442 -2.01697,2.99666 -1.26782,2.0746 -3.11191,5.12888 -0.63391,1.21019 -1.32545,2.93903 0,0.34576 0.46103,0.74916 1.72884,-0.51865 4.20684,-2.99665 2.53563,-2.53563 5.9933,-6.97298 3.57293,-4.72549 5.30177,-8.01028 1.72884,-3.34242 1.72884,-5.3594 z" />
<path
id="path892"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 888.12148,886.82688 0.34576,-0.4034 0.17289,-0.57628 q 1.55595,-2.13223 5.47465,-5.53228 3.9187,-3.45768 5.41703,-5.58991 0.57628,-0.92205 1.32544,-1.32544 0.74916,-0.4034 1.49833,-0.4034 2.01697,0 3.40004,1.03731 1.38307,0.97967 1.8441,2.99665 0.40339,1.78646 0.74916,3.63056 0.34577,1.78646 0.57628,3.63056 0.4034,1.15256 0.97967,3.5153 0.57628,2.30512 0.86442,2.65089 0.28814,0.57628 0.86442,0.86442 0.57628,0.23051 1.4407,0.23051 1.0373,0 2.13223,-0.34577 1.09493,-0.4034 2.24749,-1.32544 0.86442,-0.74917 1.78647,-1.49833 0.97967,-0.80679 1.90172,-1.55595 l 2.30512,5.30177 q -0.92205,0.92204 -2.478,2.13223 -1.49833,1.15256 -3.63056,2.70851 -2.36275,1.72884 -4.03396,2.59326 -1.67121,0.80679 -2.53563,0.80679 -5.24414,0 -6.80009,-1.21019 -1.55596,-1.21018 -3.45768,-6.74246 -0.23051,-0.46103 -0.69153,-1.09493 -0.46103,-0.63391 -1.03731,-1.49833 -0.69153,-1.32544 -1.21018,-1.95935 -0.51865,-0.69154 -0.86442,-0.69154 -0.92205,0 -2.478,1.26782 -1.55596,1.21019 -3.80345,3.68819 -0.28814,-0.74917 -0.69153,-1.78647 -0.46102,-1.0373 -0.92205,-2.42037 -0.11525,-0.34577 -0.28814,-0.63391 -0.17288,-0.28814 -0.40339,-0.46102 z m 24.08847,-45.46844 q 1.4407,0 2.07461,0.57628 0.69153,0.57628 0.69153,1.67121 -0.34577,1.61358 -0.57628,2.70851 -0.57628,2.07461 -1.0373,3.40005 -0.4034,1.32544 -0.63391,1.90172 -0.51865,1.26781 -1.4407,2.24749 -0.86441,0.92205 -2.13223,1.67121 -1.32544,0.92205 -2.24749,1.32544 -0.86442,0.34577 -1.21018,0.28814 -0.97968,-0.11525 -1.90173,-0.17288 -0.86442,-0.11526 -1.72883,-0.11526 -0.74917,-0.40339 -1.21019,-1.55595 -0.4034,-1.15256 -0.4034,-3.11191 0,-1.72884 2.07461,-4.3221 2.13223,-2.65088 3.74581,-2.82376 0.97968,-1.21019 2.30512,-2.76614 0.57628,-0.4034 1.49833,-0.63391 0.92205,-0.28814 2.13223,-0.28814 z" />
<path
id="path894"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 922.92874,884.29125 5.24414,-3.45768 q 0.28814,-0.28814 0.69153,-0.74916 0.4034,-0.51865 0.92205,-1.4407 0.40339,-0.74916 1.0373,-1.26781 0.69154,-0.51866 1.55596,-0.92205 0.46102,-0.57628 1.32544,-1.4407 0.86442,-0.86442 2.18986,-2.01698 0.63391,-0.34576 1.61358,-0.97967 0.97968,-0.69154 2.13224,-1.78647 5.24414,-4.956 9.16284,-7.434 3.97632,-2.478 6.68484,-2.478 1.49832,0 2.18986,0.63391 0.74916,0.6339 0.74916,1.78646 0,1.21019 -0.46102,2.13223 -0.4034,0.92205 -1.32544,1.55596 -1.4407,1.0373 -3.11191,2.30512 -0.92205,1.21018 -2.24749,2.59325 -1.32544,1.32545 -3.11191,2.65089 -0.57628,0.74916 -0.97968,1.32544 -0.28814,0.28814 -1.09493,1.0373 -0.80679,0.74917 -2.13223,1.72884 -0.57628,1.26782 -2.53563,3.28479 -1.90172,2.01698 -5.12888,4.84075 -0.4034,0.40339 -1.4407,1.84409 -1.03731,1.4407 -2.70852,3.80345 l 0.4034,0.51865 q 1.26781,-0.4034 2.65088,-1.38307 1.38308,-0.97968 3.05429,-2.59326 1.95934,-1.78647 3.16953,-2.8814 1.26782,-1.15255 1.78647,-1.49832 0.40339,-0.23051 0.80679,-0.46103 0.40339,-0.23051 0.92205,-0.57627 2.65088,-3.16954 4.956,-4.66787 2.30511,-1.55595 4.26446,-1.55595 1.21019,0 1.8441,0.97967 0.63391,0.92205 0.74916,2.82377 -0.11525,2.8814 -0.11525,5.53228 -0.0576,1.8441 0.97967,3.34242 1.09493,1.4407 2.82377,1.4407 0.51865,0 0.97967,-0.28814 0.51865,-0.28814 1.03731,-0.74916 0.40339,-0.51865 0.74916,-0.97968 0.40339,-0.46102 0.80679,-0.92204 0.23051,-0.11526 0.63391,-0.4034 0.46102,-0.28814 0.86442,-0.69153 0.80679,1.72883 1.32544,3.05428 0.57628,1.26781 0.86442,2.24749 -1.32544,1.21018 -2.65089,2.53563 -1.26781,1.26781 -2.70851,2.42037 -1.72884,1.32544 -3.34242,2.01698 -1.61358,0.6339 -3.22716,0.6339 -3.74582,0 -5.7628,-2.13223 -2.01697,-2.13223 -2.36274,-6.45433 0,-0.51865 -0.17289,-1.0373 -0.11525,-0.57628 -0.57628,-1.15256 -0.28813,0.28814 -0.6339,0.63391 -0.34577,0.28814 -0.80679,0.80679 -0.74917,0.57628 -1.90173,1.4407 -1.09493,0.86442 -2.59325,2.0746 -2.01698,2.07461 -3.40005,3.40005 -1.38307,1.32544 -1.95935,1.90172 -1.15256,0.97968 -2.70851,1.95935 -1.49833,0.97968 -3.40005,2.01698 -1.21019,0.63391 -2.07461,0.97967 -0.86441,0.4034 -1.26781,0.4034 -2.76614,0 -4.09158,-1.32544 -1.32545,-1.38307 -1.32545,-4.20684 0,-1.55596 0.69154,-2.93903 0.63391,-1.44069 1.95935,-2.76614 0.11525,-0.74916 0.11525,-1.21018 0,-0.28814 -0.17288,-0.57628 -0.11525,-0.34577 -0.34577,-0.74917 -0.34576,-0.80679 -0.74916,-1.78646 -0.46102,-1.0373 -0.97967,-2.18986 0.23051,-0.23052 0.69153,-0.86442 0.4034,-0.69154 0.97968,-1.67121 z" />
<path
id="path896"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 965.3429,886.82688 0.51865,-0.46103 q 0.0576,-0.6339 0.80679,-1.49832 0.74916,-0.86442 2.13223,-2.01698 0.86442,-0.63391 1.78647,-1.21019 0.97967,-0.57628 1.84409,-1.26781 3.63056,-3.11191 7.03061,-5.99331 1.95935,-1.72883 3.9187,-2.93902 1.95935,-1.26782 3.68819,-2.01698 1.21018,-1.55595 4.49498,-3.16953 3.34242,-1.61359 5.41702,-1.61359 0.80679,0 1.26782,0.46103 0.51865,0.46102 0.6339,1.15256 v 3.16953 q 0,1.67121 -0.97967,2.99665 -0.92205,1.26782 -2.82377,2.36275 -1.26782,0.57628 -2.53563,1.26781 -1.26781,0.69154 -2.53563,1.26782 -0.46102,0.57628 -2.478,2.18986 -1.95935,1.55595 -5.3594,4.20684 -1.55595,1.21018 -2.59325,2.18986 -1.03731,0.92205 -1.4407,1.49833 -0.57628,1.09493 -0.92205,2.42037 -0.28814,1.32544 -0.28814,3.05428 0,1.32544 0.4034,2.30512 0.40339,0.92204 1.21018,1.49832 0.57628,0.4034 1.55596,0.80679 1.0373,0.4034 2.53563,0.80679 0.86442,-0.34576 2.24749,-0.6339 1.44069,-0.34577 3.16953,-0.86442 1.95935,-1.15256 3.97633,-2.42037 2.0746,-1.26782 4.09158,-2.59326 0.28814,-0.17289 0.69154,-0.34577 0.46102,-0.23051 0.92204,-0.63391 0.57628,-0.74916 1.55596,-1.72883 1.03735,-0.97968 2.47795,-2.24749 2.3052,5.01363 2.3052,5.30177 -2.1323,1.72883 -4.32213,3.57293 -2.18986,1.78646 -5.01363,2.93902 -0.92205,0.74917 -1.55595,1.38307 -2.8814,2.8814 -6.74247,4.3221 -3.80344,1.49832 -8.70182,1.49832 -1.09493,0 -1.95935,-0.17288 -0.86442,-0.17288 -1.4407,-0.46102 -1.72883,-1.15256 -2.93902,-2.01698 -1.26782,-0.92205 -2.13223,-1.72884 -0.86442,-0.86442 -1.26782,-1.61358 -0.51865,-0.80679 -0.69153,-1.95935 -0.23052,-1.15256 -0.23052,-2.82377 0,-0.46102 0.28814,-1.49833 0.28814,-1.0373 0.28814,-1.44069 -0.40339,-1.26782 -0.97967,-2.59326 -0.57628,-1.32544 -1.32544,-2.70851 z" />
<path
id="path898"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 1001.7637,886.82688 q 0.4034,-0.4034 0.8645,-1.03731 0.4034,-0.69153 0.9796,-1.49832 l 4.4374,-3.05428 q 0.8068,-0.97968 2.478,-2.478 1.6712,-1.55596 4.1492,-3.74582 0.2881,-0.63391 0.9221,-1.4407 0.6915,-0.86442 1.6135,-1.67121 0.8068,-0.74916 1.6136,-1.38307 0.8068,-0.69153 1.4983,-1.32544 0.8645,-0.86442 1.6136,-1.72884 0.8068,-0.86442 1.6136,-1.67121 0.9221,-0.80679 1.9017,-1.26781 0.9797,-0.46103 2.1323,-0.46103 1.2678,0 1.9017,0.34577 0.6915,0.28814 0.7491,0.86442 -0.5762,1.32544 -1.2101,2.65089 l 0.3457,0.51865 q 2.5357,-0.97968 3.9764,-1.4407 1.4407,-0.46103 1.844,-0.46103 4.2069,0 6.2815,2.59326 2.1322,2.53563 2.1322,7.72214 0,0.97968 -0.2305,2.30512 -0.2305,1.32544 -0.7491,2.8814 -0.5763,1.72884 -1.2679,2.88139 -0.6339,1.15256 -1.2101,1.67121 0.2305,0.74917 0.5186,1.09494 0.2881,0.28814 0.7492,0.28814 0.461,0 0.922,-0.28814 0.5187,-0.28814 1.2102,-0.86442 0.5763,1.26781 1.0949,2.65088 0.5763,1.32544 1.1526,2.65089 -1.0373,0.92204 -2.017,1.78646 -0.9797,0.86442 -2.0746,1.67121 -1.3254,1.09493 -2.5356,1.61358 -1.1526,0.46103 -2.3051,0.46103 -1.3255,0 -2.1899,-0.63391 -0.8644,-0.63391 -1.3831,-1.78647 -1.4407,1.90173 -3.5153,3.51531 -2.017,1.55595 -4.495,2.59326 -1.4407,0.69153 -2.6508,1.09493 -1.1526,0.34576 -2.1323,0.34576 -0.2881,0 -1.1525,0.23052 -0.8068,0.23051 -1.3255,0.23051 -3.2848,0 -5.9357,-2.76614 -2.6508,-2.76614 -2.6508,-6.16619 0,-1.38307 0.6339,-3.63056 0.6339,-2.30512 0.6339,-2.70851 0,-0.4034 -0.2882,-0.63391 -0.2305,-0.28814 -0.6915,-0.28814 -0.2881,0 -1.3831,0.86442 -1.0949,0.86442 -3.1119,2.478 -0.1729,0.23051 -0.4034,0.69153 -0.2305,0.46103 -0.7491,1.03731 -0.4611,-1.32545 -1.0373,-2.65089 -0.5763,-1.38307 -1.2679,-2.65088 z m 27.7191,-10.54591 q -0.2882,0.0576 -0.8644,0.6339 -0.5187,0.51865 -1.0373,1.32544 -0.8068,1.32545 -1.8441,2.8814 -0.6339,0.69154 -1.3831,1.09493 -0.6915,0.34577 -1.6136,0.51865 -0.5763,0.0576 -1.2102,1.15256 -0.6339,1.0373 -1.2678,3.05428 -0.6339,1.78647 -0.922,3.05428 -0.2882,1.26782 -0.2882,2.13224 0,1.61358 0.8068,2.42037 0.8068,0.80679 2.478,0.80679 2.6509,0 4.8408,-1.4407 2.2475,-1.49832 4.2068,-4.43735 0.9221,-1.09493 1.7288,-2.0746 0.4611,-0.34577 0.7492,-1.09493 0.2881,-0.8068 0.5763,-1.95935 l 1.0373,-3.2848 q -0.5187,-1.72883 -0.9797,-2.70851 -0.461,-1.0373 -0.922,-1.26781 -0.2882,-0.17289 -1.2678,-0.34577 -0.9797,-0.23051 -2.8238,-0.46102 z" />
<path
id="path900"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 1043.4864,886.82688 q 0.922,-1.21019 1.8441,-2.53563 4.2068,-3.45768 6.8577,-6.62721 2.7085,-3.22717 3.9187,-5.99331 l -0.5763,-2.76614 q 0.7492,-1.4407 3.6882,-3.40005 2.9967,-1.95935 4.8407,-1.95935 1.9594,0 3.2848,1.15256 1.3831,1.15256 2.6509,2.42037 0.6339,0.4034 0.9221,0.63391 2.3051,1.72884 3.4576,4.78312 1.1526,3.05428 1.1526,7.434 0,2.30512 -1.7865,6.62721 -1.7864,4.26447 -1.7864,6.45433 0,0.28814 0.1729,0.46103 0.2305,0.17288 0.5762,0.17288 0.7492,0 1.7865,-0.63391 1.0373,-0.69153 2.2475,-1.84409 3.0543,-2.99665 3.6882,-3.28479 0.6339,-0.34577 1.5559,-1.09493 0.4611,1.15256 1.095,2.478 0.6339,1.32544 1.2102,2.82377 -0.5187,0.46102 -1.2102,1.09493 -0.6339,0.6339 -1.556,1.4407 -1.9593,1.44069 -5.1289,3.5153 -3.1119,2.01698 -7.4916,4.66786 -1.1526,0.74916 -2.6509,1.21019 -2.4204,0 -3.6306,-0.69154 -1.2101,-0.74916 -1.2101,-2.36274 0,-0.63391 0.2305,-1.4407 0.2881,-0.86442 0.7491,-1.84409 0.3458,-0.74917 0.7492,-1.49833 0.4034,-0.80679 0.6915,-1.61358 1.2678,-3.63056 1.9018,-6.74247 0.6915,-3.11191 0.6915,-5.58991 0,-3.05428 -0.9797,-4.66786 -0.922,-1.61358 -2.8238,-1.8441 -1.2678,0.69154 -2.7661,1.95935 -1.4983,1.26782 -3.0543,3.16954 -1.6712,2.07461 -2.9966,3.40005 -1.3255,1.32544 -2.1899,1.78646 -0.5186,0.86442 -1.6712,1.95935 -1.1526,1.09493 -3.0543,2.36275 -0.1152,0.23051 -0.3457,0.69153 -0.2306,0.46103 -0.7492,1.03731 -0.461,-1.32545 -1.0373,-2.59326 -0.5763,-1.32544 -1.2678,-2.70851 z" />
<path
id="path902"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:118.022px;line-height:1.25;font-family:Mistral;-inkscape-font-specification:Mistral;fill:url(#linearGradient5304);fill-opacity:1"
d="m 1081.9818,886.82688 q 0.6916,-1.21019 1.7865,-2.42038 1.0949,-1.26781 2.7661,-2.59325 0.1729,-1.15256 0.3458,-2.24749 0.1729,-1.15256 0.2305,-2.30512 0.1729,-0.80679 0.5187,-1.90172 0.4034,-1.09493 0.8644,-2.36275 0.5186,-1.26781 1.3831,-3.16953 0.922,-1.90172 2.3627,-4.26447 1.2102,-1.32544 2.5356,-2.8814 1.3255,-1.61358 2.6509,-3.22716 0.6339,-0.51865 1.3831,-0.97968 0.7491,-0.46102 1.4983,-1.0373 0.6915,-0.23051 1.556,-0.40339 0.8644,-0.17289 1.9017,-0.17289 1.4407,0 2.3051,0.28814 0.9221,0.28814 1.4983,0.97968 0.4034,0.46102 0.7492,1.38307 0.4034,0.92204 0.7492,2.24749 0.1728,1.15256 0.4034,2.53563 0,-0.34577 -0.2306,0.28814 -0.1728,0.6339 -0.5762,2.01697 l -0.5187,1.8441 q -0.8068,2.76614 -3.6306,6.3967 -2.8237,3.63056 -7.6068,8.29842 -0.4034,0.40339 -0.6916,1.0373 -0.2881,0.57628 -0.2881,1.26782 0,1.21018 0.4034,2.13223 0.461,0.92205 1.2678,1.38307 0.461,0.34577 1.4407,0.69154 1.0373,0.34576 2.4204,0.6339 2.2475,-0.17288 4.0916,-0.74916 1.844,-0.57628 3.2847,-1.38307 0.2882,-0.17288 0.9221,-0.46102 0.6339,-0.34577 1.2678,-0.86442 0.7492,1.67121 1.3254,2.99665 0.5763,1.32544 0.9221,2.30512 -3.2848,3.22716 -5.9933,4.89837 -2.6509,1.61358 -4.8984,1.61358 -0.922,0.57628 -2.1322,0.86442 -1.1526,0.23051 -2.7662,0.23051 -2.1322,0 -3.8034,-0.6339 -1.6136,-0.63391 -2.7085,-1.8441 -0.5763,-0.57628 -1.1526,-1.67121 -0.5763,-1.15256 -1.2102,-2.70851 -0.5186,-1.26782 -0.9796,-1.84409 -0.4611,-0.63391 -1.0373,-0.63391 -0.4611,0 -1.0373,0.46102 -0.5763,0.4034 -1.2679,1.26782 -0.2305,-0.86442 -0.8067,-2.13224 -0.5763,-1.26781 -1.4984,-3.16953 z m 18.441,-18.72908 q -1.2678,0 -3.4001,3.34242 -2.1322,3.28479 -2.1322,4.84075 0,0.34576 0.1152,0.51865 0.1729,0.11525 0.6339,0.11525 0.634,0 1.0374,-0.6339 0.4033,-0.69154 0.7491,-1.26782 0.6339,-0.57628 1.2102,-1.21019 0.6339,-0.69153 1.2102,-1.32544 0.6915,-0.80679 1.0373,-1.61358 0.3458,-0.80679 0.3458,-1.61358 0,-0.51865 -0.2306,-0.80679 -0.1728,-0.34577 -0.5762,-0.34577 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -1,6 +1,6 @@
# License for this source file
#
# Copyright (c) 2014 Miqra Engineering
# Copyright (c) 2021 Miqra Engineering
#
import sys, os
@ -9,12 +9,22 @@ import signal
from optparse import OptionParser
from collections import OrderedDict
from .resources import Resources
# perform gstreamer imports (python3 style)
import gi
gi.require_version('Gst','1.0')
gi.require_version('Gst', '1.0')
gi.require_version('Gtk', '3.0')
gi.require_version('GstGL', '1.0')
gi.require_version('GstVideo', '1.0')
gi.require_version('GdkPixbuf', '2.0')
from gi.repository import GObject
from gi.repository import Gst
from gi.repository import Gst, GstGL, GstVideo
from gi.repository import GdkPixbuf
from gi.repository import GLib, Gio, Gtk, Gdk
from gi.repository import GdkX11
Gst.init(None)
# perform dbus imports
@ -26,15 +36,19 @@ from dbus.mainloop.glib import DBusGMainLoop
DBusGMainLoop(set_as_default=True)
# imports from module
from monitoredplayer import MonitoredPlayer
from . monitoredplayer import MonitoredPlayer
class MediaService(dbus.service.Object):
def __init__(self):
bus_name = dbus.service.BusName('nl.miqra.MediaCore.Media', bus=dbus.SystemBus())
dbus.service.Object.__init__(self, bus_name, '/nl/miqra/MediaCore/Media')
self.window = Gtk.Window(title="MediaServer")
self.windowInit()
self.player = MonitoredPlayer()
self.player.connect('playback-ready',self.onPlayerReady) # parameters: source_file tag_dict
@ -46,46 +60,110 @@ class MediaService(dbus.service.Object):
self.player.connect('volume-changed',self.onPlayerVolumeChanged) # parameters: volume
self.player.connect('playback-buffering',self.onPlayerBuffering) # parameters: volume
self.loadcount = 0;
self.loadmax = 1;
self.window.connect('show',self.onWindowShow)
self.loadcount = 0
self.loadmax = 1
self.quickplay = False
self.quickplayduration = 0
self.quickplayloop = False
self.window.show()
self.tick()
# Keepalive timer to help react to Keyboard interrupts
def tick(self):
GObject.timeout_add(100, self.tick)
def windowInit(self):
self.window.set_name("mainwindow")
self.imagebox = Gtk.Box()
self.imagebox.set_name("imbox")
self.imagebox.set_hexpand(True)
self.imagebox.set_vexpand(True)
self.imagebox.set_halign(Gtk.Align.CENTER)
self.imagebox.set_valign(Gtk.Align.CENTER)
css = b"""
#mainwindow
{
background-color: #000;
}
"""
css_provider = Gtk.CssProvider()
css_provider.load_from_data(css)
context = Gtk.StyleContext()
screen = Gdk.Screen.get_default()
context.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
self.window.add(self.imagebox)
self.window.fullscreen()
pass
def loadImage(self,image):
# remove any existing children
for child in self.imagebox.get_children():
self.imagebox.remove(child)
self.imagebox.add(image)
self.imagebox.show_all()
def loadImageFile(self,imfile):
print("Loading image {0}".format(imfile))
image = Gtk.Image()
image.set_from_file(imfile)
self.loadImage(image)
def loadImageData(self,data):
print("Loading image from data")
loader = GdkPixbuf.PixbufLoader.new()
loader.write(data)
pixbuf = loader.get_pixbuf()
loader.close()
image = Gtk.Image()
image.set_from_pixbuf(pixbuf)
self.loadImage(image)
def onWindowShow(self,w):
xid = self.window.get_window().get_xid()
print("Retrieved XID for window: {0}".format(xid))
self.player.link_to_window(xid)
self.loadBaseImage()
def loadBaseImage(self):
self.loadImageFile(Resources.filename("images/background-base.svg"))
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='')
def QuickPlay(self, file,):
""" Directly play back a local file
"""
if self.loadcount < self.loadmax:
print "Quickplaying file {0}".format(file)
print("Quickplaying file {0}".format(file))
self.quickplay = True
self.quickplayduration = 0
self.quickplayloop = False
self.player.load(file)
self.loadcount += 1;
self.loadcount += 1
else:
print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax);
print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax))
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='sd', out_signature='')
def QuickPlayFor(self, file, duration):
""" Directly play back a local file
"""
if self.loadcount < self.loadmax:
print "Quickplaying file {0} for {1} seconds".format(file,duration)
print("Quickplaying file {0} for {1} seconds".format(file,duration))
self.quickplay = True
self.quickplayduration = duration
self.quickplayloop = False
self.player.load(file)
self.loadcount += 1;
self.loadcount += 1
else:
print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax);
print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax))
# self.quickplayer.playfor(file,duration)
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='')
@ -93,56 +171,56 @@ class MediaService(dbus.service.Object):
""" Directly play back a url
"""
if self.loadcount < self.loadmax:
print "Quickplaying file {0}".format(file)
print("Quickplaying file {0}".format(file))
self.quickplay = True
self.quickplayduration = 0
self.quickplayloop = False
self.player.load_uri(file)
self.loadcount += 1;
self.loadcount += 1
else:
print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax);
print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax))
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='sd', out_signature='')
def QuickPlayUrlFor(self, url, duration):
""" Directly play back a url
"""
if self.loadcount < self.loadmax:
print "Quickplaying file {0} for {1} seconds".format(file,duration)
print("Quickplaying file {0} for {1} seconds".format(file,duration))
self.quickplay = True
self.quickplayduration = duration
self.quickplayloop = False
self.player.load_uri(file)
self.loadcount += 1;
self.loadcount += 1
else:
print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax);
print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax))
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='')
def QuickLoop(self, file,):
""" Directly play back a url
"""
if self.loadcount < self.loadmax:
print "Quickplaying file {0}".format(file)
print("Quickplaying file {0}".format(file))
self.quickplay = True
self.quickplayduration = 0
self.quickplayloop = True
self.player.load(file)
self.loadcount += 1;
self.loadcount += 1
else:
print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax);
print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax))
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='')
def QuickLoopUrl(self, url,):
""" Directly play back a url
"""
if self.loadcount < self.loadmax:
print "Quickplaying url {0}".format(uri)
print("Quickplaying url {0}".format(uri))
self.quickplay = True
self.quickplayduration = 0
self.quickplayloop = True
self.player.load_uri(url)
self.loadcount += 1;
self.loadcount += 1
else:
print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax);
print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax))
@ -152,32 +230,32 @@ class MediaService(dbus.service.Object):
""" Load a local file for playback
"""
if self.loadcount < self.loadmax:
print "Loading file {0}".format(file)
print("Loading file {0}".format(file))
self.quickplay = False
self.player.load(file)
self.loadcount += 1;
self.loadcount += 1
self.OnLoading("file://{0}".format(file))
else:
print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax);
print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax))
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='')
def LoadUrl(self, uri):
""" Load an url for playback
"""
if self.loadcount < self.loadmax:
print "Loading url {0}".format(uri)
print("Loading url {0}".format(uri))
self.quickplay = False
self.player.load_uri(uri)
self.loadcount += 1;
self.OnLoading(uri)
else:
print "Skipping load of url {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(uri,self.loadmax);
print("Skipping load of url {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(uri,self.loadmax))
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='d', out_signature='')
def PlayFor(self, duration):
""" Starts playback for [duration] seconds
"""
print "Starting playback for {0} seconds".format(duration)
print("Starting playback for {0} seconds".format(duration))
self.player.playfor(duration)
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='')
@ -185,7 +263,7 @@ class MediaService(dbus.service.Object):
""" Starts/resumes playback
"""
pos = self.player.position()
print "Starting playback at timestamp {0}".format(pos)
print("Starting playback at timestamp {0}".format(pos))
self.player.play()
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='')
@ -193,21 +271,21 @@ class MediaService(dbus.service.Object):
""" Starts/resumes playback
"""
pos = self.player.position()
print "Starting playback at timestamp {0}".format(pos)
print("Starting playback at timestamp {0}".format(pos))
self.player.loop()
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='')
def Pause(self):
""" Pauses playback
"""
print "Pausing"
print("Pausing")
self.player.pause()
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='')
def Stop(self):
""" Stops playback
"""
print "Stopping"
print("Stopping")
self.player.stop()
@dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='d')
@ -230,18 +308,26 @@ class MediaService(dbus.service.Object):
### Callback functions
def onPlayerReady(self,player,filename,tags):
print "Loaded {0}".format(filename)
print "Tags:"
print("Loaded {0}".format(filename))
print("Tags:")
taglist = {}
for tag in tags:
try:
taglist[tag] = str(tags[tag])
print " {0}: {1}".format(tag,taglist[tag])
print(" {0}: {1}".format(tag,taglist[tag]))
except Exception as x:
print "Error converting value for '{0}':\n {1}".format(tag,x)
print("Error converting value for '{0}':\n {1}".format(tag,x))
# extract cover art from tags
if "image" in tags:
buffer = tags["image"].get_buffer() # Gst.Buffer
(result, mapinfo) = buffer.map(Gst.MapFlags.READ)
if result:
self.loadImageData(mapinfo.data)
# reset load counter
self.loadcount = 0;
self.loadcount = 0
if self.quickplay:
if self.quickplayloop:
@ -261,21 +347,23 @@ class MediaService(dbus.service.Object):
self.OnPlaying()
def onPlayerStopped(self,player):
self.loadBaseImage()
self.OnStopped()
def onPlayerPaused(self,player):
self.OnPaused()
def onPlayerFinished(self,player):
self.loadBaseImage()
self.OnFinished()
def onPlayerError(self,player,state,error,debug):
print "Player state: {0}".format(state)
print("Player state: {0}".format(state))
if state == "LOADING":
print "Failure during LOAD: {0}".format(error)
print("Failure during LOAD: {0}".format(error))
self.OnLoadFail(error)
else:
print "Failure during RUN: {0}".format(error)
print("Failure during RUN: {0}".format(error))
self.OnRunFail(error)
def onPlayerVolumeChanged(self,player,volume):
@ -348,19 +436,27 @@ class MediaService(dbus.service.Object):
pass
def Run():
print("Initializing")
# quick bugfix - set XDG runtime dir if it has not been set
if not 'XDG_RUNTIME_DIR' in os.environ:
os.environ['XDG_RUNTIME_DIR'] = "/run/user/{0}".format(os.getuid())
mediaservice = MediaService()
loop = GObject.MainLoop()
loopcontext = loop.get_context()
def onsigint(signal,frame):
print "Quitting"
print("Quitting")
loop.quit()
signal.signal(signal.SIGINT, onsigint)
print "Starting..."
print("Starting..." )
try:
loop.run()
except KeyboardInterrupt:
print "Quitting"
loop.quit()
print("Quitting")
loop.quit()

View File

@ -8,9 +8,9 @@ from threading import Thread
import time
# import from this module
from basicplayer import BasicPlayer
from . basicplayer import BasicPlayer
class MonitorThread:#(Thread):
class Monitor:
def __init__(self,player):
self.player = player
#Thread.__init__(self)
@ -34,8 +34,8 @@ class MonitorThread:#(Thread):
if self.player.playtime > 0:
if (position - self.player.startpos) > self.player.playtime:
#self._player.pause(notify=False)
print "Finished limited play"
self.player._finished()
print("Finished limited play")
self.player.finished()
if self._running and time is not None:
GObject.timeout_add(100, self.run)
@ -44,7 +44,7 @@ class MonitoredPlayer(BasicPlayer):
def __init__(self):
BasicPlayer.__init__(self)
# setup monitor thread
self.monitor = MonitorThread(self)
self.monitor = Monitor(self)
self.monitor.start()
self.playtime = -1
self.looping=False
@ -82,7 +82,7 @@ class MonitoredPlayer(BasicPlayer):
#self.monitor.stop()
def _finished(self):
def finished(self):
if self.looping:
print("Finished - looping")
self.seek(0)
@ -90,7 +90,7 @@ class MonitoredPlayer(BasicPlayer):
self.player_state = "PLAYING"
self.pipeline.set_state(Gst.State.PLAYING)
else:
BasicPlayer._finished(self)
BasicPlayer.finished(self)
GObject.type_register(MonitoredPlayer)

59
mediaserver/resources.py Normal file
View File

@ -0,0 +1,59 @@
# License for this source file
#
# Copyright (c) 2014 Miqra Engineering
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE
import os,sys
import pkg_resources
class Resources(object): # needs to be explicitly subclassed from object to get the __new__ method to work
PACKAGE = __name__
@classmethod
def SetPackage(cls, package):
"""
Set the package from which to load localization data
"""
cls.PACKAGE = package
pass
@classmethod
def string_from(cls,path):
return pkg_resources.resource_string(cls.PACKAGE, path)
@classmethod
def filename(cls,path):
return pkg_resources.resource_filename(cls.PACKAGE, path)
@classmethod
def stream_from(cls,path):
return pkg_resources.resource_stream(cls.PACKAGE, path)
@classmethod
def isdir(cls,path):
return pkg_resources.resource_isdir(cls.PACKAGE,path)
@classmethod
def exists(cls,path):
return pkg_resources.resource_exists(cls.PACKAGE,path)
@classmethod
def listdir(cls,path):
return pkg_resources.resource_listdir(cls.PACKAGE,path)

View File

@ -30,7 +30,7 @@ class TestController:
GObject.timeout_add(10, self.tick)
def tick(self):
self.player.QuickLoop("/opt/src/robotvideo/ogen open.mp4")
self.player.QuickPlay(sys.argv[1])
#GObject.timeout_add(3000, self.reboot)
pass
@ -85,6 +85,6 @@ def signalSIGTERM(self,signum):
signal.signal(signal.SIGTERM, signalSIGTERM)
controller = TestController()
controller.Start();
controller.Start()