Skip to content

Commit

Permalink
Fix bug : New windows close bug
Browse files Browse the repository at this point in the history
  • Loading branch information
bdh1993 committed Oct 19, 2022
0 parents commit 620e015
Show file tree
Hide file tree
Showing 145 changed files with 60,467 additions and 0 deletions.
15 changes: 15 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Feel free to add/edit your name below.
# The names in this file will be shown in the about dialog.
# Format: name <email_or_url>
# <email_or_url> is optional.
Connor Duncan
Gaurav Narula
Harenome Ranaivoarivony Razanajato
Michael Heyns
Mingye Wang (Arthur2e5)
Patrick Griffis
Sun
gipawu
gnome-mpv
tista500
xuzhen
675 changes: 675 additions & 0 deletions COPYING

Large diffs are not rendered by default.

50 changes: 50 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
AUTOMAKE_OPTIONS = foreign

SUBDIRS = src data docs po

EXTRA_DIST = README.md AUTHORS meson.build docs/meson.build test/meson.build test/test-option-parser.c meson-post-install.py po/meson.build

UPDATE_DESKTOP = update-desktop-database -q || :
UPDATE_ICON = gtk-update-icon-cache -q $(datadir)/icons/hicolor/ || :

# Ensure that the dist tarball does not contain own/group from build system
TAR_OPTIONS = --owner=0 --group=0
export TAR_OPTIONS

# Extract version numbers in appdata XML and the main meson build file
APPDATA_VERSION = $(shell xmllint $(top_srcdir)/data/io.github.celluloid_player.Celluloid.appdata.xml.in \
--xpath /component/releases/release/@version | \
sed 's/version="\([^s]\+\)"/\1/g;s/ /\n/g' | \
sort -rn | \
head -1)
MESON_VERSION = $(shell $(AWK) -F "'" \
'/\yversion:/{print $$2}' \
$(top_srcdir)/meson.build)

# Abort if the version numbers are not the same
dist-hook:
if [ "$(APPDATA_VERSION)" != "$(VERSION)" -o \
"$(MESON_VERSION)" != "$(VERSION)" ]; \
then \
echo "Version numbers in appdata XML, meson.build, and" \
"configure.ac do not match" 1>&2; \
exit 1; \
fi

# Test building with Meson
distcheck-hook:
mkdir $(PACKAGE)-$(VERSION)/_build/meson \
$(PACKAGE)-$(VERSION)/_inst/meson && \
cd $(PACKAGE)-$(VERSION) && \
meson _build/meson \
--prefix $(abs_top_srcdir)/$(PACKAGE)-$(VERSION)/_inst/meson && \
ninja -C _build/meson install && \
rm -rf _build/meson _inst/meson

install-data-hook:
$(UPDATE_DESKTOP)
$(UPDATE_ICON)

uninstall-hook:
$(UPDATE_DESKTOP)
$(UPDATE_ICON)
169 changes: 169 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
# Celluloid

Celluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv. Celluloid
interacts with mpv via the client API exported by libmpv, allowing access to
mpv's powerful playback capabilities.

