Commit 48c3e6c6 authored by Simon Steinbeiß's avatar Simon Steinbeiß

Initial push (== Xfce's git version from Jul 11 2012)

parent 383b6dd8
Ali Abdallah aliov@xfce.org
\ No newline at end of file
This diff is collapsed.
2009-08-11: aliov@xfce.org
* main.c show gtk and gst command line options.
* parole-medialist.c, allow multiple selection, so handle list up
and down+remove when multiple rows are selected.
* Show a button for fast tracks selection when playing cdda.
2009-08-06: 14:30 Ali aliov@xfce.org
* parole-gst.c Implement a timeout handler to check state change
failure, can potentially happen on live streams.
* Change the about dialog.
* Change the version from 0.1 to 0.1.90 as the first stable
version should be 0.2
* parole-disc.c code to correctly checks if cd drive has a cdda,
this is a Linux specific thing.
* parole-gst.c the buffering bit when we force a stop state while
stream is buffering.
* parole-openlocation.c button to clear history of open locations.
* plugins/ Added a simple window title plugin to change
the title of the main window to the current playing stream.
* Set All the popup pos to be always center on parent.
* parole-plugin.c get rid of some useless code+properly
free the plugin data in finalize.
* parole-module.c fix a small memory leak.
* parole.h Support for site in the description of the plugin.
* parole-statusbar.c hide the separator when going to
fullscreen mode.
* Update the POTFILES.in and the .pot files.
2009-08-04: 18:00 Ali aliov@xfce.org
* Added option to remember the currently loaded media
files in the playlist view.
2009-07-31: 11:30 Ali aliov@xfce.org
* Support for Recent played media files.
* Better configuration loading based GValues.
* Register posix signal handler.
* Much better cdda support.
* Patch the makefile by Enrico Tröger to fix issue with
generating the enum types.
* Fix the sound image menu items size.
* Double clicks a file close the media chooser dialog.
* Remove grey border in fullscreen mode.
* Set the main window name to Parole Media Player.
* Fix the expander packing style in the savelist chooser.
2009-07-30: Ali aliov@xfce.org
* Supports for Aspect ratio views.
* Remember the size of the main window set.
2009-07-29: Ali aliov@xfce.org
* Added session code for session interaction.
* Support nice sound fading on exit.
* Automtically get the preferred video size and resize
the video output.
2009-07-29: 13:00 Ali aliov@xfce.org
* Better seeking capabilities with the slider and the buttons.
* Added some shortcut keys.
* Added volume in the menu bar.
* Added saturation+brightness+hue+contrast support
for the video image sink.
* Fix getting the date entity tag.
2009-07-29: 09:30 Ali aliov@xfce.org
* Added ParoleDiscMenu to show a DVD menu when playing DVD.
* Query media capabilities on paused state.
* parole-file.c get rid of a useless warning.
* parole-statusbar.c properly set text info of live streams.
* parole-gst.c optimize a bit the way we query stream info+
added support for seeking to DVD chapters.
2009-07-28: 13:00 Ali aliov@xfce.org
* Implement shuffle and repeat mode.
* Only hide cursor when we are playing a video.
* Better full screen support.
* Change popup size on screen size change in fullscreen mode.
2009-07-28: 10:00 Ali aliov@xfce.org
* tray-icon plugin: Show the base filename if we don't have
the tag title.
* main.c: Added show_version function+reorder calls of gst_init and
gtk_init.
* parole-statusbar.c Much better statusbar info.
* parole-gst.c don't try to load subtitles for non local files.
* Handle all 'prepare-xwindow-id' message synchronously to avoid
XSync error in some occasions.
* Handle Failure in Changing state async to query the bus of
the real error message.
2009-07-27: 22:00 Ali aliov@xfce.org
* Fix a wrong pixbuf name introduced in the previous commit.
* Add missing support for packing plugins in the main notebook.
* Add GStreamer dependency in the README file.
* parole-gst.c don't draw logo on expose when buffering.
* added parole-open-location.{c,h} added parole open location
to handle location open with entry completion.
2009-07-27: 18:00 Ali aliov@xfce.org
* Don't show notebook tabs if we have one page.
* Added subtitle font encoding support, encodings code taken from
gnome-terminal
* Fix changing state to play when user select another
visualization plugin.
* data/interfaces/mediachooser.ui Remove empty box.
* Update TODO and pot file.
2009-07-27: 15:36 Ali aliov@xfce.org
* Added system tray icon plugin, with optional notification
support.
* plugins, Now have optional configure dialog.
* Added some home made icons and a logo.
* Always set the stop button sensitive when we are trying to play
a media file, this gives the possibility to cancel at any time.
2009-07-26: 01:15 Ali aliov@xfce.org
* Provides a dialog to load/unload plugins.
* data/interfaces/ Mark some gtk labels as non-translatable+default
respone of some buttons in the dialogs.
* parole/parole-rc-utils.{c,h} added function to load list entries+
Split the configuration file into groups.
2009-07-23: 23:00 Ali aliov@xfce.org
* parole/parole-gst.c Only emit media progressed signal when the
state is playing.
* parole/parole-pl-parser.{c,h} added a playlist parser code based
on code from totem and from xfmedia.
* parole/parole-filters.c added filters for playlist files.
* po/POTFILES.in updates.
* delete the common dir as it is useless.
* Change ParoleMediaFile to ParoleFile as it doesn't only describe
a media file.
2009-07-19: 10:00 Ali aliov@xfce.org
* Handled disc uri's like dvd:/ from the command line.
2009-07-19: 01:00 Ali aliov@xfce.org
* Parole now can play DVD/VCD.
* parole/parole-stream.c no need to hold a reference to
ParoleMediaFile object.
* Change the flag of dbus_request_name to
DBUS_NAME_FLAG_ALLOW_REPLACEMENT to make the -i (new instance)
command line working and opening a new instance, such a way
if the old instance exists the new one will take the DBus name.
2009-07-16: Ali aliov@xfce.org
* Parole now has a simple plugin interface. (not yet complete).
* plugins/properties: media properties plugin (Read only,
needs to work the writing part with Taglib).
* No need to install the interface files anymore.
* Rename src dir to parole.
* Gtk doc for plugin api (not yet complete).
* parole/parole-player.c stop gst when the stream finishes
and no remaining media left in the list.
* parole/parole-player.c rename the media file shown in the media list
when we get a tag message from gst.
* parole/parole-stream.c Handle tag messages.
* parole/parole-module.{c,h} added a GTypeModule subclass
* parole/parole-mediafile.c expose GObject properties.
to handle plugins.
* put some code in the common dir.
* update POTFILES.in+README+TODO.
2009-07-08 9:00 Ali aliov@xfce.org
* data/interfaces/playlist.ui disable media list horizontal scrolling.
* po/POTFILES.in fix missing strings in the interface files.
* src/gst.c apply the overlay at the correct time, the fix possible X
sync error when playing media files.
* src/mediafile.c check for error code for the unhandled Gfile info,
G_IO_ERROR_NOT_SUPPORTED occurs when we try to read info of an unsupported
location.
* src/filters.c sort media files that belong to the same dir only.
* src/main.c send media files by path instead of uri to the running
instance of the media player.
* src/medialist.c fix a bug adding folder contains media file.
from the command line.
* src/medialist.c Enable ellipsize of the text renderer.
2009-06-19: 13:00 Ali aliov@xfce.org
* Fix stupid bug causing a crash
when adding multiple media files to the list.
2009-06-18: 18:00 Ali aliov@xfce.org
* Make sure to don't draw the logo on expose event
when playing a movie stream.
2009-06-18: 12:00 Ali aliov@xfce.org
* Fix uri command line handling.
* Automatically load subtitle.
* Add options for subtitles font.
2009-06-16: 11:30 Ali aliov@xfce.org
* Show busy cursor when dropping files in the media list view.
* Fix the date in previous commit (2009 instead of 2008).
* Added command line to add media files to list.
* DBus interface for adding media files from a file manager
if Parole is already running.
* Add mime type handled by Parole in the desktop file.
2009-06-15: 20:00 Ali aliov@xfce.org
* Add support for drag and drop in the media list view, it can now
handle dropping of a single file or list of files or a folder
contains media files/other subfolders with media files.
2009-06-15: Ali aliov@xfce.org
* Clear the play pixbuf when finishing playing a list.
* Added mime type functions to generate mime types supported
by Parole, code to do this is taken from Totem.
* Fix finalizing media chooser object before sending file open signal
when opening single media file.
* Add missing files in yesterday's commit.
2009-06-14: Ali aliov@xfce.org
* Added code for configurations.
* By default visualizations are disabled when playing audio files.
* User now can select between multiple Gst visualizations plugins.
2009-06-11: Ali aliov@xfce.org
* Fix a bug in processing state change in Gst.
* Added utils.{c,h} with window cursor functions.
* Fix the date of the previous ChangeLog commit message.
2009-06-10: Ali aliov@xfce.org
* Split the GtkBuilder interface files into multiple files.
2009-06-07: Ali aliov@xfce.org
* Reset screen saver counter if we are playing a movie
2009-06-07: Ali aliov@xfce.org
* Change playbin state to NULL on errors.
* Hide statusbar+menubar when full screen mode.
* Hide cursor on vidoe output when playing.
2009-06-06: Ali aliov@xfce.org
* Button to hide/show playlist.
* Fallback to ximagesink if xvimagesink is not found.
* set the play button hidden if there is no media
in the medialist rows.
* Provide clear menu in the playlist to clear all media
* Volume range for changing volume.
2009-06-03: 10:30 Ali aliov@xfce.org
* Initial import of parole, Juste une parole.
This diff is collapsed.
SUBDIRS = \
data \
parole \
common \
gst \
dbus \
src \
plugins \
docs \
po
EXTRA_DIST = \
intltool-extract.in \
intltool-merge.in \
intltool-update.in
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update
distclean-local:
rm -rf *.cache
rpm: dist
rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz
@rm -f $(PACKAGE)-$(VERSION).tar.gz
html: Makefile
make -C doc html
dist-bz2: dist
zcat $(PACKAGE)-$(VERSION).tar.gz | \
bzip2 --best -c > $(PACKAGE)-$(VERSION).tar.bz2
distcheck-bz2: distcheck
zcat $(PACKAGE)-$(VERSION).tar.gz | \
bzip2 --best -c > $(PACKAGE)-$(VERSION).tar.bz2
snapshot: dist
mv $(PACKAGE)-$(VERSION).tar.gz \
$(PACKAGE)-$(VERSION)-r@REVISION@.tar.gz
snapshot-bz2: dist-bz2
mv $(PACKAGE)-$(VERSION).tar.bz2 \
$(PACKAGE)-$(VERSION)-r@REVISION@.tar.bz2
0.2.0.1
=======
- Automatically detect disc type when parole is started with --device=/dev/sr0 without a uri
- Make the browser plugin compatible with midori, Makefile was broken.
- Remove border width from the settings.
- Fix on disk file check
- Avoid a Glib warning in the statusbar when filename is null.
- Support for playing DVD/VCD ISO images from a file.
- Query stream duration on-ready state always, fixes DVD duration query.
- Properly handle WriteReady callback.
- For local media files, check the stream caps only when switching from ready to paused state.
0.2.0
====
- Fix the confirmation on delete event.
- Use g_key_file_get_locale_string to load plugin name and description
- Fix missing installable include files.
- Fix unused Gst overlay expose on READY state.
- Provide a command line to be used to enable/disable xv, X Video support might be missing for some drivers.
- Handle non local file from the command line.
- Send the kill signal if the dbus name is not yet registered in the browser plugin.
- Set the _NET_WM_WINDOW_OPACITY_LOCKED wm hint, so xfwm4 keep us opaque.
- Grab the focus on the video widget after we get the playing state signal, not when asking gst to play, this will avoid an expose event on the video widget that causes the logo to be drawn before the movie frames shows up.
- Provide an option to Enable/Disable resetting X screen saver counter while playing movies
- Check for stream type before settings the live bit.
- Don't use uri as a status bar text for live streams.
- Added get_stream to the plugin API.
- Don't popup errors in the browser plugin.
- Fix seek backwards+add mouse wheel on the volume slider, patches by Enrico Troger.
0.1.99
====
- Fix bug in the active plugin saved list.
- Added translators credit.
- Fix a memory leak.
- reload the logo when the theme is changed.
- Fix compilation with xulrunner 1.9.2.
- Fix bug #6039 concerning the crash on a virtual box.
- Fix a variable type causing the cursor to be set invisible on the video
widget event if no video is playing.
/* Browser plugin */
- Fix buffering info that was displayed in fullscreen mode.
- Stabilizing the browser plugin.
0.1.98
====
- Fix missing signal handler for the mute menu item.
- Don't hide the controls in full screen when cursor is above
the popup window.
- Respect browser plugin dir installation directory.
- Support for playlist format in the media browser plugin, that it, the
plugin now gets the data from the browser, save it in a temporary
file parse it and play it...
- Added an option in the media chooser to chooer whether to start
playing opened files directly or not (bug #6035).
0.1.96
====
- Fix the plugin loader bug, when the a plugin is asking to pack a widget
and the plugin loader is not ready (bug #6032).
- Exit after 60 seconds of inactivity on the browser plugin to avoid
any zombie process.
0.1.95
====
- Use taglib when compiled to get the media title and display it in
the list instead of waiting for a tag message from gst to change
the display name while playing.
- Added -n command line to load parolw without plugins.
- Added XF86 button handler.
- Added an option in the media chooser dialog to enable/disable
scanning folders recursively for media files
- Handle CTL_O and XF86XK_OpenURL.
- Use cdda:// for audio disc, sine cdda:/ doesn't work!
- Give focus to media list view on GDK_Up and Down.
- Added an option in the media chooser to replace current playlist
with opened files
- Hide control full screen popup when switch from a desktop to another.
- Enter/leave fullscreen on double click on the video widget, thanks
for Enrico Troger for the patch.
- Save stream tags when stream playback finished, should be safer.
- Added a power manager plugin to inhibit the power manager
while playing DVD/VCD/DVB...
- Added --device command line to be used with cdda:// dvd:// etc...
- Added browser media player plugin.
0.1.91
====
- Don't runref the vis plugin as playbin will remove it on exit (bug #5830).
- Fix settings dialog displayes in english when locales aren't english (bug #5829).
- Don't reset XScreenSaver bit when playing audio file, (problem was in the order of calls).
- Fix some untranslatable strings (bug #5827).
- Fix desktop file Application Type typo. (Type=Application instead if Type=Application;).
0.1.90
====
First release.
What is it?
===========
Parole is a modern simple media player based on the GStreamer framework and written to fit well
in the Xfce desktop. Parole features playback of local media files, DVD/CD and live streams.
Parole is extensible via plugins, for a complete how to write a plugin for Parole see
the Plugins API documentation+the plugins directory which contains some usefull examples.
Required packages
=================
Parole depends on the following packages:
- Gtk 2.16 or above.
- Glib 2.16 or above.
- Gio 2.16 or above.
- DBus 0.60 or above.
- DBus glib 0.70 or above.
- GStreamer: base, video, interface and GStreamer X, version 0.10.11 or above.
- libxfcegui4 4.6.0 or above.
- libxfce4util 4.6.0 or above
How to report bugs?
===================
Bugs should be reported to the Xfce bug tracking system
(http://bugzilla.xfce.org, product Parole). You will need to
create an account for yourself.
What's this file about?
-----------------------
This file lists external open source projects that were the starting point of learning how to
write a GStreamer based media player.
1) GStreamer itself, gstreamer plugins base.
2) Totem, The gnome media player.
3) Aldegonde, This tiny media player was a starting point of Totem, the code is very clear
and minimal, ideal to read before starting.
Thanks to all the people that contributed/ing to these projects, without, Parole whouldn't be possible.
=== Media player ===
* Support scale ratio view.
* Handle missing gstreamer plugins.
* ...
=== Plugins ===
* Library collection.
* Galago plugin to set the IM status as away when playing a film in fullscreen.
* Equalizer plugin
* Write a youtube plugin.
* Subtitle downloader.
* Always on top.
* thumbnail.
* ...?
#!/bin/sh
#
# Copyright (c) 2002-2009
# The Xfce development team. All rights reserved.
#
# Written for Xfce by Benedikt Meurer <benny@xfce.org>.
export XDT_AUTOGEN_REQUIRED_VERSION="4.7.0"
(type xdt-autogen) >/dev/null 2>&1 || {
cat >&2 <<EOF
autogen.sh: You don't seem to have the Xfce development tools installed on
your system, which are required to build this software.
Please install the xfce4-dev-tools package first, available from
http://xfce.org/~benny/projects/xfce4-dev-tools/.
EOF
exit 1
}
xdt-autogen $@
noinst_LTLIBRARIES = \
libparolecommon.la \
libparolescreensaver.la
libparolecommon_la_SOURCES = \
parole-common.c \
parole-common.h \
parole-rc-utils.c \
parole-rc-utils.h
libparolecommon_la_CFLAGS = \
$(GTK_CFLAGS) \
$(LIBXFCE4UTIL_CFLAGS)
libparolescreensaver_la_SOURCES = \
parole-screensaver.c \
parole-screensaver.h
libparolescreensaver_la_CFLAGS = \
$(GTK_CFLAGS)
\ No newline at end of file
/*
* * Copyright (C) 2009-2011 Ali <aliov@xfce.org>
*
* Licensed under the GNU General Public License Version 2
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <libxfce4util/libxfce4util.h>
#include "parole-common.h"
static void
parole_dialog_show (GtkWindow *parent,
GtkMessageType type,
const gchar *window_title,
const gchar *title,
const gchar *msg)
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new_with_markup (parent,
GTK_DIALOG_DESTROY_WITH_PARENT,
type,
GTK_BUTTONS_CLOSE,
"<span size='larger'><b>%s</b></span>",
title);
gtk_window_set_title (GTK_WINDOW (dialog), window_title);
gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog), "%s", msg);
g_signal_connect_swapped (dialog,
"response",
G_CALLBACK (gtk_widget_destroy),
dialog);
gtk_widget_show_all (dialog);
}
void parole_dialog_info (GtkWindow *parent, const gchar *title, const gchar *msg)
{
parole_dialog_show (parent, GTK_MESSAGE_INFO, _("Message"), title, msg);
}
void parole_dialog_error (GtkWindow *parent, const gchar *title, const gchar *msg)
{
parole_dialog_show (parent, GTK_MESSAGE_ERROR, _("Error"), title, msg);
}
void parole_window_busy_cursor (GdkWindow *window)
{
GdkCursor *cursor;
if ( G_UNLIKELY (window == NULL) )
return;
cursor = gdk_cursor_new (GDK_WATCH);
gdk_window_set_cursor (window, cursor);
gdk_cursor_unref (cursor);
gdk_flush ();
}
void parole_window_invisible_cursor (GdkWindow *window)
{
GdkBitmap *empty_bitmap;
GdkCursor *cursor;
GdkColor color;
char cursor_bits[] = { 0x0 };
if ( G_UNLIKELY (window == NULL) )
return;
color.red = color.green = color.blue = 0;
color.pixel = 0;
empty_bitmap = gdk_bitmap_create_from_data (window,
cursor_bits,
1, 1);
cursor = gdk_cursor_new_from_pixmap (empty_bitmap,
empty_bitmap,
&color,
&color, 0, 0);
gdk_window_set_cursor (window, cursor);
gdk_cursor_unref (cursor);
g_object_unref (empty_bitmap);
}
/*
* * Copyright (C) 2009-2011 Ali <aliov@xfce.org>
*
* Licensed under the GNU General Public License Version 2
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef __PAROLE_COMMON_H_
#define __PAROLE_COMMON_H_
#include <gtk/gtk.h>
#include <gdk/gdk.h>
void parole_dialog_info (GtkWindow *parent,
const gchar *title,
const gchar *msg);
void parole_dialog_error (GtkWindow *parent,
const gchar *title,
const gchar *msg);
void parole_window_busy_cursor (GdkWindow *window);
void parole_window_invisible_cursor (GdkWindow *window);
#endif /* __PAROLE_COMMON_ */
/*
* * Copyright (C) 2009-2011 Ali <aliov@xfce.org>
*
* Licensed under the GNU General Public License Version 2
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifdef HAVE_CO