diff --git a/Makefile b/Makefile index afc6af6..25af3d8 100644 --- a/Makefile +++ b/Makefile @@ -7,22 +7,26 @@ ifeq ($(SINGLE_USER),false) BIN_PATH = $(BASE_PATH)/bin LIB_PATH = $(BASE_PATH)/lib APP_SHORTCUT_PATH = $(BASE_PATH)/share/applications - ICON_PATH = $(BASE_PATH)/share/icons + ICON_PATH = $(BASE_PATH)/share else BIN_PATH = $(LOCAL_PATH)/syncplay LIB_PATH = $(LOCAL_PATH)/syncplay APP_SHORTCUT_PATH = $(LOCAL_PATH)/share/applications - ICON_PATH = $(LOCAL_PATH)/share/icons + ICON_PATH = $(LOCAL_PATH)/share endif common: mkdir -p $(LIB_PATH)/syncplay/ cp -r syncplay $(LIB_PATH)/syncplay/ - cp resources/icon.ico $(ICON_PATH)/ + cp -r resources/hicolor $(ICON_PATH)/icons/ + cp resources/hicolor/48x48/apps/syncplay.png $(ICON_PATH)/app-install/icons/ + cp resources/hicolor/48x48/apps/syncplay.png $(ICON_PATH)/pixmaps/ u-common: rm -rf $(LIB_PATH)/syncplay - rm $(ICON_PATH)/icon.ico + rm $(ICON_PATH)/icons/hicolor/*/apps/syncplay.png + rm $(ICON_PATH)/app-install/icons/syncplay.png + rm $(ICON_PATH)/pixmaps/syncplay.png client: mkdir -p $(BIN_PATH) diff --git a/README.md b/README.md index 6dd4a82..6222999 100644 --- a/README.md +++ b/README.md @@ -64,13 +64,13 @@ On Windows simply running `syncplayClient.exe` opens a Syncplay command-line win ### Getting started with Syncplay on Linux -1. Ensure that you have an up to date version of `mplayer2` installed. +1. Ensure that you have an up to date version of `mplayer2` and relevant python libraries (see "Python scripts", above) installed. -2. Download Syncplay tarball from https://github.com/Uriziel/syncplay/downloads and run `make install`. +2. Download Syncplay tarball from https://github.com/Uriziel/syncplay/downloads and run `make install-client` (or `make install-all` if you also want server). 3. Open the media file you wish to play with `syncplay` (e.g. using "Open with..."). -4. Enter configuration settings (see "Configuration window", below). Ensure that you are on the same server and room as your fellow viewers. +4. Enter configuration settings (see "Configuration window", below). Ensure that you are on the same server and room as your fellow viewers. This is done only once, configuration is kept in `~/.syncplay` file. 5. Playing, pausing and seeking from within the mplayer2 instance should now be synchronised with everyone else in the same 'room'. @@ -91,7 +91,7 @@ The settings to be configured are as follows: * `Host` - Address (hostname / IP) of server to connect to (optionally with port), e.g. `localhost:2734` or `192.168.0.1`. Default port is `8999`. * `Username` - Name that the server and other viewers know you by. -* `Default room (optional)` - Room to join upon connection. You will only be synchronised with others in the same room on the same server. Default room is `default`. +* `Default room (optional)` - Room to join upon connection. You will only be synchronised with others in the same room on the same server. Default room is `default` by default. * `Server password (optional)` - Password for server. Servers that are not password protected have a blank password. * `Path to mpc-hc.exe [Windows only]` - Location of the MPC-HC executable (mpc-hc.exe or mpc-hc64.exe). If this is in a common location then it will be filled in by default. Users are advised to check that it points to their desired installation. @@ -103,8 +103,7 @@ Within the Syncplay command-line you can enter the following commands (and then * `help` - Displays list of commands and other information. * `room [room]` - Leaves current room and joins specified room. You are only synchronised with others in the same room on the same server. If no room is specified then this command will use the filename of the currently open file, or alternatively will join the room `default`. -* `s [time]` - Seek (jump) to specified time. Can be `seconds`, `minutes:seconds` or `hours:minutes:seconds`. -* `s+ [time]` - Jumps [time] forward. Can be `seconds`, `minutes:seconds` or `hours:minutes:seconds`. +* `[s][+-][time]` - Seek (jump) to specified time. Optional `+` or `-` denotes relative time forward and backward respectively. Time can be given in seconds or min:sec format. * `r` - Revert last seek. Seeks to where you were before the most recent seek. * `p` - Toggle play/pause. @@ -125,7 +124,7 @@ You can run `syncplayClient` with the following command-line switches to alter S ### Notification messages -* `Rewinded due to time difference with [user]` - This means that your media player ended up too far in front of the specified user and has jumped back to keep you in sync. This is usually because someone's computer isn't powerful enough to play the file smoothly. +* `Rewinded due to time difference with [user]` - This means that your media player ended up too far in front of the specified user and has jumped back to keep you in sync. This is usually because someone's computer isn't powerful enough to play the file smoothly. If someone is only a small amount in front then their playback rate will be reduced to 95% for a short amount of time to bring them back into sync. * `File you're playing is different from [user]'s` - This means that the filename, length and/or duration of the file that the user is playing is different from the file that you are playing. This is for information only and is not an error. ## How to use the server @@ -167,5 +166,4 @@ You can report bugs through https://github.com/Uriziel/syncplay/issues but first You might also be able to discuss your problem through Internet Relay Chat (IRC). The #Syncplay channel is on the irc.rizon.net server. ### Known issues -1. Changing your system time while Syncplay is running confuses the sync. PROTIP: Don't do it. -2. Syncplay cannot properly handle a seek that is within 8 seconds of the current position. PROTIP: Don't do it. +1. Changing your system time while Syncplay is running confuses the sync. PROTIP: Don't do it. \ No newline at end of file diff --git a/resources/hicolor/128x128/apps/syncplay.png b/resources/hicolor/128x128/apps/syncplay.png new file mode 100644 index 0000000..b75c7f5 Binary files /dev/null and b/resources/hicolor/128x128/apps/syncplay.png differ diff --git a/resources/hicolor/16x16/apps/syncplay.png b/resources/hicolor/16x16/apps/syncplay.png new file mode 100644 index 0000000..1a65791 Binary files /dev/null and b/resources/hicolor/16x16/apps/syncplay.png differ diff --git a/resources/hicolor/24x24/apps/syncplay.png b/resources/hicolor/24x24/apps/syncplay.png new file mode 100644 index 0000000..f62a282 Binary files /dev/null and b/resources/hicolor/24x24/apps/syncplay.png differ diff --git a/resources/hicolor/256x256/apps/syncplay.png b/resources/hicolor/256x256/apps/syncplay.png new file mode 100644 index 0000000..ecbf657 Binary files /dev/null and b/resources/hicolor/256x256/apps/syncplay.png differ diff --git a/resources/hicolor/32x32/apps/syncplay.png b/resources/hicolor/32x32/apps/syncplay.png new file mode 100644 index 0000000..2f8aff6 Binary files /dev/null and b/resources/hicolor/32x32/apps/syncplay.png differ diff --git a/resources/hicolor/48x48/apps/syncplay.png b/resources/hicolor/48x48/apps/syncplay.png new file mode 100644 index 0000000..904cfb6 Binary files /dev/null and b/resources/hicolor/48x48/apps/syncplay.png differ diff --git a/resources/hicolor/64x64/apps/syncplay.png b/resources/hicolor/64x64/apps/syncplay.png new file mode 100644 index 0000000..c97dccf Binary files /dev/null and b/resources/hicolor/64x64/apps/syncplay.png differ diff --git a/resources/hicolor/96x96/apps/syncplay.png b/resources/hicolor/96x96/apps/syncplay.png new file mode 100644 index 0000000..e56571f Binary files /dev/null and b/resources/hicolor/96x96/apps/syncplay.png differ diff --git a/resources/syncplay-server.desktop b/resources/syncplay-server.desktop index 6a7986e..b5de0a4 100644 --- a/resources/syncplay-server.desktop +++ b/resources/syncplay-server.desktop @@ -5,5 +5,5 @@ Comment=Synchronize video playback over network Exec=/usr/bin/syncplay-server %u Terminal=true Type=Application -Icon=/usr/share/icons/icon.ico +Icon=syncplay Categories=AudioVideo;Audio;Video; diff --git a/resources/syncplay.desktop b/resources/syncplay.desktop index 37e9667..0c0bdff 100644 --- a/resources/syncplay.desktop +++ b/resources/syncplay.desktop @@ -5,7 +5,7 @@ Comment=Synchronize video playback over network Exec=/usr/bin/syncplay %u Terminal=true Type=Application -Icon=/usr/share/icons/icon.ico +Icon=syncplay Categories=AudioVideo;Audio;Video;Player;Network; MimeType=audio/ac3;audio/mp4;audio/mpeg;audio/vnd.rn-realaudio;audio/vorbis;audio/x-adpcm;audio/x-matroska;audio/x-mp2;audio/x-mp3;audio/x-ms-wma;audio/x-vorbis;audio/x-wav;audio/mpegurl;audio/x-mpegurl;audio/x-pn-realaudio;audio/x-scpls;video/avi;video/mp4;video/flv;video/mpeg;video/quicktime;video/vnd.rn-realvideo;video/x-matroska;video/x-ms-asf;video/x-msvideo;video/x-ms-wmv;video/x-ogm;video/x-theora; NoDisplay=true diff --git a/syncplay/client.py b/syncplay/client.py index 6fde299..82feaf6 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -445,12 +445,13 @@ class UiManager(object): def promptFor(self, prompt): return self.__ui.promptFor(prompt) - def formatTime(self, value): - weeks = value // 604800 - days = (value % 604800) // 86400 - hours = (value % 86400) // 3600 - minutes = (value % 3600) // 60 - seconds = value % 60 + def formatTime(self, timeInSeconds): + value = round(timeInSeconds) + weeks = timeInSeconds // 604800 + days = (timeInSeconds % 604800) // 86400 + hours = (timeInSeconds % 86400) // 3600 + minutes = (timeInSeconds % 3600) // 60 + seconds = timeInSeconds % 60 if(weeks > 0): return '{0:.0f}w, {1:.0f}d, {2:02.0f}:{3:02.0f}:{4:02.0f}'.format(weeks, days, hours, minutes, seconds) elif(days > 0):