![Screenshot](https://celluloid-player.github.io/images/screenshot-0.png)

## Dependencies

- appstream-glib<sup>[[1]](#note1)</sup> (build)
- autoconf >= 2.69<sup>[[1]](#note1)</sup> (build)
- autoconf-archive<sup>[[1]](#note1)</sup> (build)
- automake >= 1.12<sup>[[1]](#note1)</sup> (build)
- pkg-config (build)
- gcc (build)
- glib >= 2.44
- gtk >= 3.22
- mpv >= 0.32
- epoxy
- lua (optional)
- youtube-dl (optional)

<a name="note1">[1]</a>: Not required when building from release tarballs

## Installation

### GNU/Linux packages
- Arch Linux: https://www.archlinux.org/packages/celluloid
- Arch Linux (Git): https://aur.archlinux.org/packages/celluloid-git
- Debian: https://tracker.debian.org/pkg/celluloid
- Fedora (rpmfusion): https://admin.rpmfusion.org/pkgdb/package/free/celluloid/
- OpenSUSE: https://software.opensuse.org/package/celluloid
- Gentoo: https://packages.gentoo.org/packages/media-video/celluloid
- Guix: https://guix.gnu.org/en/packages/celluloid-0.20
- Solus: https://packages.getsol.us/shannon/g/gnome-mpv/
- Ubuntu: https://launchpad.net/~xuzhen666/+archive/ubuntu/gnome-mpv

### Flatpak

[Flatpak](https://flatpak.org) packages support multiple distributions and are sandboxed.
Flatpak 0.9.5+ is recommended for best integration.

Stable releases are hosted on [Flathub](https://flathub.org):

```sh
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub io.github.celluloid_player.Celluloid
```

Development versions are also packaged:

```sh
flatpak install https://dl.tingping.se/flatpak/gnome-mpv.flatpakref
```


### Source code
Run the following command in the source code directory to build and install:

```sh
meson build && cd build && ninja && sudo ninja install
```

Alternatively, you can use Autotools:

```sh
./autogen.sh && make && sudo make install
```

When building from release tarballs, replace `./autogen.sh` with `./configure`:

```sh
./configure && make && sudo make install
```

## Usage

### Opening files

There are 4 ways to open files in Celluloid.

1. Passing files and/or URIs as command line arguments.
2. Using the file chooser dialog box, accessible via the "Open" menu item.
3. Typing URI into the "Open Location" dialog box, accessible via the
menu item with the same name.
4. Dragging and dropping files or URIs onto Celluloid.

### Manipulating playlist

The playlist is hidden by default. To show the playlist, click the "Playlist"
menu item or press F9. Files can be added by dragging and dropping files or URIs
onto the playlist. Dropping files or URIs onto the video area will replace the
content of the playlist. Playlist files or online playlists (eg. YouTube's
playlist) will be automatically expanded into individual items when loaded.

Items in the playlist can be reordered via drag-and-drop. To remove items from
the playlist, select the item by clicking on it then press the delete button on
your keyboard.

### Configuration

Celluloid can be configured using the preferences dialog accessible via the
"Preferences" menu item. Additional configuration options can be set from an
external file using the same syntax as mpv's `mpv.conf`.
See [mpv's manual](https://mpv.io/manual/stable/) for the full list of options.
The file must be specified and enabled in the preferences dialog under the "MPV
Configuration" section.

It is also possible to set mpv options by putting the options &mdash; as you
would pass to mpv on the command line &mdash; in `Extra MPV Options` text box in
the preferences dialog. You can also pass options directly on the command line
by adding `mpv-` prefix to the option name. For example, using the option
`--mpv-vf=flip` when launching Celluloid is equivalent to using `--vf=flip` in
mpv.

### User Scripts

Celluloid can use most mpv user scripts as-is. Some user scripts may define
keybindings that conflict with Celluloid, in which case you'll need to resolve
the conflict by explicitly defining new keybindings using `input.conf`. See
[mpv's manual](https://mpv.io/manual/stable/#lua-scripting-[,flags]]%29) for
more details.

User scripts can be installed by switching to the "Plugins" tab in the
preferences dialog and dropping the files there. A list of mpv user scripts can
be found [here](https://github.com/mpv-player/mpv/wiki/User-Scripts).

### Keybindings

Celluloid defines a set of keybindings in the macro `DEFAULT_KEYBINDS`, which
can be found in
[src/celluloid-def.h](https://github.com/celluloid-player/celluloid/blob/master/src/celluloid-def.h).
The syntax used is exactly the same as mpv's `input.conf`. These keybindings are
applied on top of default keybindings provided by mpv.

Additional keybindings can be defined in an external file using mpv's
`input.conf` syntax. The file can be set in the preferences dialog under the
"Keybindings" section.

## Contributing Translations

Celluloid uses [Zanata](https://zanata.org) to coordinate
translations. You can find Celluloid's page
[here](https://translate.zanata.org/iteration/view/celluloid/master). To
start translating, follow the instructions
[here](http://docs.zanata.org/en/release/user-guide/translator-guide/). If you'd
like to add a new language, open an issue on GitHub.

While translating, you will find the string `translator-credits`. You should not
translate this string. Instead, you should put your name, and optionally your
email address, in the following format: `FirstName LastName <Email Address>`.
Your name will then appear in the About dialog when your translation is active.

## License

Celluloid is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Celluloid is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Celluloid. If not, see <http://www.gnu.org/licenses/>.

11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Celluloid 0.21.1

- Upstream : https://github.com/celluloid-player/celluloid

# Issue
- Celluloid 0.22 부터는 GTK4를 사용하기 때문에 Ubuntu 20.04 또는 Linuxmint 20.3 이후 버전에서는 Upstream에서 다시 빌드를 진행해야함
- 현재 번역 파일 hamonikr-system에서 관리중

# Fix bug
### 2022-10-19
- 새 창을 여러개 열고 닫을 때 모두 꺼지는 문제 해결
25 changes: 25 additions & 0 deletions autogen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.

srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.

(test -f $srcdir/configure.ac) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the top-level directory"
exit 1
}

aclocal --install -I m4 || exit 1
autoreconf --force --install -Wno-portability || exit 1

if [ "$NOCONFIGURE" = "" ]; then
$srcdir/configure "$@" || exit 1

if [ "$1" = "--help" ]; then exit 0 else
echo "Now type \`make\' to compile" || exit 1
fi
else
echo "Skipping configure process."
fi

set +x
121 changes: 121 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
AC_PREREQ([2.69])

AC_INIT( [celluloid],
[0.21],
[http://github.com/celluloid-player/celluloid/issues],
[celluloid],
[http://github.com/celluloid/celluloid] )

AC_CONFIG_SRCDIR([src/celluloid-main.c])
AC_CONFIG_MACRO_DIR([m4])
AC_USE_SYSTEM_EXTENSIONS
AM_INIT_AUTOMAKE([1.12 tar-pax dist-xz no-dist-gzip subdir-objects foreign -Wall -Wno-portability])
AM_SILENT_RULES([yes])
AM_MAINTAINER_MODE([enable])

# i18n
GETTEXT_PACKAGE=celluloid
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name])

# TODO: Remove AM_GNU_GETTEXT_VERSION once autoreconf supports
# AM_GNU_GETTEXT_REQUIRE_VERSION
AM_GNU_GETTEXT_VERSION([0.19])
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])

AM_GNU_GETTEXT([external])

GLIB_GSETTINGS

AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [turn on debugging]), [enable_debug=$enableval], [enable_debug=no])

AC_DEFUN([GM_CHECK_MACRO],
[m4_ifndef([$1], [m4_fatal($1[ is not defined. Is ]$2[ installed?])])])

GM_CHECK_MACRO([AX_APPEND_COMPILE_FLAGS], [autoconf-archive])
GM_CHECK_MACRO([AX_APPEND_LINK_FLAGS], [autoconf-archive])
GM_CHECK_MACRO([AX_REQUIRE_DEFINED], [autoconf-archive])

GM_CHECK_MACRO([APPSTREAM_XML], [appstream-glib])
APPSTREAM_XML

AS_IF([test "x$enable_debug" = "xyes"], [
AX_APPEND_COMPILE_FLAGS([-O0 -g])
], [
AX_APPEND_COMPILE_FLAGS([-O2])
])

AX_APPEND_COMPILE_FLAGS([ \
-std=gnu99 \
-funsigned-char \
-fstack-protector-strong \
-fPIE \
-fPIC \
-Wall \
-Wextra \
-Wconversion \
-Winline \
-Wno-padded \
-Wno-unused-parameter \
-Wstrict-prototypes \
-Wmissing-prototypes \
-Werror=implicit-function-declaration \
-Werror=pointer-arith \
-Werror=init-self \
-Werror=format-security \
-Werror=format=2 \
-Werror=missing-include-dirs \
-Werror=date-time \
])

AX_APPEND_LINK_FLAGS([ \
-pie \
-Wl,-z,relro \
-Wl,-z,now \
])

# Checks for programs.
AC_PROG_CC
AC_PROG_CC_STDC
AC_PROG_AWK
AC_PROG_SED
AC_PATH_PROG(GDBUS_CODEGEN, [gdbus-codegen], [])
AC_PATH_PROG(GLIB_GENMARSHAL, [glib-genmarshal], [])

AS_IF([test "x$GDBUS_CODEGEN" = "x"], [
AC_MSG_ERROR([Could not find gdbus-codegen])
])

AS_IF([test "x$GLIB_GENMARSHAL" = "x"], [
AC_MSG_ERROR([Could not find glib-genmarshal])
])

PKG_CHECK_MODULES(DEPS, [gtk+-3.0 >= 3.22.23 glib-2.0 >= 2.44 mpv >= 1.107 epoxy])
AC_SEARCH_LIBS([sqrt], [m])

AC_DEFINE([GLIB_VERSION_MIN_REQUIRED], [GLIB_VERSION_2_44], [Dont warn using older APIs])
AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [GLIB_VERSION_2_44], [Prevents using newer APIs])

AC_DEFINE([GDK_VERSION_MIN_REQUIRED], [GDK_VERSION_3_22], [Dont warn using older APIs])
AC_DEFINE([GDK_VERSION_MAX_ALLOWED], [GDK_VERSION_3_22], [Prevents using newer APIs])

AC_DEFINE_UNQUOTED([G_LOG_DOMAIN], "$PACKAGE_NAME", [Default logging facility])

# Checks for header files.
AC_CHECK_HEADERS([string.h stdio.h stdlib.h locale.h],[],[
AC_MSG_ERROR([Could not find required headers])
])

AC_CHECK_FUNCS([setlocale],[],[
AC_MSG_ERROR([Could not find required functions])
])

AC_CONFIG_FILES([Makefile src/Makefile data/Makefile docs/Makefile po/Makefile.in])
AC_OUTPUT

echo "
$PACKAGE $VERSION

prefix ........: $prefix
debug .........: $enable_debug
"
Loading

0 comments on commit 620e015

Please sign in to comment.