Hello community,

here is the log from the commit of package museic for openSUSE:Factory checked 
in at 2018-08-24 17:11:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/museic (Old)
 and      /work/SRC/openSUSE:Factory/.museic.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "museic"

Fri Aug 24 17:11:52 2018 rev:5 rq:631169 version:2.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/museic/museic.changes    2018-07-09 
13:27:09.971008557 +0200
+++ /work/SRC/openSUSE:Factory/.museic.new/museic.changes       2018-08-24 
17:11:52.906626217 +0200
@@ -1,0 +2,16 @@
+Tue Aug 14 18:26:08 UTC 2018 - avvi...@yandex.by
+
+- Update to 2.0.2:
+  * Change screenshots and version
+  * Add more help
+  * Avoid ports below 1024
+  * Allow server customize port
+  * Server uses configured ports
+  * Basic dummy conf menu
+  * Use granite seekbar as streambar
+  * revert changes of config.vala file
+  * design changes
+- Remove obsolete macros
+- Build with granite >= 0.5
+
+-------------------------------------------------------------------

Old:
----
  MuseIC-2.0.1.tar.gz

New:
----
  MuseIC-2.0.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ museic.spec ++++++
--- /var/tmp/diff_new_pack.mWSoNo/_old  2018-08-24 17:11:53.346626741 +0200
+++ /var/tmp/diff_new_pack.mWSoNo/_new  2018-08-24 17:11:53.350626746 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package museic
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,10 +17,10 @@
 
 
 Name:           museic
-Version:        2.0.1
+Version:        2.0.2
 Release:        0
 Summary:        Audio player with remote control
-License:        GPL-3.0
+License:        GPL-3.0-only
 Group:          Productivity/Multimedia/Sound/Players
 URL:            https://github.com/bcedu
 Source:         
https://github.com/bcedu/MuseIC/archive/%{version}.tar.gz#/MuseIC-%{version}.tar.gz
@@ -35,10 +35,9 @@
 BuildRequires:  pkgconfig(dbus-glib-1)
 BuildRequires:  pkgconfig(gio-2.0)
 BuildRequires:  pkgconfig(gmodule-2.0)
-BuildRequires:  pkgconfig(granite)
+BuildRequires:  pkgconfig(granite) >= 0.5
 BuildRequires:  pkgconfig(gstreamer-1.0)
 BuildRequires:  pkgconfig(gtk+-3.0)
-%glib2_gsettings_schema_requires
 
 %description
 MuseIC is a fast and simple music player with remote control from any
@@ -47,8 +46,6 @@
 %prep
 %setup -q -n MuseIC-%{version}
 
-sed -i 's/\bmetainfo\b/appdata/' $(grep -rwl 'metainfo')
-
 %build
 %cmake \
     -DGSETTINGS_COMPILE=OFF
@@ -63,24 +60,14 @@
 %suse_update_desktop_file -r com.github.bcedu.museic GTK AudioVideo Music 
Player
 %fdupes %{buildroot}/%{_datadir}
 
-%post
-%desktop_database_post
-%icon_theme_cache_post
-%glib2_gsettings_schema_post
-
-%postun
-%desktop_database_postun
-%icon_theme_cache_postun
-%glib2_gsettings_schema_postun
-
 %files
-%doc AUTHORS LICENSE README.md
+%license LICENSE
+%doc AUTHORS README.md
 %{_bindir}/com.github.bcedu.museic
-%dir %{_datadir}/appdata
-%{_datadir}/appdata/com.github.bcedu.museic.appdata.xml
 %{_datadir}/applications/com.github.bcedu.museic.desktop
 %{_datadir}/com.github.bcedu.museic/
 %{_datadir}/glib-2.0/schemas/com.github.bcedu.museic.gschema.xml
 %{_datadir}/icons/hicolor/*/apps/com.github.bcedu.museic.??g
+%{_datadir}/metainfo/com.github.bcedu.museic.appdata.xml
 
 %changelog

++++++ MuseIC-2.0.1.tar.gz -> MuseIC-2.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/.gitignore new/MuseIC-2.0.2/.gitignore
--- old/MuseIC-2.0.1/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/MuseIC-2.0.2/.gitignore 2018-08-13 16:05:08.000000000 +0200
@@ -0,0 +1 @@
+/build/*
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/CMakeLists.txt 
new/MuseIC-2.0.2/CMakeLists.txt
--- old/MuseIC-2.0.1/CMakeLists.txt     2018-06-14 20:28:05.000000000 +0200
+++ new/MuseIC-2.0.2/CMakeLists.txt     2018-08-13 16:05:08.000000000 +0200
@@ -17,7 +17,7 @@
 
 set (EXEC_NAME "com.github.bcedu.museic")
 set (RELEASE_NAME "MuseIC")
-set (VERSION "1.2")
+set (VERSION "2.0.2")
 set (VERSION_INFO "MuseIC beta version")
 set (ICON "${PKGDATADIR}/data/icons/com.github.bcedu.museic.svg")
 set (HTMLDIR "${PKGDATADIR}/data/html/")
Binary files old/MuseIC-2.0.1/data/artists_search.png and 
new/MuseIC-2.0.2/data/artists_search.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/MuseIC-2.0.1/data/com.github.bcedu.museic.appdata.xml 
new/MuseIC-2.0.2/data/com.github.bcedu.museic.appdata.xml
--- old/MuseIC-2.0.1/data/com.github.bcedu.museic.appdata.xml   2018-06-14 
20:28:05.000000000 +0200
+++ new/MuseIC-2.0.2/data/com.github.bcedu.museic.appdata.xml   2018-08-13 
16:05:08.000000000 +0200
@@ -45,6 +45,24 @@
         </screenshot>
     </screenshots>
     <releases>
+        <release version="2.0.2" date="2018-07-13">
+            ​<description>
+                ​<p>MuseIC Release</p>
+                <ul>
+                    <li> UI changes to make it more "elementary style"</li>
+                    <li> Added artists search bar</li>
+                    <li> Added files search bar</li>
+                    <li> Added button to edit metadata: name, artist and album 
(only for the museic library) </li>
+                    <li> Added button to delete files from the filelist </li>
+                    <li> Improved artists list with scrollbar</li>
+                    <li> Show the duration of each file in the filelist and 
playlist </li>
+                    <li> Show artist's playlist by clicking current artist 
</li>
+                    <li> Pressing the name of the current song brings you the 
current filelist and scrolls you to the song </li>
+                    <li> Hit "space" to make play / pause </li>
+                    <li> Hit right / left change song </li>
+                </ul>
+            ​</description>
+        </release>
         <release version="2.0.0" date="2018-05-12">
             ​<description>
                 ​<p>MuseIC Release</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/data/com.github.bcedu.museic.glade 
new/MuseIC-2.0.2/data/com.github.bcedu.museic.glade
--- old/MuseIC-2.0.1/data/com.github.bcedu.museic.glade 2018-06-14 
20:28:05.000000000 +0200
+++ new/MuseIC-2.0.2/data/com.github.bcedu.museic.glade 2018-08-13 
16:05:08.000000000 +0200
@@ -15,12 +15,59 @@
     <property name="step_increment">0.001</property>
     <property name="page_increment">0.10000000000000001</property>
   </object>
+  <object class="GtkScale" id="scalebar">
+    <property name="visible">True</property>
+    <property name="can_focus">True</property>
+    <property name="hexpand">False</property>
+    <property name="adjustment">adjustment</property>
+    <property name="round_digits">2</property>
+    <property name="digits">2</property>
+    <property name="draw_value">False</property>
+    <signal name="change-value" handler="museic_gui_action_change_time" 
swapped="no"/>
+  </object>
   <object class="GtkAdjustment" id="adjustment-volum">
     <property name="upper">2</property>
     <property name="value">1</property>
     <property name="step_increment">0.001</property>
     <property name="page_increment">0.10000000000000001</property>
   </object>
+  <object class="GtkBox" id="boxFileTitle">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="valign">center</property>
+    <property name="vexpand">True</property>
+    <child>
+      <object class="GtkSearchEntry" id="searchentry_files">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="halign">start</property>
+        <property name="valign">start</property>
+        <property name="primary_icon_name">edit-find-symbolic</property>
+        <property name="primary_icon_activatable">False</property>
+        <property name="primary_icon_sensitive">False</property>
+        <signal name="activate" handler="museic_gui_action_search_files" 
swapped="no"/>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">False</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+  </object>
+  <object class="GtkToolButton" id="config">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="label" translatable="yes">toolbutton1</property>
+    <property name="use_underline">True</property>
+    <property name="stock_id">gtk-properties</property>
+    <signal name="clicked" handler="museic_gui_action_show_config" 
swapped="no"/>
+  </object>
   <object class="GtkGrid" id="editGrid">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -241,8 +288,13 @@
   <object class="GtkImage" id="image2">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="halign">center</property>
+    <property name="valign">center</property>
+    <property name="xpad">2</property>
+    <property name="pixel_size">0</property>
     <property name="icon_name">format-indent-more-symbolic</property>
     <property name="use_fallback">True</property>
+    <property name="icon_size">2</property>
   </object>
   <object class="GtkImage" id="image4">
     <property name="visible">True</property>
@@ -268,53 +320,6 @@
         <property name="orientation">vertical</property>
         <property name="baseline_position">top</property>
         <child>
-          <placeholder/>
-        </child>
-        <child>
-          <object class="GtkBox" id="statusBox">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="valign">start</property>
-            <property name="margin_top">5</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <object class="GtkLinkButton" id="statusLabel">
-                <property name="label" translatable="yes">button</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="relief">half</property>
-                <signal name="activate-link" 
handler="museic_gui_action_show_current_song" swapped="no"/>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLinkButton" id="statusLabel1">
-                <property name="label" translatable="yes">button</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="relief">half</property>
-                <signal name="activate-link" 
handler="museic_gui_action_show_current_artist" swapped="no"/>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
           <object class="GtkBox" id="progresBox">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
@@ -322,105 +327,142 @@
             <property name="margin_left">5</property>
             <property name="margin_right">5</property>
             <child>
-              <object class="GtkScale" id="scalebar">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="hexpand">False</property>
-                <property name="adjustment">adjustment</property>
-                <property name="round_digits">2</property>
-                <property name="digits">2</property>
-                <property name="draw_value">False</property>
-                <signal name="change-value" 
handler="museic_gui_action_change_time" swapped="no"/>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="timeLabel">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="halign">end</property>
-                <property name="margin_left">5</property>
-                <property name="vexpand">True</property>
-                <property name="label" translatable="yes">00:00 / 
00:00</property>
-                <property name="justify">right</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="pack_type">end</property>
-                <property name="position">1</property>
-              </packing>
+              <placeholder/>
             </child>
           </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
-            <property name="position">2</property>
+            <property name="position">0</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButtonBox" id="statusButtons">
+          <object class="GtkGrid" id="grid1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="valign">start</property>
-            <property name="margin_left">5</property>
-            <property name="margin_right">5</property>
-            <property name="layout_style">center</property>
-            <child>
-              <object class="GtkButton" id="antButton">
-                <property name="label">gtk-media-previous</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-                <property name="always_show_image">True</property>
-                <signal name="clicked" handler="museic_gui_action_ant_file" 
swapped="no"/>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
+            <property name="resize_mode">queue</property>
+            <property name="row_homogeneous">True</property>
+            <property name="column_homogeneous">True</property>
             <child>
-              <object class="GtkButton" id="playButton">
-                <property name="label">gtk-media-play</property>
+              <object class="GtkBox" id="box4">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="relief">none</property>
-                <property name="use_stock">True</property>
-                <property name="always_show_image">True</property>
-                <signal name="clicked" handler="museic_gui_action_play_file" 
swapped="no"/>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <child>
+                  <object class="GtkGrid" id="grid2">
+                    <property name="width_request">150</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="margin_left">5</property>
+                    <child>
+                      <object class="GtkScale" id="volumebar">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="margin_right">2</property>
+                        <property name="hexpand">True</property>
+                        <property name="adjustment">adjustment-volum</property>
+                        <property name="digits">2</property>
+                        <property name="draw_value">False</property>
+                        <signal name="change-value" 
handler="museic_gui_action_change_volume" swapped="no"/>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkImage" id="image3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">5</property>
+                        <property name="margin_right">10</property>
+                        <property 
name="icon_name">audio-headphones-symbolic</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
               </object>
               <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
               </packing>
             </child>
             <child>
-              <object class="GtkGrid" id="grid1">
+              <object class="GtkBox" id="box7">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="margin_right">225</property>
+                <property name="halign">center</property>
                 <child>
-                  <object class="GtkButton" id="segButton">
-                    <property name="label">gtk-media-next</property>
+                  <object class="GtkButtonBox" id="statusButtons">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_stock">True</property>
-                    <property name="always_show_image">True</property>
-                    <signal name="clicked" 
handler="museic_gui_action_seg_file" swapped="no"/>
+                    <property name="can_focus">False</property>
+                    <property name="valign">center</property>
+                    <property name="homogeneous">True</property>
+                    <property name="layout_style">center</property>
+                    <child>
+                      <object class="GtkButton" id="antButton">
+                        <property name="label">gtk-media-previous</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="always_show_image">True</property>
+                        <signal name="clicked" 
handler="museic_gui_action_ant_file" swapped="no"/>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="playButton">
+                        <property name="label">gtk-media-play</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="always_show_image">True</property>
+                        <signal name="clicked" 
handler="museic_gui_action_play_file" swapped="no"/>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="segButton">
+                        <property name="label">gtk-media-next</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="always_show_image">True</property>
+                        <signal name="clicked" 
handler="museic_gui_action_seg_file" swapped="no"/>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
@@ -428,70 +470,41 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
-                    <property name="halign">end</property>
+                    <property name="halign">start</property>
                     <property name="image">image1</property>
                     <signal name="toggled" handler="museic_gui_action_random" 
swapped="no"/>
                   </object>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </object>
               <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">2</property>
+                <property name="left_attach">1</property>
+                <property name="top_attach">0</property>
               </packing>
             </child>
             <child>
-              <object class="GtkGrid" id="grid2">
-                <property name="width_request">150</property>
+              <object class="GtkBox" id="box6">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="margin_right">20</property>
-                <property name="hexpand">True</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkScale" id="volumebar">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="adjustment">adjustment-volum</property>
-                    <property name="digits">2</property>
-                    <property name="draw_value">False</property>
-                    <signal name="change-value" 
handler="museic_gui_action_change_volume" swapped="no"/>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkImage" id="image3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">5</property>
-                    <property name="margin_right">10</property>
-                    <property 
name="icon_name">audio-headphones-symbolic</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">0</property>
-                  </packing>
+                  <placeholder/>
                 </child>
               </object>
               <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">4</property>
-                <property name="secondary">True</property>
+                <property name="left_attach">2</property>
+                <property name="top_attach">0</property>
               </packing>
             </child>
           </object>
           <packing>
             <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">3</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
@@ -504,114 +517,7 @@
       <object class="GtkGrid" id="filesGrid">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <child>
-          <object class="GtkGrid" id="filesGridHeader">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="margin_bottom">5</property>
-            <property name="column_homogeneous">True</property>
-            <child>
-              <object class="GtkButton" id="addToPlay">
-                <property name="label" translatable="yes">Add</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="halign">center</property>
-                <property name="image">image2</property>
-                <property name="xalign">0.46000000834465027</property>
-                <property name="image_position">right</property>
-                <property name="always_show_image">True</property>
-                <signal name="clicked" handler="museic_gui_action_add_to_play" 
swapped="no"/>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="label2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="margin_left">30</property>
-                <property name="margin_right">30</property>
-                <property name="label" translatable="yes">Playlist</property>
-                <property name="angle">0.01</property>
-                <attributes>
-                  <attribute name="style" value="normal"/>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox" id="boxFileTitle">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <child>
-                  <object class="GtkSearchEntry" id="searchentry_files">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="halign">start</property>
-                    <property name="valign">start</property>
-                    <property 
name="primary_icon_name">edit-find-symbolic</property>
-                    <property name="primary_icon_activatable">False</property>
-                    <property name="primary_icon_sensitive">False</property>
-                    <signal name="activate" 
handler="museic_gui_action_search_files" swapped="no"/>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">30</property>
-                    <property name="margin_right">30</property>
-                    <property name="label" translatable="yes">Files</property>
-                    <property name="angle">0.01</property>
-                    <attributes>
-                      <attribute name="style" value="normal"/>
-                      <attribute name="weight" value="bold"/>
-                    </attributes>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="artists_button">
-                    <property name="label" translatable="yes">All 
Artists</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <signal name="clicked" 
handler="museic_gui_action_show_filelist_options" swapped="no"/>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="left_attach">0</property>
-            <property name="top_attach">0</property>
-          </packing>
-        </child>
+        <property name="margin_top">8</property>
         <child>
           <object class="GtkGrid" id="filesGridContent">
             <property name="visible">True</property>
@@ -621,74 +527,207 @@
             <property name="row_homogeneous">True</property>
             <property name="column_homogeneous">True</property>
             <child>
-              <object class="GtkScrolledWindow" id="playWindow">
+              <object class="GtkPaned" id="paned1">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="margin_top">5</property>
-                <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
-                <property name="min_content_width">0</property>
-                <property name="min_content_height">55</property>
                 <child>
-                  <object class="GtkTreeView" id="playTree">
+                  <object class="GtkBox" id="box8">
+                    <property name="width_request">300</property>
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">False</property>
-                    <property name="vexpand">False</property>
-                    <property name="hscroll_policy">natural</property>
-                    <property name="vscroll_policy">natural</property>
-                    <property name="rules_hint">True</property>
-                    <property name="enable_search">False</property>
-                    <property name="search_column">0</property>
-                    <property name="fixed_height_mode">True</property>
-                    <property name="hover_expand">True</property>
-                    <property name="rubber_banding">True</property>
-                    <property name="tooltip_column">0</property>
-                    <signal name="row-activated" 
handler="museic_gui_action_play_selected_file_playlist" swapped="no"/>
-                    <child internal-child="selection">
-                      <object class="GtkTreeSelection" 
id="treeview-selection4">
-                        <property name="mode">multiple</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="GtkBox" id="fileTitle">
+                        <property name="height_request">40</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="valign">center</property>
+                        <child>
+                          <object class="GtkButton" id="artists_button">
+                            <property name="label" translatable="yes">All 
Artists</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="margin_left">5</property>
+                            <property name="margin_top">5</property>
+                            <property name="margin_bottom">5</property>
+                            <signal name="clicked" 
handler="museic_gui_action_show_filelist_options" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">center</property>
+                            <property name="label" 
translatable="yes">Files</property>
+                            <attributes>
+                              <attribute name="style" value="normal"/>
+                              <attribute name="weight" value="bold"/>
+                            </attributes>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="addToPlay">
+                            <property name="label" 
translatable="yes">Add</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="margin_right">5</property>
+                            <property name="margin_top">5</property>
+                            <property name="margin_bottom">5</property>
+                            <property name="resize_mode">immediate</property>
+                            <property name="image">image2</property>
+                            <property name="image_position">right</property>
+                            <property name="always_show_image">True</property>
+                            <signal name="clicked" 
handler="museic_gui_action_add_to_play" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow" id="fileWindow">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="vexpand">True</property>
+                        <property name="min_content_width">0</property>
+                        <property name="min_content_height">55</property>
+                        <child>
+                          <object class="GtkTreeView" id="fileTree">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">False</property>
+                            <property name="vexpand">False</property>
+                            <property name="hscroll_policy">natural</property>
+                            <property name="vscroll_policy">natural</property>
+                            <property name="rules_hint">True</property>
+                            <property name="enable_search">False</property>
+                            <property name="search_column">0</property>
+                            <property name="fixed_height_mode">True</property>
+                            <property name="hover_expand">True</property>
+                            <property name="rubber_banding">True</property>
+                            <property name="tooltip_column">0</property>
+                            <signal name="row-activated" 
handler="museic_gui_action_play_selected_file_filelist" swapped="no"/>
+                            <child internal-child="selection">
+                              <object class="GtkTreeSelection" 
id="treeview-selection">
+                                <property name="mode">multiple</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
                     </child>
                   </object>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">False</property>
+                  </packing>
                 </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkScrolledWindow" id="fileWindow">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="margin_top">5</property>
-                <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
-                <property name="min_content_width">0</property>
-                <property name="min_content_height">55</property>
                 <child>
-                  <object class="GtkTreeView" id="fileTree">
+                  <object class="GtkBox" id="box9">
+                    <property name="width_request">300</property>
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">False</property>
-                    <property name="vexpand">False</property>
-                    <property name="hscroll_policy">natural</property>
-                    <property name="vscroll_policy">natural</property>
-                    <property name="rules_hint">True</property>
-                    <property name="enable_search">False</property>
-                    <property name="search_column">0</property>
-                    <property name="fixed_height_mode">True</property>
-                    <property name="hover_expand">True</property>
-                    <property name="rubber_banding">True</property>
-                    <property name="tooltip_column">0</property>
-                    <signal name="row-activated" 
handler="museic_gui_action_play_selected_file_filelist" swapped="no"/>
-                    <child internal-child="selection">
-                      <object class="GtkTreeSelection" 
id="treeview-selection1">
-                        <property name="mode">multiple</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="GtkBox" id="playTitle">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <object class="GtkLabel" id="playLabel">
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">center</property>
+                            <property name="label" 
translatable="yes">Playlist</property>
+                            <property name="angle">0.01</property>
+                            <attributes>
+                              <attribute name="style" value="normal"/>
+                              <attribute name="weight" value="bold"/>
+                            </attributes>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow" id="playWindow">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="vexpand">True</property>
+                        <property name="min_content_width">0</property>
+                        <property name="min_content_height">55</property>
+                        <child>
+                          <object class="GtkTreeView" id="playTree">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">False</property>
+                            <property name="vexpand">False</property>
+                            <property name="hscroll_policy">natural</property>
+                            <property name="vscroll_policy">natural</property>
+                            <property name="rules_hint">True</property>
+                            <property name="enable_search">False</property>
+                            <property name="search_column">0</property>
+                            <property name="fixed_height_mode">True</property>
+                            <property name="hover_expand">True</property>
+                            <property name="rubber_banding">True</property>
+                            <property name="tooltip_column">0</property>
+                            <signal name="row-activated" 
handler="museic_gui_action_play_selected_file_playlist" swapped="no"/>
+                            <child internal-child="selection">
+                              <object class="GtkTreeSelection" 
id="treeview-selection1">
+                                <property name="mode">multiple</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
                     </child>
                   </object>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">False</property>
+                  </packing>
                 </child>
               </object>
               <packing>
@@ -699,24 +738,12 @@
           </object>
           <packing>
             <property name="left_attach">0</property>
-            <property name="top_attach">1</property>
+            <property name="top_attach">0</property>
           </packing>
         </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">2</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkSeparator" id="separator1">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="margin_top">10</property>
-        <property name="margin_bottom">10</property>
-      </object>
-      <packing>
-        <property name="left_attach">0</property>
         <property name="top_attach">1</property>
       </packing>
     </child>
@@ -759,13 +786,10 @@
             <property name="top_attach">0</property>
           </packing>
         </child>
-        <child>
-          <placeholder/>
-        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">3</property>
+        <property name="top_attach">2</property>
       </packing>
     </child>
   </object>
@@ -786,4 +810,42 @@
     <property name="icon_name">view-refresh</property>
     <signal name="clicked" handler="museic_gui_action_reload_library" 
swapped="no"/>
   </object>
+  <object class="GtkBox" id="statusBox">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="valign">start</property>
+    <property name="margin_top">2</property>
+    <property name="orientation">vertical</property>
+    <property name="homogeneous">True</property>
+    <child>
+      <object class="GtkLabel" id="statusLabel">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">label</property>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLinkButton" id="statusLabel1">
+        <property name="label" translatable="yes">button</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <property name="halign">center</property>
+        <property name="resize_mode">queue</property>
+        <property name="relief">none</property>
+        <property name="focus_on_click">False</property>
+        <signal name="activate-link" 
handler="museic_gui_action_show_current_artist" swapped="no"/>
+      </object>
+      <packing>
+        <property name="expand">True</property>
+        <property name="fill">False</property>
+        <property name="position">1</property>
+      </packing>
+    </child>
+  </object>
 </interface>
Binary files old/MuseIC-2.0.1/data/file_search.png and 
new/MuseIC-2.0.2/data/file_search.png differ
Binary files old/MuseIC-2.0.1/data/multi_files_editor.png and 
new/MuseIC-2.0.2/data/multi_files_editor.png differ
Binary files old/MuseIC-2.0.1/data/museic_screenshoot.png and 
new/MuseIC-2.0.2/data/museic_screenshoot.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/run.sh new/MuseIC-2.0.2/run.sh
--- old/MuseIC-2.0.1/run.sh     1970-01-01 01:00:00.000000000 +0100
+++ new/MuseIC-2.0.2/run.sh     2018-08-13 16:05:08.000000000 +0200
@@ -0,0 +1,18 @@
+#!/bin/bash
+if [ -e museic ]
+then
+  echo "Removing old 'museic'"
+  rm museic
+fi
+valac src/*.vala --pkg=gtk+-3.0 --pkg=gio-2.0 --pkg=gmodule-2.0 
--pkg=gstreamer-1.0 --pkg=dbus-glib-1 --pkg=granite -o museic
+if [ -e museic ]
+then
+  echo "####################################"
+  echo "      Successfully complied!!      "
+  echo "####################################"
+  ./museic
+else
+  echo "------------------------------------"
+  echo "       Compilation failed...        "
+  echo "------------------------------------"
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/src/css/main.css 
new/MuseIC-2.0.2/src/css/main.css
--- old/MuseIC-2.0.1/src/css/main.css   2018-06-14 20:28:05.000000000 +0200
+++ new/MuseIC-2.0.2/src/css/main.css   2018-08-13 16:05:08.000000000 +0200
@@ -7,52 +7,67 @@
 .playListStore {
 }
 
+.filetitle {
+    border-bottom-width: 1;
+    border-bottom-style: solid;
+    border-bottom-color: #a6a6a6;
+}
+
 .songtitle {
-    font-size: 12px;
-    padding-bottom: 8px;
-    background: linear-gradient(#F5F5F5, #F5F5F5);
-    border-color: #F5F5F5;
+    font-size: 10px;
 }
 
 .songartist {
-    font-size: 10px;
+    font-size: 8px;
     font-weight: bold;
-    padding-bottom: 16px;
-    background: linear-gradient(#F5F5F5, #F5F5F5);
-    border-color: #F5F5F5;
+    padding: 0;
 }
 
-.streamprogresbar {
-    background-color: white;
-    border: 0;
+.songartist * {
+    color: #444444;
+    text-decoration: none;
 }
 
+.filesGridContent {
+    border-top-width: 1;
+    border-top-style: solid;
+    border-top-color: #cccccc;
+}
 .streamtime {
 }
 
 .antButton{
-    border-color: white;
-    background-color: white;
+    /*border-color: white;*/
+    /*background-color: white;*/
+    border-right-width: 0px;
+    border-top-right-radius: 0px;
+    border-bottom-right-radius: 0px;
 }
 
 .playButton {
-    border-color: white;
-    background-color: white;
+    /*border-color: white;*/
+    /*background-color: white;*/
+    border-radius: 0px;
+    border-right-width: 0px;
 }
 
 .segButton {
-    border-color: white;
-    background-color: white;
+    /*border-color: white;*/
+    /*background-color: white;*/
+    border-radius: 0px;
+    border-right-width: 0px;
 }
 
 .randButton {
     /*border-radius: 50%;*/
-    border-color: white;
+    /*border-color: white;*/
+    border-top-left-radius: 0px;
+    border-bottom-left-radius: 0px;
 }
 
 .volumebar {
-    background-color: white;
-    border: 0;
+    /*background-color: white;*/
+    /*border: 0;*/
 }
 
 .filelisttitle {
@@ -69,8 +84,8 @@
 
 .addToPlayButton {
     /*border-radius: 50%;*/
-    border-color: white;
-    background-color: white;
+    /*border-color: white;*/
+    /*background-color: white;*/
 }
 
 .separator1{
@@ -88,3 +103,7 @@
 .footbar {
     background-color: white;
 }
+
+.conf_btn_label {
+  font-weight: bold;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/src/museic.vala 
new/MuseIC-2.0.2/src/museic.vala
--- old/MuseIC-2.0.1/src/museic.vala    2018-06-14 20:28:05.000000000 +0200
+++ new/MuseIC-2.0.2/src/museic.vala    2018-08-13 16:05:08.000000000 +0200
@@ -386,4 +386,12 @@
         return this.streamplayer.volume;
     }
 
+    public int get_used_port() {
+        return (int)this.museic_server.get_used_port();
+    }
+
+    public void save_used_port(int new_port){
+        this.museic_server.save_used_port((uint16)new_port);
+    }
+
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/src/museic_gui.vala 
new/MuseIC-2.0.2/src/museic_gui.vala
--- old/MuseIC-2.0.1/src/museic_gui.vala        2018-06-14 20:28:05.000000000 
+0200
+++ new/MuseIC-2.0.2/src/museic_gui.vala        2018-08-13 16:05:08.000000000 
+0200
@@ -26,6 +26,7 @@
     private Gtk.ListStore fileListStore;
     private Gtk.ListStore playListStore;
     private MuseicFileList museic_shown_filelist;
+    private Granite.SeekBar stream_bar;
     // Aux variables needed to open files
     private Gtk.Window files_window;
     private Gtk.FileChooserWidget chooser;
@@ -42,7 +43,7 @@
         Object (application: app, title: "MuseIC");
         museic_app = app;
         // Define main window
-        this.load_window_state();
+        // this.load_window_state();
         this.delete_event.connect(save_window_state);
         // Load interface from file
         this.builder = new Gtk.Builder ();
@@ -69,14 +70,24 @@
         header_bar.show_close_button = true;
         header_bar.pack_start  ((builder.get_object ("openFile") as 
Gtk.ToolButton));
         header_bar.pack_start  ((builder.get_object ("addFile") as 
Gtk.ToolButton));
+        // header_bar.pack_start  ((builder.get_object ("reload") as 
Gtk.ToolButton));
         header_bar.pack_start  ((builder.get_object ("helpRemote") as 
Gtk.ToolButton));
-        // header_bar.pack_end  ((builder.get_object ("reload") as 
Gtk.ToolButton));
-        header_bar.set_title("MuseIC");
+        header_bar.pack_start  ((builder.get_object ("config") as 
Gtk.ToolButton));
+        header_bar.pack_end    ((builder.get_object ("boxFileTitle") as 
Gtk.Box));
+        header_bar.set_custom_title((builder.get_object ("statusBox") as 
Gtk.Box));
         header_bar.get_style_context().add_class ("headerbar");
         this.set_titlebar (header_bar);
         // Add main box to window
         this.add (builder.get_object ("mainW") as Gtk.Grid);
         this.height_request = 460;
+
+        // Set stream_bar
+        this.stream_bar = new Granite.SeekBar(0.0);
+        this.stream_bar.scale.change_value.connect((slider, scroll, new_value) 
=> {
+            this.museic_app.set_position((float)new_value);
+            return true;
+        });
+        (this.builder.get_object ("progresBox") as 
Gtk.Box).pack_start(this.stream_bar, true, true, 0);
         // Set fileListStore
         this.fileListStore = new Gtk.ListStore (6, typeof (string), typeof 
(string), typeof (string), typeof (string), typeof (string), typeof (Gdk.RGBA));
         var tree = (this.builder.get_object ("fileTree") as Gtk.TreeView);
@@ -122,26 +133,28 @@
         this.show_all ();
         this.show ();
         // Set some more css classes
-        (this.builder.get_object ("statusLabel") as 
Gtk.LinkButton).get_style_context().add_class ("songtitle");
-        (this.builder.get_object ("statusLabel") as 
Gtk.LinkButton).set_label("Select a file to play");
+        (this.builder.get_object ("statusLabel") as 
Gtk.Label).get_style_context().add_class ("songtitle");
+        (this.builder.get_object ("statusLabel") as 
Gtk.Label).set_label("Select a file to play");
         (this.builder.get_object ("statusLabel1") as 
Gtk.LinkButton).get_style_context().add_class ("songartist");
         (this.builder.get_object ("statusLabel1") as 
Gtk.LinkButton).set_label("");
-        (this.builder.get_object ("scalebar") as 
Gtk.Scale).get_style_context().add_class ("streamprogresbar");
-        (this.builder.get_object ("timeLabel") as 
Gtk.Label).get_style_context().add_class ("streamtime");
+        (this.builder.get_object ("statusLabel1") as Gtk.LinkButton).hide();
         (this.builder.get_object ("antButton") as 
Gtk.Button).get_style_context().add_class ("antButton");
         (this.builder.get_object ("playButton") as 
Gtk.Button).get_style_context().add_class ("playButton");
         (this.builder.get_object ("segButton") as 
Gtk.Button).get_style_context().add_class ("segButton");
         (this.builder.get_object ("randButton") as 
Gtk.Button).get_style_context().add_class ("randButton");
         (this.builder.get_object ("volumebar") as 
Gtk.Scale).get_style_context().add_class ("volumebar");
         (this.builder.get_object ("label1") as 
Gtk.Label).get_style_context().add_class ("filelisttitle");
-        (this.builder.get_object ("label2") as 
Gtk.Label).get_style_context().add_class ("playlisttitle");
+        (this.builder.get_object ("playLabel") as 
Gtk.Label).get_style_context().add_class ("playlisttitle");
         (this.builder.get_object ("addToPlay") as 
Gtk.Button).get_style_context().add_class ("addToPlayButton");
         (this.builder.get_object ("separator1") as 
Gtk.Separator).get_style_context().add_class ("separator1");
         (this.builder.get_object ("statusBox") as 
Gtk.Box).get_style_context().add_class ("statusBox");
         (this.builder.get_object ("progresBox") as 
Gtk.Box).get_style_context().add_class ("progresBox");
         (this.builder.get_object ("statusButtons") as 
Gtk.Box).get_style_context().add_class ("statusButtons");
         (this.builder.get_object ("filelist_chooser") as 
Gtk.ComboBoxText).get_style_context().add_class ("filelist_chooser");
+        (this.builder.get_object ("filesGridContent") as 
Gtk.Grid).get_style_context().add_class ("filesGridContent");
         (this.builder.get_object ("footer") as 
Gtk.Toolbar).get_style_context().add_class ("footbar");
+        (this.builder.get_object ("fileTitle") as 
Gtk.Box).get_style_context().add_class ("filetitle");
+        (this.builder.get_object ("playTitle") as 
Gtk.Box).get_style_context().add_class ("filetitle");
         this.museic_shown_filelist = this.museic_app.get_active_filelist();
         // Start time function to update info about stream duration and 
position each second
         GLib.Timeout.add_seconds (1, update_stream_status);
@@ -359,13 +372,6 @@
         return sfiles;
     }
 
-    [CCode(instance_pos=-1)]
-    public bool action_change_time (Gtk.Scale slider, Gtk.ScrollType scroll, 
double new_value) {
-        this.museic_app.set_position((float)new_value);
-        slider.adjustment.value = new_value;
-        return true;
-    }
-
     public void update_files_to_tree() {
         this.fileListStore.clear ();
         Gtk.TreeIter iter;
@@ -423,20 +429,25 @@
         if (!this.museic_app.has_files()) return true;
         StreamTimeInfo pos_info = this.museic_app.get_position_str();
         StreamTimeInfo dur_info = this.museic_app.get_duration_str();
-        // Update time label
-        (this.builder.get_object ("timeLabel") as Gtk.Label).set_label 
(pos_info.minutes+"/"+dur_info.minutes);
-        // Update progres bar
-        double progres = 
(double)pos_info.nanoseconds/(double)dur_info.nanoseconds;
-        (this.builder.get_object ("scalebar") as Gtk.Scale).set_value 
(progres);
+
+        // Update Seek bar info. It will automaticlly update the scale and the 
labels
+        this.stream_bar.playback_duration = (double)(dur_info.nanoseconds / 
1000000000.0);
+        this.stream_bar.playback_progress = (double)(pos_info.nanoseconds / 
1000000000.0) / this.stream_bar.playback_duration;
+
         // Update status label with filename and album
         MuseicFile faux = this.museic_app.get_current_file();
         string aux;
         if (faux.album != "unknown") aux = faux.name +" - "+ faux.album;
         else aux = faux.name;
-        (builder.get_object ("statusLabel") as Gtk.LinkButton).set_label (aux);
+        (builder.get_object ("statusLabel") as Gtk.Label).set_label (aux);
         // Update status label 2 with artist
-        if (faux.artist != "unknown") aux = faux.artist;
-        else aux = "";
+        if (faux.artist != "unknown") {
+            (builder.get_object ("statusLabel1") as Gtk.LinkButton).show();
+            aux = faux.artist;
+        } else {
+            aux = "";
+            (builder.get_object ("statusLabel1") as Gtk.LinkButton).hide();
+        }
         (builder.get_object ("statusLabel1") as Gtk.LinkButton).set_label 
(aux);
         // Update volume bar
         (this.builder.get_object ("volumebar") as Gtk.Scale).set_value 
(this.museic_app.get_stream_volume());
@@ -539,7 +550,7 @@
 
     [CCode(instance_pos=-1)]
     public void action_help_remote(Gtk.Button button) {
-        string help_string = "Control MuseIC from any device!\n1. Open your 
favourite browser\n2. Type 
"+this.museic_app.museic_server.get_server_info()+"\n3. Control MuseIC 
playback: play/pause, next, previous, etc.\n\nIn order to be able to connect to 
MuseIC, both devices must be in the same Wifi network.\n";
+        string help_string = "Control MuseIC from any device!\n1. Open your 
favourite browser\n2. Type 
"+this.museic_app.museic_server.get_server_info()+"\n3. Control MuseIC 
playback: play/pause, next, previous, etc.\n\nIn order to be able to connect to 
MuseIC, both devices must be in the same Wifi network.\n\n\n(hint: if your 
device can't connect to MuseIC, try changing the listening port in MuseIC 
configuration.)\n";
 
         var helpw = new Gtk.Popover(button);
 
@@ -553,6 +564,39 @@
 
         helpw.show_all();
     }
+
+    [CCode(instance_pos=-1)]
+    public void action_show_config(Gtk.Button button) {
+        var confpw = new Gtk.Popover(button);
+        confpw.set_position(Gtk.PositionType.BOTTOM);
+        Gtk.Box vbox = new Gtk.Box (Gtk.Orientation.VERTICAL, 1);
+        vbox.margin = 10;
+
+        Gtk.Label lb = new Gtk.Label("Configuration");
+        lb.get_style_context().add_class ("conf_btn_label");
+        Gtk.Box hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 1);
+        hbox.pack_start(lb, true, true, 0);
+        vbox.pack_start (hbox, true, true, 10);
+
+        hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 1);
+        Gtk.Label text = new Gtk.Label("MuseIC is listening on port:");
+        text.get_style_context().add_class ("conf_btn_text");
+        Gtk.Entry entry1 = new Gtk.Entry();
+        entry1.get_style_context().add_class ("conf_btn_entry");
+        entry1.set_text(this.museic_app.get_used_port().to_string());
+        Gtk.Label text2 = new Gtk.Label(" (1024 < port < 65535)");
+        hbox.pack_end(text2, true, true, 10);
+        hbox.pack_end(entry1, false, false, 0);
+        hbox.pack_end(text, true, true, 10);
+        vbox.pack_end (hbox, true, true, 0);
+
+        confpw.add(vbox);
+        confpw.show_all();
+        confpw.closed.connect(() => {
+            this.museic_app.save_used_port(int.parse(entry1.get_text()));
+        });
+    }
+
     [CCode(instance_pos=-1)]
     public void action_reload_library(Gtk.Button button) {
         this.museic_app.reload_library();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MuseIC-2.0.1/src/museic_remote.vala 
new/MuseIC-2.0.2/src/museic_remote.vala
--- old/MuseIC-2.0.1/src/museic_remote.vala     2018-06-14 20:28:05.000000000 
+0200
+++ new/MuseIC-2.0.2/src/museic_remote.vala     2018-08-13 16:05:08.000000000 
+0200
@@ -3,17 +3,18 @@
     private MuseIC app;
     private SocketService service;
     private Cancellable cancellable;
+    public string conf_path;
 
     public MuseicServer(MuseIC app) {
         this.app = app;
+        this.conf_path = 
Environment.get_home_dir()+"/.museic/museic_remote_conf";
 
                // Create a new SocketService:
                this.service = new SocketService ();
 
-               // Listen on port 1024 and 1025.
+               // Listen on configured port.
                // Source is used as source-identifier.
-               service.add_inet_port (1024, new Source (1024));
-               service.add_inet_port (1025, new Source (1025));
+        service.add_inet_port (this.get_used_port(), new Source 
(this.get_used_port()));
 
                // Used to shutdown the program:
                this.cancellable = new Cancellable ();
@@ -24,6 +25,35 @@
                this.service.start ();
     }
 
+    public uint16 get_used_port() {
+        try {
+            File file = File.new_for_path(this.conf_path);
+            DataInputStream reader = new DataInputStream(file.read());
+            string info = reader.read_line(null);
+            uint16 port = (uint16) int.parse(info);
+            return port;
+        } catch (Error e) {
+            stderr.printf(e.message);
+        }
+        return 1025;
+    }
+
+    public void save_used_port(uint16 new_port){
+        if (new_port > 1024) {
+            File file;
+            try {
+                file = File.new_for_path(this.conf_path);
+                if (file.query_exists()) file.delete ();
+                file.create(FileCreateFlags.NONE);
+                FileIOStream io = file.open_readwrite();
+                io.seek (0, SeekType.END);
+                var writer = new DataOutputStream(io.output_stream);
+                writer.put_string(new_port.to_string());
+                service.add_inet_port (new_port, new Source (new_port));
+            } catch (Error e) {stderr.printf(e.message);}
+        }
+    }
+
     private bool accept_connection(SocketConnection connection, Object? 
source_object) {
         Source source = source_object as Source;
 
@@ -256,7 +286,7 @@
     }
 
     public string get_server_info() {
-        return this.resolve_server_address()+":1025";
+        return 
this.resolve_server_address()+":"+this.get_used_port().to_string();
     }
 
     public string resolve_server_address() {


Reply via email to